J'ai un serveur avec 2 interfaces. eth0 est 100 fois plus rapide que l'ETH1. Bien que pour une raison quelconque, chaque redémarrage, l'interface par défaut est cueillie au hasard. Pour rendre les choses plus gênantes, elles utilisent tous les deux la même passerelle, alors sélectionner la passerelle par défaut ne fonctionnera pas. Comment Linux choisit-t-il l'interface par défaut et comment puis-je sélectionner l'une?
Voici mon route -n
Pour aider à expliquer un peu la situation.
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. Ceci est un VPS, mon fournisseur pourrait donc également être en faute quelque part. La raison de la deuxième interface est d'avoir une autre adresse IP pour DNS, car elle ne fait que DNS, c'est très lent.
EDIT: Ceci est un serveur Ubuntu 10.04
Utilisez ifmetric
pour modifier la valeur métrique des deux interfaces. L'augmentation de l'ETH1 ci-dessus Eth0 provoquera l'utilisation de l'ETH0 pour toutes les connexions. Résout le problème entièrement.
Vous devez désactiver la seconde, l'interface lente, puis ajouter l'IP secondaire sur le primaire. Pour ce faire, modifiez votre fichier d'interfaces avec:
Sudo vi /etc/network/interfaces
Une fois que vous avez accédé au fichier réseau, vous serez probablement présenté à quelque chose comme ce qui suit:
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
Reconfigurez-le pour ressembler à ceci:
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
Cela affectera les deux IP à la première carte réseau. Une fois que vous avez fait cela, enregistrez le fichier et exécutez:
/etc/init.d/networking restart
Et les changements seront commis.
<- Edit ->
Dans mon expérience si c'est sur le même commutateur virtuel, cela ne devrait pas avoir d'importance, bien que des environnements hébergés puissent le verrouiller davantage. Cela vaut peut-être un essai, si cela ne fonctionne pas, vous pouvez demander à votre société d'hébergement de modifier l'interface virtuelle à quelque chose de plus capable.
<- Edit ->
De plus, si votre IP principale ne servait actuellement pas de DNS, alors pourquoi ne pas l'utiliser pour DNS aussi? Vous pouvez organiser plusieurs services différents sur une adresse IP car ils utilisent différents ports.
Vous semblez avoir deux interfaces dans le même sous-réseau, qui est un peu bizarre. Linux (supposant que vous utilisiez un dérivé de chapeau rouge) choisit la passerelle par défaut en lisant la valeur de la passerelle de /etc/sysconfig/network
. Cette variable contient toutefois une adresse IP comme identifiant de passerelle, et non un nom d'interface. Donc, dans votre cas, l'adresse IP peut être la passerelle pour les deux interfaces, menant (je pense) à une sorte de condition de course.
Je ne sais toujours pas pourquoi vous avez besoin de la deuxième interface. Que se passera-t-il si vous apportez complètement l'interface lente?