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

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

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

Спасибо

1 ответ1

1

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .