Гид по технологиям

Включение сети в гостях Xen на новых серверах EQ Hetzner (Debian Lenny)

• 5 min read • Сеть • Обновлено 20 Nov 2025
Xen: сеть в гостях на EQ Hetzner (Debian Lenny)
Xen: сеть в гостях на EQ Hetzner (Debian Lenny)

Этот гид показывает, как включить сетевой доступ для Xen-гостей (domU) на новых серверах EQ от Hetzner, когда дополнительные IP привязаны к MAC хоста. Решение — переключиться с мостового режима на маршрутизируемый режим (routed), где dom0 работает шлюзом для domU. Следуйте шагам по настройке dom0 и гостя, затем проверьте соединение и отладьте при необходимости.

Краткое описание проблемы

На серверах EQ Hetzner дополнительные IP-адреса (до трёх) находятся в той же подсети, что и основной IP сервера, но маршрутизаторы Hetzner принимают пакеты только от известных MAC-адресов. Дополнительные IP привязаны к MAC-адресу хоста (dom0), поэтому стандартный мост (bridged) не сработает — пакеты от MAC гостя будут отброшены. Решение — использовать routed mode Xen, при котором dom0 выполняет роль шлюза для domU.

Важно: автор не даёт гарантии работоспособности для всех конфигураций. Этот пример показывает практическую настройку для Debian Lenny.

Предварительное замечание

Предполагается, что Xen на EQ-сервере уже установлен и настроен по аналогии с руководством “Virtualization With Xen On Debian Lenny (AMD64)”. В примере есть существующая виртуальная машина vm.example.com, перенесённая с сервера, где она работала в мостовом режиме — теперь её нужно перевести в маршрутизируемый режим.

Исходные сетевые параметры примера:

  • IP хоста (dom0): 188.40.103.70
  • Шлюз провайдера: 188.40.103.65
  • Маска: 255.255.255.192
  • Дополнительный IP для гостя (domU): 188.40.103.103

Настройка хоста (dom0)

  1. Включите пересылку пакетов и необходимые параметры ядра.

Откройте /etc/sysctl.conf и убедитесь, что в нём присутствуют строки:

vi /etc/sysctl.conf
[...]
net.ipv4.conf.all.rp_filter=1
net.ipv4.icmp_echo_ignore_broadcasts=1

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv4.conf.default.proxy_arp=1
[...]

Затем примените конфигурацию:

sysctl -p
  1. Переключите Xen из network-bridge в network-route.

Откройте /etc/xen/xend-config.sxp и закомментируйте строки, отвечающие за bridge, вместо них добавьте сетевые скрипты для маршрутизации:

vi /etc/xen/xend-config.sxp
[...]
#(network-script network-bridge)
#(vif-script vif-bridge)
(network-script network-route)
(vif-script     vif-route)
[...]
  1. Проверьте конфигурацию гостя в файле /etc/xen/vm.example.com.cfg — убедитесь, что в опции vif прописан дополнительный IP:
vi /etc/xen/vm.example.com.cfg
[...]
#
#  Networking
#
vif  = [ 'ip=188.40.103.103' ]
[...]
  1. Отредактируйте сетевой интерфейс хоста в /etc/network/interfaces. В примере строка с ручным маршрутом в конце прокомментирована — она не нужна при routed-модели.
vi /etc/network/interfaces
### Hetzner Online AG - installimage
# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto  eth0
iface eth0 inet static
  address   188.40.103.70
  broadcast 188.40.103.127
  netmask   255.255.255.192
  gateway   188.40.103.65

# default route to access subnet
#up route add -net 188.40.103.64 netmask 255.255.255.192 gw 188.40.103.65 eth0
  1. Перезагрузите сервер, чтобы применить изменения в сетевых скриптах и параметрах:
reboot

Запуск гостя и настройка внутри domU

После перезагрузки на dom0 запустите гостя и подключитесь к консоли:

xm create /etc/xen/vm.example.com.cfg
xm console vm.example.com

Внутри гостя отредактируйте /etc/network/interfaces и укажите в качестве шлюза IP дом0 (не шлюз провайдера):

vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
 address 188.40.103.103
 gateway 188.40.103.70
 netmask 255.255.255.192

Ключевой момент: строка gateway в госте должна указывать на IP хоста dom0 (188.40.103.70), а не на внешний шлюз 188.40.103.65.

После правок перезагрузите гостя из dom0:

xm reboot vm.example.com

Ожидаемый результат: гостевая система доступна по указанному дополнительному IP, вы можете пинговать гость извне и отправлять запросы из гостя во внешний интернет.

Отладка и наиболее частые проблемы

  • Гость не отвечает на пинги извне:

    • Проверьте, что dom0 действительно отвечает за пересылку: sysctl net.ipv4.ip_forward должно быть 1.
    • Убедитесь, что в /etc/xen/xend-config.sxp используются network-route и vif-route.
    • В dom0 выполните tcpdump на eth0 и посмотрите, приходят ли пакеты к корректному MAC.
  • Пакеты отправляемые гостем не доходят до выхода провайдера:

    • Проверьте, совпадает ли MAC-адрес исходящих пакетов с MAC хоста; в routed mode домен оставляет оригинальный MAC, а маршрутизатор Hetzner ожидает MAC хоста. Если пакеты уходят с другим MAC, проверьте настройку vif-route.
  • Нет доступа из гостя в интернет:

    • Проверьте таблицу маршрутизации в госте: ip route show.
    • Проверьте, что в dom0 нет правил iptables, блокирующих трансляцию.

Альтернативные подходы и ограничения

  • Попытка использовать bridged mode с подменой MAC (MAC spoofing): в некоторых конфигурациях можно настроить гостю тот же MAC, что и у хоста, но провайдеры обычно не поддерживают это и могут блокировать. Этот путь ненадёжен и не рекомендуется.

  • NAT на dom0: можно настроить маскарадинг на dom0 и выдавать гостям частные адреса, тогда не потребуется привязка к MAC провайдера. Минус — потеря прямого публичного IP у гостя и сложности с входящими подключениями.

  • Использовать дополнительный выделенный IP на отдельном интерфейсе (если Hetzner предоставляет): зависит от тарификации и возможностей провайдера.

Контрольная проверка администратора (чеклист)

  • На dom0:

    • net.ipv4.ip_forward = 1
    • В /etc/xen/xend-config.sxp указаны (network-script network-route) и (vif-script vif-route)
    • В /etc/network/interfaces прописан основной IP и шлюз провайдера
    • Применены изменения: sysctl -p и reboot выполнен
  • В конфигурации гостя (/etc/xen/*.cfg): vif содержит ip=<доп. IP>

  • В госте:

    • /etc/network/interfaces содержит address=<доп. IP>, gateway=, netmask корректна
    • Маршруты и разрешение DNS проверены

Критерии приёмки

  • Гость отвечает на ping по дополнительному публичному IP с внешней сети.
  • Из гостя можно достучаться до внешних адресов (например, ping 8.8.8.8).
  • Переадресация пакетов через dom0 работает без потери пакетов и без некорректной фильтрации на MAC.

Ментальные модели и советы

  • Модель: dom0 как роутер — представьте домен гостя в отдельной «комнате», а dom0 в роли двери в общую сеть. Все пакеты гостей идут через дом0 и выходят в сеть под MAC хоста.

  • Всегда проверяйте, какую MAC/ARP политику требует провайдер — это определяет, можно ли использовать мост или только маршрутизацию.

Быстрая проверка с командами

  • Проверить пересылку на dom0:
sysctl net.ipv4.ip_forward
  • Список интерфейсов и маршрутов в госте:
ip addr show
ip route show
  • Прослушать трафик на dom0:
tcpdump -i eth0 host 188.40.103.103

Что делать, если это не работает

  • Проверьте логи xend/xen: /var/log/xen/* и /var/log/messages.
  • Временно включите на dom0 более подробный лог iptables (если он используется).
  • Свяжитесь с поддержкой Hetzner и уточните, как привязаны дополнительные IP к MAC-адресам и какие ограничения есть на EQ-серверах.

Полезные ссылки

Итог

Переключение Xen в routed mode — надёжный способ использовать дополнительные IP на Hetzner EQ, когда провайдер привязывает адреса к MAC хост-системы. Основная идея — включить пересылку пакетов на dom0, настроить network-route/vif-route в Xen и указать в госте шлюз равный IP dom0. При проблемах используйте чеклист, tcpdump и логи для локализации ошибки.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро