Pruebas con ruta por interface de salida y múltiples gateways
Fecha: 24 de noviembre del 2021
Contexto general
En este lab se analiza sobre ¿ que pasa cuando existe una ruta con interface de salida y hay varios gateways, cual usa ?
uno solo ? los dos ? con round-robin ? y realmente como no es algo que se utilice seguido, hay que verificarlo.
Esto surge a partir de una consulta de “Lisandro C” un estudiante de CCNA que estaba leyendo sobre rutas por next-hop
y/o interface de salida, que ya se analizó hace unos años en este lab pero con un sólo próximo salto.
Se utilizó Wireshark para analizar qué tráfico hay involucrado en la resolución del /los próximo/s salto/s.
1.- Verificación inicial:
Por simplicidad del lab se utilizan interfaces loopback
para simular la IP destino, total ambos routers pueden
tenerla sin que exista el concepto de IP duplicada.
1.1.- Verificamos
rutas:
Router-A#sh ip route
---omitido---
Gateway of last resort
is not set
10.0.0.0/8 is variably subnetted, 2
subnets, 2 masks
C 10.0.0.0/29 is directly connected,
GigabitEthernet1/0/1
L 10.0.0.1/32 is directly connected,
GigabitEthernet1/0/1
192.68.0.0/32 is subnetted, 1 subnets
C 192.68.0.1 is directly connected, Loopback0 (por simplicidad del lab)
S
192.168.1.0/24 is directly connected, GigabitEthernet1/0/1
Router-A#
Router-B#sh ip route
---omitido---
Gateway of last resort
is not set
10.0.0.0/8 is variably subnetted, 2
subnets, 2 masks
C 10.0.0.0/29 is directly connected,
Vlan666
L 10.0.0.2/32 is directly connected,
Vlan666
S 192.168.0.0/24 [1/0] via 10.0.0.1
192.168.1.0/32 is subnetted, 1 subnets
C 192.168.1.1 is directly connected,
Loopback1 (por simplicidad del lab)
Router-B#
Router-C#sh ip route
---omitido---
Gateway of last resort
is not set
10.0.0.0/8 is variably subnetted, 2
subnets, 2 masks
C 10.0.0.0/29 is directly connected,
Vlan666
L 10.0.0.3/32 is directly connected,
Vlan666
S 192.168.0.0/24 [1/0] via 10.0.0.1
192.168.1.0/32 is subnetted, 1 subnets
C 192.168.1.1 is directly connected,
Loopback1 (por simplicidad del lab)
Router-C#
1.2.- Verificamos ARP de los next-hop:
Router-A#sh arp
Protocol Address Age (min) Hardware Addr Type
Interface
Internet 10.0.0.1 - bce7.125e.8d64 ARPA
GigabitEthernet1/0/1
Internet 10.0.0.2 11 f09e.63d0.7bfc ARPA
GigabitEthernet1/0/1
Internet 10.0.0.3 4 88f0.317e.4d00 ARPA
GigabitEthernet1/0/1
Router-A#
2.- Generamos tráfico al destino alcanzable
vía dos gateways:
Router-A#ping 192.168.1.1
Type
escape
sequence to abort.
Sending 5, 100-byte ICMP
Echos to 192.168.1.1, timeout is 2 seconds:
.!!!!
Success rate is 80
percent (4/5), round-trip min/avg/max = 1/1/2 ms
Router-A#
3.- Verificamos:
Primero hay un pedido de resolución ARP para 192.168.1.1 y con dos respuestas (una de cada router).
Luego “sale” el ping con la correspondiente respuesta.
La solicitud de eco (ping) en capa 2 va dirigida a la MAC correspondiente a la última respuesta de ARP, la cual queda en
caché del Router-A hasta que expire o se elimine manualmente.
Podemos ver que la MAC asociada a 192.168.1.1 nunca cambia.
4.- Verificamos en el router:
Router-A#sh arp
Protocol Address Age (min) Hardware Addr Type
Interface
Internet 10.0.0.1 - bce7.125e.8d64 ARPA
GigabitEthernet1/0/1
Internet 10.0.0.2 11 f09e.63d0.7bfc
ARPA GigabitEthernet1/0/1
Internet 10.0.0.3 4 88f0.317e.4d00 ARPA GigabitEthernet1/0/1
Internet 192.168.1.1 0 88f0.317e.4d00 ARPA
GigabitEthernet1/0/1
Router-A#
5.- Borramos cache ARP y volvemos a probar:
Esto lo hacemos para ver si fué fortuito o hay un round-robin, etc.. el por qué un router responde mas rápido
que otro dependerá de N factores que no se discutirán aquí.
Router-A#clear arp-cache 192.168.1.1
Router-A#
6.- Verificamos:
Router-A#sh arp
Protocol Address Age (min) Hardware Addr Type
Interface
Internet 10.0.0.1 - bce7.125e.8d64 ARPA
GigabitEthernet1/0/1
Internet 10.0.0.2 0
f09e.63d0.7bfc ARPA GigabitEthernet1/0/1
Internet 10.0.0.3 0 88f0.317e.4d00 ARPA
GigabitEthernet1/0/1
Internet 192.168.1.1 0 88f0.317e.4d00 ARPA GigabitEthernet1/0/1
Router-A#
7.- Sacamos Router-C de la topología:
8.- Limpiamos tabla de ARP:
Router-A#clear arp
192.168.1.1
Router-A#
9.- Verificamos que no esté en la tabla:
Router-A#sh arp
Protocol Address Age (min) Hardware Addr Type
Interface
Internet 10.0.0.1 - bce7.125e.8d64 ARPA
GigabitEthernet1/0/1
Internet 10.0.0.2 14 f09e.63d0.7bfc ARPA
GigabitEthernet1/0/1
Internet 10.0.0.3 3 88f0.317e.4d00 ARPA
GigabitEthernet1/0/1
Router-A#
10.- Volvemos a
generar tráfico:
Router-A#ping
192.168.1.1
Type
escape
sequence to abort.
Sending 5, 100-byte ICMP
Echos to 192.168.1.1, timeout is 2 seconds:
.!!!!
Success rate is 80
percent (4/5), round-trip min/avg/max = 1/1/1 ms
Router-A#
11.- Verificamos:
Router-A#sh arp
Protocol Address Age (min) Hardware Addr Type
Interface
Internet 10.0.0.1 - bce7.125e.8d64 ARPA GigabitEthernet1/0/1
Internet 10.0.0.2 15 f09e.63d0.7bfc ARPA
GigabitEthernet1/0/1
Internet
10.0.0.3 3 88f0.317e.4d00 ARPA
GigabitEthernet1/0/1
Internet 192.168.1.1 0 f09e.63d0.7bfc ARPA
GigabitEthernet1/0/1 (ahora es Router-B)
Router-A#
12- Sacamos el
proxy-ARP de los routers B y C:
Esta prueba la realizamos para demostrar que el proxy-ARP es
un factor importante en la utilización de rutas
con
interface de salida, y sin este la conectividad fallará.
Router-B#conf t
Enter configuration
commands, one per line. End with CNTL/Z.
Router-B(config)#int vlan
666
Router-B(config-if)#no ip
proxy-arp
Router-B(config-if)#end
Router-B#
Router-C#conf t
Enter configuration
commands, one per line. End with CNTL/Z.
Router-C(config)#int vlan
666
Router-C(config-if)#no ip
proxy-arp
Router-C(config-if)#end
Router-C#
13.- Verificamos:
Router-A#sh arp
Protocol Address Age (min) Hardware Addr Type
Interface
Internet 10.0.0.1 - bce7.125e.8d64 ARPA
GigabitEthernet1/0/1
Internet 10.0.0.2 0 f09e.63d0.7bfc ARPA
GigabitEthernet1/0/1
Internet 10.0.0.3 0 88f0.317e.4d00 ARPA
GigabitEthernet1/0/1
Router-A#
14.- Generamos tráfico:
Router-A#ping
192.168.1.1
Type
escape
sequence to abort.
Sending 5, 100-byte ICMP
Echos to 192.168.1.1, timeout is 2 seconds:
.....
Success rate is 0
percent (0/5)
Router-A#
15.- Verificamos:
Router-A#sh arp
Protocol Address Age (min) Hardware Addr Type
Interface
Internet 10.0.0.1 - bce7.125e.8d64 ARPA
GigabitEthernet1/0/1
Internet 10.0.0.2 0 f09e.63d0.7bfc ARPA
GigabitEthernet1/0/1
Internet 10.0.0.3 0 88f0.317e.4d00 ARPA
GigabitEthernet1/0/1
Internet 192.168.1.1 0 Incomplete ARPA
Router-A#
Al no tener el proxy-ARP activo, el router no puede decirle
a 10.0.0.1 “yo se como llegar a 192.168.1.0, tirame el tráfico a mi”
y
por lo tanto la ruta con interface de salida no va a funcionar.
Siempre es más conveniente utilizar next-hop para las rutas
estáticas, lo de la búsqueda recurrente que se enseña es verdad
pero sólo es un concepto que solo hay que saberlo, no roba CPU ni hace mas
lento todo como asustan en la currícula :-)
16.- En resúmen: la última respuesta de ARP que reciba antes de armar la ruta es la que queda, no hace round-robin
con los dos routers ni nada de eso, mientras dure la entrada en la tabla ARP, esa MAC será el next-hop.
Ahora, para no confundir, como una ruta de capa 3 se define en capa 2 ? si no se entiende eso, a estudiar nuevamente
el modelo OSI, y luego vuelva a este lab.
17.-
Configuración de los equipos:
Router-A#sh runn
(sólo
lo mas relevante)
Building
configuration...
!
hostname Router-A
!
!
interface Loopback0
ip address 192.68.0.1
255.255.255.255
!
interface GigabitEthernet1/0/1
no switchport
ip address 10.0.0.1
255.255.255.248
!
interface GigabitEthernet1/0/24
!
ip route 192.168.1.0
255.255.255.0 GigabitEthernet1/0/1
!
monitor session 1 source interface Gi1/0/1 (para espejar
tráfico en Gi1/0/24)
monitor session 1 destination
interface Gi1/0/24 (para conectar
Wireshark)
!
end
Router-A#
Router-B#sh runn (sólo lo
mas relevante)
Building
configuration...
Current configuration : 1821 bytes
!
hostname Router-B
!
vlan 666
name WAN
!
interface Loopback1 (emula LAN)
ip address
192.168.1.1 255.255.255.255
!
interface FastEthernet0
switchport access
vlan 666
!
interface Vlan666
ip
address 10.0.0.2 255.255.255.248
!
!
ip
route 192.168.0.0 255.255.255.0 10.0.0.1 (en caso de usarse el ping desde ese
origen)
!
end
Router-B#
Router-C# sh runn (sólo lo
mas relevante)
Building
configuration...
!
hostname Router-C
!
vlan 666
name WAN
!
interface Loopback1 (emula LAN)
ip address
192.168.1.1 255.255.255.255
!
interface FastEthernet0
switchport access
vlan 666
!
interface Vlan666
ip
address 10.0.0.3 255.255.255.248
!
ip
route 192.168.0.0 255.255.255.0 10.0.0.1 (en caso de usarse el ping desde ese
origen)
!
end
Router-C#
(2021) Networking sucks
Rosario, Argentina