February 21, 2019

Настраиваем сетевые интерфейсы Linux Bridge в системе виртуализации Proxmox без перезагрузки системы.

В настоящий момент у Proxmox нет возможности создания сетевых интерфейсов в web оболочке без перезагрузки. Эту неприятность можно сделать ручками.

Задача развернуть систему виртуализации Proxmox с возможностью создание виртуальных машин (CT/VM) в различных сегментах сети (используется Vlan/dot1q).

Дана сеть с тремя сегментами сети: внешняя (смотрит в интернет) 87.87.87.8/29 Vlan 10, локальная для пользователей 192.168.20.0/24 Vlan 20, локальная техническая 192.168.30.0/24 Vlan 30. Маршрутизатор с адресами 87.87.87.10, 192.168.20.1, 192.168.30.1. Необходимо поднять три сервиса в трёх сегментах сети c помощью CT/VM на Proxmox, например, web во внешней, 1с кластер в локальной и мониторинг в технической.

Имеем только установленный Proxmox c сетевым интерфейсом enp9s0f0.30 в технической сети с настроенными параметрами в Vlan 30:

IP: 192.168.30.5/24 Gateway: 192.168.30.1

См. рис. ниже.

Сразу после установки перевести enp9s0f0 работу Proxmox в ражим dot1q (метка Vlan). Эту настройку лучше делать рядом, либо через RMM/iLO/BMC консоль, нужно отчётливо понимать, что к серверу будет потерян доступ, если допустить ошибку при настройке.

vi /etc/network/interfaces

Перед изменением:

               auto lo
               iface lo inet loopback
               
               iface enp9s0f0 inet manual
               
               auto vmbr0
               iface vmbr0 inet static
                      address 192.168.30.5
                      netmask 255.255.255.0
                      gateway 192.168.30.1
                      bridge_ports enp9s0f0
                      bridge_stp off
                      bridge_fd 0

После изменений:

               auto lo
               iface lo inet loopback
               
               iface enp9s0f0 inet manual
               
               auto vmbr0
               iface vmbr0 inet manual
                      bridge_ports enp9s0f0
                      bridge_stp off
                      bridge_fd 0
 
               auto vmbr30
               iface vmbr30 inet static
                      address 192.168.30.5
                      netmask 255.255.255.0
                      gateway 192.168.30.1
                      bridge_ports enp9s0f0.30
                      bridge_stp off
                      bridge_fd 0

/etc/init.d/networking restart или перезагрузка.

На коммутаторе не забываем перевести порт подключения Proxmox в режим trunk dot1q.

См. рис. ниже.

Сейчас мы спокойно можем создавать CT/VM в сети 192.168.30.0/24.

Например, сервер мониторинга выбирая при создании CT/VM интерфейс vmbr30.

Нам удаленно необходимо поднять сервер 1с в Vlan 20 и web-сервер в Vlan 10, но интерфейсов подходящих у нас нет.

С помощью командной строки:

Для Vlan20:

# brctl addbr vmbr20 (создаём мост)

# brctl stp vmbr20 off (отключаем протокол stp)

# brctl setfd vmbr20 0 (отключаем задержку при пересылке пакетов)

# ip link add link enp9s0f0 name enp9s0f0.20 type vlan id 20 (создаём виртуальный интерфейс enp9s0f0.20 привязанного к физическому enp9s0f0 с меткой dot1q 20)

# brctl addif vmbr20 enp9s0f0.20 (привязываем виртуальный интерфейс enp9s0f0.20 к enp9s0f0.20)

# ip link set dev enp9s0f0.20 up

# ip link set dev vmbr20 up

Для Vlan10:

# brctl addbr vmbr10

# brctl stp vmbr10 off

# brctl setfd vmbr10 0

# ip link add link enp9s0f0 name enp9s0f0.10 type vlan id 10

# brctl addif vmbr10 enp9s0f0.10

# ip link set dev enp9s0f0.10 up

# ip link set dev vmbr10 up

Тоже самое в конфигурационном файле:

# vi /etc/network/interfaces

Перед изменением:

               auto lo
               iface lo inet loopback
               
               iface enp9s0f0 inet manual
               
               auto vmbr0
               iface vmbr0 inet manual
                      bridge_ports enp9s0f0
                      bridge_stp off
                      bridge_fd 0
 
               auto vmbr30
               iface vmbr30 inet static
                      address 192.168.30.5
                      netmask 255.255.255.0
                      gateway 192.168.30.1
                      bridge_ports enp9s0f0.30
                      bridge_stp off
                      bridge_fd 0

После изменений:

               auto lo
               iface lo inet loopback
               
               iface enp9s0f0 inet manual
               
               auto vmbr0
               iface vmbr0 inet manual
                      bridge_ports enp9s0f0
                      bridge_stp off
                      bridge_fd 0
 
               auto vmbr10
               iface vmbr10 inet static
                      bridge_ports enp9s0f0.10
                      bridge_stp off
                      bridge_fd 0
 
               auto vmbr20
               iface vmbr20 inet static
                      bridge_ports enp9s0f0.20
                      bridge_stp off
                      bridge_fd 0
 
               auto vmbr30
               iface vmbr30 inet static
                      address 192.168.30.5
                      netmask 255.255.255.0
                      gateway 192.168.30.1
                      bridge_ports enp9s0f0.30
                      bridge_stp off
                      bridge_fd 0

Проверяем:

# brctl show

bridge name    bridge id              STP enabled    interfaces
vmbr0         8000.003048f00e3e      no             enp9s0f0
vmbr20        8000.003048f00e3e      no             enp9s0f0.10
vmbr20        8000.003048f00e3e      no             enp9s0f0.20
vmbr30        8000.003048f00e3e      no             enp9s0f0.30

# ip link show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp9s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vmbr0 state UP mode DEFAULT groupdefault qlen 1000
   link/ether 00:30:48:f0:0e:3e brd ff:ff:ff:ff:ff:ff
3: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
   link/ether 00:30:48:f0:0e:3e brd ff:ff:ff:ff:ff:ff
4: vmbr10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
   link/ether 00:30:48:f0:0e:3e brd ff:ff:ff:ff:ff:ff
5: enp9s0f0.10@enp9s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master vmbr10 state UP mode DEFAULT group default qlen 1000
   link/ether 00:30:48:f0:0e:3e brd ff:ff:ff:ff:ff:ff
6: vmbr20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
   link/ether 00:30:48:f0:0e:3e brd ff:ff:ff:ff:ff:ff
7: enp9s0f0.20@enp9s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master vmbr30 state UP mode DEFAULT group default qlen 1000
   link/ether 00:30:48:f0:0e:3e brd ff:ff:ff:ff:ff:ff
8: vmbr30: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
   link/ether 00:30:48:f0:0e:3e brd ff:ff:ff:ff:ff:ff
9: enp9s0f0.30@enp9s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master vmbr30 state UP mode DEFAULT group default qlen 1000
   link/ether 00:30:48:f0:0e:3e brd ff:ff:ff:ff:ff:ff

Теперь можно спокойно перейсти к созданию CT/VM через web админку.

Новые vmbr20, vmbr10 и привязанные к ним метки Vlan 20 и Vlan 10 есть.

Если Вам не удается решить какую-либо проблему самостоятельно, обращайтесь к нам.