引き続きマルチホーミングのお供に。ちょこっとテストしたいとかいう場面や、Wi-Fiと有線LANでもWi-Fi側を優先させたいという場面があります。毎回ググってたどり着くまでがめんどくなったので備忘です。Windows専用。
MS用オプションコード 0x03: Microsoft Default Router Metric Base Option
RFC3442 The Classless Static Route Option for DHCPv4と合わせて使うと便利です。こちらは解説してくださっているサイトがたくさんあるのでググれば終わりです。
Dnsmasqで配布する例だけですが載せておきます。そのセグメントのデフォルトルートのメトリックを大きく(50)して優先順位を下げたい場合。
1 2 3 4 5 |
... dhcp-option=vendor:MSFT,3,50i ... dhcp-option=net:xxxxx,vendor:MSFT,3,50i ... |
0iが自動計算、最高の優先順位は1iになるでしょうか。適用されたかどうかは netstat -rn とか route print で確認できます。
ついでにclassless static route option他使えそうなオプション
1 2 3 4 5 |
... dhcp-option=option:classless-static-route,0.0.0.0/0,192.168.0.1,192.168.0.0/16,192.168.0.2 dhcp-option=option:ntp-server,192.168.0.123,192.168.1.123 dhcp-option=option:dns-server,192.168.0.53.131,192.168.1.53 dhcp-option=option:domain-search,internal.example.com,hq.example.com,chicago.example.com,london.example.com |
クライアント側で対応する場合
Windowsならばネットワーク インターフェイスの順序を構成するの通り。GUIならば
コントロール パネル -> ネットワークとインターネット -> ネットワーク接続 -> 該当インターフェースのプロパティ -> IPv4 -> プロパティ -> 詳細設定 -> 自動メトリックのチェックを外してインターフェースメトリックを入力
GNU/LinuxでNetworkManager を使っている場合は、 nmcli connection edit を使って set ipv4.route-metric 200 などとすれば、 /etc/NetworkManager/system-connections 下にある設定ファイルが更新されます。
networkd の場合は/etc/netplan/99-config.yamlあたりの名前で作った設定ファイルで dhcp4-overrides: で route-metric: 200 のように指定。dhcp使わない場合は routes: で metric: 200 のように指定。