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