3

Я пытаюсь запустить Xen в настройках, где domU имеют совершенно другой IP, чем dom0 (не в том же диапазоне сети). В этом ответе все работало в том же диапазоне /24, но не с полностью несвязанными IP-адресами.

dom0's /etc /network /interfaces:

# The primary interface.
# The configuration is done in the bridge.
auto eth0

# The bridge for Xen to use.
auto xenbr0
iface eth0 inet static
        bridge_ports eth0
        address 188.165.X.Y
        netmask 255.255.255.0
        network 188.165.X.0
        broadcast 188.165.X.255
        gateway 188.165.X.254

мост dom0 (brctl show):

bridge name     bridge id               STP enabled     interfaces
eth0            8000.00259022aab2       no              peth0
                                                        vif1.0

Доми /etc /network /interfaces:

# The primary network interface
auto eth0
iface eth0 inet static
    address 91.121.A.B
    gateway 188.165.X.254
    netmask 255.255.255.0

Я также пробовал разные маски в конфигурации domU. Как мне настроить устройство, чтобы домен мог подключаться к сети в рабочем режиме?

1 ответ1

2

Я предполагаю, что 91.121.xx маршрутизируется через Интернет к шлюзу на шлюзе 188.165.X.254

Затем шлюзу нужен маршрут для 91.121.xx, чтобы перейти к хосту VM в 188.165.XY

Это означает, что любой трафик, пытающийся попасть на 91.121.xx, попадет на ваш сервер Xen.

В предыдущем вопросе все интерфейсы были в одной сети, и поэтому все можно было соединить с главным интерфейсом - это соединение уровня 2.

Однако в этом случае гости находятся в сети, отличной от хоста. Нам нужен слой 3 - маршрутизируемый - соединение.

Две вещи должны произойти на хосте

1) Нужен интерфейс в сети 91.121.xx 2) Нужно стать роутером

Для (1) у нас есть такая же настройка сети, как и раньше, однако физический интерфейс находится вне моста. Мы создаем мостовой интерфейс для подключения к виртуальным машинам, но даем ему свой собственный адрес отдельно от интерфейса eth0:

auto lo br0 eth0

iface lo inet loopback

iface br0 inet static
        bridge_ports none
        address 91.121.x.1
        netmask 255.255.255.0

iface eth0 inet static
       address 188.165.X.Y
       netmask 255.255.255.0
       network 188.165.X.0
       broadcast 188.165.X.255
       gateway 188.165.X.254

Как только это произойдет, сервер будет иметь два интерфейса и может выступать в качестве маршрутизатора. Это выключено по умолчанию. Измените /etc/sysctl.conf и убедитесь, что следующая строка не закомментирована:

 net.ipv4.ip_forward=1

Вы можете временно включить это в командной строке с помощью следующего, но указанное выше изменение необходимо, чтобы пережить перезагрузку:

 sysctl -w net.ipv4.ip_forward=1

Теперь сервер будет маршрутизировать пакеты, поступающие на eth0, предназначенные для 91.121.xx, из интерфейса br0. Так что теперь нам нужно соединить VMS с этим интерфейсом. Это именно то, что вы обычно делаете, просто поместите это здесь для полноты:

В .cfg:

 vif = ['bridge=br0, mac=00:16:3E:12:16:19']

В файле интерфейсов domU:

auto eth0
iface eth0 inet static
    address 91.121.A.B
    gateway 91.121.x.x (this is the dom0 br0 interface address)
    netmask 255.255.255.0

Вы можете проверить, что все работает правильно по мосту, отправив команду ping 91.121.x.x из domU в команду ping dom0, а команду ping 91.121.x.254 в команду ping domU из dom0. Затем пропингуйте внешний интерфейс dom0 от domu: 188.165.X.Y

Первый пинг подтверждает, что мост работает, а второй - маршрутизация работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .