Переход с NAT на bridge в IPv6
Добавлено: 02 апр 2026, 18:49
Способ А: Сетевой мост (Bridge) — Лучший вариант
Вместо NAT создайте полноценный L2 Bridge на Debian. В этом случае виртуалка станет "полноправным" членом локальной сети, как будто она подключена отдельным кабелем к роутеру.
Создайте мост (например, br0) в настройках сети Debian.
Привяжите к нему физический интерфейс (eth0).
В настройках QEMU выберите "Bridge device" и укажите br0.
Виртуалка получит IPv6 напрямую от вашего роутера.
Способ Б: Использование NDP Proxying
Если вы не можете использовать мост (например, на Wi-Fi или в дата-центре), вам нужно заставить Debian отвечать за виртуалки.
Включите пересылку IPv6:
Добавьте конкретный IP виртуалки в прокси:
Способ В: Маршрутизация на роутере
Если у вас есть доступ к основному роутеру вашей сети:
Пропишите на роутере статический маршрут: "Для подсети виртуалок (например, fd00::/64) шлюзом является IPv6-адрес вашего Debian-хоста".
Убедитесь, что ip6tables на Debian разрешает входящие соединения на интерфейс virbr0.
Что проверить прямо сейчас?
Firewall (ip6tables/nftables): Часто Debian блокирует входящий трафик на виртуальный мост. Попробуйте временно разрешить всё:
IP Forwarding: Убедитесь, что Debian вообще разрешает пересылку пакетов:
(должно быть 1).
Резюме: локальная сеть не знает, где искать IPv6-адреса виртуалок. Самое чистое решение — переход с NAT на Bridge.
Вместо NAT создайте полноценный L2 Bridge на Debian. В этом случае виртуалка станет "полноправным" членом локальной сети, как будто она подключена отдельным кабелем к роутеру.
Создайте мост (например, br0) в настройках сети Debian.
Привяжите к нему физический интерфейс (eth0).
В настройках QEMU выберите "Bridge device" и укажите br0.
Виртуалка получит IPv6 напрямую от вашего роутера.
Способ Б: Использование NDP Proxying
Если вы не можете использовать мост (например, на Wi-Fi или в дата-центре), вам нужно заставить Debian отвечать за виртуалки.
Включите пересылку IPv6:
Код: Выделить всё
sysctl -w net.ipv6.conf.all.proxy_ndp=1Код: Выделить всё
ip -6 neigh add proxy [IPv6-адрес-виртуалки] dev eth0Если у вас есть доступ к основному роутеру вашей сети:
Пропишите на роутере статический маршрут: "Для подсети виртуалок (например, fd00::/64) шлюзом является IPv6-адрес вашего Debian-хоста".
Убедитесь, что ip6tables на Debian разрешает входящие соединения на интерфейс virbr0.
Что проверить прямо сейчас?
Firewall (ip6tables/nftables): Часто Debian блокирует входящий трафик на виртуальный мост. Попробуйте временно разрешить всё:
Код: Выделить всё
ip6tables -A FORWARD -i eth0 -o virbr0 -j ACCEPTКод: Выделить всё
sysctl net.ipv6.conf.all.forwarding Резюме: локальная сеть не знает, где искать IPv6-адреса виртуалок. Самое чистое решение — переход с NAT на Bridge.