Поднятие IPv6 в QEMU на Debian
Добавлено: 17 мар 2026, 21:48
Поднятие IPv6 в QEMU на Debian — задача интересная, и способ её решения сильно зависит от того, как именно ваша гостевая система должна общаться с миром.
Самый гибкий и "взрослый" метод — использование TAP-интерфейса и Bridge (моста). Это позволяет виртуалке выглядеть как полноценное устройство в вашей сети.
Вот пошаговый гайд:
1. Подготовка хоста (Debian)
Для начала убедитесь, что на хосте разрешена пересылка трафика (forwarding).
Отредактируйте /etc/sysctl.conf:
Примените изменения: sudo sysctl -p
2. Настройка сетевого моста
Установите необходимые утилиты:
Создайте мост (например, br0) в /etc/network/interfaces или через nmcli. Если работаете через классический /etc/network/interfaces:
3. Запуск QEMU с TAP-интерфейсом
Чтобы QEMU мог использовать мост, нужен скрипт инициализации. Обычно это /etc/qemu-ifup, но можно указать параметры напрямую в команде запуска.
Пример команды запуска:
После запуска добавьте tap0 в мост:
4. Настройка внутри гостевой ОС
Если в вашей сети работает Router Advertisement (RA), гостевой Debian подхватит IPv6 автоматически (SLAAC). Если нет — настройте статику внутри виртуалки в /etc/network/interfaces:
Альтернатива: Пользовательский режим (SLIRP)
Если вам не нужен доступ к виртуалке извне, а нужен только выход в интернет из неё, можно использовать стандартный -net user, но с явным указанием IPv6 префикса:
Примечание: SLIRP для IPv6 работает, но он менее производителен и имеет ограничения по сравнению с TAP.
Важные нюансы:
Firewall: Не забудьте проверить ip6tables или nftables на хосте. Трафик через мост может блокироваться.
Размер MTU: Иногда IPv6 капризничает, если MTU на туннелях или мостах настроен некорректно (стандарт — 1500, но для некоторых VPN/туннелей может потребоваться 1280).
Самый гибкий и "взрослый" метод — использование TAP-интерфейса и Bridge (моста). Это позволяет виртуалке выглядеть как полноценное устройство в вашей сети.
Вот пошаговый гайд:
1. Подготовка хоста (Debian)
Для начала убедитесь, что на хосте разрешена пересылка трафика (forwarding).
Отредактируйте /etc/sysctl.conf:
Код: Выделить всё
net.ipv6.conf.all.forwarding=12. Настройка сетевого моста
Установите необходимые утилиты:
Код: Выделить всё
sudo apt install bridge-utils iproute2Код: Выделить всё
auto br0
iface br0 inet6 auto # Или static, если у вас статика
bridge_ports eth0 # Замените на ваш физический интерфейс
bridge_stp offЧтобы QEMU мог использовать мост, нужен скрипт инициализации. Обычно это /etc/qemu-ifup, но можно указать параметры напрямую в команде запуска.
Пример команды запуска:
Код: Выделить всё
qemu-system-x86_64 \
-enable-kvm \
-m 2G \
-drive file=debian_guest.qcow2,format=qcow2 \
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no \
-device virtio-net-pci,netdev=net0 \
-daemonizeКод: Выделить всё
sudo ip link set tap0 up
sudo brctl addif br0 tap0Если в вашей сети работает Router Advertisement (RA), гостевой Debian подхватит IPv6 автоматически (SLAAC). Если нет — настройте статику внутри виртуалки в /etc/network/interfaces:
Код: Выделить всё
iface ens3 inet6 static
address 2001:db8::10
netmask 64
gateway 2001:db8::1Если вам не нужен доступ к виртуалке извне, а нужен только выход в интернет из неё, можно использовать стандартный -net user, но с явным указанием IPv6 префикса:
Код: Выделить всё
-netdev user,id=net0,ipv6=on,ipv6-prefix=fd00::/64 -device virtio-net-pci,netdev=net0Важные нюансы:
Firewall: Не забудьте проверить ip6tables или nftables на хосте. Трафик через мост может блокироваться.
Размер MTU: Иногда IPv6 капризничает, если MTU на туннелях или мостах настроен некорректно (стандарт — 1500, но для некоторых VPN/туннелей может потребоваться 1280).