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

[经验分享] OpenStack的网络管理指南(5)——网络底层(未完结)

[复制链接]

尚未签到

发表于 2015-10-11 07:54:36 | 显示全部楼层 |阅读模式

OpenStack的网络管理指南第五部分


原文老地方:http://docs.openstack.org/trunk/openstack-network/admin/content/ch_under_the_hood.html



本章介绍了两种网络场景和open vSwitch插件以及Linux桥接插件如何实现这些场景。





Open vSwitch

本节介绍如何用open vSwitch插件实现OpenStack的网络抽象。

配置

This example uses VLAN isolation on the switches to isolate tenant networks. This configuration labels the physical network associated with the public network as physnet1,
and the physical network associated with the data network as physnet2, which leads to the following configuration options in ovs_neutron_plugin.ini:





1
2
3
4
5

[ovs]
tenant_network_type
= vlan
network_vlan_ranges
= physnet2:100:110
integration_bridge
= br-int
bridge_mappings
= physnet2:br-eth1

情景1:一个租户,两个网络,一个路由

第一种方案有两个专用网络( net01 , net02 ) ,每一个网络有一个子网( net01_subnet01 : 192.168.101.0/24 , net02_subnet01:192.168.102.0/24 ) 。两个专用网络都连接到一个路由器将它们与公共网络相连( 10.64.201.0/24 )。





根据服务租户,创建共享路由器,定义公共网络,将其设置为路由器的默认网关
$ tenant=$(keystone tenant-list | awk '/service/ {print $2}')
$ neutron router-create router01
$ neutron net-create --tenant-id $tenant public01 \
--provider:network_type flat \
--provider:physical_network physnet1 \
--router:external=True
$ neutron subnet-create --tenant-id $tenant --name public01_subnet01 \
--gateway 10.64.201.254 public01 10.64.201.0/24 --enable_dhcp False
$ neutron router-gateway-set router01 public01
根据演示用户租户,建立专用网络net01和相应的子网,把它连接到router01路由器上。配置它来使用物理交换机上ID101的 VLAN 。




$ tenant=$(keystone tenant-list|awk '/demo/ {print $2}'
$ neutron net-create --tenant-id $tenant net01 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id 101
$ neutron subnet-create --tenant-id $tenant --name net01_subnet01 net01 192.168.101.0/24
$ neutron router-interface-add router01 net01_subnet01
  
同样,对于net02 ,采用物理交换机上 ID为102 的VLAN




$ neutron net-create --tenant-id $tenant net02 \
--provider:network_type vlan \
--provider:physical_network physnet2 \
--provider:segmentation_id 102
$ neutron subnet-create --tenant-id $tenant --name net02_subnet01 net02 192.168.102.0/24
$ neutron router-interface-add router01 net02_subnet01
计算主机配置

下图显示了如何配置计算主机上的各种Linux的网络设备:

各种类型的网络设备



Note
[color=inherit!important]
有四种不同类型的虚拟网络设备: TAP设备, VETH pair,Linux网桥,和Open vSwitch网桥。举个例子,对于一个以太网帧从虚拟机VM01的网卡eth0到物理网络,它必须通过主机内的9台设备:TAP vnet0,Linux bridge qbrnnn, veth pair(qvbnnn, qvonnn), Open vSwitch bridge br-int, veth pair
(int-br-eth1, phy-br-eth1), and, finally, the physical network interface card eth1.





一个TAP设备,比如vnet0,虚拟机像KVM和Xen是如何实现虚拟网卡的(通常称为一个VIF的vNIC ),发送到一个TAP设备上的以太网帧是被客户操作系统所接受。
  
一个VETH pair是一对直接连接在一起虚拟网络接口,一个以太网帧从一个VETH发送到另一个VETH
pair。Openstack的网络使用VETH pair作为虚拟网桥之间的虚拟电缆。



一个Linux网桥的行为像一个枢纽:您可以将多个(物理或虚拟)网络接口设备连接到Linux网桥上,从网桥上任何一个端口发送过来的以太网帧都会被发送到所有其他设备上。


一个open vSwitch网桥的行为就像一个虚拟的交换机:网络接口设备连接到vSwitch网桥的端口上,这个端口可以想物理交换机一样配置,包括VLAN的配置。






整合网桥
br-int OpenvSwitch网桥是整合网桥,计算主机上的所有客户都连接这座网桥,Openstack网络实现网络隔离通过配置br-int的端口。
物理连接网桥


br-eth1提供桥连到物理网卡eth1上,它通过VETH pair连接到整合网桥br-int上( INT- BR- eth1的,PHY - BR- eth1 )。
VLAN 转换
在这个例子中, net01和net02 VLAN的ID分别为1和2。然而,在我们的例子中的物理网络仅支持VLAN ID的取值范围为101至110 。The Open vSwitch 代理负责为br-int和br-eth1做VLAN转换。当br-eth1的接收帧标记VLAN ID为1,PHY- BR- eth1的相关联的端口,它会修改帧的VLAN ID 为 101。同样,当BR- INT接收帧标记VLAN ID为101,INT-
BR- eth1的相关联的端口,它会修改帧的VLAN ID 1 。


安全组: iptables和Linux网桥


在理想的情况下,TAP设备vnet0将会直接连接到br-int上边。不幸的是,这是不可能的,因为Openstack安全组的存在,Openstack在TAP设备比如vnet0上使用iptables规则来实现安全组,Open vSwitch 不直接和iptables规则兼容而提供了TAP设备连接的Open
vSwitch端口



OpenStack的网络使用一个额外的Linux网桥和VETH pair作为这个问题的解决方法。vnet0连接到linux网桥而不是直接连接到Open
vSwitch桥上,qbrXXX。此网桥通过(qvbXXX, qvoXXX) veth pair连接到br-int






网络主机配置
网络主机运行neutron-openvswitch-plugin-agent,the neutron-dhcp-agent, neutron-l3-agent, 和 neutron-metadata-agent
等服务。

在网络主机上,假设eth0连接到外部网络,eth1连接到数据网络,ovs_neutron_plugin.ini文件应该如下配置



1
2
3
4
5

[ovs]
tenant_network_type
= vlan
network_vlan_ranges
= physnet2:101:110
integration_bridge
= br-int
bridge_mappings
= physnet1:br-ex,physnet2:br-eth1  


下图显示了网络主机的网络设备:  


类似于计算主机,存在一个Open vSwitch integration bridge (br-int)和一个Open vSwitch bridge(br-eth1)连接到数据网络,这两者通过veth pair连接,neutron-openvswitch-plugin-agent 充当两个交换接口的VLAN转换。
另外一个Open vSwitch bridge,,br-ex,被连接到外部网络的物理接口上。在这个例子中,物理接口是eth0。











Note
[color=inherit!important]
内部网桥和外部网桥通过veth pair(int-br-ex,phy-br-ex)连接,这个例子中使用第三层来路由从内部网络到外部网络的数据包。这个例子中没有数据包穿过veth pair。





Open vSwitch 内部端口

网络主机使用Open vSwitch 内部端口,内部端口使您能够将一个或多个IP地址分配给Open vSwitch,在前面的例子中, BR- INT桥有四个内部端口: tapXXX , qr- YYY , qr- ZZZ , tapWWW。每个内部端口都有一个独立的IP地址与它相关的。内部端口qg- VVV 在br-ex 上。
DHCP agent

默认情况下, OpenStack网络的DHCP代理使用了一项名为dnsmasq的程序为客户提供DHCP服务。OpenStack网络必须为每一个要求DHCP服务的网络创建一个内部端口并且连接到该端口上,在前面的例子中,接口tapXXX是子网net01_subnet01上,接口tapWWW是net02_subnet01上的。

L3 agent (routing)

OpenStack网络L3代理通过使用Open vSwitch内部端口实现路由并且依赖网络主机路由数据包。在这个例子: 子网net01_subnet01的接口qr -YYY ,ip地址为192.168.101.1/24。子网net02_subnet01上的接口qr-ZZZ,ip地址为192.168.102.1/24。接口qg-VVV拥有ip地址为10.64.201.254/24。由于这些接口对网络主机的操作系统可见,因此可以将数据包跨接口路由,只有管理员开启ip转发。

L3代理使用iptables来实现浮动IP做网络地址转换(NAT ) 。


运维网声明 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-125241-1-1.html 上篇帖子: 红帽公布2014年财报 未来押注OpenStack 下篇帖子: OpenStack 网络:Neutron 初探
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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