![如果在桥接器中添加或删除以太网,rtnetlink 的行为会怎样?](https://linux22.com/image/700476/%E5%A6%82%E6%9E%9C%E5%9C%A8%E6%A1%A5%E6%8E%A5%E5%99%A8%E4%B8%AD%E6%B7%BB%E5%8A%A0%E6%88%96%E5%88%A0%E9%99%A4%E4%BB%A5%E5%A4%AA%E7%BD%91%EF%BC%8Crtnetlink%20%E7%9A%84%E8%A1%8C%E4%B8%BA%E4%BC%9A%E6%80%8E%E6%A0%B7%EF%BC%9F.png)
当我研究 RTNETLINK 时,我了解到如果在内核空间添加/删除接口,内核将发送 RTM_ADDLINK 或 RTM_DELLINK。但是,我对在桥接器中添加或删除以太网时 RTNETLINK 消息有一个疑问?由于在桥接器中添加或删除以太网实际上并不是添加或删除接口,因此是否有任何 RTNETLINK 消息实际传输?
答案1
Rtnetlink 处理接口的路由和其他第 3 层细节。简单地将接口添加到网桥根本不需要 rtnetlink。桥接 - 以及将接口连接到网桥 - 完全发生在第 2 层。
只有当我们应用 IP 地址并开始需要修改路由表时,我们才需要涉及 rtnetlink。由于任何第 3 层寻址都是从桥接器上方而不是下方开始的,因此在添加接口时这永远不是问题。
您甚至不需要桥接器上的 IP 即可将其用作第 2 层交换设备。您也不需要为桥接器提供 IP 即可启动它。当您为其提供第 3 层地址时,将调用 rtnetlink 来智能地修改您的路由表。无论此第 3 层地址是与桥接器、物理 NIC 还是分接设备相关联,都无关紧要。