背景介绍
数据中心网络在过去几年中发展很快,并带来了虚拟化、云(私有,公共和混合),软件定义网络(SDN)和大数据等流行技术。传统数据中心结构的设计是为了从客户端-服务端应用程序的南北向流量。随着业务结构的发展,现在更多的流量都是来自机房内部的访问既东西向流量。如何提高网络转发性能、扩展性、可靠性等方面成为我们思考的问题。
BackBone 整体网络架构
机房分布如图所示:同城机房采用物理链路连接;到异地机房分别使用 IP Tunnel 到 2 个机房;
网络设计思路:
环状网络避免单点故障;
路由切换灵活,易于管理;
长距离传输使用波分设备,保证链路带宽可以平滑扩容;
网络基础架构:
目前线上主要的网络结构
第一代网络结构:传统网络机构
建立一个无环路的二层网络,使相同广播域中的设备能够相互通信。在广播域内,基于 MAC 地址进行查找和转发。 使用 STP(spanning-tree protocol)进行环路消除、同时保证接入网络设备出现故障时可以实现故障链路自动切换;
在传统网络结构中主要遇到以下问题:
收敛问题:在基于 STP 的网络发生链路故障或交换机故障时,需要重新计算树。这会显着影响流量收敛时间,因为拓扑更改通知会导致清除交换机上的 MAC 表,所有服务器会出现闪 ping 报警。当根节点关闭并且需要选择新节点时,这个问题会变得更加严重。高收敛时间因此是基于 STP 的网络的主要缺点之一;
未使用的链路:如上所述,STP 构建树以确保生成的网络拓扑没有周期或环路。其中一个潜在的问题是作为拓扑一部分的各种交换机之间的许多链路处于阻塞状态并且变得冗余。因此,网络资源没有得到最佳利用;
次最佳转发:由于 STP 的选取 root 交换机机制,所以从该交换机到拓扑中的任何其他交换机的所有流量都将沿着单个路径转发。由于流量始终沿着该树进行转发,因此一对非根交换机(如果存在)之间的较短路径将不会被利用。因此,这些交换机之间的流量将不能得到最佳转发,这当然是不太理想的情况;
缺少等价多路径(ECMP)路由:由于传统的基于 STP 的第2层网络中源交换机和目标交换机之间只有一条路径处于活动状态,因此不存在 ECMP 选项;
流量风暴问题:二层网络处于同一个广播域下,广播报文在环路中会反复持续传送,形成广播风暴。导致正常业务不能运行,甚至彻底瘫痪;
如何解决以上的问题,成为下一阶段思考的问题。
-
第二代网络结构:交换机机虚拟化网络机构
虚拟 PortChannel(vPC),多机箱 EtherChannel 技术允许下游设备(主机或交换机)连接到一对交换机。通过私有协议配置了一对交换机(称为 vPC Peer),以便网络的其余部分将该对视为单个逻辑交换机。
下游设备使用普通 PortChannel 或 EtherChannel 配置连接到两个 vPC Peer 交换机。 两条链路都处于活动状态,从而允许两台核心设备 active - active 转发。 来自下游设备的流量通过算法 hash 到 vPC 链路进行转发。 类似地,流向下游设备的流量可以流经任一交换机。 到下游设备的多目标流量仅通过其中一个交换机发送,从而避免重复。
STP与vPC逻辑拓扑对比如图所示:
CN2 机房使用 vPC 技术,物理连接如图所示:
核心设备 core1、core2 与 core3、core4 分别作为 vPC peer,与各接入交换机上联链路互联。
允许下行设备通过port channel跨两个不同的上行设备。
不需要增加生成树(STP)的功能,解决了传统二层网络因为生成树功能而产生的block端口。
增加了上行带宽
单条链路有问题整改网络不会有大的波动
确保高可靠性
双活工作机制
实现网络拓扑简单化
使用 vPC 技术后 topo 对比:
虽然解决了传统网络结构链路、设备转发率低等问题,但是没有从根本上解决二层链路抖动对服务造成的影响。在交换机上线或下线时,所有服务器还会有 mac 地址表刷新后造成服务器闪断的影响。
第三代网络结构:leaf-spine 网络结构
“leaf-spine 架构”也称为分布式核心网络,核心节点包括两种:第一种 leaf 叶节点负责连接服务器和网络设备;第二种 spine 针节点连接交换机,保证节点内的任意两个端口之间提供延迟非常低的无阻塞性能;将大规模、较复杂的网络进行分层次处理。
CNB 机房使用 core1、core2 做 spine、下联接入交换机作为 leaf 交换机。服务器网关设置接入交换机上。spine-leaf 直接运行 opsf 路由协议,支持 ECMP 等价多路径。将原有的打的广播域进行分块,当 L2 链路有抖动的时候只会影响一组接入交换机,解决了原来因 stp 抖动造成整个网络都有感知的问题;
网络模型对比
私有云建设 vxlan 在 qunar 的尝试
什么是 Vxlan?
VXLAN 全称 Virtual Extensible LAN
一种网络虚拟化技术,通过将数据包封装在 UDP 中,并使用物理网络的 IP/MAC 作为报文头进行封装,然后在 IP 网络上传输,到达目的地后由隧道终结点解封装并将数据发送给目标。
为什么需要 Vxlan?
Vlan数量(0和4095保留,VLAN ID只有12位)不能满足大规模云计算数据中心的需求
多租户IP地址重叠、互相隔离场
虚拟机迁移灵活
ToR交换机MAC地址表大小的限制
CNA 机房 vxlan 网络拓扑:
两台核心作为RR,核心交换机core1与core2各接入交换机运行iBGP。采用分布式网络架构,对于L2 VNI 所有的VTEP使用相同的IP地址Anycast Gateway MAC 在VTEP上全局配置对所有租户的VNI生效。
控制平面学习终端主机的Layer-2、Layer-3可达信息,构建更强壮和可扩展的VXLAN overlay network,利用MP-BGP ***技术支持可扩展的多租户VXLAN overlay networks E*** address family 携带第二层和第三层路由可达信息,在VXLAN overlay 网络中同时提供bridging和routing的支持