Uno de los desafíos que pueden encontrar al momento de configurar EIGRP, es que la capa 2 no sea Ethernet, si no que sea Frame-Relay.

Es necesario tener en cuenta que Frame-Relay no soporta broadcast por defecto, y al no soportar broadcast, tampoco soporta multicast. Otra cosa a tener en cuenta, es que Frame-Relay puede ser configurado como Point-to-Point (P2P) o como Multipoint (P2MP).

Al momento de configurarlo como multipunto, es necesario tener en cuenta los siguientes problemas que se presentarán:

  1. Split-Horizon
  2. Red NBMA (Non Broadcast MultiAccess), que no permite crear vecindad

Por estos motivos, es recomendable que Frame-Relay sea configurado como P2P cuando es utilizado con EIGRP.

En este post mostraré la configuración de Frame-Relay en P2P y P2MP.

Topología EIGRP sobre Frame-Relay Point-to-Point:

Primero configuramos Frame-Relay, donde es necesario crear subinterfaces P2P en cada router.

R1:

R1(config)#int s1/0
R1(config-if)#encapsulation frame-relay
R1(config-if)#no sh
R1(config-if)#
*Dec 4 23:31:24.203: %LINK-3-UPDOWN: Interface Serial1/0, changed state to up
R1(config-if)#exit
*Dec 4 23:31:35.211: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
R1(config)#int s1/0.102 ?
 multipoint Treat as a multipoint link
 point-to-point Treat as a point-to-point link

Not all config may be removed and may reappear after reactivating the sub-interface
R1(config)#int s1/0.102 point-to-point 
R1(config-subif)#ip address 192.168.1.1 255.255.255.252
R1(config-subif)#frame-relay interface-dlci 102
R1(config-fr-dlci)#int s1/0.103 point-to-point 
R1(config-subif)#ip address 192.168.1.5 255.255.255.252
R1(config-subif)#frame-relay interface-dlci 103

R2:

R2(config)#int s1/0
R2(config-if)#encapsulation frame-relay 
R2(config-if)#no sh
R3(config-if)#
*Dec 4 23:40:13.419: %LINK-3-UPDOWN: Interface Serial1/0, changed state to up
R2(config-if)#int s1/0.201 point-to-point
*Dec 4 23:40:24.423: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
R2(config-subif)#ip address 192.168.1.2 255.255.255.252
R2(config-subif)#frame-relay interface-dlci 201

R3:

R3(config)#int s1/0
R3(config-if)#encapsulation frame-relay 
R3(config-if)#no sh
R3(config-if)#
*Dec 4 23:42:47.959: %LINK-3-UPDOWN: Interface Serial1/0, changed state to up
R3(config-if)#int s1/0.301 point-to-point
*Dec 4 23:42:58.963: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
R3(config-subif)#ip add 192.168.1.6 255.255.255.252
R3(config-subif)#frame-relay interface-dlci 301

NOTA: recordar que los DLCI corresponde a la dirección de capa 2 en Frame-Relay, donde se debe especificar la dirección local para llegar al destino.

Realizamos pruebas de conectividad para validar que no tendremos problemas al momento de levantar EIGRP:

R1#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/16/44 ms
R1#ping 192.168.1.6
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.6, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/11/16 ms
R1#

Ahora que Frame-Relay está listo, levantamos EIGRP.

R1:

R1(config)#router eigrp 10
R1(config-router)#no auto
R1(config-router)#network 192.168.1.1 0.0.0.0
R1(config-router)#network 192.168.1.5 0.0.0.0
R1(config-router)#network 192.168.10.1 0.0.0.0

R2:

R2(config)#router eigrp 10
R2(config-router)#no auto 
R2(config-router)#network 192.168.20.1 0.0.0.0
R2(config-router)#network 192.168.1.2 0.0.0.0 
R2(config-router)#
*Dec 4 23:53:31.271: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.1.1 (Serial1/0.201) is up: new adjacency
R2(config-router)#

R3:

R3(config)#router eigrp 10
R3(config-router)#no auto
R3(config-router)#network 192.168.30.1 0.0.0.0 
R3(config-router)#network 192.168.1.6 0.0.0.0 
R3(config-router)#
*Dec 4 23:54:15.703: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.1.5 (Serial1/0.301) is up: new adjacency
R3(config-router)#

Como podemos ver en los mensajes en rojo de R2 y R3, se hizo vecindad entre R1 y R2, y R1 con R3, por lo mismo, validamos que se hayan aprendido las redes en cada router:

R1:

R1#sh ip route | be Gateway
Gateway of last resort is not set

 192.168.1.0/24 is variably subnetted, 4 subnets, 2 masks
C 192.168.1.0/30 is directly connected, Serial1/0.102
L 192.168.1.1/32 is directly connected, Serial1/0.102
C 192.168.1.4/30 is directly connected, Serial1/0.103
L 192.168.1.5/32 is directly connected, Serial1/0.103
 192.168.10.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.10.0/24 is directly connected, Loopback0
L 192.168.10.1/32 is directly connected, Loopback0
D 192.168.20.0/24 [90/2297856] via 192.168.1.2, 00:06:34, Serial1/0.102
D 192.168.30.0/24 [90/2297856] via 192.168.1.6, 00:05:49, Serial1/0.103

R2:

R2#sh ip route | be Gateway
Gateway of last resort is not set

 192.168.1.0/24 is variably subnetted, 3 subnets, 2 masks
C 192.168.1.0/30 is directly connected, Serial1/0.201
L 192.168.1.2/32 is directly connected, Serial1/0.201
D 192.168.1.4/30 [90/2681856] via 192.168.1.1, 00:08:00, Serial1/0.201
D 192.168.10.0/24 [90/2297856] via 192.168.1.1, 00:08:00, Serial1/0.201
 192.168.20.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.20.0/24 is directly connected, Loopback0
L 192.168.20.1/32 is directly connected, Loopback0
D 192.168.30.0/24 [90/2809856] via 192.168.1.1, 00:07:15, Serial1/0.201

R3:

R3#sh ip route | be Gateway
Gateway of last resort is not set

 192.168.1.0/24 is variably subnetted, 3 subnets, 2 masks
D 192.168.1.0/30 [90/2681856] via 192.168.1.5, 00:08:29, Serial1/0.301
C 192.168.1.4/30 is directly connected, Serial1/0.301
L 192.168.1.6/32 is directly connected, Serial1/0.301
D 192.168.10.0/24 [90/2297856] via 192.168.1.5, 00:08:29, Serial1/0.301
D 192.168.20.0/24 [90/2809856] via 192.168.1.5, 00:08:29, Serial1/0.301
 192.168.30.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.30.0/24 is directly connected, Loopback0
L 192.168.30.1/32 is directly connected, Loopback0

Al ver la configuración de Frame-Relay P2P, EIGRP no tiene problemas para hacer vecindad, por lo tanto, mostraré las dos formas en que se puede configurar EIGRP y Frame-Relay para que trabajen sin problemas en una red NBMA.

Ahora configuraremos la misma topología, pero con Frame-Relay P2MP:

Escenario 1 – Utilizando la configuración de EIGRP por defecto

Ahora la configuración varía en Frame-Relay, donde vamos a usar las interfaces físicas o subinterfaces multipunto.

Como recomendación, lo ideal es utilizar subinterfaces para tener capacidad de escalamiento.

R1:

R1(config-if)#int s1/0
R1(config-if)#no sh
R1(config-if)#encapsulation frame-relay 
*Dec 10 13:24:04.811: %LINK-3-UPDOWN: Interface Serial1/0, changed state to up
R1(config-if)#
*Dec 10 13:24:05.819: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
R1(config-if)#
R1(config-if)#exit
R1(config)#int s1/0.100 ?
 multipoint Treat as a multipoint link
 point-to-point Treat as a point-to-point link

Not all config may be removed and may reappear after reactivating the sub-interface
R1(config)#int s1/0.100 multipoint 
R1(config-subif)#
*Dec 10 13:24:52.471: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to down
R1(config-subif)#ip add 192.168.1.1 255.255.255.0
R1(config-subif)#frame-relay map ip 192.168.1.2 102 broadcast
R1(config-subif)#
*Dec 10 13:25:12.471: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
R1(config-subif)#frame-relay map ip 192.168.1.3 103 broadcast

Como pueden ver, a diferencia de la configuración de la subinterfaz punto a punto, es necesario hacer un mapeo de las direcciones IP del vecino con la dirección DLCI local, junto con esto, es necesario especificar el keyword broadcast para permitir que por esa interfaz se puedan enviar broadcast (y multicast).

R2:

R2(config)#int s1/0 
R2(config-if)#no sh
R2(config-if)#encapsulation frame-relay 
R2(config-if)#
*Dec 10 13:35:02.987: %LINK-3-UPDOWN: Interface Serial1/0, changed state to up
*Dec 10 13:35:03.987: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
R2(config-if)#int s1/0.201 multi
R2(config-subif)#ip add 192.168.1.2 255.255.255.0
R2(config-subif)#frame-relay map ip 192.168.1.1 201 broadcast 
R2(config-subif)#frame-relay map ip 192.168.1.3 201 broadcast

R3:

R3(config)#int s1/0
R3(config-if)#no sh
R3(config-if)#encapsulation frame-relay 
R3(config-if)#
*Dec 10 13:42:58.651: %LINK-3-UPDOWN: Interface Serial1/0, changed state to up
*Dec 10 13:42:59.691: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
R3(config-if)#ip add 192.168.1.3 255.255.255.0
R3(config-if)#frame-relay map ip 192.168.1.1 301 broadcast
R3(config-if)#frame-relay map ip 192.168.1.2 301 broadcast

Como se configuraron las interfaces con el keyword broadcast, EIGRP se configura como siempre.

Realizamos pruebas de conectividad:

R1#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/15/32 ms
R1#ping 192.168.1.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/19/32 ms
R1#

R1:

R1(config)#router eigrp 10
R1(config-router)#no auto
R1(config-router)#network 192.168.1.1 0.0.0.0
R1(config-router)#network 192.168.10.1 0.0.0.0

R2:

R2(config)#router eigrp 10
R2(config-router)#no auto
R2(config-router)#network 192.168.20.1 0.0.0.0
R2(config-router)#network 192.168.1.2 0.0.0.0 
R2(config-router)#
*Dec 10 13:49:13.991: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.1.1 (Serial1/0.201) is up: new adjacency
R2(config-router)#

R3:

R3(config)#router eigrp 10
R3(config-router)#no auto
R3(config-router)#network 192.168.30.1 0.0.0.0
R3(config-router)#network 192.168.1.3 0.0.0.0 
R3(config-router)#
*Dec 10 13:49:48.475: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.1.1 (Serial1/0) is up: new adjacency
R3(config-router)#

Como se pueden observar en los mensajes de la consola de R2 y R3, EIGRP levantó sin problemas.

Para validar la configuración, vemos las direcciones mapeadas en Frame-Relay y las redes aprendidas en cada router:

R1:

R1#sh frame-relay map
Serial1/0.100 (up): ip 192.168.1.2 dlci 102(0x66,0x1860), static,
 broadcast,
 CISCO, status defined, active
Serial1/0.100 (up): ip 192.168.1.3 dlci 103(0x67,0x1870), static,
 broadcast,
 CISCO, status defined, active
R1#sh ip ro eigrp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2
 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
 ia - IS-IS inter area, * - candidate default, U - per-user static route
 o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
 + - replicated route, % - next hop override

Gateway of last resort is not set

D 192.168.20.0/24 [90/2297856] via 192.168.1.2, 00:00:38, Serial1/0.100
D 192.168.30.0/24 [90/2297856] via 192.168.1.3, 00:00:28, Serial1/0.100

R2:

R2#sh frame-relay map
Serial1/0.201 (up): ip 192.168.1.3 dlci 201(0xC9,0x3090), static,
 broadcast,
 CISCO, status defined, active
Serial1/0.201 (up): ip 192.168.1.1 dlci 201(0xC9,0x3090), static,
 broadcast,
 CISCO, status defined, active
R2#sh ip ro eigrp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2
 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
 ia - IS-IS inter area, * - candidate default, U - per-user static route
 o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
 + - replicated route, % - next hop override

Gateway of last resort is not set

D 192.168.10.0/24 [90/2297856] via 192.168.1.1, 00:07:57, Serial1/0.201

R3:

R3#sho frame-relay map
Serial1/0 (up): ip 192.168.1.2 dlci 301(0x12D,0x48D0), static,
 broadcast,
 CISCO, status defined, active
Serial1/0 (up): ip 192.168.1.1 dlci 301(0x12D,0x48D0), static,
 broadcast,
 CISCO, status defined, active
R3#sho ip ro eigrp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
 D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
 N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
 E1 - OSPF external type 1, E2 - OSPF external type 2
 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
 ia - IS-IS inter area, * - candidate default, U - per-user static route
 o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
 + - replicated route, % - next hop override

Gateway of last resort is not set

D 192.168.10.0/24 [90/2297856] via 192.168.1.1, 00:09:49, Serial1/0

Si se dan cuenta, algo raro pasa en R2 y R3, ellos solo ven la red de R1.

Para hacer un poco de memoria, recuerden que los protocolo vector distancia poseen un principio para evitar loops de capa 3, el cual es llamado split-horizon.

Para evitar este problema, es necesario deshabilitar el horizonte dividido en el router Hub (R1).

R1(config)#int s1/0.100
R1(config-subif)#no ip split-horizon eigrp 10
R1(config-subif)#
*Dec 10 15:33:51.571: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.1.3 (Serial1/0.100) is resync: split horizon changed
*Dec 10 15:33:51.575: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.1.2 (Serial1/0.100) is resync: split horizon changed
R1(config-subif)#

-------- # R2 # --------

R2#sh ip ro eigrp | be Gateway
Gateway of last resort is not set

D 192.168.10.0/24 [90/2297856] via 192.168.1.1, 01:45:32, Serial1/0.201
D 192.168.30.0/24 [90/2809856] via 192.168.1.1, 00:00:54, Serial1/0.201

-------- # R3 # --------

R3#sho ip ro eigrp | be Gateway
Gateway of last resort is not set

D 192.168.10.0/24 [90/2297856] via 192.168.1.1, 01:45:18, Serial1/0
D 192.168.20.0/24 [90/2809856] via 192.168.1.1, 00:01:17, Serial1/0

Escenario 2 – Configurando los vecinos de EIGRP

Por defecto, EIGRP utiliza la dirección multicast 224.0.0.10 para hacer vecindad, pero en redes NBMA como lo es Frame-Relay multipunto, puede causar problemas el usar este tipo de direcciones.

La otra forma de solucionar el problema en este tipo de redes, es que en el mapeo no se especifique el keyword broadcast y que en EIGRP se especifiquen los vecinos.

R1:

R1(config)#int s1/0
R1(config-if)#no sh
R1(config-if)#encapsulation frame-relay 
R1(config-if)#
*Dec 10 15:41:54.551: %LINK-3-UPDOWN: Interface Serial1/0, changed state to up
*Dec 10 15:41:55.551: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
R1(config-if)#int s1/0.100 multi
R1(config-subif)#ip add 192.168.1.1 255.255.255.0
R1(config-subif)#frame-relay map ip 192.168.1.2 102
R1(config-subif)#frame-relay map ip 192.168.1.3 103
R1(config-subif)#no ip split-horizon eigrp 10
R1(config-subif)#router eigrp 10
R1(config-router)#no auto 
R1(config-router)#network 192.168.1.1 0.0.0.0
R1(config-router)#network 192.168.10.1 0.0.0.0
R1(config-router)#neighbor 192.168.1.2 ?
 Async Async interface
 Auto-Template Auto-Template interface
 BVI Bridge-Group Virtual Interface
 CDMA-Ix CDMA Ix interface
 CTunnel CTunnel interface
 Dialer Dialer interface
 FastEthernet FastEthernet IEEE 802.3
 GMPLS MPLS interface
 LISP Locator/ID Separation Protocol Virtual Interface
 LongReachEthernet Long-Reach Ethernet interface
 Loopback Loopback interface
 MFR Multilink Frame Relay bundle interface
 Multilink Multilink-group interface
 Port-channel Ethernet Channel of interfaces
 Serial Serial
 Tunnel Tunnel interface
 Vif PGM Multicast Host interface
 Virtual-PPP Virtual PPP interface
 Virtual-Template Virtual Template interface
 Virtual-TokenRing Virtual TokenRing
 vmi Virtual Multipoint Interface

R1(config-router)#neighbor 192.168.1.2 s1/0.100
R1(config-router)#neighbor 192.168.1.3 s1/0.100

R2:

R2(config)#int s1/0 
R2(config-if)#no sh
R2(config-if)#encapsulation frame-relay 
R2(config-if)#
*Dec 10 15:48:12.895: %LINK-3-UPDOWN: Interface Serial1/0, changed state to up
*Dec 10 15:48:13.895: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
R2(config)#int s1/0.201 multi
R2(config-subif)#ip add 192.168.1.2 255.255.255.0
R2(config-subif)#frame-relay map ip 192.168.1.1 201
R2(config-subif)#frame-relay map ip 192.168.1.3 201
R2(config-subif)#router eigrp 10
R2(config-router)#network 192.168.20.1 0.0.0.0
R2(config-router)#network 192.168.1.2 0.0.0.0 
R2(config-router)#neigh 192.168.1.1 s1/0.201
R2(config-router)#
*Dec 10 15:50:10.567: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.1.1 (Serial1/0.201) is up: new adjacency
R2(config-router)#

R3:

R3(config)#int s1/0
R3(config-if)#no sh
R3(config-if)#encapsulation frame-relay 
R3(config-if)#
*Dec 10 15:52:57.263: %LINK-3-UPDOWN: Interface Serial1/0, changed state to up
*Dec 10 15:52:58.263: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1/0, changed state to up
R3(config-if)#ip add 192.168.1.3 255.255.255.0
R3(config-if)#frame-relay map ip 192.168.1.1 301
R3(config-if)#frame-relay map ip 192.168.1.2 301
R3(config-if)#router eigrp 10
R3(config-router)#network 192.168.30.1 0.0.0.0
R3(config-router)#network 192.168.1.3 0.0.0.0
R3(config-router)#neig 192.168.1.1 s1/0
R3(config-router)#
*Dec 10 15:54:50.955: %DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.1.1 (Serial1/0) is up: new adjacency
R3(config-router)#

En la siguiente imagen, se puede apreciar que los mensajes hello, se dejan de enviar como multicast, y se empiezan a enviar como unicast: