首先,您需要了解计算机中可能存在物理网卡(OR/AND逻辑网络适配器)来识别连接/管理连接。
接下来,您有一个关于接口标识符的错误概念。
你所说的(eth,virbr,lo)是接口。在 IPv4 寻址方案中,我们没有接口 ID。我们在 IPv6 地址中有接口 ID。
如The Payoff of IPv6’s Very Large Address Size中所述
在 IPv4 中,IP 地址与用于底层数据链路层网络技术的地址无关。使用以太网网络接口卡 (NIC) 连接到 TCP/IP 网络的主机具有以太网 MAC 地址和 IP 地址,但是这两个数字是不同的,并且在任何方面都不相关。
随着 IPv6 寻址的彻底改革,出现了一个机会来创建一种更好的方式来映射 IP 单播地址和物理网络地址。实施这种卓越的映射技术是 IPv6 地址如此庞大的原因之一。总共 128 位,即使为网络前缀保留了完整的 48 位,为站点子网保留了 16 位,我们仍然有 64 位用于接口标识符,类似于 IPv4 下的主机 ID。
有这么多位可供我们使用,这为我们提供了极大的灵活性。我们可以将接口 ID 基于底层数据链路层硬件地址,而不是使用任意“虚构”的主机标识符,只要该地址的长度不超过 64 位。由于几乎所有设备都使用 64 位或更少的第二层地址,因此将这些地址用作 IP 地址中的接口标识符没有问题。这提供了一个直接的好处:它使网络更易于管理,因为我们不必为每个主机记录两个任意数字。 IP 地址可以从 MAC 地址和网络标识符导出。这也意味着我们将来可以从 MAC 地址中分辨出 IP 地址,反之亦然。
访问this link,更清楚地了解接口ID。
现在,回来解你的疑惑,
所有连接(接口),例如 Ethernet-0、Ethernet-1、WiFi-1 等。拥有自己的interface identifier。您可以将它们视为一种特殊的标识号,用于标识当时可用的接口类型!
当您在 Linux 中键入 ifconfig 时,它会显示当前活动接口的状态。
现在,进入示例部分,假设您的系统上有两个以太网连接,例如,eth0 和 eth1(这些是接口名称)---所以 ifconfig 将打印这两个作为结果它的输出!
所以,要识别这两个独立的接口,必须有一个
interface identifier.接口标识(一般为64位)为
使用接口的 MAC 地址自动生成
从 DHCPv6 服务器获得的修改后的 EUI-64 格式,
随机自动建立,或手动分配。
另外,你提到的接口是一些最常用的接口:-
'lo0'、'gif0'、'stf0'、'en0'、'en1'、'en2'、'bridge0'、'p2p0'
-
lo0---本地网络连接(0为第一次连接局域网)
-
en0---以太网连接(0,1,2 用于以太网上的第 1、2 和第 3 连接)
-
bridge0---到这台机器的桥接
-
p2p0---点对点连接
不知道gif,stf。请注意有逻辑连接/虚拟连接,而不是物理连接(使用网卡)的限制!