一文精通虚拟端口通道vPC,精品文章,爱了!

2021-10-29 10:53:25 浏览数 (1)

今天给大家带来的是虚拟端口通道相关的技术:

简介

传统数据中心使用生成树来防止第 2 层环路,这已经使用了多年,但确实有局限性,为了防止环路,生成树会阻止一些链路并保持其他链路处于活动状态,如下所示,阻塞链路可以在活动链路出现故障时使用,如果链路确实发生故障,生成树会运行 SPF 算法来决定解除阻塞的链路,该链路然后在它处于活动状态之前通过几个状态转换。

在经典的生成树中,阻塞的链路是对带宽的浪费,现代生成树对此进行了改进,链路 A 可能对 VLAN A 阻塞,但它可能对 VLAN B 处于活动状态,这是生成树的负载平衡。不幸的是,这仍然存在问题。例如,如果VLAN-A上的流量很大,而几乎没有使用VLAN-B怎么办?在这种情况下,流量不是均衡负载均衡的。

生成树也会导致次优路径,看看下面的图表。如果流量需要在两个底部交换机之间流动,它必须首先通过顶部交换机。

改善这种情况的一种方法是 EtherChannels,这允许从设备到交换机或两个交换机之间的许多活动上行链路,这仍然有局限性,因为 EtherChannel(或 LAG)仅位于两个设备之间,单个交换机的故障仍会导致链路束中断。

虚拟端口通道或 vPC 是EtherChannel的扩展 ,它们是解决生成树和 EtherChannel 局限性的一种方法。

如下所示,他们通过使设备能够同时为两个 Nexus 交换机创建一个 EtherChannel 来实现这一点 ,从连接的设备的角度来看,它仍然连接到单个交换机。

vPC 中的所有链路都主动转发流量,vPC 是多机箱以太网技术(或 MCEC),但不是 堆栈,Catalyst 平台上的 VSS(虚拟交换系统)是另一种多机箱技术。

vPC 还提供高可用性,由于两组链路都处于活动状态,因此 vPC 的收敛时间很快,如果一个链路或一组链路出现故障,则其他链路已经在转发流量,这比生成树快得多。它需要找出一条新路径,并将一个或多个链路转换为转发状态。

任何支持第 2 层端口通道的设备都可以通过 vPC 进行连接,设备不需要知道 vPC。设备包括物理服务器、防火墙、其他交换机和负载平衡器。

部署 ASA 集群的一种方法是通过 vPC 将其连接到一对 Nexus 交换机,如下图所示,Fabric Extender (FEX) 也可以通过 vPC 连接到父交换机,在此拓扑的一个变体中,网络设备可以通过 vPC 连接到两个 FEX。

vPCCisco 的专有技术,其他供应商也有类似的技术,例如 Force 10 的 VLT (现在是戴尔),采用不同方法的其他技术包括 TRILL、FabricPath和 VxLAN。

vPC 部署

拓扑

vPC 拓扑由两个 Nexus 交换机和一个或多个连接的设备组成,这两个交换机是 对等的,对等交换机通过两条链路连接在一起,它们是对等链路和保持活动链路,这些链路构成了 vPC 对等交换机的背板,此背板允许连接的设备将交换机对视为单个设备,连接的设备可以是任何支持端口通道或 LAG 的设备,这包括服务器、交换机、防火墙等。

vPC 拓扑中只能有两个交换机,这确实会导致一些可扩展性问题,增强数据中心网络的一些方法是部署 结构,在边缘具有 vPC 连接,一些交换矩阵示例是 Cisco 的 FabricPath或行业标准 VxLAN。

虽然 vPC 消除了生成树的影响,但生成树本身并没有完全消除,网络 仍应使用 Spanning-Tree。

为什么?

并非所有网络设备和设计都将使用 vPC,接入层可以使用 vPC 来连接主机,但是接入层可以使用传统的连接到汇聚层,这需要生成树进行循环控制。

那么,如果非 vPC 交换机连接到 vPC 对会发生什么情况?好消息是 vPC 对等交换机仍然支持生成树。不过,它们的行为与传统模型略有不同,通过 vPC 连接到 Nexus 对的交换机会将该对视为单个交换机,这意味着该对将作为到生成树域其余部分的单个交换机出现,这是可能的,因为两个交换机都会同步 网桥 ID,并且网桥优先级匹配。

但是等等......这对如何看起来是连接设备的单个开关?连接的设备不会看到来自两台交换机的生成树 BPDU 吗?

但是是:,只有一台交换机发送 BPDU。

vPC 有两个角色; 小学中学

基于优先级 值的选举 决定了每个交换机将承担的角色,两个交换机都在数据平面中转发流量,但是,有一些 控制平面 功能只有主交换机才能处理,其中之一是发送 BPDU 帧,当您深入了解 vPC 时,您会发现只有主交换机才能处理的其他功能。

要开始使用 vPC,需要启用两个功能: vpclacp,vPC 是 EtherChannel 的扩展,LACP 仍用于与连接的设备交换控制消息。

代码语言:txt复制
Switch1(config)# feature vpc 
Switch1(config)# feature lacp

保持活动链路

保持活动链路将心跳从一个对等方发送到另一个对等方,对等方将使用这些心跳来确定另一台交换机是否已启动。

此链路是第 3 层链路,位于单独的 VRF 中,以使其与其他流量隔离,这很重要,因为某些故障可能导致任一交换机认为其对等方已关闭,而实际上并非如此。这是一种脑裂或 双主动 场景,其中两个交换机都认为它们是主要的,keepalive 链路上的心跳可以防止出现此问题,即使出现故障,双方仍然可以看到对方。

有两种可能的方式来部署此链路,第一种选择是点对点路由连接在两个交换机之间,二是使用单独的三层网络,这可能是分发、核心或管理网络。

由于这条链路只承载很小的心跳包,所以不需要很大的带宽,它也不需要端口通道中的一组链路,这意味着 keepalive 可以是自定义 VRF 上普通端口之间的单个链路,或者,它可以是mgmt0 接口之间的单个点对点链路 。

以下示例显示如何使用专用端口配置保持活动链路,这是对任何带有一对监控器的基于机箱的交换机的建议。

称为vpc-keepalive 的专用 VRF 将流量保持在带外,一个专用的第 3 层(路由)端口被添加到 VRF 并被赋予一个 IP 地址。

代码语言:txt复制
[rtbs name="keepalive-link"]

下一个示例是另一种方法,它使用 mgmt0 接口作为 keepalive 链路,这是任何固定交换机(不是机箱)的推荐方法,这可以是点对点链路,通过 OOB 管理网络运行。

管理端口已经路由,并且已经在它自己的专用 VRF 中。

代码语言:txt复制
[rtbs name="keepalive-mgmt"]

要验证保持活动链路,请从保持活动 VRF ping 对等交换机。

验证保持活动

代码语言:txt复制
Switch1# ping 1.1.1.2 vrf management
PING 1.1.1.2 (1.1.1.2): 56 data bytes
36 bytes from 1.1.1.1: Destination Host Unreachable
Request 0 timed out
64 bytes from 1.1.1.2: icmp_seq=1 ttl=254 time=1.098 ms
64 bytes from 1.1.1.2: icmp_seq=2 ttl=254 time=0.598 ms
64 bytes from 1.1.1.2: icmp_seq=3 ttl=254 time=0.536 ms
64 bytes from 1.1.1.2: icmp_seq=4 ttl=254 time=0.503 ms

--- 1.1.1.2 ping statistics ---
5 packets transmitted, 4 packets received, 20.00% packet loss
round-trip min/avg/max = 0.503/0.683/1.098 ms

vPC域

vPC 域是 vPC 组件的逻辑集合,其中包括两台交换机、它们之间的链路以及 vPC 成员端口,每个交换机只能有一个域,每对启用 vPC 的交换机应使用不同的域 ID。

域是大多数全局 vPC 配置发生的地方,这包括分配保持活动链路和角色优先级,角色优先级最低的交换机将成为主交换机。

与 vPC 相关的所有配置必须在两台交换机上匹配,默认情况下,不会在交换机之间复制配置,但可以。

下面的示例使用 vPC 域 ID 10 并使用之前的 keepalive 链路。

代码语言:txt复制
[rtbs name="vpc-domain"]

使用·show vpc brief·验证域 ID 和 keepalive 链路 ,在下面的示例中,vPC 处于故障 状态,因为尚未配置对等链路。

确认
代码语言:txt复制
Switch1# show vpc brief
Legend:
                (*) - local vPC is down, forwarding via vPC peer-link

vPC domain id                     : 10
Peer status                       : peer link not configured
vPC keep-alive status             : peer is alive
Configuration consistency status  : failed
Per-vlan consistency status       : failed
Configuration inconsistency reason: vPC peer-link does not exist
Type-2 consistency status         : failed
Type-2 inconsistency reason       : vPC peer-link does not exist
vPC role                          : none established
Number of vPCs configured         : 0
Peer Gateway                      : Disabled
Dual-active excluded VLANs        : -
Graceful Consistency Check        : Disabled (due to peer configuration)
Auto-recovery status              : Disabled
Delay-restore status              : Timer is off.(timeout = 30s)
Delay-restore SVI status          : Timer is off.(timeout = 10s)
Operational Layer3 Peer-router    : Disabled

对等链路

对等链路在对等交换机之间交换状态信息并承载控制流量,peer-link 也称为 Multichassis EtherChannel Trunk,正是这个链接在两个交换机之间形成了一个虚拟控制平面,使它们看起来像一个。

对等交换机使用 peer-link 共享 MAC 地址,如果一台交换机将 MAC 添加到其转发表中,它会将 MAC 发送给其对等方,后者将其添加到自己的转发表中,如果出现交换机故障,这有助于快速收敛。例如,如果 Switch-A 出现故障,Switch-B 可以继续转发流量而不会中断,它已经学习了所有可用的 MAC 地址。

peer-link 还负责承载广播和组播流量,如果网络使用组播,peer-link 需要足够大以承载它。除非出现故障,否则单播流量不应穿过对等链路。在这种情况下,对端交换机可能需要下发流量。

peer-link 在一个端口通道中应该至少有两个 10G 接口。根据流量,链路可能需要更大,peer-link 需要承载所有出现在 vPC 成员端口上的 VLAN。如果不是,则这些端口上将出现 一致性 错误。

在配置过程中,keep-alive 链路应该在 peer-link 配置之前启动并运行。

在下面的示例中,peer-link 是一个双接口端口通道。两台交换机上的配置相同。

对等链路
代码语言:txt复制
Switch1(config)# interface eth 1/1-2
Switch1(config-if-range)# channel-group 10 mode active
Switch1(config-if-range)# no shut
Switch1(config-if-range)# interface port-channel 10
Switch1(config-if)# no shut
Switch1(config-if)# switchport
Switch1(config-if)# switchport mode trunk
Switch1(config-if)# vpc peer-link
2017 Jan  4 01:02:03 Switch1 %$ VDC-1 %$ stp: Please note that spanning tree port type is changed to "network" port type on vPC peer-link. This will enable spanning tree Bridge Assurance on vPC peer-link provided the STP Bridge Assurance (which is enabled by default) is not disabled.

对等状态现在显示对等邻接形成 ok。

验证对等链路
代码语言:txt复制
Switch1# sh vpc brief
Legend:
                (*) - local vPC is down, forwarding via vPC peer-link

vPC domain id                     : 10
Peer status                       : peer adjacency formed ok
vPC keep-alive status             : peer is alive
Configuration consistency status  : success
Per-vlan consistency status       : success
Type-2 consistency status         : success
vPC role                          : primary
Number of vPCs configured         : 0
Peer Gateway                      : Disabled
Dual-active excluded VLANs        : -
Graceful Consistency Check        : Enabled
Auto-recovery status              : Disabled
Delay-restore status              : Timer is off.(timeout = 30s)
Delay-restore SVI status          : Timer is off.(timeout = 10s)
Operational Layer3 Peer-router    : Disabled

vPC Peer-link status
---------------------------------------------------------------------
id    Port   Status Active vlans
--    ----   ------ -------------------------------------------------
1     Po10   up     1

端口

成员端口

成员端口是主机或其他设备连接到的 vPC 端口,连接的设备必须配置自己的端口通道才能使其生效。

两台交换机上的配置相同,允许不同的端口号,只要它们在速度、双工等方面匹配,vPC 编号不必与端口通道编号匹配,但如果匹配,管理员会更容易。

vPC 成员端口

代码语言:txt复制
!将接口添加到常规端口通道中
Switch1(config)# interface eth 1/20
Switch1(config-if)# channel-group 15 mode active

!将端口通道配置为 vPC
Switch1(config-if)# interface port-channel 15
Switch1(config-if)# switchport
Switch1(config-if)# vpc 15

下面的输出显示了新的成员端口。它目前被标记为关闭,因为还没有任何连接。

代码语言:txt复制
Switch1# show vpc brief
Legend:
                (*) - local vPC is down, forwarding via vPC peer-link

vPC domain id                     : 10
Peer status                       : peer adjacency formed ok
vPC keep-alive status             : peer is alive
Configuration consistency status  : success
Per-vlan consistency status       : success
Type-2 consistency status         : success
vPC role                          : primary
Number of vPCs configured         : 1
Peer Gateway                      : Disabled
Dual-active excluded VLANs        : -
Graceful Consistency Check        : Enabled
Auto-recovery status              : Disabled
Delay-restore status              : Timer is off.(timeout = 30s)
Delay-restore SVI status          : Timer is off.(timeout = 10s)
Operational Layer3 Peer-router    : Disabled

vPC Peer-link status
---------------------------------------------------------------------
id    Port   Status Active vlans
--    ----   ------ -------------------------------------------------
1     Po10   up     1


vPC status
----------------------------------------------------------------------------
Id    Port          Status Consistency Reason                Active vlans
--    ------------  ------ ----------- ------                ---------------
20    Po15          down*  success     success     

孤立端口

孤立端口是位于启用 vPC 的交换机上的非 vPC 端口,这是仅连接到一个交换机而不是两个交换机的任何设备,这方面的一个示例是服务器的管理端口。

孤立端口可以承载任何 VLAN,即使它存在于 vPC 成员端口或对等链路上。

代码语言:txt复制
Switch1# show vpc orphan-ports
Note:
--------::Going through port database. Please be patient.::--------

VLAN           Orphan Ports
-------        -------------------------
1              Eth1/11

兼容条件

有几个条件必须在 vPC 中的所有端口上匹配:

端口模式
  • 端口速度(手动或协商)
  • MTU
  • 双工
  • 以太网层(交换机端口 或 无交换机端口)
  • 风暴控制
  • 流量控制
  • 本地 VLAN
  • 允许的 VLAN 列表

此外,vPC 中不允许使用 SPAN 和 ERSPAN 端口。

对等交换机使用对等链路来检查兼容性和错误配置,1 类 错误配置非常严重,它们会导致一个或两个对等体上的端口通道暂停,2 类 错误配置稍微宽容一些,如果存在类型 2 错误,管理员将收到一条系统日志消息。

如果存在 VLAN 不匹配,则仅挂起不匹配的 VLAN。

使用show vpc consistency-parameters global命令查看全局一致性参数。

代码语言:txt复制
Switch1# show vpc consistency-parameters global

    Legend:
        Type 1 : vPC will be suspended in case of mismatch

Name                        Type  Local Value            Peer Value
-------------               ----  ---------------------- -----------------------
QoS (Cos)                   2     ([0-7], [], [], [],    ([0-7], [], [], [],
                                  [], [])                [], [])
Network QoS (MTU)           2     (1500, 1500, 1500,     (1500, 1500, 1500,
                                  1500, 1500, 1500)      1500, 1500, 1500)
Network Qos (Pause:         2     (F, F, F, F, F, F)     (F, F, F, F, F, F)
T->Enabled, F->Disabled)
Input Queuing (Bandwidth)   2     (0, 0, 0, 0, 0, 0)     (0, 0, 0, 0, 0, 0)
Input Queuing (Absolute     2     (F, F, F, F, F, F)     (F, F, F, F, F, F)
Priority: T->Enabled,
F->Disabled)
Output Queuing (Bandwidth   2     (0, 0, 0, 0, 0, 0)     (0, 0, 0, 0, 0, 0)
Remaining)
Output Queuing (Absolute    2     (T, F, F, F, F, F)     (T, F, F, F, F, F)
Priority: T->Enabled,
F->Disabled)
Vlan to Vn-segment Map      1     No Relevant Maps       No Relevant Maps
STP Mode                    1     Rapid-PVST             Rapid-PVST
STP Disabled                1     None                   None
STP MST Region Name         1     ""                     ""
STP MST Region Revision     1     0                      0
STP MST Region Instance to  1
 VLAN Mapping
STP Loopguard               1     Disabled               Disabled
STP Bridge Assurance        1     Enabled                Enabled
STP Port Type, Edge         1     Normal, Disabled,      Normal, Disabled,
BPDUFilter, Edge BPDUGuard        Disabled               Disabled
STP MST Simulate PVST       1     Enabled                Enabled
Nve Admin State, Src Admin  1     None                   None
 State, Secondary IP, Host
 Reach Mode
Nve Vni Configuration       1     None                   None
Allowed VLANs               -     1                      1
Local suspended VLANs       -     -                      -

使用show vpc consistency-parameters interface interface命令查看特定接口上的一致性问题 。

代码语言:txt复制
Switch1# show vpc consistency-parameters interface port-channel 15

    Legend:
        Type 1 : vPC will be suspended in case of mismatch

Name                        Type  Local Value            Peer Value
-------------               ----  ---------------------- -----------------------
STP Port Type               1     Default                Default
STP Port Guard              1     Default                Default
STP MST Simulate PVST       1     Default                Default
vPC card type               1     N9K TOR                N9K TOR
Allowed VLANs               -     1                      1
Local suspended VLANs       -     -                      -

0 人点赞