Este problema foi inicialmente descoberto pela NetApp, quando se utilizava um feature chamado fastpath (host simplesmente inverte os campos de MAC de origem e destino para a resposta). Porém, outros dispositivos começarm a utilizar este feature.
Como isto pode afetar a conectividade em um ambiente com vPC?
Utilizando a topologia a seguir como referência, vamos analizar como um ping regular ocorre e depois como acontece no caso fora do padrão.
Neste cenário, quando o HostA pinga o HostB o fluxo de pacotes é o seguinte:
HostA Echo Request (pre-routing)
Baseado no método de balanceamento do port-channel (hashing), o ping será enviado ao N7k1 ou N7k2. Vamos considerar que seja enviado ao N7k1 que, em seguida, irá encaminhar o frame.
Assim será o frame recebido pelo HostB:
HostA Echo Request (post-routing)
O HostB então, responde da seguinte maneira:
HostB Echo Reply (pre-routing)
Novamente, este frame será submetido ao hashing. Vamos assumir que desta vez o frame é enviado ao N7k2 que, por sua vez, o encaminha ao HostA. Note o HostB recebe o frame com MAC de origem físico do N7k1 e encaminha sua resposta para o seu gateway (segundo tabela ARP), neste caso o MAC Virtual do grupo HSRP.
O HostA recebe o frame seguinte:
HostB Echo Reply (post-routing)
Esta é a maneira como o encaminhamento funciona em um conjunto de hosts trabalhando da maneira convencional (padrão).
O cenário no qual precisamos do vPC Peer Gateway seria semelhante o seguinte:
HostA Echo Request (pre-routing)
Novamente, vamos considerar que o frame seja encaminhado ao N7k1. Este irá encaminhar o pacote.
O HostB recebe o seguinte frame:
HostA Echo Request (post-routing)
Neste momento entra o fastpath e como o encaminhamento se torna diferente:
O HostB responde com o seguinte frame:
HostB Echo Reply (pre-routing)
Pode-se notar que o HostB simplesmente inverteu os campos de MAC de origem e destino (sem consultar a tabela ARP pelo MAC do gateway). Novamente, o frame é submetido ao hashing. Se for encaminhado para N7k2 o pacote deverá cruzar o vPC peer-link e não pode ser encaminhado pelo N7k1 por nenhuma porta que faça parte de um vPC. É através desse método que se evita loop em um vPC.
Como o vPC Peer Gateway funciona?
O peer gateway permite que um Nexus encaminhe frames que sejam destinados ao MAC de seu vPC peer. Desta maneira ele funciona da mesma forma que o HSRP em um ambiente vPC em que ambos Nexus encaminham frames destinados à qualquer um dos MACs físicos. Quando habilitado, pode-se notar o seguinte output:
N7k-1# show mac address-table vlan 10
Legend:
* - primary entry, G - Gateway MAC, (R) - Routed MAC, O - Overlay MAC
age - seconds since last seen,+ - primary entry using vPC Peer-Link
VLAN MAC Address Type age Secure NTFY Ports/SWID.SSID.LID
---------+-----------------+--------+---------+------+----+------------------
G 10 0000.0c07.ac0a static - F F sup-eth1(R)
G 10 0024.986f.bac1 static - F F sup-eth1(R)
G 10 0024.986f.bac2 static - F F vPC Peer-Link(R)
Mesmo tendo aprendido o MAC através do peer-link, há um flag "G" (indicativo de gateway). Isto significa que será tratado como o endereço virtual do HSRP e este switch pode encaminhar frames destinado a este MAC.
A única exceção é se o pacote for encaminhado ao MAC físico e ao IP físico ao mesmo tempo. Nesta circustância, o pacote será tunelado através do peer-link.