特定NICのデフォルトrouteを指定しない設定

Linux機器に複数のNICを装備する場合に、特定のNICはLANのみに接続したいケースがあります。たとえば、Wifiインターフェースではインターネット接続したいが、有線イーサネットはLANアクセスのみの構成としたい利用例が考えられます。

Linuxのデフォルト挙動は、すべてのインターフェースにデフォルトゲートウェイを設定し、外部ネットワークに接続しようとします。現在の構成はip [-6|-4] routeで確認できます。
リストのうちdefaultから始まる行が外部にルーティングする設定です。

Netplan on NetworkManagerの場合

近年のDebian系のデスクトップディストリビューションは、config規約に Netplan、ネットワークデーモンにNetworkManagerを採用しています。

Netplanのconfigは/etc/netplan/にデバイスごとに作成されます。
外部ルーティングをdisableしたいデバイスのconfigの dhcp4-overwrites.use-routesの値をfalseに指定すると、デフォルトルートなしの構成になります。IPv6の場合は、dhcp6-overwrites.use-routesです。

どう見てもDHCP用の設定ですが、スタティックにIP設定する場合にも参照されます。ただし、NetworkManagerの特定バージョンの実装がNetplanのconfigをそのように解釈しているだけの可能性が高く、将来別のフィールドが追加されるかもしれません。

Netplanには下層のconfigも書けますが、networkmanager.passthrough.ipv4.ignore-auto-routesという設定はNetworkManagerに直接指定するconfigのようです。

対応するGUI管理ツールも各デバイスのIPv4/IPv6設定の「Routes」などから指定できるケースがありますが、これはツールとバージョンによるでしょう。GUIの出力は/etc/netplan/に保存されるため、各configファイルで確認できます。

⁋ 2024/08/30↻ 2024/10/09
中馬崇尋
Chuma Takahiro