ifconfig:比物理网卡/套接字更多不同的设备项

ifconfig:比物理网卡/套接字更多不同的设备项

我有一个简单的家庭用户路由器 (D-Link DIR-300),带有嵌入式 Linux(内核 2.6.21)和一堆网络工具。通过 telnet 检查该系统的内部结构,我得到了以下命令的输出(稍微修改和剥离;loifbN跳过)ifconfig -a

br0       Link encap:Ethernet  HWaddr CB:B2:32:9C:4D:2E
          inet addr:192.168.5.1  Bcast:192.168.5.255  Mask:255.255.255.0
          RX bytes:94887799 (90.4 MiB)  TX bytes:1042490563 (994.1 MiB)

br8       Link encap:Ethernet  HWaddr CB:B2:32:9C:4D:2E
          RX bytes:974053699 (928.9 MiB)  TX bytes:0 (0.0 B)

eth2      Link encap:Ethernet  HWaddr CB:B2:32:9C:4D:2E
          collisions:0 txqueuelen:1000
          RX bytes:2150801235 (2.0 GiB)  TX bytes:2142220936 (1.9 GiB)
          Interrupt:3

eth2.1    Link encap:Ethernet  HWaddr CB:B2:32:9C:4D:2E
          RX bytes:17544 (17.1 KiB)  TX bytes:994732248 (948.6 MiB)

eth2.2    Link encap:Ethernet  HWaddr CB:B2:32:9C:4D:2E
          RX bytes:0 (0.0 B)  TX bytes:72669 (70.9 KiB)

eth2.3    Link encap:Ethernet  HWaddr CB:B2:55:9C:4D:2E
          RX bytes:96947373 (92.4 MiB)  TX bytes:1045811045 (997.3 MiB)

eth2.4    Link encap:Ethernet  HWaddr CB:B2:32:9C:4D:2E
          RX bytes:0 (0.0 B)  TX bytes:72669 (70.9 KiB)

eth2.5    Link encap:Ethernet  HWaddr CB:B2:32:9C:4D:2F
          inet addr:ex.te.rn.al  Bcast:ex.te.rn.255  Mask:255.255.255.0
          RX bytes:2024079220 (1.8 GiB)  TX bytes:99321148 (94.7 MiB)

eth2.5.35 Link encap:Ethernet  HWaddr CB:B2:32:9C:4D:2E
          ... PROMISC ...
          RX bytes:984221760 (938.6 MiB)  TX bytes:22318 (21.7 KiB)

物理上有 5 个以太网套接字,但从上面的信息可以看出,有 2 个硬件 NIC(CB:B2:32:9C:4D:2E 和 CB:B2:32:9C:4D:2F),并且出现此情况逻辑上:LAN 和 WAN。也许我是错的,但eth2.5似乎是唯一的普通的情况(其自己的IP/MAC)。其他 8 条记录很难理解那里发生了什么:所有 8 条记录都有相同的 MAC (CB:B2:32:9C:4D:2E),只有br0一个分配的 IP,eth2似乎很特殊txqueuelen:1000,并且有一个中断(其他记录没有)有中断,甚至eth2.5),eth2.2并且eth2.4与相同数量的 TX 字节相同,并且它们不接收字节,br8只是接收字节。

那么,这个网络是如何实现的呢?魔法工作?许多不同的设备名称、相同的 MAC、不同的属性
NIC、MAC 地址、设备名称之间有什么关系?

答案1

根据网桥与 NIC 组合?:

当您希望组合两个网络连接但不一定让它们执行相同的任务时,通常会使用桥接(例如,如果您希望虚拟机在网络上显示为真实计算机)。您可以将虚拟机的软件网卡(如果有)与物理卡桥接,使其直接访问 LAN(而不是进行 NAT)

它确实使计算机将它们视为 1,但它们只有一个到 LAN/Internet 的连接。

要知道创建桥使用的接口桥接工具在Linux中。例如brctl 显示 br0,然后会显示用于创建网桥 br0 的接口,并且 br0 的硬件地址(MAC 地址)是用于创建网桥 br0 的第一个接口的 MAC 地址。这是运行后您将看到的第一个界面brctl显示是eth2。看到 ifconfig 结果后,似乎在接口 eth2 和其他接口(例如 eth1、eth3、eth4 和 eth5,名为 eth2.1 等)之间存在一座桥梁。您会看到 eth2.5 的 MAC 地址不同,因为在网桥创建过程中 eth5 被视为第一个接口。

相关内容