インターフェイスに関連付けられたアドレスがない場合でも、「ip addr」コマンドは「UP」を表示します。

インターフェイスに関連付けられたアドレスがない場合でも、「ip addr」コマンドは「UP」を表示します。

ネットワークインターフェイスアップが何を意味するのか知りたいです。ip addrorifconfigコマンドは、接続されたIPがなくてもインターフェイスが動作中であることを示すためです。

たとえば、RHEL7の場合:

[root@IDCDVAM887 ~]# ifconfig ens256
ens256: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST>  mtu 1500
        ether 00:50:56:9e:19:5b  txqueuelen 1000  (Ethernet)
        RX packets 229406  bytes 59265584 (56.5 MiB)
        RX errors 0  dropped 229454  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(または)

[root@IDCDVAM887 ~]# ip addr show ens256
5: ens256: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:50:56:9e:19:5b brd ff:ff:ff:ff:ff:ff

インターフェイスにIPがまったくないときにUPを表示する実際の目的は何ですか? IPがなければ通信できないと思いますか?それでは、何のために使用されますか?

答え1

はいLOWER_UPステータスイーサネットリンク(または他のリンク層プロトコル)。と定義され、Driver signals L1 upこれは基本的にケーブルが取り付けられ、ケーブルの反対側に他のデバイスが見えることを意味します。

UP有効になっていることを示します。これはip link set <device> up、ofコマンドを使用してユーザー(またはスクリプト)が制御できますifconfig <device> up

次のような他のプロトコルがあります。IPXイーサネットが使用されますが、インターネットプロトコルスタックの一部ではないため、IPアドレスはありません。したがって、UPリンクがIPアドレスを持っていてもIPアドレスを持っていないことは完全に許可されています。

答え2

状態UP管理インターフェイスの状態、つまりインターフェイスがアクティブかどうか。たとえば、次を使用してすべてのインターフェイスを有効にできます。

ip l s eth0 up

ケーブルが接続され、リンクが確立されると、インターフェイスも次のようになります。働く状態RUNNING

多くのカードは、管理状態でなければ発信キャリア生成を無効にし、インターフェイスもUPそうすることUPができないので、RUNNING次のように設定します。

ip l s eth0 down

私のローカルインターフェイスが同時に失われ、リモート側の対応するインターフェイスももう存在しないことを望みますUPRUNNINGしかし、RUNNINGまだUP私の側を再度有効にするとリンクが得られます)。

しかし、これは単なるイーサネットリンクです。リンクにはさまざまなプロトコルがバインドされ、そのうちの1つはIPv4です。デフォルトでは、IPv4はこのプロトコルファミリをサポートするすべてのインターフェイスにバインドされています。

プロトコルをバインドした後、インターフェイスに割り当てられているすべてのアドレスにパケットを送受信できます。アドレスが割り当てられていない場合、これは、単に発信パケットに使用可能な有効なアドレスがないか(したがってパケットの送信に失敗した場合)、着信パケットのアドレスをシステムでローカルに認識されるユニキャストアドレスとして指定できることを意味します(したがって、受信のみ可能)。ブロードキャスト/マルチキャストパケット)。

これはリンクのみを設定するため、リンク層とは何の関係もありません。

一部のプログラム(DHCPクライアントなど)には、ランダムにフォーマットされたパケットを送信し(仮想ソースアドレスを入力するかどうか)、ローカル0.0.0.0コンピュータに向かうかどうかに関係なく、到着するパケットを受信する特別な権限があります。これは自動IPアドレスの設定時に使用されます。ここで、DHCP要求は送信元アドレスを使用して送信され、0.0.0.0サーバーからの応答はブロードキャストアドレスに送信されます255.255.255.255

したがって、インターフェイスにバインドされたアドレスがない場合でも、IPパケットを交換する有効なユースケースがあります。

IPv4に加えて、IPv6、IPX、AppleTalkなどがあり、すべて同じ物理層を共有できます。リンクが確立されると、より高いレベルのプロトコルは、自己起動シーケンスを使用して動作状態に入ることができる。

答え3

アドレスやケーブルがなくてもインターフェイスが「表示」されることがあります。 「動作」ステータスは、オペレーティングシステムでデバイスをアクティブにしたかどうかを示します。

RUNNINGまたはLOWER_UPは、データリンク層(レイヤ2とも呼ばれます)を表します。これは、イーサネットパケットを送受信できることを意味します。 IPはその上に構築されたものです。

インターフェイスが動作しているがIPがない(およびIPを割り当ててはいけない)設定の例は、インターフェイスがブリッジスレーブであることです。

答え4

魔法は、またはオプション-4を指定すると、-oneline実際に想像通りに「実行」インターフェースが表示されるということです。

読みやすくオプションを使用しましたが、-brief結論は重要ではありません。

オプションの結果を見ると、upまだDOWNデバイスが表示されます。

ubuntu@ubuntu:~$ ip -brief address show up
lo               UNKNOWN        127.0.0.1/8 ::1/128
eno1             DOWN
enp130s0f0       UP             100.79.223.150/26 fe80::a9e:1ff:fed9:2864/64

オプションの結果を見ると、-4すべてアドレスがあり、DOWNデバイスはありません。

ubuntu@ubuntu:~$ ip -4 -brief address show
lo               UNKNOWN        127.0.0.1/8
enp130s0f0       UP             100.79.223.150/26

-onlineすべてアドレスがあり、DOWNデバイスはありませんが、アドレスをIPv4とIPv6に分割したオプションの結果を表示します。

ubuntu@ubuntu:~$ ip -oneline address show
1: lo    inet 127.0.0.1/8 scope host lo\       valid_lft forever preferred_lft forever
1: lo    inet6 ::1/128 scope host \       valid_lft forever preferred_lft forever
4: enp130s0f0    inet 100.79.223.150/26 brd 100.79.223.191 scope global enp130s0f0\       valid_lft forever preferred_lft forever
4: enp130s0f0    inet6 fe80::a9e:1ff:fed9:2864/64 scope link \       valid_lft forever preferred_lft forever

関連情報