Top Ad unit 728 × 90

Dê uma olhada

random

Túnel GRE no Cisco IOS

Tunelamento (tunneling) é uma técnica que permite colocarmos "pacotes dentro de pacotes" para que eles possam ser transportados por determinadas redes. Também podemos chamar a isso de encapsulamento.

Um bom exemplo é o cenário onde temos dois sites LAN com endereçamento IPv6 que se conectam à Internet com endereços IPv4. Teoricamente, seria impossível as duas redes IPv6 se comunicarem, mas através do tunelamento os dois roteadores colocarão os pacotes IPv6 dentro de pacotes IPv4, de modo que o tráfego IPv6 possa ser roteado na Internet.

Outro exemplo é quando temos um site matriz e um site filial com protocolo de roteamento configurado entre eles, como OSPF ou EIGRP. Podemos encapsular esses protocolos de roteamento para que a matriz e o roteador da filial troquem informações de roteamento.

Basicamente, quando configuramos um túnel, criamos uma conexão ponto a ponto entre os dois dispositivos. GRE (Generic Routing Encapsulation) é uma técnica de encapsulamento simples que estabelece essa conexão ponto a ponto. Vamos à topologia que usaremos nesta explicação:


Temos três roteadores. No lado esquerdo está o roteador da matriz, e no lado direito temos o roteador da filial. Ambos os roteadores estão conectados à Internet através do ISP, representado pelo roteador do meio. Podemos usar essa topologia para simular dois roteadores conectados à Internet. Matriz e filial possuem uma interface Loopback que representa a rede LAN.

Vamos começar pela configuração básica dos roteadores:

Matriz(config)#interface FastEthernet0/0
Matriz(config-if)#ip address 192.168.10.1 255.255.255.0
Matriz(config-if)#no shutdown
%LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Matriz(config-if)#
Matriz(config-if)#interface Loopback0
%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
Matriz(config-if)#ip address 10.10.0.1 255.255.255.0
Matriz(config-if)#exit
Matriz(config)#ip route 192.168.20.1 255.255.255.255 192.168.10.2
ISP(config)#interface FastEthernet0/0
ISP(config-if)#ip address 192.168.10.2 255.255.255.0
ISP(config-if)#no shutdown
%LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
ISP(config-if)#
ISP(config-if)#interface FastEthernet0/1
ISP(config-if)#ip address 192.168.20.2 255.255.255.0
ISP(config-if)#no shutdown
ISP(config-if)#
%LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
Filial(config)#interface FastEthernet0/0
Filial(config-if)#ip address 192.168.20.1 255.255.255.0
Filial(config-if)#no shutdown
%LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Filial(config-if)#
Filial(config-if)#interface Loopback0
%LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
Filial(config-if)#ip address 10.20.0.1 255.255.255.0
Filial(config-if)#exit
Filial(config)#ip route 192.168.10.1 255.255.255.255 192.168.20.2

Criamos uma rota estática na matriz e na filial para que os dois sites consigam chegar um ao outro através do roteador ISP. O roteador da matriz não conseguirá alcançar a interface Loopback da filial, e vice-versa. Agora vamos criar um túnel:

Matriz(config)#interface Tunnel 1
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to down
Matriz(config-if)#
Matriz(config-if)#tunnel source FastEthernet0/0
Matriz(config-if)#tunnel destination 192.168.20.1
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to up
Matriz(config-if)#
Matriz(config-if)#ip address 192.168.30.10 255.255.255.0
Filial(config)#interface Tunnel 1
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to down
Filial(config-if)#
Filial(config-if)#tunnel source FastEthernet0/0
Filial(config-if)#tunnel destination 192.168.10.1
%LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel1, changed state to up
Filial(config-if)#
Filial(config-if)#ip address 192.168.30.20 255.255.255.0

Podemos escolher qualquer número para a interface Tunnel. Especificamos um endereço IP de origem e de destino. O endereço IP de origem em ambos os casos será o endereço configurado na interface FastEthernet0/0. Usamos a rede 192.168.30.0/24 para o ponto a ponto formado pelo túnel. Vamos às verificações:

Matriz#show interfaces Tunnel 1
Tunnel1 is up, line protocol is up
  Hardware is Tunnel
  Internet address is 192.168.30.10/24
  MTU 1514 bytes, BW 100000 Kbit/sec, DLY 50000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation TUNNEL, loopback not set
  Keepalive not set
  Tunnel linestate evaluation up
  Tunnel source 192.168.10.1 (FastEthernet0/0), destination 192.168.20.1
  Tunnel protocol/transport GRE/IP
    Key disabled, sequencing disabled
    Checksumming of packets disabled

<output restante omitido>
Filial#show interfaces Tunnel 1
Tunnel1 is up, line protocol is up
  Hardware is Tunnel
  Internet address is 192.168.30.20/24
  MTU 1514 bytes, BW 100000 Kbit/sec, DLY 50000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation TUNNEL, loopback not set
  Keepalive not set
  Tunnel linestate evaluation up
  Tunnel source 192.168.20.1 (FastEthernet0/0), destination 192.168.10.1
  Tunnel protocol/transport GRE/IP
    Key disabled, sequencing disabled
    Checksumming of packets disabled

<output restante omitido>

Podemos ver que a interface Tunnel está up/up em ambos os roteadores. O modo de tunelamento padrão é o GRE. Vamos ver se os roteadores conseguem alcançar um ao outro:

Filial#ping 192.168.10.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

Um roteador consegue pingar o outro. Vamos tentar ativar um protocolo de roteamento para anunciar as interfaces Loopback. Usaremos o EIGRP:

Matriz(config)#router eigrp 10
Matriz(config-router)#no auto-summary
Matriz(config-router)#network 10.10.0.0
Matriz(config-router)#network 192.168.30.0
Filial(config)#router eigrp 10
Filial(config-router)#no auto-summary
Filial(config-router)#network 10.20.0.0
Filial(config-router)#network 192.168.30.0
%DUAL-5-NBRCHANGE: EIGRP-IPv4 10: Neighbor 192.168.30.10 (Tunnel1) is up: new adjacency

Ativamos o EIGRP nas interfaces Loopback e Tunnel. Os dois roteadores estabeleceram adjacência EIGRP através da interface Tunnel 1. Vamos olhar as tabelas de roteamento:

Matriz#show ip route 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
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
D        10.20.0.0/24 [90/27008000] via 192.168.30.20, 00:02:29, Tunnel1
Filial#show ip route 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
       a - application route
       + - replicated route, % - next hop override

Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
D        10.10.0.0/24 [90/27008000] via 192.168.30.10, 00:04:13, Tunnel1

Como podemos ver, os dois roteadores aprenderam sobre as redes remotas. Cada roteador usará a interface Tunnel 1 para alcançar a interface Loopback do outro. Vamos fazer um teste:

Filial#ping 10.10.0.1 source Loopback0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.10.0.1, timeout is 2 seconds:
Packet sent with a source address of 10.20.0.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

Um ping entre as interfaces Loopback confirma que as duas "redes LAN" podem se comunicar.

Atenção: Tenha cuidado ao executar um protocolo de roteamento na interface Tunnel, pois isso pode causar problemas de roteamento recursivo. Se você não sabe o que é isso, dê uma olhada na postagem sobre roteamento recursivo com GRE.

Vamos capturar os pacotes encapsulados pelo GRE com o Wireshark:

Clique na imagem para ampliá-la.

Observe atentamente os endereços IP de origem e destino. Podemos ver o pacote entre 192.168.10.1 e 192.168.20.1, e dentro dele, encapsulado pelo GRE, o pacote entre 10.10.0.1 e 10.20.0.1.

Atenção: Apesar de prover tunelamento, o GRE não criptografa nenhum tipo de tráfego, como uma VPN. O IPsec é um dos protocolos que podem criptografar os pacotes dentro do túnel.

Aqui estão os comandos de configuração usados neste texto, caso você queira testar as atividades em laboratório. Tenha em mente que, dependendo da versão de IOS que você esteja usando, alguns comandos podem não estar disponíveis. Além disso, o simulador Packet Tracer, da Cisco, limita os comandos que podem ser inseridos na CLI dos dispositivos.
hostname Matriz
!
interface Loopback0
 ip address 10.10.0.1 255.255.255.0
!
interface Tunnel1
 ip address 192.168.30.10 255.255.255.0
 tunnel source FastEthernet0/0
 tunnel destination 192.168.20.1
!         
interface FastEthernet0/0
 ip address 192.168.10.1 255.255.255.0
 no shutdown
!
router eigrp 10
 network 10.0.0.0
 network 192.168.30.0
!
ip route 192.168.20.1 255.255.255.255 192.168.10.2
!
end
hostname ISP
!
interface FastEthernet0/0
 ip address 192.168.10.2 255.255.255.0
 no shutdown
!
interface FastEthernet0/1
 ip address 192.168.20.2 255.255.255.0
 no shutdown
!
end
hostname Filial
!
interface Loopback0
 ip address 10.20.0.1 255.255.255.0
!
interface Tunnel1
 ip address 192.168.30.20 255.255.255.0
 tunnel source FastEthernet0/0
 tunnel destination 192.168.10.1
!         
interface FastEthernet0/0
 ip address 192.168.20.1 255.255.255.0
 no shutdown
!
router eigrp 10
 network 10.0.0.0
 network 192.168.30.0
!
ip route 192.168.10.1 255.255.255.255 192.168.20.2
!
end

Hope this helps!

Túnel GRE no Cisco IOS Reviewed by Carlos Wolkartt on janeiro 02, 2019 Rating: 5
Todos os direitos reservados a Wolkartt.com © 2019
Hospedado no Blogger.

Mande sua mensagem

Nome

E-mail *

Mensagem *

Tecnologia do Blogger.