共计 2729 个字符,预计需要花费 7 分钟才能阅读完成。
本篇文章为大家展示了 Neutron 节点中所使用的环境及示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
一、Neutron 节点中所使用的环境。
简单总结一下:
Compute 节点上由 Neutron-OVS-Agent 负责:
br-int:每个虚机都通过一个 Linux brige 连到该 OVS 桥上
br-tun:转化网络 packet 中的 VLAN ID 和 Tunnel ID
GRE tunnel:虚拟 GRE 通道
Neutron 节点上:
br-tun/br-int:同 Compute 节点,由 Neutron-OVS-Agent 负责
br-ex:连接物理网卡,用于和外网通信
Network namespace:用于 tenant 网络 DHCP 服务的 qDHCP 由 Neutron-DHCP-Agent 负责,和用于网络间 routing 的 qRouter 由 Neutron-L3-Agent 负责
2. 几个典型流程案例 2.1 流程 1:同一个 host 上同一个子网内虚机之间的通信过程
因为 br-int 是个虚拟的二层交换机,所以同一个 host 上的同一个子网内的虚机之间的通信只是经过 br-int 桥,不需要经过 br-tun 桥。如下图中红线所示:
2.2 流程 2:不同主机上同一个子网内的虚机之间的通信过程
过程:
1. 从左边的虚机 1 出发的 packet,经过 Linux bridge 到达 br-int,被打上 VLAN ID Tag
2. 到达 br-tun,将 VLAN ID 转化为 Tunnel ID,从 GRE Tunnel 发出,到达另一个 compute 节点
3. 在另一个 compute 节点上经过相反的过程,到达右边的虚机
注:本配置待不久之后的实验验证。
2.3 流程 3:虚机访问外网
1. Packet 离开虚机,经过 Linux bridge,到达 br-int,打上 VLAN ID Tag
2. 达到 br-tun,将 VLAN ID 转化为 Tunnel ID
3. 从物理网卡进入 GRE 通道
4. 从 GRE 通道达到 Neutron 节点的网卡
5. 达到跟物理网卡相连的 br-tun,将 Tunnel ID 转化为 VLAN ID
6. 达到 br-int,再达到 router,router 的 NAT 表 将 fixed IP 地址 转化为 floatiing IP 地址,再被 route 到 br-ex
7. 从 br-ex 相连的物理网卡上出去到外网
外网 IP 访问虚机是个相反的过程。
2.4 流程 4:虚机发送 DHCP 请求
过程:
1. 虚机的 packet – br-int – br-tun – GRE Tunnel – eth3 —— eth3- br-tun- br-int- qDHCP
2. qDHCP 返回其 fixed IP 地址,原路返回
例如:在虚机(IP 为 10.0.22.202)启动过程中,DHCP Server(10.0.22.201)所收到的请求及其回复:
root@network:/home/s1# ip netns exec qdhcp-d24963da-5221-481e-adf5-fe033d6e0b4e tcpdumplistening on tap15865c29-9b, link-type EN10MB (Ethernet), capture size 65535 bytes //dnsmasq 在此 TAP 设备上监听
07:16:56.686349 IP (tos 0x0, ttl 64, id 41569, offset 0, flags [DF], proto UDP (17), length 287)
10.0.22.202.bootpc 10.0.22.201.bootps: [udp sum ok] BOOTP/DHCP, Request from fa:16:3e:19:65:62 (oui Unknown), length 259, xid 0xab1b9011, secs 118, Flags [none] (0x0000)
Client-IP 10.0.22.202 // 虚机 eth0 的 IP 地址
Client-Ethernet-Address fa:16:3e:19:65:62 (oui Unknown)
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Release
Client-ID Option 61, length 7: ether fa:16:3e:19:65:62 // 虚机 eth0 的 Mac 地址
Server-ID Option 54, length 4: 10.0.22.201 //DHCP Server IP 地址
2.5 不同 tenant 内虚机之间的通信
Neutron Tenant 网络是为 tenant 中的虚机之间的通信。如果需要不同 tenant 内的虚机之间通信,需要在两个 subnet 之间增加 Neutron 路由。
3. 关于 GRE/OVS/Neutron 的一些快速结论
1. GRE 可以隔离广播风暴,不需要交换机配置 chunk 口,解决了 vlan id 个数限制,3 层隧道技术可以实现跨机房部署,但它是点对点技术,每两个点之间都需要有一个隧道,对于 4 层的端口资源是一种浪费;同时,在 IP 头中
增加 Tunnel ID,势必减少 vm 的 mtu 值,同样大小的数据,需要更多的 ip 包来传,传输效率有影响。
2. OVS
:可以针对每个 vm 做流量限制、流量监控、数据包分析,同时可以引入 OpenFlow,使控制逻辑和物理交换相分离,并且 sdn controller 可以实现 vxlan 的跨机房大二层通信,但是可能性能是个潜在问题。
3. Neutron 的优点:
(1)提供 REST API
(2)Neutron 把部分传统网络管理的功能推到了租户方,租户通过它可以创建一个自己专属的虚拟网络及其子网,创建路由器等,在虚拟网络功能的帮助下,基础物理网络就可以向外提供额外的网络服务了,比如租户完全可以创建一个属于自己的类似于数据中心网络的虚拟网络。Neutron 提供了比较完善的多租户环境下的虚拟网络模型以及 API。像部署物理网络一样,使用 Neutron 创建虚拟网络时也需要做一些基本的规划和设计。
4. Neutron 的可能问题:
(1)单点故障:Neutron 节点做为 network 的中心控制节点,很容易导致单点故障。生产环境中 HA 应该是必须有的。
(2)性能降低:network traffic 经过太多的层次,latency 增加。
(3)可扩展性不够:当 Compute 节点快速增加的时候,Neutron 节点也需要扩展。
上述内容就是 Neutron 节点中所使用的环境及示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注丸趣 TV 行业资讯频道。