Сетевой мост Linux bridge¶
Программный мост объединяет несколько L2-интерфейсов в один домен широковещательной передачи. Он нужен, например, когда гостевые виртуальные машины должны видеть обычную сеть сервера. В НАЙС.ОС CLOUD сетевой мост создаётся .netdev/.network файлами systemd-networkd.
При переносе адреса на bridge легко потерять SSH
IP-адрес управления должен находиться на мосту, а не одновременно на физическом порту и мосту. Перенос управляющего адреса проводите с консоли гипервизора; заранее сохраните все файлы.
Схема¶
сеть L2 / гипервизор
|
ens3 (порт моста, без IP)
|
br0 (IP / DHCP управления)
|
tap0, veth..., гостевые VM
Прежде чем конфигурировать мост, убедитесь, что провайдер разрешает несколько MAC-адресов за интерфейсом и допускает мостовую сеть. В некоторых облаках такой режим технически запрещён.
1. Создание виртуального интерфейса¶
2. Присоединение физического порта¶
Здесь физический порт ens3 становится участником br0. Прежние Address=, DHCP=, Gateway= и DNS физического порта необходимо перенести в профиль моста после согласования схемы. Не редактируйте только эту часть на живом удалённом узле.
3. Настройка адреса на мосту¶
Вариант с DHCP:
Вариант со статическим адресом (используйте вместо DHCP, не одновременно):
Адреса приведены только как пример. Не создавайте второй маршрут по умолчанию на ens3.
4. Проверки перед перезагрузкой¶
networkctl reload
networkctl reconfigure ens3
networkctl reconfigure br0
networkctl status br0
ip -d link show br0
ip -br addr
ip -4 route
bridge link show
journalctl -b -u systemd-networkd --no-pager -n 100
Некоторые устройства при первом создании требуют дополнительного события инициализации. Если br0 не появился, читайте журнал networkd, а не выполняйте ip link delete ens3.
Что часто ломается¶
| Симптом | Вероятная причина | Проверка |
|---|---|---|
Нет IP на br0 |
DHCP недоступен, профиль моста не выбран | networkctl status br0 |
Одновременно IP у ens3 и br0 |
Не удалена адресация физического порта | ip -br addr |
| ВМ без связи | Ограничения MAC / bridge порт не подключён | bridge link, настройки гипервизора |
| Нельзя выйти в интернет | Нет маршрута по умолчанию или OUTPUT DROP | ip route, iptables -S OUTPUT |
| Трафик маршрутизируется неожиданно | Смешаны L2-мост и L3-форвардинг | ip route, sysctl net.ipv4.ip_forward |
Мост сам по себе не обязан включать IP-маршрутизацию между подсетями. Для неё нужна отдельная архитектура с ip_forward и iptables FORWARD/NAT.
Откат¶
Если связь пропала, работайте через консоль. Верните прежний профиль ens3, удалите добавленные файлы 20-br0.* и выполните networkctl reload, затем проверьте адреса и маршруты. Не закрывайте консоль до восстановления SSH.
Источники: systemd.netdev, systemd.network.