Você deve ter apenas um gateway padrão. Se você remover a linha de gateway da eth1, tudo funcionará (depois que a rede for reiniciada).
Eu tenho duas interfaces ethernet no meu computador, que está executando o Ubuntu 9.04. Ambas as interfaces usam IPs estáticos, mas usam gateways separados. Meu arquivo /etc/network/interfaces
é parecido com isto:
auto eth0 eth1 iface eth0 inet static address 10.0.0.5 netmask 255.255.255.0 gateway 10.0.0.1 iface eth1 inet static address 192.168.2.5 netmask 255.255.255.0 gateway 192.168.2.1
Eu quero que todo o tráfego indo para a internet em geral seja executado por meio de eth0
, mas parece que deseja passar por eth1
. Existe uma maneira de canalizar meu tráfego de saída geral através de eth0
e usar apenas eth1
para o tráfego para sua sub-rede?
A resposta deve ser persistente; isto é, deve sobreviver à reinicialização sem um superusuário que precise executar um comando após a reinicialização.
EDIT : conforme solicitado, aqui está a saída do meu comando route -n
:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1 0.0.0.0 192.168.2.1 0.0.0.0 UG 100 0 0 eth1 0.0.0.0 10.0.0.1 0.0.0.0 UG 100 0 0 eth0
Modificar a tabela de roteamento com rota, conforme sugerido, corrigirá isso temporariamente, mas será revertido para o estado atual na próxima inicialização.
Seria possível definir regras de rota em /etc/rc.local ou algum tipo de script de init, mas, neste caso, a opção mais simples é remover o gateway da eth1 no arquivo de interfaces.
Ao remover esse gateway, esse sistema ainda usará automaticamente eth1 como a rota 192.168.2 / 24, mas roteará todo o outro tráfego por meio de eth0.
Remova o gateway da eth1 em / etc / network / interfaces e adicione-o como uma rota estática:
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1
Com isso, 10.0.0.1 será seu gateway padrão e eth1 será usado apenas para conectar-se à rede 192.168.2.0
Veja sua tabela de roteamento atual digitando a rota. Sua máquina usará o primeiro gw padrão que ele vê na tabela de roteamento. Isso será indicado por padrão ou 0.0.0.0 como o destino. Se você quiser que apenas eth1 seja usado para a rede local 192.168.2.0/24, remova o comando do gateway. Isso deve tornar o default gt da eth1 o seu padrão.
Estou usando essa solução há mais de 4 anos e tenho publicou no wiki do Linode , e tem funcionado perfeitamente. Edite /etc/network/interfaces
e faça corresponder isso:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address <the outbound IP>
netmask <the netmask for the outbound IP, usually 255.255.255.0>
gateway <the gateway for the outbound IP>
up /sbin/ip addr add <the primary IP>/24 dev eth0
Tags networking routing ubuntu