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

来源:互联网 发布:行知教育怎么样 编辑:程序博客网 时间:2024/04/29 22:53


2013-05-17 12:09 by 梁小白, 552 阅读, 0 评论, 收藏, 编辑

首先,我们看一下此模型的图例:


从图中我们可以看出,TenantA与TenantC分别有自己的私网和路由,通过自己的路由最终连接到外部网络。
 
下图展示了这个网络模型的逻辑配置环境:
注意区别Openstack网络模型中的几个概念网络:
Management Network: 管理网络,连接所有节点。External Network: 外部网络,虚拟机通过此接口连通外部网络Data Network: 虚拟机网络,提供之间内部数据线通讯的网络.

而在我的实际部署环境中,我将Controller Node 与 Network Node 合并,同时增加一个Compute Node ,即一个Ctroller Node + 2个ComputerNode

 
图中还有一个router负责与外网通讯的,则由我自己的pc担当。
 
如下图所示:
本文的前提假设是读者对Openstack 各组件功能已经比较熟悉,并能熟练安装配置。
以上图例所示各组件已经安装完成并配置正确。
 
Controller Node配置:
1.  安装apt-get install quantum* .
2. 配置/etc/quantum/quantum.conf
复制代码
[DEFAULT]core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2control_exchange = quantumrabbit_host = controlnodenotification_driver = quantum.openstack.common.notifier.rabbit_notifier[keystone_authtoken]admin_tenant_name=servicetenantadmin_user=quantumadmin_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 = gretunnel_id_ranges = 1:1000enable_tunneling = Truelocal_ip = 100.10.10.52
复制代码

4. 重启服务

service quantum-* restart

可以用过以下脚本重启所有网络组件
#!/bin/shcd /etc/init.d/; for i in $( ls quantum-* ); do sudo service $i restart; doneecho "===============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-exovs-vsctl add-port br-ex eth2

6.配置/etc/quantum/l3_agent.ini

[DEFAULT]interface_driver=quantum.agent.linux.interface.OVSInterfaceDriveruse_namespaces=True

 

7.配置 /etc/quantum/quantum.conf
复制代码
[DEFAULT]core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2control_exchange = quantumrabbit_host = controlnodenotification_driver = quantum.openstack.common.notifier.rabbit_notifierallow_overlapping_ips = True
复制代码

8.重启所有网络服务 

 service quantum-* restart
 
Compute Node 1配置:
1.  安装l2 agent:
 
apt-get install quantum-plugin-openvswitch-agentovs-vsctl --may-exist add-br br-int

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

[DEFAULT]core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2control_exchange = quantumrabbit_host = controlnodenotification_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 = gretunnel_id_ranges = 1:1000enable_tunneling = Truelocal_ip = 100.10.10.51
复制代码

4. 重启服务

 
service quantum-plugin-openvswitch-agent restart
 
Compute Node2 配置参考Compute Node1 .
 
至此,所有配置基本完成,下面可以通过Openstack Horizon Dashboard来操作各个租户的网络路由了.
 
首先,创建External Network
这里我使用Admin 和Dev两个租户分别代表逻辑图中的TenantA,TenantC
其后,创建租户Admin的私网Admin-Net
创建Admin的Router Admin-R1
 
切换到租户Dev 再创建Dev的私网和路由,参考逻辑图. 
最终的网络图如下:
当然这些步骤也可以在Controller Node上通过quantum 命令行实现。
 
 
最后提示:别忘了设置路由的网关为Ext-Net
 
下面就可以创建虚拟机来测试了。同样可以在Dashboard上完成. 
下面是我的创建的虚拟机在Dashboard上的网络拓扑图:
 
 
这样的配置基本模拟了现实IDC网络环境中的主要设备,通过其扩展可以实现企业私有云的所有网络模型部署.
 
本文为原创内容,转载请注明出自 梁小白博客(http://biangbiang.cnblogs.com)
原创粉丝点击