是否可以在 vPC 中的两个 Nexus 之间进行真正的主动\主动 L3 VRRP\HSRP 配置

网络工程 cisco-nexus 高铁 虚拟主机 虚拟现实 端口通道
2021-07-10 08:11:12

我是一名管理员,习惯于使用较旧的 Cisco 设备、Catalyst 6500 等。这是我第一次深入 nxOS 的世界。我正在尝试使用 HSRP\VRRP 在 L3 创建一个真正的 active\active 配置。据我所知 HSRP\VRRP 只是“浮动”一个 IP。我想避免的情况是这样的:

我认为会发生什么

彩色线条代表两个不同的数据包到两个不同的目的地。基本上我看到的方式只有一个交换机持有浮动 IP(这是服务器的默认网关)。这意味着所有数据包都将作为路由跃点到达活动交换机,然后出去。这会不均匀地对活动交换机及其相关链接征税。

我想发生的是任何交换机,当它看到带有浮动 IP 的 DST MAC 的数据包时,将其视为自己的并转发它。基本上两个交换机都应该浮动IP。我希望它像这样工作:

我想要发生的事情

我并不真正关心返回流量路径,只要它返回即可。

1个回答

你实际上什么都不用做。VPC 配对 Nexus 完全按照您的要求工作。

先决条件是所有涉及的系统(即服务器)都通过给定 Nexus 对的启用 VPC 的端口通道连接到 Nexus。

https://community.cisco.com/t5/networking-documents/peer-gateway-feature-on-the-nexus-7000/ta-p/3113290

请注意:其实后是关于vpc peer gateway功能,您通常需要在正常情况下。但在第一部分,它还解释了正常情况下的转发(适用于您的情况):

试图引用:

拓扑

{两个 N7k 作为 VPC 对,带有一个 MLAG 附加设备(或主机),一个北,一个南}

南:

VLAN 10,
Host B, IP 10.10.10.5, MAC 0000.0000.0010
HSRP10: IP 10.10.10.1, MAC 0000.0c07.ac0a
N7K1 SVI10: MAC 0024.986f.bac1
N7K2 SVI10: MAC 0024.986f.bac2

北:

VLAN 20 
Host A: IP 10.10.20.5, MAC 0000.0000.0020
HSRP20: IP 10.10.20.1, MAC 0000.0c07.ac14
N7K1 SVI20: MAC 0024.986f.bac1
N7K2 SVI20: MAC 0024.986f.bac2

在这种情况下,当 HostA ping HostB 时,数据包流如下:

HostA Echo 请求(路由前)

VLAN: 20
DMAC: 0000.0c07.ac14 (HSRP 20) 
SMAC: 0000.0000.0020
SrcIP: 10.10.20.5
DstIP: 10.10.10.5

基于端口通道负载平衡,它将散列到一个 N7k1 或 N7k2。为此,我们将假设它散列到 N7k1。N7k1 然后将路由该帧。这是 HostB 将收到的帧:

HostA Echo 请求(路由后)

VLAN: 10
DMAC: 0000.0000.0010
SMAC: 0024.986f.bac1
SrcIP: 10.10.20.5
DstIP: 10.10.10.5

HostB 然后响应如下:

HostB Echo Reply(路由前)

VLAN: 10
DMAC: MAC 0000.0c07.ac0a (HSRP 10)
SMAC: 0000.0000.0010
SrcIP: 10.10.10.5
DstIP: 10.10.20.5

这将再次受到散列的影响。为此,我们将假设它散列到 N7k2。N7k2 将路由该帧,HostA 接收的帧将如下所示:

HostB Echo Reply(路由后)

VLAN: 20
DMAC: 0000.0000.0020 
SMAC: 0024.986f.bac2
SrcIP: 10.10.10.5
DstIP: 10.10.20.5

这就是它与一组行为正常的主机一起工作并按预期工作的方式。

...然后该帖子将解释您需要 vpc 对等网关的极端情况。

Nexus 的默认行为有一个推论:在常规操作条件下,VPC 对等链路上的流量永远不应该很高(在扩展中:“工作负载流量”)。如果有,管理员可能想要检查 VPC 对的配置不一致或验证到下游或上游交换机或主机的链接状态。机会是,并非所有链接都已启动。