Olá Pessoal,
Aqueles que estão se preparando para a certificação CCNA irão, com certeza, estudar durante o Curso CCNA sobre as técnicas de prevenção de loops em protocolos vetor de distância, como por exemplo o RIP.
Uma dessas técnicas é o split-horizon. Vamos nesse artigo ver um exemplo bem simples de como o split-horizon atua em roteadores Cisco com o protocolo RIP habilitado.
O que é o Split-Horizon
O split horizon é uma técnica simples e eficaz de evitar loops em uma rede. Essa regra diz que um roteador não pode enviar nenhuma atualização sobre uma rota pela mesma interface que ele recebeu atualização sobre essa rota. Fazendo uma analogia, para tentar facilitar o entendimento, é o mesmo caso de piadas…se um amigo lhe conta uma piada, você não pode contar a mesma piada para esse amigo!!! não teria graça, é claro…
Então o que o split-horizon faz é justamente isso. Se uma atualização sobre a rota para a rede x.x.x.x/24 chega na interface s0/0 de um router ele não vai enviar de volta nenhuma atualização sobre essa rede (x.x.x.x/24) pela interface s0/0, afinal ele recebeu a atualização por essa interface e não teria porque anunciar de volta pela mesma interface.
No entanto existem algumas situações onde o split-horizon é bem-vindo e outras onde não é. Vamos ver um exemplo para ilustrar.
Topologia Hub-Spoke Frame-Relay com RIP
Nesse exemplo estamos utilizando uma topologia simples hub-spoke, onde R1 é o hub e R2 e R3 spokes. Inicialmente fizemos as configurações mostradas abaixo:
R1
interface Loopback0
ip address 1.1.1.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.145.1 255.255.255.0
duplex auto
speed auto
!
interface Serial0/0
no ip address
encapsulation frame-relay
no frame-relay inverse-arp
!
interface Serial0/0.123 multipoint
ip address 192.168.123.1 255.255.255.0
frame-relay map ip 192.168.123.2 102 broadcast
frame-relay map ip 192.168.123.3 103 broadcast
!
router rip
version 2
passive-interface Loopback0
network 192.168.123.0
no auto-summary
!
R2
interface Loopback0
ip address 2.2.2.2 255.255.255.0
!
interface FastEthernet0/0
no ip address
shutdown
duplex auto
speed auto
!
interface Serial0/0
ip address 192.168.123.2 255.255.255.0
encapsulation frame-relay
frame-relay map ip 192.168.123.1 201 broadcast
frame-relay map ip 192.168.123.3 201
no frame-relay inverse-arp
!
router rip
version 2
passive-interface Loopback0
network 192.168.123.0
no auto-summary
!
R3
interface Loopback0
ip address 3.3.3.3 255.255.255.0
!
interface FastEthernet0/0
no ip address
shutdown
duplex auto
speed auto
!
interface Serial0/0
ip address 192.168.123.3 255.255.255.0
encapsulation frame-relay
frame-relay map ip 192.168.123.1 301 broadcast
frame-relay map ip 192.168.123.2 301
no frame-relay inverse-arp
!
router rip
version 2
passive-interface Loopback0
network 3.0.0.0
network 192.168.123.0
no auto-summary
!
Reparem que em R3 anunciamos a sua interface de loopback (network 3.0.0.0) no RIP. Com essa configuração vamos verificar se o router R2 irá conseguir alcançar a loopback de R3. Para que isso ocorra será necessário que R1 anuncie essa rota para R2, será que isso irá ocorrer? Vamos verificar a tabela de rotas de R2.
R2#sh ip route
Codes: 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, 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 routeGateway of last resort is not set
C 192.168.123.0/24 is directly connected, Serial0/0
2.0.0.0/24 is subnetted, 1 subnets
C 2.2.2.0 is directly connected, Loopback0
R2#
Reparem que R2 não recebeu nenhuma informação sobre a rede 3.0.0.0. Vamos analisar o que está ocorrendo em R1, para isso habilitamos o “debub ip rip” em R1.
R1#debug ip rip
RIP protocol debugging is on
R1#
*Mar 1 00:33:55.391: RIP: received v2 update from 192.168.123.2 on Serial0/0.123
*Mar 1 00:33:55.391: 192.168.123.0/24 via 0.0.0.0 in 1 hops
R1#
*Mar 1 00:33:58.647: RIP: received v2 update from 192.168.123.3 on Serial0/0.123
*Mar 1 00:33:58.647: 3.3.3.0/24 via 0.0.0.0 in 1 hops
*Mar 1 00:33:58.651: 192.168.123.0/24 via 0.0.0.0 in 1 hops
R1#
*Mar 1 00:34:17.547: RIP: sending v2 update to 224.0.0.9 via Serial0/0.123 (192.168.123.1)
*Mar 1 00:34:17.551: RIP: build update entries – suppressing null update
Reparem que R1 recebeu de R3 informação sobre a rede 3.3.3.0/24 através da interface serial0/0.123. Mas reparem também a informação “RIP: build update entries – suppressing null update”.
Isso está ocorrendo porque o split-horizon está habilitado. Vamos confirmar com o comando “sh ip int s0/0.123” em R1.
R1#sh ip int s0/0.123
Serial0/0.123 is up, line protocol is up
Internet address is 192.168.123.1/24
Broadcast address is 255.255.255.255
Address determined by setup command
MTU is 1500 bytes
Helper address is not set
Directed broadcast forwarding is disabled
Multicast reserved groups joined: 224.0.0.9
Outgoing access list is not set
Inbound access list is not set
Proxy ARP is enabled
Local Proxy ARP is disabled
Security level is default
Split horizon is enabled
ICMP redirects are always sent
ICMP unreachables are always sent
ICMP mask replies are never sent
IP fast switching is enabled
IP fast switching on the same interface is enabled
IP Flow switching is disabled
IP CEF switching is disabled
IP Fast switching turbo vector
IP multicast fast switching is enabled
IP multicast distributed fast switching is disabled
IP route-cache flags are Fast
Router Discovery is disabled
IP output packet accounting is disabled
IP access violation accounting is disabled
TCP/IP header compression is disabled
RTP/IP header compression is disabled
Policy routing is disabled
Network address translation is disabled
WCCP Redirect outbound is disabled
WCCP Redirect inbound is disabled
WCCP Redirect exclude is disabled
BGP Policy Mapping is disabled
R1#
O que acontece é que por default o split-horizon vem habilitado em sub-interfaces seriais multiponto. E com o split-horizon habilitado quando o R1 recebe o anuncio da rota 3.3.3.0/24 pela interface s0/0.123 ele entende que não há necessidade de anunciar essa rede pela mesma interface. E assim, o R2 não recebe a informação dessa rota.
Vamos agora desabilitar o split-horizon na interface de R1 e verificar o que vai ocorrer.
R1(config)#int s0/0.123
R1(config-subif)#no ip split-horizon
R1(config-subif)#exit
R1(config)#exit
R1#R1#
*Mar 1 00:42:21.535: RIP: received v2 update from 192.168.123.3 on Serial0/0.123
*Mar 1 00:42:21.539: 3.3.3.0/24 via 0.0.0.0 in 1 hops
*Mar 1 00:42:21.543: 192.168.123.0/24 via 0.0.0.0 in 1 hops
R1#
*Mar 1 00:42:39.771: RIP: sending v2 update to 224.0.0.9 via Serial0/0.123 (192.168.123.1)
*Mar 1 00:42:39.775: RIP: build update entries
*Mar 1 00:42:39.775: 3.3.3.0/24 via 192.168.123.3, metric 2, tag 0
*Mar 1 00:42:39.779: 192.168.123.0/24 via 0.0.0.0, metric 1, tag 0
A partir desse momento R1 passa a enviar informação sobre a 3.3.3.0/24 pela s0/0.123 e R2 poderá receber essa atualização e assim, colocar essa entrada na sua tabela de rotas.
R2#sh ip route
Codes: 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, 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 routeGateway of last resort is not set
C 192.168.123.0/24 is directly connected, Serial0/0
2.0.0.0/24 is subnetted, 1 subnets
C 2.2.2.0 is directly connected, Loopback0
3.0.0.0/24 is subnetted, 1 subnets
R 3.3.3.0 [120/2] via 192.168.123.3, 00:00:21, Serial0/0
R2#
Viram só…legal, né!!! Então lembrem-se sempre dessa dica: se vocês estiverem utilizando um protocolo vetor de distância, como RIP ou IGRP, em uma rede frame-relay com topologia hub-spoke vocês devem desabilitar o split-horizon se estiverem usando sub-interfaces multiponto.
Curiosidade: para o caso de estarem utilizando interfaces físicas seriais o split-horizon já vem desabilitado, não sendo necessário utilizar o “no ip slpit-horizon” nesses casos.
Deixei disponível a topologia utilizada no GNS3 para vocês. Baixem a topologia, pratiquem os comandos mostrados e verifiquem na prática o funcionamento do split-horizon. Com certeza será uma atividade prática interessante e enriquecedora.
Resumindo
- O split-horizon é um mecanismos utilizado em protocolos vetor de distância para evitar loops.
- Em uma interface serial física o split-horizon vem desabilitado por default
- Em sub-interfaces seriais o split-horizon vem habilitado por default
- Utilize o comando no ip split-horizon na interface que deseja para desabilitar o split-horizon (quando estiver utilizando RIP)
- Utilize o comando no ip split-horizon eigrp na interface que deseja para desabilitar o split-horizon (quando estiver utilizando EIGRP)
E se você quer aprender mais sobre roteadores e switches Cisco venha estudar conosco. Nosso Curso CCNA Online cobre toda a matéria do CCNA e você ainda terá a sua disposição diversos recursos para melhorar o seu aprendizado. Simulados onlines, práticas em simuladores, fóruns de discussão e instrutores certificados para tirar suas dúvidas online.
2 Responses
Valeu, me ajudou a entender melhor
Nós que agradecemos a visita!