频道栏目
首页 > 资讯 > 云计算 > 正文

Openstack虚拟机通讯

19-03-02        来源:[db:作者]  
收藏   我要投稿
1、虚拟机南北通讯: Openstack 虚拟机通讯

环境:

External network:

Network 203.0.113.0/24

IP address allocation from 203.0.113.101 to 203.0.113.200

Project network router interface 203.0.113.101 TR

Project network

Network 192.168.1.0/24

Gateway 192.168.1.1 with MAC address TG

Compute node 1

Instance 1 192.168.1.11 with MAC address I1

Instance 1 resides on compute node 1 and uses a project network.

The instance sends a packet to a host on the external network.

过程:

涉及到计算节点的过程:

instance 通过qbr设备上的qvb-qbr-qvo 携带自己的mac地址以及目的地址和网关以及tag

通过qbr桥生的安全组

qbr桥将流量转送到br-int上

br-int桥为project 网络打上相应的tag

For VLAN project networks

br-init-->br-vlan

br-vlan 替换tag为真实的tag

br-vlan 把包转发到网络节点的br-vlan

涉及到网络节点

刚刚从compute节点的br-vlan的包通过交换机传送到网络节点的br-vlan上

br-vlan把包转发给br-int桥

br-int把真实的tag转换为ovs自己认的tag。br-int上面有qroute的接口(qr)设备,包含interface的gw 和tag

通过qroute的namespace 中的iptables规则把qr做为source nat到 qg设备上,可以查看namespace里面的ip信息

Openstack 虚拟机通讯

[root@cloud02 ~]#

查看Iptables规则

neutron-l3-agent-float-snat all -- anywhere anywhere

SNAT all -- anywhere anywhere to:10.10.255.226

SNAT all -- anywhere anywhere mark match ! 0x2/0xffff ctstate DNAT to:10.10.255.226

br-int 转发到br-ex上,再从br-ex到外网的子接口。

此时Snat已经全部完成。

2、带有FloatingIP的虚拟机南北流量

Openstack 虚拟机通讯

环境:

External network

Network 203.0.113.0/24

IP address allocation from 203.0.113.101 to 203.0.113.200

Project network router interface 203.0.113.101 TR

Project network

Network 192.168.1.0/24

Gateway 192.168.1.1 with MAC address TG

Compute node 1

Instance 1 192.168.1.11 with MAC address I1 and floating IP address 203.0.113.102 F1

Instance 1 resides on compute node 1 and uses a project network.

The instance receives a packet from a host on the external network.

过程

通过网络节点:

通过外部接口转发到br-ex上,br-ex转发到br-int上

br-ex的qg设备转到qrouter上面的qg设备

Openstack 虚拟机通讯 Openstack 虚拟机通讯

在qruoter的namesapce查看iptables nat规则

Openstack 虚拟机通讯

查看IP为“10.0.0.5” 的虚拟机

Openstack 虚拟机通讯

可以查看到router里面的flouting-ip对应的dnat是和虚拟机的project ip是一一对应的。

通过route把包转送到br-int。br-init 传送到br-vlan ,并打上真实的tag.

从接口到达交换机。

经过计算节点

计算节点的br-vlan 收到包后,传送给br-init,br-int 把tag转换为ovs自己的内部tag.。然后经过qvb和qvo着一对peer 到达qbr桥,从而到达到达tap设备。如图:

Openstack 虚拟机通讯

虚拟机之间在不同的网络通讯:

Openstack 虚拟机通讯

环境:

Project network 1

Network: 192.168.1.0/24

Gateway: 192.168.1.1 with MAC address TG1

Project network 2

Network: 192.168.2.0/24

Gateway: 192.168.2.1 with MAC address TG2

Compute node 1

Instance 1: 192.168.1.11 with MAC address I1

Compute node 2

Instance 2: 192.168.2.11 with MAC address I2

Instance 1 resides on compute node 1 and uses project network 1.

Instance 2 resides on compute node 2 and uses project network 2.

Both project networks reside on the same router.

Instance 1 sends a packet to instance 2.

通过compute01的:

tap设备通过qvb和qvo把qbr桥和br-int桥连接起来,从而到达br-int上

br-int把包转发给br-vlan上,br-vlan打上真实的tag,然后通过接口发给交换机。

通过network 节点的:

br-vlan接收到compute01上br-vlan发送的包,br-vlan 把包转发给br-int。 br-int把tag替换为自己能识别的tag

br-int把包发给qrouter 的qbr-1 接口。并且携带自身的网关信息。

路由通过route功能把qbr-1的包发送给qbr-2.

qbr-2 通过转发到达br-int上

br-init 把包转发给br-vlan,br-vlan把tag替换为真实的tag

br-vlan 把包发给network-2 的网桥上,br-vlan 把包发给compute-2的节点上

通过compute02节点的

计算节点2 接收到网络节点br-vlan的包。

br-vlan===> br-int

br-int ===>qbr===>tap

总结:

1、相同网络不同节点上的虚拟机互相通讯不经过网络节点

2、不通网络相互通讯经过网络节点

3、相同网络部同计算节点的虚拟机 互相通讯 直接走br-int

相关TAG标签
上一篇:观察者模式-云栖社区-阿里云
下一篇:360公司的集群管理平台wayne搭建
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站