以下のパスは固定されており、手動で削除しても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
マルチホームホスト(=複数のインターフェイスが異なるネットワークに接続されている)を処理するのは簡単すぎる可能性があり、別のソリューションを見つける必要があるかもしれません。
*.network
IPアドレスを持つファイルが利用可能であるという事実は、そのファイルが利用可能でsystemd-networkd
あることを意味します。connmand
DHCPインターフェイスを完全に無効にします.network
。connmand
UseRoutes=false
特に、ファイルセクションでDHCPサーバーが無視する必要がある有害なパス/ゲートウェイを提供するかどうかを[DHCPV4]
設定できます。.network
放棄できないconnman
場合は、DHCPサーバーの構成を確認し、提供するゲートウェイアドレスがない場合は、関連するDHCPオプションをまったく送信しないようにする必要があります。それを指定します0.0.0.0
。ただし、他のハードウェアによっては、DHCPサーバーが常に特定のゲートウェイを指定する必要がある場合、DHCPサーバーが各クライアントに対してそのサービスをカスタマイズできるほど柔軟ではない場合、問題が発生する可能性があります。