Linuxでは、ルーティングテーブルエントリのデフォルト値はどのように設定されますか?

Linuxでは、ルーティングテーブルエントリのデフォルト値はどのように設定されますか?

ip route以下は私のコマンドの一部です。

192.168.1.0/24 dev enp1s0  proto kernel  scope link  src 192.168.1.2  metric 100 
192.168.1.0/24 dev wlp2s0  proto kernel  scope link  src 192.168.1.14  metric 600 

最初のインターフェイスenp1s0(イーサネット)のメトリックは100(高い優先順位/低ホップ数)、2番目のインターフェイスwlp2s0(WLAN)のメトリックは600(低い優先順位)です。私はLinuxカーネル4.7.2を使用しています。

Linuxでは、これらの値はどのように設定されますか?正確にいつ発生しますか?

答え1

IPv4 ルーティングテーブルはカーネルによって生成されません。カーネルはルーティングテーブルのみを保存して動作します。

これらのメトリックは、デフォルトパスをインストールするユーザースペースプログラムから来ます。 DHCP を使用するコンピュータの場合、これは DHCP デーモンによって提供されます。静的アドレッシングとルーティング機能を備えたシステムの場合、これはディストリビューションのインターフェイスアドレッシングメカニズム(Red Hatの/etc/sysconfig/network、Debianのifupdownなど)から来ます。

NetworkManagerなどのユーザースペースアプリケーションでは、有線デバイスを使用するデフォルトパスのメトリックを、ワイヤレスデバイスを使用するデフォルトパスのメトリックよりも(低く)設定するのが一般的です。これは、可能であれば、有線リンクを使用することを好む一般的に予想される動作と一致する。これがコマンドで見られる戦略ですip route show

関連情報