惠伟:openstack网络设计-(一)试探zhuanlan.zhihu.com
接上次文章写起,先自己尝试设计openstack机房网络,拓扑如下:
underlay网络全三层转发,spine和leaf之间路由BGP路由协议,利用等价路由做ECMP。
控制节点和计算节点只一块网卡两个口做bond,连接leaf交换机,管理/存储/数据流量都走bond口,如果担心互相影响,分成三个vlan子接口,做qos限制,如果运行dpdk,用intel kni或者mellanox bifurcated功能,把管理网vlan识别出来走kernel tcp/ip,图中只有一个vlan,如果用三个vlan那么交换机就得多创建两个vlan-interface,接口trunk这三个vlan。
leaf交换机两两一组HA多活,不堆叠不浪费接口,服务器bond连接leaf用H3C的S-MLAG技术,leaf当作服务器的网关,两个leaf个vlan-interface配置相同的IP和MAC,总结一个就是服务器ARP双发,bond一个链路down时发送免费arp,交换机arp代答,把arp引入路由,同网段也三层转发。
SNAT/DNAT/LB/VPN节点两块网卡,分别做bond连接内网leaf交换机和外网boarder交换机。
SNAT/DNAT/LB/VPN节点和boader交换机之间运行路由协议,把openstack公网IP地址同步给boader是交换机,boader再负责向ISP通告openstack的公网IP。boader交换机之间堆叠或者用cisco vPC技术,图中用了cisco vPC交换机,两个boader上配置的IP和MAC不相同,配置peer gateway,分别和SNAT/DNAT/LB/VPN节点之间建立邻居关系,SNAT/DNAT/LB/VPN节点发给boader1的路由协议报文有可能被bond hash到boader2上,那么boader2要负责把路由协议报文转发给boader1,并且boader1要这个报文关联到正确的接口上,估计只有cisco vPC有这样的功能,如果boader像leaf那样配置相同的IP和MAC,那么SNAT/DNAT/LB/VPN节点看来只有一个邻居,只要一个boader down了,就认为邻居down了,把路由就删除了,和外网就不通。
underlay DC之间互通,服务器要和其它DC中的服务器互通,可能spine还得负责连接其它机房。
underlay服务器出外网,需要有NAT功能,spine做NAT再连接boarder。
S-MLAG解决方案介绍-新华三集团-H3Cwww.h3c.com