Я предполагаю, что 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
Первый пинг подтверждает, что мост работает, а второй - маршрутизация работает.