私はip link show
このようなレポート:
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:43:e6:b1:e7 brd ff:ff:ff:ff:ff:ff
だが /sys/class/net/docker0/flags
はこれを言います:
$ cat /sys/class/net/docker0/flags
0x1003
設定される3ビットはIFF_MULTICAST
、IFF_BROADCAST
およびIFF_UP
。これはUPのインターフェースのように見えます。なぜ ip link
報告書 state DOWN
?
システムはLinux4.15/Ubuntu18.04です。
設定される3ビットは、IFF_MULTICAST、IFF_BROADCAST、およびIFF_UPです。これはUPのインターフェースのように見えます
そして、それは実際のフラグ出力に完全に対応しています。
3:docker0:<NO-CARRIER、ブロードキャスト、マルチキャスト、UP> ↑↑↑
IPリンクレポートの状態がダウンしているのはなぜですか?
それは別の種類の状態です。
フラグIFF_UP(上記では「<UP>」として表示)は、administrative状態を示します。これは、ip link set eth0 up
を介して設定できる手動ノブです。
一方、「state […]」テキストは、operationalstateを記述し、インターフェースが対応可能であるかどうかを示します。 。
動作状態は、「キャリア」の存在とほぼ同じです。イーサネットリンクが完全に確立されているか、Wi-Fiアクセスポイントがに関連付けられています。 メンバーポートの少なくとも1つがアップしている場合、ブリッジはアップしている(キャリアがある)と報告されます。そのため、ブリッジメンバーとしてdummy0
インターフェイスを追加することをお勧めします。
動作状態は、フラグIFF_LOWER_UP
(フラグ領域に「<LOWER_UP>」として表示)およびIFF_RUNNING
(この例では疑似フラグ「<NO-CARRIER>」として表示されない)にほぼ対応します。 。 ( ソースコード )
ただし、iprouteツールはNetlinkを介してインターフェイス情報を取得し、state …
セクションはIFLA_OPERSTATEnetlink属性に基づいて出力されます。 ( ソースコード )
この属性は、…/operstate
のsysfsからも利用できます。 Linuxのドキュメントには、operstates.txtにこれらのフラグと属性の詳細な説明があります。