Как настроить Xen, чтобы разрешить несколько различных диапазонов IP-адресов в домене?

Как настроить Xen, чтобы разрешить несколько различных диапазонов IP-адресов в домене?

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

/etc/network/interfaces для dom0:

# 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 domU:

# 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. Как мне настроить эту штуку, чтобы domU мог подключиться к сети в рабочем режиме?

решение1

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

Затем шлюзу нужен маршрут для 91.121.xx, чтобы перейти к хосту виртуальной машины 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. Затем отправьте ping на внешний интерфейс dom0 с domu:188.165.X.Y

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

Связанный контент