Linuxでは違いは何ですか?ip link down
事後条件そして実際のリンクがありません。(例:スイッチポートが焼損したり、誰かがワイヤにぶら下がったりするなど)
違いは、2つのケースを区別するために使用できるシステムの一部のフラグです。
たとえば、どちらの場合も、ルーティングテーブルは同じですか?ethtool
それとも他のものも同じことを示していますか?これらの条件を区別するためのツール/ユーティリティはありますか?
答え1
管理インターフェースには違いがあります。戻るしかし、接続を切断したり、管理者に下に。
接続が切断されました
インターフェースはオペレーターのダウンタイム状態。正しい処理は、インターフェイスのドライバとカーネルのバージョンによって異なります。一般的にip link show
。たとえば、仮想イーサネットを使用する場合ワイズ相互作用:
# ip link add name vetha up type veth peer name vethb
# ip link show type veth
2: vethb@vetha: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 02:a0:3b:9a:ad:4d brd ff:ff:ff:ff:ff:ff
3: vetha@vethb: <NO-CARRIER,BROADCAST,MULTICAST,UP,M-DOWN> mtu 1500 qdisc noqueue state LOWERLAYERDOWN mode DEFAULT group default qlen 1000
link/ether 36:e3:62:1b:a8:1f brd ff:ff:ff:ff:ff:ff
伝記それ自体は管理上UPで表示され、NO-CARRIER
同等です。動作状態 LOWERLAYERDOWN
フラグ:接続が失われました。
/sys/
同等の項目も存在します。
# cat /sys/class/net/vetha/carrier /sys/class/net/vetha/operstate
0
lowerlayerdown
一般的な設定では、管理インターフェースの場合戻るこれキャリアそして動作状態一致します(NO-CARRIER <=> LOWERLAYERDOWNまたはLOWER_UP <=> UP)。たとえば、IEEE 802.1X認証(詳細情報)を使用している場合は例外があります。動作状態このカーネルのドキュメントで説明されています。運営状態しかし、この説明には必要ありません。)
ethtool
同じ運送業者のステータスを取得するには、下位レベルのAPIに問い合わせてください。
キャリアがなくてもレイヤ 3 の設定はそのまま残ります。これが発生すると、カーネルはアドレスやパスを変更しません。結局、送信する必要があるパケットはインターフェイスによって送信されず、当然応答も受信されません。たとえば、別のIPv4アドレスに接続しようとすると、別のARP要求が遅くなり、失敗し、アプリケーションは「ホストへのパスなし」を受信します。確立されたTCP接続は単に機会を待ち、確立された状態を維持します。
行政的拒否
以上ヴィテルボ持つ動作状態オフになってキャリア状態は表示されません(これを検出するには機能する必要があるためです。もちろん、物理イーサネットインターフェイスの動作は同じです)。
インターフェイスがシャットダウンすると(ip link set ... down
)、基本ハードウェアデバイスがシャットダウンする可能性が高く、動作状態が「ダウン」に変わるため、オペレータを検出できなくなります。ethtool
リンクもないと言うだけなので、これに対して安定して使用できません(確かに一部のリンクが表示されます)。未知アイテムがありますが、安定したソリューションはありますか? )。
今回はレイヤ3のネットワーク設定に影響します。カーネルは、このインタフェースを使用するパスの追加を拒否し、それに関連する以前のパスをすべて削除します。
proto kernel
()アドレスを追加するとLANパスが自動的に追加されます- ルートテーブルに追加された他のすべてのルート(例:デフォルトルート)(例:デフォルトルート)基本ルーティングテーブル)は、インタフェース(
scope link
)または以前に削除された他のルート(おそらく当時scope global
)に直接依存します。これは、インターフェイスが復元されると()再表示されないため、ip link set ... up
ユーザースペースツールがそれを再追加するまで失われます。
ユーザー空間の対話
NetworkManager などの最新のツールを使用すると、人々は混乱し、切断はインターフェイスのシャットダウンに似ていると考えることができます。これは、NMがリンクを監視し、これらのイベントが発生した場合にアクションを取るためです。このツールを理解するには、ip monitor
スクリプトで監視するために使用できますが、現在は安定して解析可能な出力がないため(JSON出力が有効)、使用は制限されます。
したがって、回線が中断された場合、特定の設定により禁止されない限り、NM は現在構成を使用しないと考える可能性が高くなります。その後、アドレスとルート自体を削除します。回線が再接続されると、NMは設定を再適用してアドレスとパスを追加します(該当する場合はDHCPを使用)。同じように見えますが、そうではありません。インターフェイスはこれまで同じままです戻る、または接続が復元されたときにNMが警告を受け取らない可能性があります。
一般化する
2つのケースを簡単に区別できます。切断されたインターフェイスには+が
ip link show
表示され、NO-CARRIER
管理上終了したインターフェイスには+が表示されます。LOWERLAYERDOWN
DOWN
インターフェイスを管理的に閉じたり開くと、パスが失われる可能性があります。
携帯通信会社を紛失して復元しても、ネットワーク設定は破壊されません。遅延時間が十分に短い場合、進行中のネットワーク接続も中断されません。
ただし、ネットワークを管理するアプリケーションは応答してネットワーク設定を変更する可能性があり、時には管理エラーと同様の結果が生じる可能性があります。
たとえば、次のコマンドを使用して、
ip monitor link
管理の中断/オン、またはオペレータによって変更されたインターフェイス設定のイベントを受信したり、ip monitor
現在または直後に発生する複数の関連イベント(アドレスまたはパスの変更を含む)をすべて受信したりできます。ほとんどの
ip
コマンド(すべてではないip monitor
)にはip -json ...
ヘルプスクリプト(およびjq
)。はい(最初から続くワイズ例):
ヴィテルボまだ衰退中:
# ip -j link show dev vethb | jq '.[].operstate' "DOWN" # ip -j link show dev vetha | jq '.[].operstate' "LOWERLAYERDOWN"
置くヴィテルボ今、両方にキャリアがあります。
# ip link set vethb up # ip -j link show dev vetha | jq '.[].operstate' "UP"
これは3つの一般的な状態を説明します。管理下に、低レベル下(例:起動しましたが接続が切断されました)または戻る(つまり、動作)。
答え2
dmesg
これは実行後に私が見たものですip link set enp3s0 down
。
r8169 0000:03:00.0 enp3s0: Link is Down
ethtool enp3s0
Settings for enp3s0:
Cannot get device settings: No such device
Supports Wake-on: pumbg
Wake-on: d
Link detected: no
しかし、
スイッチポートが焼損したか、または誰かが電線にぶら下がっています。
インターフェイスは次のようにする必要があります。まだそこに、静的IPアドレスとルートも含まれます。ethtool
NICは検出され表示されますが、Link detected: no
デバイスを取り外すのとは異なり、出力は完了ですip l set interface down
。