Как создать и использовать сетевой мост в Arch Linux и Manjaro
Мост — это то, что объединяет два или более сетевых интерфейса вместе. Сетевой мост в основном используется в виртуализации, чтобы позволить виртуальным машинам получить доступ к внешней сети. Для создания и настройки сетевого моста в Linux World доступны разные инструменты , но они различаются в зависимости от используемого вами дистрибутива Linux. Наиболее распространенные инструменты, которые можно использовать в Arch Linux и связанных дистрибутивах, таких как Manjaro, включают:
- Инструмент brctl из пакета bridge-utils.
- инструмент netctl
- Инструмент ip из пакета iproute2 .
- Используя 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. Сделать это
- Запустите приложение Network Manager, выбрав Все настройки> Сеть> Имя интерфейса.
- Нажмите на настройки вашего интерфейса, мой — eno1
- Затем перейдите в Сброс
- нажмите на Забыть
Если вы проверите интерфейсы, доступные в интерфейсе 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.