当我研究 RTNETLINK 时,我了解到如果在内核空间添加/删除接口,内核将发送 RTM_ADDLINK 或 RTM_DELLINK。但是,我对在桥接器中添加或删除以太网时 RTNETLINK 消息有一个疑问?由于在桥接器中添加或删除以太网实际上并不是添加或删除接口,因此是否有任何 RTNETLINK 消息实际传输?
答案1
Rtnetlink 处理接口的路由和其他第 3 层细节。简单地将接口添加到网桥根本不需要 rtnetlink。桥接 - 以及将接口连接到网桥 - 完全发生在第 2 层。
只有当我们应用 IP 地址并开始需要修改路由表时,我们才需要涉及 rtnetlink。由于任何第 3 层寻址都是从桥接器上方而不是下方开始的,因此在添加接口时这永远不是问题。
您甚至不需要桥接器上的 IP 即可将其用作第 2 层交换设备。您也不需要为桥接器提供 IP 即可启动它。当您为其提供第 3 层地址时,将调用 rtnetlink 来智能地修改您的路由表。无论此第 3 层地址是与桥接器、物理 NIC 还是分接设备相关联,都无关紧要。