web-dev-qa-db-ja.com

Linuxではネットワークルートの順序は重要ですか?

私のWebサーバーの1つでは、ループバックルートは2番目の位置にあり、通常、ルートを表示するときに他のサーバーの3番目の位置にあります。

>ip route show

1つのcentos 7サーバーに表示される結果:

default via 85.x.x.254 dev enp32s0 
85.x.x.192/26 dev enp32s0  proto kernel  scope link  src 85.x.x.201 
169.254.0.0/16 dev enp32s0  scope link  metric 1002 

別のCentOS 7サーバーの結果:

default via 217.x.x.1 dev em1 
169.254.0.0/16 dev em1  scope link  metric 1002 
217.x.x.0/24 dev em1  proto kernel  scope link  src 217.x.x.216 

違いはありますか?何か影響がありますか?なぜそれが起こるのか誰かが説明できますか?

5

ルートが入力される順序は、定義上、重要ではありません。これは、ルートが適用されることになっている方法によるものです。より一般的なルートよりも具体的なルートが優先されます。

次の2つのルートがあるとします。

  • ゲートウェイ192.168.1.1を介した172.16.0.0/16ネットワーク用の最初のネットワーク
  • ゲートウェイ192.168.1.2を介した172.16.32.0/24ネットワークの2つ目

たとえば172.16.32.1のIPアドレスを持つマシンにパケットを送信する場合、選択されたゲートウェイはalways192.168.1.2となり、順序とは無関係です。システムに入力されたルート。

ただし、落とし穴があります。非常に同じネットワークの2つのルートが、ゲートウェイが異なる場合はどうでしょうか。たとえば、次の設定を検討してください。

  • ゲートウェイ192.168.1.1を介した172.16.32.0/24ネットワークの最初のルート
  • ゲートウェイ192.168.1.2を介した172.16.32.0/24ネットワークの2番目のルート

システムはどのように機能しますか?他の点では同一のルートよりもルートを優先したい場合は、それらにmetric値を割り当てる必要がありました。メトリックは「コスト」値と見なされ、より低いメトリックが優先されます。したがって、システムに2つのその他の同一のルートがあり、メトリックが異なる場合、メトリック値の低いルートが選択されます。

しかし、2つのルートがメトリック値でも同じである場合はどうなりますか?この(コーナー)ケースでは、デフォルトの動作は未定義であり、システムによって異なります。たとえば、システムは最初に入力されたルートを優先し、別のシステムは最後に入力されたルートを優先することができます。他のシステムは両方のルートを同時に使用でき、 [〜#〜] ecmp [〜#〜] と呼ばれるほぼラウンドロビン方式でパケットを配信します=(等コストマルチパスルーティング)。最後に、他のシステムは2つの本当に同一のルートの存在を禁止する可能性があり、そのようなルートに入る可能性さえ否定します。

10
shodanshok