Насколько я понимаю, сетевой мост - это своего рода «виртуальный коммутатор», который виртуально соединяет сетевые устройства (которые были добавлены к мосту), как если бы я подключил их к настоящему коммутатору с помощью кабелей ... но что-то должно быть не так с это своего рода аналогия, так как по какой-то причине мне нужно установить свой IP-адрес на мостовом устройстве.
Например, возьмем следующую настройку: у меня есть машина, которая действует как хост для нескольких виртуальных машин (с собственными виртуальными сетевыми устройствами vnet0, vnet1, vnet2, ...). На этой машине есть один физический сетевой интерфейс eth0, который я хочу использовать для всех виртуальных машин и моей хост-машины для связи с внешним миром.
Поскольку мой хост-компьютер должен иметь IP-адрес, я бы подумал, что мне следует настроить этот IP-адрес (шлюз по умолчанию, DNS-серверы и т. Д.) На eth0. Затем я бы создал мост br0 и добавил к нему все интерфейсы (eth0, vnet0, vnet1, vnet2, ..). Это не работает ...
Вместо этого мне нужно настроить мост br0 так, чтобы он имел IP-адрес моего хост-компьютера (а также настроил шлюз по умолчанию и DNS-серверы), а затем добавить все интерфейсы (eth0, vnet0, vnet2, ...) к мосту br0 .
Ну ... это работает. Но мне действительно интересно, почему определение IP для eth0 не работает. Кажется, мне не хватает фундаментальных знаний о том, как это на самом деле работает. Так что я был бы рад, если бы кто-нибудь объяснил мне, что в этом не так. Обычно я действительно хочу понять, как все это работает. Так что буду рад, если вы вдавитесь в подробности с протоколами.
Ты был очень похож на UL: https://unix.stackexchange.com/questions/86056/why-does-linux-require-moving-ip-from-eth-interface-to-bridge-interface
Аналогия заключается в том, что ETH напоминает восходящий кабель L1.