Пока я изучаю RTNETLINK, я понимаю, что ядро будет отправлять RTM_ADDLINK или RTM_DELLINK, если интерфейс добавляется / удаляется в пространстве ядра. Однако у меня есть вопрос относительно сообщения RTNETLINK при добавлении или удалении Ethernet к / от моста? Поскольку добавление или удаление Ethernet к / от моста на самом деле не добавляет или не удаляет интерфейс, существует ли какое-либо сообщение RTNETLINK, фактически передаваемое между ними?
Rtnetlink обрабатывает маршрутизацию и другие детали уровня 3 для интерфейсов. Чтобы просто добавить интерфейс к мосту, rtnetlink вообще не потребуется. Мостовое соединение и присоединение интерфейсов к мостам полностью происходит на уровне 2.
Только когда мы применяем IP-адреса и начинаем нуждаться в изменении таблицы маршрутизации, нам нужно задействовать rtnetlink. Поскольку любая адресация уровня 3 начинается над мостом, а не под ним, это никогда не вызывает беспокойства при добавлении интерфейсов.
Вам даже не нужен IP-адрес моста, чтобы он функционировал как коммутационное устройство уровня 2. Вам также не нужно указывать IP-адрес моста, чтобы его активировать. Когда вы даете ему адрес уровня 3, вызывается rtnetlink для разумного изменения ваших таблиц маршрутизации. Не имеет значения, связан ли этот адрес уровня 3 с мостом, физической сетевой картой или устройством с ответвлением.