Менеджер виртуальных машин linux настройка сети

Настройка сети KVM в режиме bridge для Wi-Fi

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

Оглавление

Введение

Недавно один из читателей блога в комментариях к моей статье про установку и настройку QEMU/KVM в Ubuntu задал вопрос, который показался мне интересным: «А возможно ли организовать Wi-Fi bridge на QEMU/KVM?». Для понимания того, почему этот вопрос вообще возник, давайте немного углубимся в различие в передаче данных Ethernet и WiFi.

Wi-Fi требует дополнительных MAC-адресов для связи: в дополнение к адресу источника (SA) и адресу назначения (DA), которые совпадают с MAC-адресами источника и назначения, в случае работы по Ethernet, Wi-Fi также требуется адрес передатчика (TA) и адрес получателя (RA). Всего в сумме получается 4 MAC-адреса.

Поскольку, в общем случае, когда клиент (STA) отправляет TA=SA, а когда точка доступа (AP) отправляет на клиента (STA) DA=RA, то обычно требуются только 3 адреса, и именно так настраивается AP: для использования только 3-х адресов из 4-х возможных.

Клиент-же в режиме моста означает, что (в указанном выше случае) TA!=SA или DA!=RA и, соответственно, необходимы все 4 адреса, в то время как AP настроена только для 3-х адресов. Вот почему в обычных конфигурациях невозможно подключить Wi-Fi в режиме моста. Для работы соединения в режиме моста необходимо включить 4-х адресный режим как на AP, так и на STA. Такой механизм обычно это называется беспроводной распределенной системой (WDS). И, ожидаемо, существует несколько несовместимых реализаций этого механизма. Следовательно необходимо, чтобы оборудование AP и все STA использовали совместимую реализацию.

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

Читайте также:  Symbol table in linux

Установка ПО

Итак, для упрощения задачи установим пакет virt-manager:

sudo apt install -y virt-manager

Далее нам необходимо выделить подсеть внутри вашей локальной сети меньшего размера для виртуальных машин. Для удобства расчета установим программу ipcalc :

sudo apt install -y ipcalc

Планирование сети

После установки приступим к планированию сети. Если у вас есть DHCP сервер, то потребуется его настройка. Например, вы используете сеть 192.168.5.0/24 . Вам нужно выделить из нее часть адресов для подсети, которая будет обслуживать виртуальные машины, а часть оставить для устройств с фиксированными ip-адресами, а остальное адресное пространство отдать для устройств в вашей сети, которые получают адреса с dhcp сервера.

Предположим, что DCHP сервер у вас настроен на роутере с диапазоном выдачи адресов клиентам 192.168.5.16-192.168.5.201 , а первые 15 адресов отданы под статику. Запустив

Address: 192.168.5.16 11000000.10101000.00000101.0001 0000 Netmask: 255.255.255.240 = 28 11111111.11111111.11111111.1111 0000 Wildcard: 0.0.0.15 00000000.00000000.00000000.0000 1111 => Network: 192.168.5.16/28 11000000.10101000.00000101.0001 0000 HostMin: 192.168.5.17 11000000.10101000.00000101.0001 0001 HostMax: 192.168.5.30 11000000.10101000.00000101.0001 1110 Broadcast: 192.168.5.31 11000000.10101000.00000101.0001 1111 Hosts/Net: 14 Class C, Private Internet

Создание сети в Virt Manager

Для наших виртуальных машин мы можем использовать сеть 192.168.5.16/28 из 14 хостов. Для этого на роутере мы меняем диапазон выдаваемых DHCP сервером адресов на 192.168.5.32-192.168.5.201 и создаем новую сеть для виртуальных машин, используя GUI Virt Manager’а.

Параметры виртуальной bridge сети KVM Настроенная виртуальная bridge сеть KVM

Настройка VM

В настройках сети необходимо выбрать режим маршрутизации и ваш физический интерфейс wi-fi. Далее нужно отключить виртуальную сеть по умолчанию (default) и подключить созданную bridged сеть к виртуальному сетевому интерфейсу нашей машины.

Настройка сетевого адаптера VM

Настройка Proxy ARP

Последний штрих для создания нашего «моста» — это включить Proxy ARP для беспроводного интерфейса. Для этого идем в консоль и набираем следующее:

sudo bash -c 'echo 1 > /proc/sys/net/ipv4/conf/wlo1/proxy_arp'

Внимание! В строке выше wlo1 вам необходимо заменить на название вашего беспроводного интерфейса.

Проверка работы

Проверяем, что все работает в запущенной виртуальной машине:

Источник

Как создать и настроить Bridge Networking для KVM в Linux

hosting.energy недорогой хостинг сайтов

hosting.energy недорогой хостинг сайтов

В сегодняшнем руководстве мы рассмотрим, как создать и настроить мостовую сеть для KVM в Linux — RHEL / CentOS / Ubuntu / Debian / Arch Linux и т. д. Мост Linux при использовании в KVM позволяет виртуальной машине получать доступ к внешней сети и службам вне Виртуальная среда.

Существуют различные способы настройки мостовой сети в Linux для использования в KVM. Сеть по умолчанию, используемая виртуальной машиной, запущенной в KVM, — это сеть NAT. В сети NAT создается виртуальная сеть для гостевых машин, которая затем сопоставляется с сетью хоста для обеспечения подключения к Интернету.

Когда вы настраиваете и используете мостовую сеть, гостевые операционные системы получают доступ к внешней сети, подключенной непосредственно к хост-машине. Мост можно создать либо с помощью диспетчера виртуальных машин, либо с помощью инструмента командной строки virsh , либо путем прямого редактирования сетевых сценариев, либо с помощью инструментов управления сетью Linux.

Читайте также:  Linux show network speed

Шаг 1. Создание мостовой сети с помощью диспетчера виртуальных машин.

Выполните следующие действия, чтобы создать мост Linux из диспетчера виртуальных машин (GUI). В вашей системе должен быть установлен KVM.

Откройте диспетчер виртуальных машин и перейдите в меню «Правка»> «Сведения о подключении»> «Виртуальные сети».

Настройте новый сетевой интерфейс, щелкнув + в нижней части окна. Дайте виртуальной сети имя.

Нажмите кнопку «Вперед», в следующем окне укажите информацию о виртуальной сети.

Щелкните «Вперед» и выберите, следует ли включить IPv6.

Выберите тип сети и политику пересылки.

Завершите настройку и сохраните свои конфигурации. Новая виртуальная сеть должна отображаться на странице обзора.

Для сети автоматически создается мост в хост-системе.

$ brctl show virbr4 bridge name bridge id STP enabled interfaces virbr4 8000.525400c2410a yes virbr4-nic 

Шаг 2: Создайте мост KVM с помощью команды virsh.

Создайте новый XML-файл моста.

Добавьте в файл детали моста.

Чтобы определить сеть из файла XML без его запуска, используйте:

$ sudo virsh net-define br10.xml Network br1 defined from br10.xml

Чтобы запустить (ранее определенную) неактивную сеть, используйте:

$ sudo virsh net-start br10 Network br10 started

Чтобы настроить автоматический запуск сети при запуске службы:

$ sudo virsh net-autostart br10 Network br10 marked as autostarted

Установите флажок «Подтвердить», если флаг автозапуска установлен на yes — Постоянный также должен читать «да».

$ sudo virsh net-list --all Name State Autostart Persistent ---------------------------------------------------- br10 active yes yes default active yes yes docker-machines active yes yes fed290 active no yes vagrant-libvirt active no yes

Подтвердите создание моста и IP-адрес.

$ ip addr show dev br10 28: br10: mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00:94:00:f5 brd ff:ff:ff:ff:ff:ff inet 192.168.30.1/24 brd 192.168.30.255 scope global br10 valid_lft forever preferred_lft forever

Шаг 3: Создайте мост, отредактировав сетевые скрипты (CentOS / RHEL / Fedora):

Ниже скрипт создаст мост под названием br10.

$ sudo vim /etc/sysconfig/network-scripts/ifcfg-br10
DEVICE=br10 STP=no TYPE=Bridge BOOTPROTO=none DEFROUTE=yes NAME=br10 ONBOOT=yes DNS1=8.8.8.8 DNS2=192.168.30.1 IPADDR=192.168.30.3 PREFIX=24 GATEWAY=192.168.30.1

Конфигурация интерфейса eth0, к которому я подключаюсь, будет следующей:

$ cat /etc/sysconfig/network-scripts/ifcfg-eno1 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BRIDGE=br10

Перезагрузите сетевой демон.

sudo systemctl disable NetworkManager && sudo systemctl stop NetworkManager sudo systemctl restart network.service

Шаг 4: Создайте мост, отредактировав сетевые сценарии (Debian / Ubuntu):

Настроить интерфейс Bridging:

$ sudo vim /etc/network/interfaces auto br10 iface br10 inet static address 192.168.1.10 network 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1 dns-nameservers 192.168.1.1 bridge_ports eth0 bridge_stp off

Отключите все строки в разделе интерфейса eth0, чтобы они выглядели примерно так:

auto eth0 iface eth0 inet manual

Перезапустите сетевую службу.

 sudo systemctl restart networking.service

Шаг 5: Использование инструмента Nmcli

Используйте nmcli инструмент командной строки управления сетью, чтобы создать мост Linux на желаемом интерфейсе. Давайте сначала перечислим все доступные подключения.

$ sudo nmcli connection show NAME UUID TYPE DEVICE enp1s0 498869bb-0d88-4a4c-a83a-c491d1040b0b ethernet enp1s0 Wired connection 1 0977f29f-fa2e-3d7f-831c-6f41f8782be3 ethernet enp7s0

Поскольку мой мост будет создан на втором устройстве enp7s0 , я удалю существующее соединение, а затем создам мост с этим устройством.

$ sudo nmcli connection delete 0977f29f-fa2e-3d7f-831c-6f41f8782be3 Connection 'Wired connection 1' (0977f29f-fa2e-3d7f-831c-6f41f8782be3) successfully deleted.

1. Сохраните информацию, связанную с мостом, в переменных.

BR_NAME="br10" BR_INT="enp7s0" SUBNET_IP="192.168.30.10/24" GW="192.168.30.1" DNS1="8.8.8.8" DNS2="8.8.4.4"
  • BR_NAME: имя создаваемого моста.
  • BR_INT: физическое сетевое устройство, которое будет использоваться в качестве ведомого моста.
  • SUBNET_IP: IP-адрес и подсеть, назначенные созданному мосту.
  • GW: IP-адрес шлюза по умолчанию.
  • DNS1 и DNS2: IP-адреса DNS-серверов, которые будут использоваться.
Читайте также:  Настройка dnsmasq astra linux

2. Определите новое мостовое соединение.

sudo nmcli connection add type bridge autoconnect yes con-name $ ifname $

Connection 'br0' (be6d4520-0257-49c6-97c2-f515d6554980) successfully added.

3. Измените мост, чтобы добавить IP-адрес, шлюз и DNS

sudo nmcli connection modify $ ipv4.addresses $ ipv4.method manual sudo nmcli connection modify $ ipv4.gateway $ sudo nmcli connection modify $ ipv4.dns $ +ipv4.dns $

4. Добавьте сетевое устройство как подчиненное устройство моста.

sudo nmcli connection delete $ sudo nmcli connection add type bridge-slave autoconnect yes con-name $ ifname $ master $

Connection 'enp7s0' (f033dbc9-a90e-4d4c-83a9-63fd7ec1cdc1) successfully added.
$ sudo nmcli connection show NAME UUID TYPE DEVICE br0 be6d4520-0257-49c6-97c2-f515d6554980 bridge br0 enp1s0 498869bb-0d88-4a4c-a83a-c491d1040b0b ethernet enp1s0 enp7s0 f033dbc9-a90e-4d4c-83a9-63fd7ec1cdc1 ethernet enp7s0

Шаг 6. Подключите сетевой мост

После того, как соединение с сетевым мостом будет создано, активируйте его.

$ sudo nmcli connection up br10 Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)

Просмотрите детали моста, запустив его.

sudo nmcli connection show br10

Команда ip addr должна выдать результат, аналогичный приведенному ниже.

$ ip ad 3: enp7s0: mtu 1500 qdisc fq_codel master br10 state UP group default qlen 1000 link/ether 52:54:00:a2:f6:a8 brd ff:ff:ff:ff:ff:ff 4: br10: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:a2:f6:a8 brd ff:ff:ff:ff:ff:ff inet 192.168.122.10/24 brd 192.168.122.255 scope global noprefixroute br10 valid_lft forever preferred_lft forever inet6 fe80::4f2f:ce6d:dc6b:2101/64 scope link noprefixroute valid_lft forever preferred_lft forever

Поздравляю . Вы успешно создали и настроили мостовую сеть для KVM в системе Linux.

Источник

Оцените статью
Adblock
detector