2. 网络规划
采用全三层网络架构设计的出发点是:
- 使用尽量少的交换机高级功能,可以尽可能减少由于功能bug故障造成的问题;
- 使用尽量少的网络协议,以兼容不通厂商的网络设备
- 实现简单,易于维护,绝对可靠的路由协议;
- 通过控制路由来调度流量,尽量减少设备或协议的故障域;
- 牺牲高级功能带来的便捷,得到更高的可用性和性能;
由上述原则,本文的设计选择只使用静态路由和BGP两种方式来调度流量,因为静态路由是三层网络设备最基本的功能, BGP是互联网通用的协议,对设备厂商可以做到完全无依赖。
2.1 设计拓扑
2.2 网络规划
全三层网络意味着:在上图拓扑中,每个交换机及服务器的每个网口都配置IP地址,30位掩码,这样,每条链路都处于一个单独的三成网络之中,如此,交换机上便不再存在二层广播。上图展示的只是一个简单的设计拓扑,在真实大规模网络中,leaf和spine的数量还有很大的扩展空间,为了方便交换机的自动配置和管理,需对ip地址作出合理的规划,本文中按照以下原则对各网口的IP地址进行规划:
- 为每个leaf交换机分配一个169.254.0.0/16网段下的24位掩码的子网段,作为每个leaf与其他设备的互联地址池;
- 从“1”分得的24位网段中按升序,按leaf下联端口号由小到大,顺序分配30位掩码的子网段给leaf的下联端口,该30位掩码网段中第一个地址为网络地址,最后一个地址为广播地址,中间两个地址为可用的主机地址,分配第一个主机地址给leaf下联网口,分配第二个主机地址给该网口对端服务器网口;
- 从“1”分得的24位网段中按降序,按leaf上联端口号由大到小,顺序分配30位掩码的子网段给leaf的上联端口,同样,该30位掩码网段中第一个地址为网络地址,最后一个地址为广播地址,中间两个地址为可用的主机地址,分配第一个主机地址给leaf上联网口,分配第二个主机地址给该网卡对端连接的spine交换机网口;
- leaf交换机按对组合,每个server有两张网卡,分别连到某一对交换机上,所连交换机端口号需相同;
- 每个server上有三个IP地址,分别是两个物理网口上分配的互联地址,和用于业务通信的IP。169.254.0.0/16网段仅用于设备互联,不作为业务通信地址,因此需在server的lo接口上分配业务IP地址,为每对leaf所连的server分配一个192.168.0.0/16网段下的24位掩码的子网段作为地址池,按照server所接leaf上端口号由小到大,从地址池中顺序分配32位掩码的主机地址给每个server,这样,使得每个server之间的通信也是全三层;
下面按照上述的规划原则及本节拓扑,作出一份网络规划的示例:
网段规划见下表:
LEAF | 互联IP网段 | 下联服务器业务IP网段 |
border leaf01 |
169.254.0.0/24 | 192.168.0.0/24 |
border leaf02 | 169.254.1.0/24 | 192.168.0.0/24 |
leaf03 | 169.254.2.0/24 | 192.168.1.0/24 |
leaf04 | 169.254.3.0/24 | 192.168.1.0/24 |
各leaf的IP下联端口规划见下表(下联端口数量假设为5个),leaf01/02为一对, leaf03/04为一对:
border leaf01 | border leaf02 | ||||||
端口号 | leaf下联端口地址 | 对端服务器网卡地址 | 对端服务器业务IP地址 | 端口号 | leaf下联端口地址 | 对端服务器网卡地址 | 对端服务器业务IP地址 |
1/1 | 169.254.0.1 | 169.254.0.2 | 192.168.0.1 | 1/1 | 169.254.1.1 | 169.254.1.2 | 192.168.0.1 |
1/2 | 169.254.0.5 | 169.254.0.6 | 192.168.0.2 | 1/2 | 169.254.1.5 | 169.254.1.6 | 192.168.0.2 |
1/3 | 169.254.0.9 | 169.254.0.10 | 192.168.0.3 | 1/3 | 169.254.1.9 | 169.254.1.10 | 192.168.0.3 |
1/4 | 169.254.0.13 | 169.254.0.14 | 192.168.0.4 | 1/4 | 169.254.1.13 | 169.254.1.14 | 192.168.0.4 |
1/5 | 169.254.0.17 | 169.254.0.18 | 192.168.0.5 | 1/5 | 169.254.1.17 | 169.254.1.18 | 192.168.0.5 |
leaf03 | leaf04 | ||||||
端口号 | leaf下联端口地址 | 对端服务器网卡地址 | 对端服务器业务IP地址 | 端口号 | leaf下联端口地址 | 对端服务器网卡地址 | 对端服务器业务IP地址 |
1/1 | 169.254.2.1 | 169.254.2.2 | 192.168.1.1 | 1/1 | 169.254.3.1 | 169.254.3.2 | 192.168.1.1 |
1/2 | 169.254.2.5 | 169.254.2.6 | 192.168.1.2 | 1/2 | 169.254.3.5 | 169.254.3.6 | 192.168.1.2 |
1/3 | 169.254.2.9 | 169.254.2.10 | 192.168.1.3 | 1/3 | 169.254.3.9 | 169.254.3.10 | 192.168.1.3 |
1/4 | 169.254.2.13 | 169.254.2.14 | 192.168.1.4 | 1/4 | 169.254.3.13 | 169.254.3.14 | 192.168.1.4 |
1/5 | 169.254.2.17 | 169.254.2.18 | 192.168.1.5 | 1/5 | 169.254.3.17 | 169.254.3.18 | 192.168.1.5 |
Spine/Leaf互联地址规划如下(假设leaf共有54个端口,且最后8个口为上联端口):
本端设备 | 端口 | IP | 对端设备 | 端口 | IP |
Spine01 | Eth1/1 | 169.254.0.250/30 | leaf01 | Eth1/53 | 169.254.0.249/30 |
Spine01 | Eth1/2 | 169.254.1.250/30 | leaf02 | Eth1/53 | 169.254.1.249/30 |
Spine01 | Eth1/3 | 169.254.2.250/30 | leaf03 | Eth1/53 | 169.254.2.249/30 |
Spine01 | Eth1/4 | 169.254.3.250/30 | leaf04 | Eth1/53 | 169.254.3.249/30 |
Spine02 | Eth1/1 | 169.254.0.254/30 | leaf01 | Eth1/54 | 169.254.0.253/30 |
Spine02 | Eth1/2 | 169.254.1.254/30 | leaf02 | Eth1/54 | 169.254.1.253/30 |
Spine02 | Eth1/3 | 169.254.2.254/30 | leaf01 | Eth1/54 | 169.254.2.253/30 |
Spine02 | Eth1/4 | 169.254.3.254/30 | leaf02 | Eth1/54 | 169.254.3.253/30 |
至此,硬件设备的网络规划完成。在大规模部署中,建议使用脚本自动生成上述配置,否则费时费力,且容易出错。接下来,本文将对本设计的流量调度方式进行阐述,即全三层网络路由的设计。
上一节: 叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(一) - 叶脊网络架构简介
下一节: 叶脊(Spine-Leaf)网络拓扑下全三层网络设计与实践(三) - 架构设计思路 - 路由方案设计