2つのインターフェースを持つサーバーがあります。 eth0はeth1の100倍高速です。何らかの理由で、再起動するたびに、デフォルトのインターフェースはランダムに選択されます。面倒なことに、どちらも同じゲートウェイを使用しているため、デフォルトゲートウェイを選択しても機能しません。 Linuxはデフォルトのインターフェースをどのように選択し、どのようにデフォルトのインターフェースを選択しますか?
これが私のroute -n
状況の説明に役立ちます。
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。これはVPSなので、私のプロバイダーもどこかに障害があるかもしれません。 2番目のインターフェースの理由は、DNSのみを実行するため、DNSに別のIPを使用することです。これは非常に遅いためです。
編集:これはUbuntu 10.04サーバーです
ifmetric
を使用して、両方のインターフェースのメトリック値を変更します。 eth1をeth0より大きくすると、eth0がすべての接続に使用されます。問題を完全に解決します。
2番目の低速なインターフェイスを無効にしてから、セカンダリIPをプライマリに追加する必要があります。これを行うには、interfacesファイルを次のように編集します。
Sudo vi /etc/network/interfaces
ネットワークファイルにアクセスすると、おそらく次のようなものが表示されます。
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
次のように再構成します。
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
これにより、両方のIPが最初のNICに割り当てられます。これが完了したら、ファイルを保存して実行します。
/etc/init.d/networking restart
そして、変更はコミットされます。
<-編集->
私の経験では、同じ仮想スイッチ上にある場合は問題になりませんが、ホスト環境ではさらにロックされる可能性があります。ただし、試してみる価値があるかもしれませんが、機能しない場合は、ホスティング会社に仮想インターフェースをより機能的なものに変更するよう依頼することができます。
<-編集->
また、プライマリIPが現在DNSを提供していない場合は、それをDNSにも使用してみませんか?異なるポートを使用するため、1つのIPで複数の異なるサービスをホストできます。
同じサブネットに2つのインターフェースがあるようですが、少し変です。 Linux(Red Hat派生を使用していると想定)は、/etc/sysconfig/network
からGATEWAY値を読み取ることにより、デフォルトゲートウェイを選択します。ただし、この変数は、インターフェース名ではなく、ゲートウェイ識別子としてIPアドレスを保持します。したがって、あなたの場合、1つのIPアドレスが両方のインターフェースのゲートウェイになり、何らかの競合状態を引き起こす可能性があります。
なぜ2番目のインターフェースが必要なのかはまだわかりません。遅いインターフェイスを完全に停止するとどうなりますか?