Разрешить гостям KVM в виртуальной сети virsh доступ к реальной внутренней сети

Разрешить гостям KVM в виртуальной сети virsh доступ к реальной внутренней сети

У меня есть домашняя сеть 192.168.1.0 за маршрутизатором 192.168.1.1. В этой сети есть набор существующих хостов Linux и Windows, большинство из которых подключены к проводному Ethernet. Я настраиваю новый сервер, на котором запущен гипервизор KVM и 3 гостевых компьютера Debian. Новый сервер использует Wi-Fi для сетевого подключения.

На гипервизоре я virshнастраивал виртуальную сеть следующим образом:

<network>
  <name>virtual</name>
  <forward mode='route'/>
  <ip address='192.168.2.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.2.2' end='192.168.2.255'/>
      <host mac='52:54:00:00:00:01' ip='192.168.2.2'/>
      <host mac='52:54:00:00:00:02' ip='192.168.2.3'/>
      <host mac='52:54:00:00:00:03' ip='192.168.2.4'/>
    </dhcp>
  </ip>
</network>

Затем я создал статический маршрут в своем маршрутизаторе от 192.168.2.0/24 до IP-адреса гипервизора 192.168.1.41.

При создании гостевых систем Debian я указал имя виртуальной сети и MAC-адреса из virshвиртуальной сети, например так:

--network network=virtual,mac=52:54:00:00:00:01

В результате /etc/network/interfacesдля каждого гостя получается следующее:

iface eth0 inet static
   address 192.168.2.2
   netmask 255.255.255.0
   network 192.168.2.0
   broadcast 192.168.2.255
   gateway 192.168.2.1

При такой конфигурации все в основном работает. Я могу:

  • Подключитесь с хостов на 192.168.1.0 к обоим IP-адресам гипервизора (.2.1 и .1.41)
  • Подключайтесь с хостов на 192.168.1.0 к каждому гостю
  • Подключайтесь из гипервизора к каждому гостю
  • Подключитесь из каждого гостя к гипервизору (.2.1) и к каждому другому гостю
  • Подключение каждого гостя к публичному Интернету
  • Переадресация внешних (интернет) подключений с маршрутизатора на отдельных гостей

Однако яне могуподключиться из гостевых систем к любому хосту в сети 192.168.1.0. Например, я не могу подключиться по ssh из 192.168.2.2 в 192.168.1.31.

А tracerouteпоказывает что-то вроде этого:

traceroute to 192.168.1.31 (192.168.1.31), 30 hops max, 60 byte packets
 1  sol (192.168.2.1)  0.295 ms  0.252 ms  0.243 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *

Я не уверен, является ли моя конфигурация неправильной или у меня возникла проблема с беспроводной точкой доступа.

Я попробовал добавить ebtablesконфигурацию (как обсуждалосьздесь) для трансляции MAC-адресов, но это не дало никаких результатов. Я попытался добавить отдельное сетевое устройство-мост за пределами virsh, но существующие виртуальные устройства не могут быть подключены ни к каким другим мостам. Я рассматривал другие варианты, такие как virshфильтр или, возможно, некоторые правила iptables, но я хватаюсь за соломинку.

Может ли кто-нибудь подсказать, как правильно к этому подойти?

Связанный контент