web-dev-qa-db-ja.com

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
syntagma

IPv4ルーティングテーブルはカーネルによって作成されません。カーネルは、ルーティングテーブルを格納して操作するだけです。

メトリックは、デフォルトルートをインストールしたユーザースペースプログラムから取得されます。 DHCPを使用しているコンピューターの場合、これはDHCPデーモンからのものになります。静的なアドレス指定とルーティングを備えたコンピューターの場合、それはディストリビューションのインターフェースアドレス指定メカニズム(RedHatの/ etc/sysconfig/network、Debianのifupdownなど)からのものになります。

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

0
vk5tu