Pular para o conteúdo

Roteamento de pacotes e NAT no Linux

Dica publicada em Linux / Configuração
Magno Lima magnolinux
Hits: 83.189 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Roteamento de pacotes e NAT no Linux

Resolvi escrever essa dica depois de ver muitos posts de usuários com dúvidas em como fazer o compartilhamento de internet no Linux.

O compartilhamento da internet no Linux é feito através do Netfilter/Iptables, que é o firewall nativo das distribuições a partir do kernel 2.4.

Primeiro devemos estar com a placa de rede configurada e com a conexão com a internet funcionando. Para ver como configurar a placa de rede você pode dar uma olhada na minha dica:
Partindo do pressuposto que a internet está funcionando, a seguir será descrito os comandos que farão o roteamento e NAT da conexão.

Roteamento de pacotes:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Esse comando escreve o número 1 dentro do arquivo ip_forward, ativando o roteamento de pacote. O padrão é 0. Com isso o Linux passa a rotear os pacotes de uma interface para a outra e vice-versa.

NAT:

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Esse comando permite que todos os micros da rede possam sair para a internet com apenas um IP público. O "-o eth0" é a interface que está conectada com a internet, se fosse uma conexão Velox seria "-o ppp0".

Pronto... Para compartilhar a internet no Linux é necessário somente esses dois comandos, um ativa o roteamento de pacote, o outro faz o nat. Agora vamos criar um script e colocar para iniciar durante o boot.

Criando script, dentro do /usr/local/bin:

# vim /usr/local/bin/firewall

#!/bin/bash

echo "Ativando compartilhamento "

# Ativando Roteamento de pacote
echo 1 > /proc/sys/net/ipv4/ip_forward

# NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

echo " Compartilhamento ativado"
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Salve e saia do arquivo. Dê permissão de execução no script com o comando:

# chmod +x /usr/local/bin/firewall

Agora vamos colocar esse script para ser iniciado durante o boot. Edite o arquivo /etc/rc.local:

# vim /etc/rc.local

E adicione a seguinte linha em seu final:

/usr/local/bin/firewall

Salve e saia do arquivo.

Pronto... Internet será roteada toda vez que o micro for reinicializado!

Obs.: Existem outras formas de colocar um script para ser inicializado durante o boot, esta é a forma mais simples, em outra dica demonstrarei uma forma mais profissional de colocar um script para ser inicializado.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Configurando redes virtuais no Debian

Configurando rede no Debian

Alterando a porta do serviço SSH

Como configurar sua placa SIS900 onboard no Linux

Configurando um provedor PPPOE da LIFE

Multimídia no Debian 64 bits

Shadow Era no GNU/Linux com CrossOver

Som no flash do Ubuntu

#1 Comentário enviado por xirux em 26/04/2010 - 10:23h
Obrigado Magnolinux, lendo teu artigo eu comecei a ficar a vontade pra evoluir.
#2 Comentário enviado por magnolinux em 06/07/2010 - 11:46h
Entãi xirux, no vol existe milhares de artigos e dicas que te ajudarão a evoluir no mundo linux e comphania...

Fico contente que minha dica foi valida. Em breve voltarei a escrever novamente no vol

abraço....
#3 Comentário enviado por gabidtlima em 13/06/2014 - 11:00h
olá, queria saber o que mudou e qual o comando que eu teria que usar para habilitar o roteamento de pacotes no Ubuntu 14.04, quando faço a ligação de mais de uma rede, não consigo pingar em uma maquina de outra rede.

ex.
rede 1 recebe pacote da rede 2 mas não recebe pacote da rede 3, ou vise versa
#4 Comentário enviado por fernandomsilva em 28/04/2017 - 10:06h
Parabéns pela contribuição! Aqui deu certo.


Fernando de M Silva
Analista de Rede Jr
Contato: fernandownet@uol.com.br

Contribuir com comentário

Entre na sua conta para comentar.