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


16

我想了解网络接口的含义是什么?因为ip addrifconfig命令即使没有IP地址也将接口显示为up。

例如在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
以太网帧不仅可以包含IP数据包,还可以做更多的事情。
casey 2014年

Answers:


17

LOWER_UP是的状态以太网链路(或其他链路层协议)。定义为Driver signals L1 up,这基本上意味着电缆已安装,并且可以在电缆的另一端看到另一个设备。

UP它已启用的手段。您(或脚本)可以使用ip link set <device> upof ifconfig <device> up命令来控制此操作。

还有其他协议,例如使用以太网的IPX,但由于它们不是Internet协议堆栈的一部分,所以将没有IP地址。因此,完全可以接受链接,UP但没有IP地址。


DHCP实际上是建立在UDP广播的基础上的,而UDP广播需要一个IP层(实际上,它可以被路由)。过去使用IP替代的另一个例子是NetBIOS(在通过IPX / SPX移植到NetBIOS,然后通过TCP / IP移植为NetBIOS之前)
pqnet 2014年

[root @ IDCDVAM887〜]#ip addr show eno33557248 3:eno33557248:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast状态UP qlen 1000 link / ether 00:50:56:9e:68:86 brd ff:ff :ff:ff:ff:ff inet 10.54.2.7/32范围全局eno33557248:1永久有效_lft永远首选_lft在上述格式中,存在带有某些IP的虚拟接口'eno33557248:1'。为什么它没有单独显示UP?仅将原始接口显示为UP是否足够?
Srikanth Ganesan'9

@pqnet-我试图说明OP问题的“无IP,无通信”部分是不正确的。也许那不是最好的例子!我将其删除,因为这只会引起混乱。
garethTheRed 2014年

现在我明白了那部分,谢谢你们.. !!!
Srikanth Ganesan 2014年

RHEL7中的ip addr命令已针对配置了多个虚拟接口或别名的接口发出通知,导致如何查找其是否启动引起了很多困惑
Srikanth Ganesan 2014年

7

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配置中,DHCP请求使用的源地址发送0.0.0.0,并且来自服务器的答复被寻址到广播地址255.255.255.255

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

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


>>非UP接口不能运行<<。我认为这可能不适用于solaris x86机器,即使状态不是“ UP”,界面仍在运行。例如1.插入一个新的虚拟接口。root @ IDCDVAM890:〜#ifconfig net0:2 plumb 2.检查接口状态。正在运行,但未分配IP。root @ IDCDVAM890:〜#ifconfig net0:2 net0:2:flags = 1000842 <广播,运行,多播,IPv4> mtu 1500索引2 inet 0.0.0.0网络掩码0
Srikanth Ganesan 2016年

@SrikanthGanesan,您不需要IP地址就可以使接口处于UP或RUNNING状态,实际上,该接口需要同时处于UP和RUNNING状态才能使DHCP正常工作。Solaris似乎从父级继承了虚拟接口的RUNNING状态,但是保留了单独的UP状态。这有些不正常,可能很有趣的是在外部视图中查看他们所运送的SNMP代理是否对此进行了纠正。
西蒙·里希特

3

即使没有任何地址,接口也可以“打开”。“ up”状态是指数据链路层(也称为第2层),即“ up”是指您可以发送和接收以太网数据包。IP是建立在它之上的东西。

当接口是桥接从站时,接口处于打开状态但没有IP(并且不应为其分配IP)的配置示例。


0

神奇的是,如果您指定-4选项或-oneline,那么它将如您想象的那样真正显示“正在运行”界面。

为了更易于阅读,我使用了-briefoption,但结论并不重要。

看到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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.