Duas placas de Rede no Ubuntu 6.06

Iniciado por desigon, 23 de Abril de 2007, 17:20

tópico anterior - próximo tópico

desigon

Duas placas de Rede no Ubuntu 6.06

Aqui vou tentar esclarecer um pouco do sofrimento e a solução que encontrei tentando colocar duas placas de rede para funcionar num servidor Ubuntu 6.06 (dapper); uma acessando a NET e outra servindo como servidor DHCP para rede interna, que também deveria e agora está acessando a internet.

Após configurar as duas placas de rede com IPs diferenciados:

eth1
IP -   10.1.1.2
Mask - 255.0.0.0
GTW  - 10.1.1.1

eth0
IP -   192.168.0.1
Mask - 255.255.255.0
GTW  - 10.1.1.1

Mantive o Gateway semelhante para as duas placas derecionanto o link com a NET para o IP do modem 10.1.1.1 que também é Gateway.

Meu DHCP está com a seguinte definição para a placa eth0 da minha rede interna:

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option domain-name-servers 192.168.0.1, 10.1.1.1;
option domain-name "teste";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}

Meu problema não aconteceu em nenhum momento com minhas placas de rede, duas 3Com de modelos diferentes, mas funcionando perfeitamente e reconhecidas com facilidade pelo Ubuntu.
O ponto era que mesmo com meu DHCP configurado e funcionando, como abaixo:

:~$ sudo /etc/init.d/dhcp3-server restart
Internet Systems Consortium DHCP Server V3.0.3
Copyright 2004-2005 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
* Stopping DHCP server                                                  [ ok ]
Internet Systems Consortium DHCP Server V3.0.3
Copyright 2004-2005 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
* Starting DHCP server:                                                 [ ok ]

Minhas máquinas de rede recebiam a nova configuração do DHCP, eu conseguia dar ping das máquinas clientes no ip do servidor, mas a internet ainda continuava inacessível, só uma ressalva é que a maioria dos computadores clientes são Windows.
Lembre-se que caso haja um firewall funcionando é possível que ele bloqueie o acesso das máquinas da rede interna também, portanto é interessante desabilitá-lo enquanto faz essas alterações e depois os testes de acesso a NET.
Então vamos a resposta mágica. Eu não havia habilitado em momento algum o ip_forward, acostumado como estou com os recursos do Windows não achei que fosse necessário, e imaginei que essa implementação era automática visto que as duas placas de rede estão funcionando e habilitadas e meu DHCP configurado. Todos os comandos aqui relacionados devem ser digitados no Terminal. Bom temos que habilitar o ip_foward e ponto, com seguinte comando que deve ser executado como root:

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

ou se preferir

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

Pronto. Mas ainda falta um detalhe, contando que voce usa a versão 6.06 do Ubuntu ou Dapper como muitos conhecem, é muito provável que o iptables já esteja instalado, se não faça uma busca com o instalador do Synaptic e o adicione.
O detalhe é que temos que mascarar o roteamento nas definicições do iptables, pois se não o fizermos mesmo que o DHCP crie as rotas e os IPs para as máquinas clientes, o servidor não entenderá que tem que ligar os protocolos das duas placas, e portanto você tem uma rede com a definição correta definida pelo DHCP mas que não consegue acessar a NET. A solução para essa pequena dor de cabeça é o comando abaixo, caso esteja logado como root é só tirar o "sudo" da frente do comando:

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Finalizando lançamos somente mais um comando para reiniciar o DHCP, eu estou usando o DHCP3 e portanto se sua versão é outra acredito que sejam necessárias umas poucas alterações na linha de comando para reiniciar sua versão, lembre-se que caso esteja como root de retirar o "sudo" da frente do comando:

sudo /etc/init.d/dhcp3-server restart

Se todo o resto estiver certo agora é só tentar acessar a NET através de um terminal e verificar se está tudo funcionando.
Então é ser feliz e agradecer à Deus e a todos os companheiros Ubuntu e de outras distros Linux que disponibilizam seus conhecimentos na NET e facilitam muito a vida de ex-usuários Windows como eu. Viva o Open Source, Viva o Linux!

Adriano Maia
Designer e Gerente de TI

rafasnn

Uma dúvida,

espetei outra placa de rede no servidor para seguir o tutorial mas no ifconfig só aparece a eth0, precisa de algum comando para ativar a 2 placa?
Macbook Pro 2,33 4GB 250GB
iPhone 8GB

desigon

Não é necessário nenhum comando, mas é possível dependendo da placa que o Ubuntu não tenha reconhecido os drivers então você terá que encontrar o driver da placa que você adicionou para que ele a reconheça.
Há um tutorial bem explicado no FAQ do Ubuntu sobre como adicionar uma placa extra de rede, depois que a fizer funcionar é só seguir o meu passo à passo e distribuir o sinal na rede.

Boa sorte e qualquer coisa estou por aqui.