Создание нескольких мостов, подключенных к одному порту eth

517
amir mohamad hatami

Я хочу создать 6 виртуальных машин в KVM на Ubuntu 16.04. Но я хочу, чтобы эти виртуальные машины были доступны извне. Чтобы объяснить больше, у меня есть другой компьютер, который подключен к первому, и я хочу иметь возможность пинговать все виртуальные машины с указанными IP-адресами.

Поэтому мне нужно соединить их в соответствии с здесь . Проблема в том, что у меня только один порт Ethernet, и, насколько я знаю, я могу использовать его только для одной из виртуальных машин.

Есть ли способ создать 6 мостов для виртуальных машин?

Спасибо

0
Вы неправильно понимаете, как это работает. Вы (или более типично программное обеспечение) создаете интерфейс моста, затем каждая виртуальная машина добавляется к мосту. davidgo 5 лет назад 4
Я хочу, чтобы все виртуальные машины имели свои отдельные IP-адреса, доступные снаружи (подключен другой компьютер). Если я использую только один мост, он действует как NAT, так что нет никакой разницы между ними. Сам KVM создает мост, но все виртуальные машины подключены к нему. amir mohamad hatami 5 лет назад 0
Не так. NAT и мосты не связаны. Вы можете установить мост, который не является наттовым, и который дает машинам свой собственный IP. (Я сделал это) davidgo 5 лет назад 5
У вас есть VLAN-совместимый коммутатор? Tim_Stewart 5 лет назад 0
У меня есть роутер amir mohamad hatami 5 лет назад 0

1 ответ на вопрос

1
Austin Hemmelgarn

Похоже, вы немного неправильно понимаете сетевую терминологию. Мост в Linux не имеет ничего общего с NAT или маршрутизацией. Это буквально просто коммутатор Ethernet, полностью реализованный в программном обеспечении.

В вашем случае вы должны быть в состоянии достичь того, что, как вам кажется, нужно, используя ровно один мост со всеми виртуальными машинами, подключенными к этому мосту. Оттуда у вас есть два варианта:

  1. Используйте хост-систему в качестве фактического моста для виртуальных машин, подключив один из ваших обычных интерфейсов Ethernet к мосту. Это не будет делать маршрутизацию и не NAT. Каждая виртуальная машина будет получать свой IP-адрес и информацию о сети от того, какой DHCP-сервер работает в вашей основной сети, и будет индивидуально доступен с любым назначенным ей IP-адресом. Это тот подход, который я бы рекомендовал использовать, если вам не требуется, чтобы хост-система выполняла роль брандмауэра, ваша основная сеть не была Ethernet, или вы не можете настроить мост во время запуска системы до того, как NetworkManager начнет пытаться получить адреса. Преимущество здесь простота.

  2. Используйте хост-систему в качестве маршрутизатора. Это требует не подключения моста к каким-либо физическим интерфейсам, а некоторой ручной настройки правил iptables или nftables для правильной маршрутизации. Этот подход имеет три преимущества перед первым: вы можете использовать хост в качестве брандмауэра, вашим основным сетевым соединением не обязательно должен быть Ethernet, и его можно легко настроить после того, как у вас уже есть сетевой адрес для хост-системы. Вы можете сделать NAT таким образом, но это не обязательно (хотя это гораздо проще настроить, чем другие схемы маршрутизации). Вы также можете выполнять любые другие сопоставления адресов, включая сопоставление 1: 1, которое звучит так, как вы хотите.

В любом случае вам нужно настроить это вне NetworkManager (на самом деле, если вы запускаете их на сервере, просто избавьтесь от NetworkManager, это пустая трата процессорных циклов, если вам не нужно регулярно переключать конфигурации сети), потому что он будет пытаться навязать вам вторую настройку и в противном случае встать на вашем пути.

Спасибо, я создал мост, у виртуальной машины есть доступ в Интернет, но у основного хоста нет. У меня также есть беспроводное соединение в дополнение к порту Ethernet, который используется для подключения к мосту. Но у меня нет доступа в интернет. Есть ли способ получить доступ к интернету? amir mohamad hatami 5 лет назад 0
@amirmohamadhatami Вы можете настроить IP-адрес (или запустить DHCP-клиент) на мосту так же, как и на любом другом сетевом интерфейсе. Austin Hemmelgarn 5 лет назад 0