设为首页 收藏本站
查看: 1696|回复: 0

[经验分享] 配置Openstack 中最复杂灵活的网络模型:每个租户都拥有自己的路由及内部网络

[复制链接]

尚未签到

发表于 2015-4-11 17:07:32 | 显示全部楼层 |阅读模式
  首先,我们看一下此模型的图例:


DSC0000.png

从图中我们可以看出,TenantA与TenantC分别有自己的私网和路由,通过自己的路由最终连接到外部网络。



下图展示了这个网络模型的逻辑配置环境:

DSC0001.png

注意区别Openstack网络模型中的几个概念网络:




Management Network: 管理网络,连接所有节点。
External Network: 外部网络,虚拟机通过此接口连通外部网络
Data Network: 虚拟机网络,提供之间内部数据线通讯的网络.
  而在我的实际部署环境中,我将Controller Node 与 Network Node 合并,同时增加一个Compute Node ,即一个Ctroller Node + 2个ComputerNode




图中还有一个router负责与外网通讯的,则由我自己的pc担当。



如下图所示:
DSC0002.png

本文的前提假设是读者对Openstack 各组件功能已经比较熟悉,并能熟练安装配置。

以上图例所示各组件已经安装完成并配置正确。



Controller Node配置:

1.  安装apt-get install quantum* .

2. 配置/etc/quantum/quantum.conf




[DEFAULT]
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
control_exchange = quantum
rabbit_host = controlnode
notification_driver = quantum.openstack.common.notifier.rabbit_notifier
[keystone_authtoken]
admin_tenant_name=servicetenant
admin_user=quantum
admin_password=servicepassword
  3. 配置 /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini







[DATABASE]
sql_connection = mysql://root:root@controlnode:3306/ovs_quantum?charset=utf8
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
enable_tunneling = True
local_ip = 100.10.10.52
  4. 重启服务
  service quantum-* restart


可以用过以下脚本重启所有网络组件




#!/bin/sh
cd /etc/init.d/; for i in $( ls quantum-* ); do sudo service $i restart; done
echo "===============Quantum Service Status================="
cd /etc/init.d/; for i in $( ls quantum-* ); do sudo service $i status; done
  保存为文件x.sh
  使用 bash x.sh即可


5. 添加External Network bridge






ovs-vsctl add-br br-ex
ovs-vsctl add-port br-ex eth2
  6.配置/etc/quantum/l3_agent.ini





[DEFAULT]
interface_driver=quantum.agent.linux.interface.OVSInterfaceDriver
use_namespaces=True
  


7.配置 /etc/quantum/quantum.conf




[DEFAULT]
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
control_exchange = quantum
rabbit_host = controlnode
notification_driver = quantum.openstack.common.notifier.rabbit_notifier
allow_overlapping_ips = True
  8.重启所有网络服务


service quantum-* restart



Compute Node 1配置:

1.  安装l2 agent:






apt-get install quantum-plugin-openvswitch-agent
ovs-vsctl --may-exist add-br br-int
  2. 配置 /etc/quantum/quantum.conf





[DEFAULT]
core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2
control_exchange = quantum
rabbit_host = controlnode
notification_driver = quantum.openstack.common.notifier.rabbit_notifier
  


3. 配置 /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini




[DATABASE]
sql_connection = mysql://root:root@controlnode:3306/ovs_quantum?charset=utf8
[OVS]
tenant_network_type = gre
tunnel_id_ranges = 1:1000
enable_tunneling = True
local_ip = 100.10.10.51
  4. 重启服务






service quantum-plugin-openvswitch-agent restart



Compute Node2 配置参考Compute Node1 .



至此,所有配置基本完成,下面可以通过Openstack Horizon Dashboard来操作各个租户的网络路由了.



首先,创建External Network

DSC0003.png

这里我使用Admin 和Dev两个租户分别代表逻辑图中的TenantA,TenantC

其后,创建租户Admin的私网Admin-Net

DSC0004.png

创建Admin的Router Admin-R1

DSC0005.png



切换到租户Dev 再创建Dev的私网和路由,参考逻辑图.

最终的网络图如下:

当然这些步骤也可以在Controller Node上通过quantum 命令行实现。



DSC0006.png



最后提示:别忘了设置路由的网关为Ext-Net



下面就可以创建虚拟机来测试了。同样可以在Dashboard上完成.

下面是我的创建的虚拟机在Dashboard上的网络拓扑图:

DSC0007.png





这样的配置基本模拟了现实IDC网络环境中的主要设备,通过其扩展可以实现企业私有云的所有网络模型部署.



如果在单机的情况下. 可以在br-ex上面设置ext-net的网关

Ext-net的网关


sudo ip addr add 30.0.0.100/24 dev br-ex
sudo ip link set br-ex up
然后通过iptables 可以设置虚拟机nat上网
  iptables -t nat -I POSTROUTING -o eth1 -s 30.0.0.0/24 -j SNAT --to 10.51.166.17
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56103-1-1.html 上篇帖子: OpenStack云计算(一)——OpenStack 网络 下篇帖子: [OpenStack] openstack keystone api 实验(curl)(转载)(亲自动手实验,附带实验运行结果)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表