У меня есть небольшой сервер с одним сетевым адаптером, на котором я пытаюсь установить мост, чтобы я мог запускать KVM. На этом сетевом адаптере у меня есть пара статических IP-адресов:
eth0 = 192.168.1.1
eth0:1 = 192.168.1.2
eth0:2 = 192.168.1.3
eth0:3 -> Assign the bridge to this
Я пытаюсь установить мост, используя следующие инструкции:
sudo brctl addbr br0
sudo brctl addif br0 eth0:3
sudo ifconfig br0 192.168.1.120 netmask 255.255.255.0 up
sudo route add -net 192.168.1.0 netmask 255.255.255.0 br0
sudo route add default gw 192.168.1.1 br0
sudo tunctl -b -u root -t tap0 > /dev/null
sudo ifconfig tap0 up
sudo brctl addif br0 tap0
Однако когда я выполняю вторую команду:
sudo brctl addif br0 eth0:3
Это переводит ВСЕ устройство eth0 в неразборчивый режим. Это отключает сервер и делает его недоступным для кого-либо, кроме локального.
Есть ли способ связать JUST eth0: 3 с br0 и не переводить все устройство в неразборчивый режим?
Короткий ответ, насколько я знаю, НЕТ.
Длинный ответ: мост - это устройство уровня 2. Думайте об этом как о виртуальном коммутаторе. Чтобы установить мост между сетевой картой и внутренним устройством, вам необходимо взять все данные, которые поступают на сетевую карту, и поместить их на мост (за вычетом фильтрации уровня 2, например vlans .1q). Позвольте мне нарисовать картинку, чтобы объяснить:
Вот как вы хотите, чтобы это работало (сценарий маршрутизации):
<vif> ---- <br0> --- <eth0:3> ---- <peth0> --- <internet>
Но на самом деле виртуальный мост всегда соединяется со слоем 2:
<br0> --- <peth0>-------<internet>
| |
<vif0> <eth0>
<eth0:2>
Здесь peth0 - ваше физическое устройство, а eth0 - логическое устройство (с адресом и т. Д.).
Чтобы получить нужный сценарий, вам придется использовать маршрутизацию вместо мостов. Причина, по которой peth0 переведен в беспорядочный режим, заключается в том, что в противном случае он мог бы отфильтровать данные, направляемые на устройства на мосту. Он не знает, что могут слушать устройства на мосту.
Нет, я почти уверен, что так не пойдет. Вам нужно будет положить весь eth0
устройство в мост и вместо этого добавьте субинтерфейсы к интерфейсу моста, например br0:1
и т.п.
Есть ли причина, по которой вы пытаетесь избежать привязки дополнительных IP-адресов к br0
интерфейс?