Назад | Перейти на главную страницу

Как создавать виртуальные сети с помощью libvirt?

Я установил qemu / kvm и попытался создать несколько виртуальных машин и объединить их в сеть.

Я хотел бы достичь 2-3 виртуальных машин в их собственной частной сети (например, 10.0.0.0/24), все машины должны иметь доступ к внешней сети, но только 1 машина должна получить IP, доступный извне.

External Network
  .                     +-----------------+
  |                     | VM 1            |
  |                  +--| IP: 10.0.0.11   |
+-----------------+  |  | IP: 82.130.y.y  |
| Host            |--|  +-----------------+
| IP: 82.130.x.x  |  |
+-----------------+  |  +-----------------+
                     |--| VM 2            |
                     |  | IP: 10.0.0.12   |
                     |  +-----------------+
                     |
                     |  +-----------------+
                     +--| VM 3            |
                        | IP: 10.0.0.13   |
                        +-----------------+

Я пытался добавить br0-мост с brctl и соединил это с eth0, но это также установило сервер имен моего хоста на 192.168.1.1 и сделало это невозможным.

Как мне сделать настройку?

Моя текущая настройка:

Серверы имён:

# /etc/resolv.conf 
domain kyla.fi
search kyla.fi
nameserver 82.130.0.1
nameserver 82.130.63.1

Интерфейсы и IP-адреса:

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether f4:6d:04:71:c4:1f brd ff:ff:ff:ff:ff:ff
    inet 82.130.x.x/26 brd 82.130.x.255 scope global eth0
       valid_lft forever preferred_lft forever

редактировать: Добавлена ​​конфигурация для br0:

# The primary network interface
#auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
    bridge_ports eth0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0

просто virbr0 отсутствует

Нет необходимости иметь два сетевых адаптера для ВМ 1. Я рекомендую настроить 10.0.0.0/24 как «маршрутизируемую сеть», затем настроить маршрутизатор на маршрутизацию 10.0.0.0/24 через 82.130.xx (IP-адрес хоста) и настроить правила брандмауэра на узле, чтобы разрешить входящие пакеты с пунктом назначения 10.0.0.11, а затем заблокировать оставшиеся входящие пакеты с пунктом назначения 10.0.0.0/24.

Если вы хотите сохранить два сетевых адаптера, вам все равно необходимо настроить маршрутизатор для маршрутизации 82.130.y.y через 82.130.x.x, а 10.0.0.0/24 должен быть настроен как «сеть с сетью».

Проверьте вики:

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

External Network
  .                     +-----------------+
  |                br0  | VM 1            |
  |                  +--| IP: 82.130.y.y  |
+-----------------+  |  |   IP: 10.0.0.11 |--+
| Host            |--+  +-----------------+  |
| IP: 82.130.x.x  |                          |
+-----------------+     +-----------------+  |
                        | VM 2            |  |
                        | IP: 10.0.0.12   |--+  virbr1
                        +-----------------+  |
                                             |
                        +-----------------+  |
                        | VM 3            |  |
                        | IP: 10.0.0.13   |--+
                        +-----------------+

Создать новый виртуальная сеть в virsh или virt-manager как изолированная сеть с желаемым диапазоном частных IP-адресов.