IP 0.0.0.0およびGW 0.0.0.0に不要なルートを追加しないようにconnmandを設定する方法

IP 0.0.0.0およびGW 0.0.0.0に不要なルートを追加しないようにconnmandを設定する方法

以下のパスは固定されており、手動で削除してもconnmand(接続マネージャデーモン)によって別のインターフェイス名として追加されます。 ip link cmdを使用して特定のインターフェイスをシャットダウンしても同じ問題が発生します。

root@soc:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 eth0

connmandそうしないように設定する方法はありますか?

追加情報:eth0は静的IPアドレスを使用します。私のシステム(SoC)には4つのインターフェイスがあり、3つは固定IPアドレスを使用し、1つはDHCPを使用します。以下のeth0の固定IPを定義するsystemd / networkファイルを追加しました。

root@soc:/etc/systemd/network$ cat 10-eth0-soc.network
[Match]
Name=eth0
[Network]
Address=10.10.11.2/24
root@soc:/etc/systemd/network$

答え1

connmandあまりにも単純で単純なので、DHCP指定パスをまったく変更できないようです。

connmandソースコードを少し見てみると、DHCPサーバーがデフォルトゲートウェイを0.0.0.0に指定した場合は、これを0.0.0.0に設定しているようです。明らかに、そのようなケースをフィルタリングするコードが含まれていましたが、一部のIPv4LLでは、これらのルーティングが有効な構成である可能性があるため、削除されました。

私の考えでは、これはconnmandマルチホームホスト(=複数のインターフェイスが異なるネットワークに接続されている)を処理するのは簡単すぎる可能性があり、別のソリューションを見つける必要があるかもしれません。

*.networkIPアドレスを持つファイルが利用可能であるという事実は、そのファイルが利用可能でsystemd-networkdあることを意味します。connmandDHCPインターフェイスを完全に無効にします.networkconnmand

UseRoutes=false特に、ファイルセクションでDHCPサーバーが無視する必要がある有害なパス/ゲートウェイを提供するかどうかを[DHCPV4]設定できます。.network

放棄できないconnman場合は、DHCPサーバーの構成を確認し、提供するゲートウェイアドレスがない場合は、関連するDHCPオプションをまったく送信しないようにする必要があります。それを指定します0.0.0.0。ただし、他のハードウェアによっては、DHCPサーバーが常に特定のゲートウェイを指定する必要がある場合、DHCPサーバーが各クライアントに対してそのサービスをカスタマイズできるほど柔軟ではない場合、問題が発生する可能性があります。

関連情報