De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Criando Tuneis IP entre dois Gateways de Internet utilizando protocolo GRE

Colaboração: Jean Carlos Oliveira Guandalini

Data de Publicação: 02 de Junho de 2005

Vamos trabalhar com o seguinte ambiente:

Servidor "bart"

IP: 200.200.200.200 Gateway: 200.200.200.199 Rede Local: 192.168.0.0/24 IP Local: 192.168.0.254/24

Servidor "homer"

IP: 200.100.100.100 Gateway: 200.100.100.099 Rede Local: 192.168.1.0/24 IP Local: 192.168.1.254/24

Requerimentos:

Você deve ter o kernel compilado com o GRE, funcionando como módulo: Na seção de Networking Options você irá encontrar a opção: "IP: GRE tunnels over IP"

  Networking Options
         <M>   IP: GRE tunnels over IP
  

Você deverá também ter o utilitário iproute2 instalado: http://developer.osdl.org/dev/iproute2/

O módulo ip_gre deve ser sempre inicializado no boot da máquina.

  # modprobe ip_gre

Agora iremos configurar o primeiro servidor ("bart")

  # ip tunnel add homer mode gre remote 200.100.100.100 local 200.200.200.200 ttl 255

Foi criado um tunel com o nome de homer(este será o nome de nossa interface) utilizando o protocolo gre definindo que o ip remoto é 200.200.200.200(ip do servidor homer) e o ip local(publico) é 200.100.100.100 e definindo a configuração de ttl do pacote para 255.

  # ip link set homer up

Aqui estamos levantando a interface homer

  # ip addr 192.168.0.254 dev homer

Configuramos o ip 192.168.0.254 para a interface homer, pode ver que o ip é o mesmo de nosso servidor(rede local)

  # ip route add 192.168.1.0/24 dev homer

Aqui estamos dizendo que para chegar a rede 192.168.0.254/24 é utilizando a interface homer(no caso nosso túnel).

Devemos configurar tudo isso em nosso servidor ("homer")

  # ip tunnel add bart mode gre remote 200.200.200.200 local 200.100.100.100 ttl 255
  # ip link set bart up
  # ip addr 192.168.1.254 dev bart
  # ip route add 192.168.0.0/24 dev bart

Como vocês puderam ver fiz a configuração da maneira inversa, ou seja, fará com que o homer enchergue a rede interna de bart.

Para fazer o teste se seu túnel está funcionando você pode tentar efetuar um ping no caso de nosso exemplo do servidor homer para um ip que esteje configurado corretamente na rede do servidor bart.

ex:

  root@homer #: ping 192.168.0.1
  PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
  64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=22.9 ms
  64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=8.50 ms
  64 bytes from 192.168.0.1: icmp_seq=3 ttl=253 time=10.8 ms
  64 bytes from 192.168.0.1: icmp_seq=4 ttl=253 time=13.0 ms
  64 bytes from 192.168.0.1: icmp_seq=5 ttl=253 time=5.09 ms
  
  ``` 192.168.0.1 ping statistics ---
  5 packets transmitted, 5 received, 0% packet loss, time 4041ms
  rtt min/avg/max/mdev = 5.097/12.097/22.958/6.038 ms
  

Caso você queira retirar um tunel utilize a seguinte sintaxe:

  # ip link set nometunel down
  # ip tunnel del nometunel
  

Utilizando em nosso exemplo, se fizermos isso no servidor bart

  # ip link set homer down
  # ip tunel del homer

Você precisa lembrar que a cada boot do sistema essas informações precisam ser novamente executadas, então é interessante escrever um script para levantar esses túneis.

Utilizei como referência a documentação do iproute2: http://lartc.org/howto/

Jean Carlos - DarkWarrior

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Jean Carlos Oliveira Guandalini