2.5 Layer-2演化
深入研究光纤模块之前,让我们想一下目前的优化技术已经克服了以往哪些DC技术缺陷,而当前DC技术还存在哪些可被优化的地方,显然后者比前者更重要,因为它将带来更好的技术效率和改善性能。有一个需要注意的问题是,冗余L2设计方案时生成树协议(Spanning Tree Protocol,STP)的副作用。尽管对STP(可以回溯到1985年)已经做了某些优化,但是这些优化仍然未能解决两个基本的L2设计问题:
·STP不支持特定VLAN下的L2多路径,同样每VLAN负载平衡允许使用接入层交换机的两条上行链路,但要求用户自己配置。之所以没有其他好的替换方案,是因为数据平面的STP要求必须这样做以防止产生回路。
·为了形成生成树拓扑使得数据平面对STP产生依赖,将导致收敛时延,并带来诸如网络泛洪、链路饱和等潜在危险。
说明:STP的优化措施包括快速生成树协议(Rapid Spanning Tree Protocol,RSTP)、每VLAN生成树(Per-VLAN Spanning Tree,PVST)、快速每VLAN生成树改进(shengRapid Per-VLAN Spanning Tree Plus,Rapid PVST+)以及多生成树协议(Multiple Spanning Tree Protocol)等。
围绕这些问题的解决方法之一是部署无回路L2接入拓扑,经典的L2回路拓扑中每个接入层交换机拥有一个上行链路。其他都是冗余链路或处在断开状态的链路。与经典L2回路拓扑相比,无回路拓扑没有生成树断开端口。图2-12展示了一个无回路L2接入设计方案,也称为无回U型以及无回反U型拓扑,两种方案在L2/L3分界之处有细微差别。
无回路U型拓扑设计方案提供了一条主上行链路,通过接入层交换机之间的内部交换机链路实现冗余,在每个接入层交换机,接入层交换机与相应的802.1Q上行链路间,802.1Q内部交换机链路上都配置了VLAN,但是汇聚层交换机没有配置VLAN以避免产生回路拓扑。由于系统中不存在回路,因此生成树不会阻塞端口。该方案主要不利之处为无法在接入对之外扩展VLAN,某些故障也有可能会产生黑洞。而如果采用在接入对之外扩展VLAN的方案,将形成一个通过汇聚层的回路,启动STP后,就会回到带阻塞链路的四点回路拓扑上。
图 2-12 U型及反U型无回路接入拓扑
在无回路反U型拓扑中,在每个接入层交换机以及相应的802.1Q上行链路上都配置了VLAN,此外还扩展到汇聚层交换机之间。此时,为了防止回路,VLAN不会扩展到接入层交换机间。无回路反U型拓扑允许所有上行链路都作为主链路,为VLAN与汇聚层交换机连接提供支持,也支持VLAN扩展经过接入层,这种拓扑的不利之处在于当汇聚层交换机或者接入层交换机上行链路出现故障时,系统没有提供备用路径,因而可能形成黑洞或者是不可访问的服务器。
尽管在两种拓扑结构中都采用了无回路设计,为了确保安全,仍然需要运行STP以防止在发生线缆或配置错误时产生回路降低整个网络的性能。
虽然“U”型方案听起来比较新鲜,但该方案的影响以及局限性将使我们重新考虑传统的解决途径——L2回路接入拓扑。如图2-13所示,回路接入拓扑由一个三角形(也即V型)和一个正方形组成。
图 2-13 三角形与正方形回路接入拓扑
L2回路接入拓扑与L2设计方案在STP上拥有一样的问题——网络越大,收敛时间越长,同时缺乏L2多路径支持。使用端口通道可以保留数据平面的逻辑生成树,同时也不会使冗余性及负载平衡受到影响,尽管这一方法能够克服STP的局限性,但是仅有链路汇聚也无法建成一个完全冗余的DC,因为它无法处理单个交换机故障。Cisco公司的虚拟交换系统(Virtual Switching System,VSS)和虚拟端口通道(Virtual Port Channel,VPC)通过创建一个能够在两个不同物理交换机上分布的L2端口通道接口解决了上述问题。端口通道的优化特性也足够让整个DC摆脱对STP的依赖。本书只讨论了vPC,由于VSS及vPC技术差不多,更多有关vPC的详细内容,请参考2.5.1节。
借助在L2层对帧路由、多链接半透明互联(Transparent Interconnection of Lots of Link,TRILL)是能够完全突破经典基于生成树帧转发的领导性技术之一。IETF希望通过TRILL与中间系统到中间系统(Intermediate System to Intermediate System,IS-IS)的网络路由协议一起能够替代STP,从L2角度,实现一种更灵活、可扩展性更好的未来DC设计方案。借助TRILL,所有处于像IS-IS转发状态的链路都能计算转发表,去除STP后,系统中再也不存在被阻塞的端口,有助于L2多路径(L2 MultiPath,L2MP)转发,增加了系统等分带宽,使得负载偏低的路径能够转发对延迟敏感的帧。
由于IS-IS属于链路状态路由协议,因此其收敛时间远小于STP,借助内部域(级别1)与外部域(级别2)路由变量的概念,网络泛洪的可能性也大大降低。此外,也更容易发现性价比最高的路径来转发帧,到达目的地的中间跳的次数也减少了,从而缩短了整体时延。TRILL提供了一种获得“STP-less”DC的途径,而vPC则提供了一条到TRILL的转换路径。目前,TRILL依然还处于研究阶段,更多有关TRILL的讨论则已经超出了本书的范围。
2.5.1 虚拟端口通道:STP的改造者
借助vPC可以使物理连接两个不同交换机之间的链路,在第三方下行设备看起来就像一个单一设备一样,并使其成为一个端口通道的一部分。第三方设备可以是交换机、服务器或任意其他支持802.3ad端口通道的网络设备。只是这里概念与VSS中稍有不同,此时两个交换机仍然是相互独立的,拥有不同的控制及转发平面。本节讨论的vPC均在Cisco Nexus 7000(NX7K)以及Cisco Nexus 5000(NX5K)系列交换机上实现。
简而言之,vPC有助于对汇聚/核心层交换机进行整合/虚拟化,使它们成为一个单一逻辑实体。更多有关vPC的配置样例请参考9.6节的相关内容。
vPC要点
vPC设置包括以下部分:
·vPC域:一个vPC域组合了两个vPC对等交换机,每一个vPC拥有一个唯一的域ID。
·vPC对等交换机:vPC对等交换机是两个作为对等设备通过对等链路互相连接在一起的交换机,它们为vPC建立了一个单一逻辑终端,尽管只有两个交换机能够参与到对等连接中,但是这一简单特性已经足够克服经典STP的局限。
·vPC对等链路:vPC对等链路是vPC交换机之间的链路,通常称作多机箱以太通道(Multichassis EtherChannel,MEC)链路,该链路属于标准的IEEE 802.3ad端口通道,带有一个被修改的STP权重。对等链路的功能包括同步对等交换机之间的MAC地址,为组播传输提供必要的支持,并负责孤立端口间的通信。
·vPC成员端口:vPC成员端口是vPC中对等交换机的物理端口,一个运行中的vPC实例要求每个对等交换机上的vPC成员端口至少拥有一个端口通道。
·孤立端口:vPC拓扑将非vPC节点上的端口连接设备称为孤立端口。
·vPC对等心跳链路:对等心跳链路是一个运行在带外管理网络(不使用对等链路)上的逻辑链路,它提供了一个L3通信路径,用于辅助检测,确定远程peer工作是否正常。通过vPC对等心跳链路发送的帧(心跳消息),可以探测源交换机工作是否已经启动,vPC是否开始运行。数据或同步信息不会通过vPC对等心跳链路传送。系统使用对等心跳链路来处理双活故障(即vPC peer之间的peer链路发生故障)。
·Cisco光纤服务(Cisco Fabric Service,CFS)协议:CFS协议协议是为支持快速状态配置消息传送及同步而设计的一种可靠消息协议,vPC借助CFS来传递系统配置副本,完成MAC和两个vPC对等交换机之间的Internet管理协议(Internet Group Management Protocol,IGMP)状态信息的对比及同步处理。CFS协议同时还能够验证vPC成员端口的兼容性以建立端口通道,并监测vPC成员端口的状态。
如图2-14所示,SW01和SW02是两个vPC对等交换机(可以为NX7K或NX5K交换机),由它们组建了一个vPC域,通过普通的端口通道配置,将接入层交换机SW03和SW04以及服务器H2均连接到vPC对等交换机处在vPC拓扑中,负责连接非vPC节点中的设备到vPC拓扑的端口被称为孤立端口,连接到孤立端口的服务器被称为单宿主服务器,图2-14中的服务器H1和H3都属于单宿主服务器类型。H2、SW03、SW04均连接到vPC成员端口上。
说明:推荐所有接入层交换机均采用双重连接模式与vPC peer连接,如果不这样,那么那些只与一个vPC peer连接的交换机或主机将会占用对等链路宝贵的带宽资源,而在对等链路或vPC peer发生故障时,也会使得这些交换机或主机成为与网络隔离的孤立点。
STP不说再见
尽管vPC克服了STP的缺点,但并不能完全代替STP,vPC对运行在对等交换机上的生成树主要做了如下两方面改进:
·vPC确保了对等链路不会间断转发行为,而备份vPC对等交换机也会将对等链路看成至主vPC对等交换机的根端口。
·vPC确保了只有主vPC对等交换机才会转发vPC上的桥接协议数据单元(Bridge Protocol Data Unit,BPDU),使得从生成树角度出发,在其他连接到vPC系统或拓扑中的接入层交换机看来,两台对等交换机如同一个单一实体。这样的改变只适合vPC成员端口,当vPC成员端口上的备份vPC对等交换机接收到BPDU后,它们将通过把数据对等链路转发给主vPC对等交换机处理。
图 2-14 工作中的vPC
如果某个端口通道成员发生了故障,vPC方法会采用用端口通道恢复机制而非STP,这一做法在很大程度上减少了整体收敛时间。
说明:非vPC端口或孤立端口(通常为单宿主而非双宿主)的操作与普通端口一样,采用标准STP协议,包括MSTP及快速PVST+等。vPC专有功能仅适用于vPC成员端口。