Compartilhamento de conexão ADSL

De Wiki Fedora

Em muitos casos, o compartilhamento da conexão ADSL pode ser um requisito importante para determinados ambiente de rede.

Tabela de conteúdo

Requisitos

Configuração

Vá em sistema ==> Administração ==> rede ou execute o comando:

$ su -
Password
# system-config-network

Primeiro passo: entendendo as interfaces

Captura da tela-Configuração da Rede.png
As interfaces disponíveis podem variar, no nosso caso, temos eth0, eth1 e ppp0. Partimos do princípio que o ppp0 já está configurado e que você já usava sua conexão ADSL antes. Para essa situação, vamos compartilhar o dispositivo ppp0, direcionando a conexão para o dispositivo eth1. Para um melhor entendimento, explica-se: o modem ADSL (que é o dispositivo de rede ppp0) é ligado na placa eth0, que realiza uma discagem para estabelecer a conexão. Depois de estabelecida a conexão, o dispositivo ppp0 passa a usar a porta da eth0 e é por esse motivo que eth0 é mantida desabilitada, já que não teria utilidade. A conexão recebida por ppp0 é roteada pelo iptables por intermédio de um NAT até a interface eth1 onde as demais máquinas podem se servir.

As vantagens de compartilhar desse modo uma conexão ADSL são claras quando é necessário realizar algum tipo de tratamento de gerência sobre a conexão, como um controle de banda ou uma filtragem de pacotes.

Segundo passo: preparando as interfaces

Não é preciso mexer nas configurações da interface ppp0. Normalmente, uma conexão ADSL utiliza o protocolo DHCP para obter as configurações necessárias ao seu próprio funcionamento, mas a interface eth1 precisa ser configurada corretamente para servir às outras máquinas da rede interna. Deve-se escolher uma classe de IP para a rede interna; no nosso caso, escolhemos que todas as máquinas da rede interna devem ter um IP do tipo 10.0.0.XXX e, para tanto, a interface eth1 deve estar adequada para funcionar dentro desses parâmetros. Damos a eth1 o ip fixo 10.0.0.1 com a máscara de sub-rede 255.255.255.0 e o Gateway padrão em branco (se for definido um gateway aqui, este sobrescreveria o gateway da interface ppp0 e o compartilhamento não funcionaria). O passo mais importante é definir quais serão os DNSs usados. É o DNS que direciona seu computador na grande rede e sem ele, você ficaria preso em sua rede interna sem conseguir navegar externamente.

Para descobrir um DNS válido, com a sua conexão ppp0 ativa, execute o comando "ifconfig" e esteja atento ao resultado obtido para a interface ppp0:

# ifconfig
ppp0     Link encap:Protocolo Ponto-a-Ponto  
         inet end.: 201.51.235.125  P-a-P:200.164.44.41  Masc:255.255.255.255
         UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Métrica:1
         RX packets:291808 errors:0 dropped:0 overruns:0 frame:0
         TX packets:249206 errors:0 dropped:0 overruns:0 carrier:0
         colisões:0 txqueuelen:3 
         RX bytes:224444533 (214.0 MiB)  TX bytes:106222887 (101.3 MiB)

Em vermelho, aparece um DNS que pode ser usado na sua configuração do eth1. Basta somente um DNS para que seu compartilhamento funcione, mas o Linux aceita até três DNSs hierárquicos, o que significa que se o primeiro falhar, o segundo assume e assim por diante. Para adicionar o DNS, selecione o dispositivo eth1 e clique na aba DNS, como mostrado na figura (é normal que os DNSs mudem, os que aparecem na figura são de uma configuração anterior):

Captura da tela-Configuração da Rede-1.png

Terceiro passo: ativando o NAT

Embora as interfaces já estejam configuradas corretamente neste ponto, é preciso ativar o NAT para que os pacotes que cheguem na interface eth1 sejam roteados corretamente para a interface ppp0 e vice-versa. O iptables, com o auxílio do módulo iptable_nat consegue isso facilmente com o seguinte comando:

# modprobe iptable_nat
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Ou, de uma forma mais completa e dinâmica:

touch /var/lock/subsys/local
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Quarto passo: configurando os clientes da rede

Terminada a etapa de compartilhamento, configurar os clientes da rede para receber a conexão compartilhada é uma tarefa bem simples. Obviamente, deve-se usar IPs que estejam dentro do range da sua rede; nesse caso, escolhemos IPs do tipo 10.0.0.XXX e como o ip 10.0.0.1 está reservado ao servidor, na placa eth1, começaremos a atribuir um ip fixo a contar de 10.0.0.2 em diante. A máscara de rede não muda e permanece a esma: 255.255.255.0, já o gateway passa a apontar para a placa eth1, ficando, portanto, 10.0.0.1. O passo mais complicadoseria a configuração dos DNSs. Uma confusão comum é colocar como DND o endereço de eth1, mas isso apenas confinaria os clientes até a rede interna; os endereços corretos, os da rede externa, são os mesmos DNSs obtidos nos passos anteriores. Feito issdo, os clientes passam a compartilhar a conexão.

Tcp ip xp.png

Quinto passo: compartilhamento na inicialização

Para que o compartilhamento seja carregado na inicialização, adicione ao arquivo /etc/rc.local os comandos usados para ativar o NAT. Neste exemplo, usamos o editor de texto VI:

# vi /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Uma observação final é que uma instalação nova do Fedora vem com regras de firewall que impedem o compartilhamento da conexão. É preciso limpar as regras antes que o compartilhamento funcione realmente, para fazer isso, execute o comando:

# iptables -F
Ferramentas pessoais