Как создать и использовать сетевой мост в Arch Linux и Manjaro

Как создать и использовать сетевой мост в Arch Linux и Manjaro

 

Мост — это то, что объединяет два или более сетевых интерфейса вместе. Сетевой мост в основном используется в виртуализации, чтобы позволить виртуальным машинам получить доступ к внешней сети. Для создания и настройки сетевого моста в Linux World доступны разные инструменты , но они различаются в зависимости от используемого вами дистрибутива Linux. Наиболее распространенные инструменты, которые можно использовать в Arch Linux и связанных дистрибутивах, таких как Manjaro, включают:

  1. Инструмент brctl из пакета bridge-utils.
  2. инструмент netctl
  3. Инструмент ip из пакета iproute2 .
  4. Используя NetworkManager.

Мы воспользуемся инструментом netctl или добьемся результатов, напрямую отредактировав файл конфигурации. В примере, используемом здесь, я создам мост под названием br10, а затем добавлю к нему интерфейсы eno1 и tap0 . Затем я продемонстрирую рабочее состояние моста, добавив его к виртуальной машине, запущенной с KVM.

Шаг 1. Установите инструменты Bridge

Итак, приступим. Перво-наперво, давайте удостоверимся, что у нас установлены утилиты bridge-utils, которые мы будем использовать для просмотра деталей созданного моста.

sudo pacman -S bridge-utils

Шаг 2: Создайте мост:

Создайте файл моста в каталоге / etc / netctl /. Я назову свой мост kvm-bridge, подойдет любое имя.

$ sudo vim /etc/netctl/kvm-bridge 

Добавьте следующее содержимое, изменяя br10 с интерфейсным мостом, который вы создаете, eno1 и tap0 с интерфейсами, которые вы добавляете к мосту, информацию о сети ip с данными вашей сети:

Description="Bridge Interface br10 : eno1,tap0"
Interface=br10
Connection=bridge
BindsToInterfaces=(eno1 tap0)
IP=static
Address='192.168.1.105/24'
Gateway='192.168.1.1'
DNS='192.168.1.1'
MACAddressOf=eno1

## Ignore (R)STP and immediately activate the bridge
SkipForwardingDelay=yes

MACAddressOf = eno1 гарантирует, что интерфейс моста всегда использует MAC-адрес интерфейса eno1. Если вы хотите, чтобы интерфейсу моста был присвоен уникальный MAC-адрес, вы можете удалить эту строку. Я добавил его, потому что у меня есть фильтрация MAC-адресов в моей сети, что делает мост br10 с MAC-адресом физического интерфейса eno1, что позволит мне иметь доступ в Интернет с помощью моста br10.

Вы можете соединить любую комбинацию сетевых устройств, добавив их в строку опций « BindsToInterfaces ».

Если вы хотите включить статический IP-профиль на проводном интерфейсе, независимо от того, подключен кабель или нет, добавьте строку ниже в свой профиль:

SkipNoCarrier=yes 

Если вы настраиваете получение информации об IP-адресе с использованием протокола DHCP, ваша конфигурация будет выглядеть, как показано ниже:

Description="Bridge Interface br10 : eno1,tap0"
Interface=br10
Connection=bridge
BindsToInterfaces=(eno1 tap0)
IP=dhcp
# If you want also for DHCPv6,uncomment below line
#IP6=dhcp

Приведенная ниже конфигурация будет использовать dhcp и назначать мостовой MAC-адрес сетевой карты eno1 .

Description="Bridge Interface br10 : eno1,tap0"
Interface=br10
Connection=bridge
BindsToInterfaces=(eno1 tap0)
IP=no
ExecUpPost="ip link set dev br0 address $(cat /sys/class/net/eno1/address); IP=dhcp; ip_set"
ExecDownPre="IP=dhcp" 

Шаг 3: Удалите IP-адрес интерфейса, добавленного к мосту; eno1

Мой основной физический интерфейс Ethernet — eno1. Поскольку я добавил этот интерфейс в мост, мне нужно удалить его IP-адрес. Вы можете сделать это, отредактировав профиль сети и добавив строку:

set IP=no

Кроме того, вы можете сбросить интерфейс eno1 с помощью NetworkManager. Сделать это

  1. Запустите приложение Network Manager, выбрав Все настройки> Сеть> Имя интерфейса.
  2. Нажмите на настройки вашего интерфейса, мой — eno1
  3. Затем перейдите в Сброс
  4. нажмите на Забыть

Если вы проверите интерфейсы, доступные в интерфейсе Network Manager, eno1 должен исчезнуть, см. Снимок экрана ниже:

Шаг 4: Запустите мост

sudo netctl start kvm-bridge

Шаг 5: Настройте запуск профиля при загрузке компьютера:

sudo netctl enable kvm-bridge

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

sudo netctl reenable kvm-bridge

Вы можете открыть NetworkManager, чтобы увидеть, работает ли интерфейс моста.

  • Команда Brctl может использоваться для просмотра мостов, настроенных в системе.
$ sudo brctl show
bridge name bridge id STP enabled interfaces
br10 8000.a01d48fad8df no eno1
virbr0 8000.5254007baa03 yes virbr0-nic
  • Чтобы увидеть мостовые интерфейсы:
$ sudo bridge link
2: eno1 state UP : <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 master br10 state forwarding priority 32 cost 19 
5: virbr0-nic state DOWN : <BROADCAST,MULTICAST> mtu 1500 master virbr0 state disabled priority 32 cost 100

К этому моменту вы готовы использовать мост на своих виртуальных машинах KVM. Откройте виртуальную машину, на которой вы хотите использовать мост, затем перейдите к ее настройкам, NIC и укажите br10. см. снимок экрана ниже:

Вот и все. Сетевой мост настроен в системе Arch Linux / Manjaro.