即使没有与该接口关联的地址,“ip addr”命令也会显示“UP”

即使没有与该接口关联的地址,“ip addr”命令也会显示“UP”

我想了解一下网络接口up是什么意思?因为ip addrifconfig命令将接口显示为已启动,即使没有与其关联的 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> upofifconfig <device> up命令来控制。

还有其他协议,例如IPX使用以太网,但不会有 IP 地址,因为它们不是互联网协议栈的一部分。因此,链接有UPIP 地址但没有 IP 地址是完全可以接受的。

答案2

状态UP行政的接口的状态,即接口是否已启用。您可以使用例如启用任何接口

ip l s eth0 up

如果插入电缆并建立链接,该接口也会获得操作的状态RUNNING

如果管理状态不是UP,许多卡将禁止传出载波生成,并且不是的接口UP也不能RUNNING,所以如果我设置

ip l s eth0 down

我希望我的本地接口同时丢失UPRUNNING,并且远程端的相应接口也将不再存在RUNNING(但仍然如此UP,所以如果我再次启用我的端,我会得到一个链接)。

但这只是以太网链路。在链路之上,可以绑定各种协议,其中之一就是 IPv4。默认情况下,IPv4 绑定到所有支持该协议族的接口。

绑定协议后,我可以发送和接收具有分配给接口的任何地址的数据包。如果没有分配地址,这仅仅意味着没有可用于传出数据包的有效地址(因此发送数据包失败),也没有任何传入数据包可以寻址到系统将其识别为本地的单播地址(因此只能接收广播/组播数据包)。

这与链路层没有丝毫关系,因为它只会建立一条链路。

某些程序(例如 DHCP 客户端)具有特殊权限,可以发送任意格式的数据包(填写幻想源地址 或 )0.0.0.0,并接收到达的数据包,无论它们是否发往本地计算机。这在自动 IP 地址配置期间使用,其中使用源地址 发送 DHCP 请求0.0.0.0,并且服务器的回复将发送到广播地址255.255.255.255

因此,即使没有绑定到接口的地址,也存在交换 IP 数据包的有效用例。

除了IPv4之外,还有IPv6、IPX、AppleTalk等,它们都可以共享相同的物理层。一旦建立了链接,任何更高级别的协议都可以使用自己的激活序列进入操作状态。

答案3

即使没有任何地址或电缆,接口也可以“启动”。 “up”状态是指设备是否被操作系统启用。

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

相关内容