Use ifmetric
para alterar o valor da métrica de ambas as interfaces. Aumentar eth1 acima de eth0 fará com que eth0 seja usado para todas as conexões. Resolve completamente o problema.
Eu tenho um servidor com 2 interfaces. A eth0 é 100 vezes mais rápida que a eth1. Embora por algum motivo, a cada reinicialização, a interface padrão é escolhida aleatoriamente. Para tornar as coisas mais irritantes, ambos usam o mesmo gateway, portanto, selecionar o gateway padrão não funcionará. Como o Linux escolhe a interface padrão e como eu seleciono o padrão?
Aqui está o meu route -n
para ajudar a explicar a situação um pouco.
Destination Gateway Genmask Flags Metric Ref Use Iface
173.246.100.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1
173.246.100.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
0.0.0.0 173.246.103.254 0.0.0.0 UG 0 0 0 eth1
0.0.0.0 173.246.103.254 0.0.0.0 UG 100 0 0 eth0
PS. Este é um VPS, então meu provedor também pode estar com defeito em algum lugar. Razão para a segunda interface é ter outro IP para dns, porque ele só faz DNS, é muito lento.
EDIT: Este é um servidor Ubuntu 10.04
Você deve desativar a segunda interface lenta e adicionar o IP secundário ao primário. Para isso, edite seu arquivo de interfaces com:
sudo vi /etc/network/interfaces
Depois de acessar o arquivo de rede, você provavelmente terá algo como o seguinte:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 173.246.100.1
network 173.246.100.0
netmask 255.255.252.0
broadcast 173.246.100.255
gateway 173.246.103.254
auto eth1
iface eth0 inet static
address 173.246.100.2
network 173.246.100.0
netmask 255.255.252.0
broadcast 173.246.100.255
gateway 173.246.103.254
Reconfigure para ficar assim:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 173.246.100.1
network 173.246.100.0
netmask 255.255.252.0
broadcast 173.246.100.255
gateway 173.246.103.254
iface eth0:1 inet static
address 173.246.100.2
network 173.246.100.0
netmask 255.255.252.0
Isso atribuirá os dois IPs ao primeiro NIC. Depois de fazer isso, salve o arquivo e execute:
/etc/init.d/networking restart
E as alterações serão confirmadas.
< - EDITAR - >
Na minha experiência, se estiver no mesmo Virtual Switch, não importa, embora os ambientes hospedados possam bloqueá-lo ainda mais. Pode valer a pena uma tentativa, se não funcionar, você pode pedir a sua empresa de hospedagem para alterar a interface virtual para algo mais capaz.
< - EDITAR - >
Além disso, se o seu IP principal não está servindo DNS, por que não usá-lo também para o DNS? Você pode hospedar vários serviços diferentes em um IP, já que eles usam portas diferentes.
Você parece ter duas interfaces na mesma sub-rede, o que é um pouco estranho. O Linux (supondo que você esteja usando um derivativo da Red Hat) escolhe o gateway padrão lendo o valor GATEWAY de /etc/sysconfig/network
. Essa variável, no entanto, contém um endereço IP como um identificador de gateway, não um nome de interface. Então, no seu caso, o único endereço IP pode ser o gateway para ambas as interfaces, levando (eu acho) a algum tipo de condição de corrida.
Ainda não sei por que você precisa da segunda interface. O que acontecerá se você derrubar completamente a interface lenta?
Tags networking interface linux route