Смешанная маршрутизация Xen

Смешанная маршрутизация Xen

На определенном корневом сервере с 1+X публичными IP-адресами в размещенной среде, работающей под управлением Debian Lenny с Xen 3.2, я хочу установить несколько domU. Мостовой сетевой маршрут невозможен из-за требований хостинговой компании. Они рекомендуют маршрутизированную настройку, но, насколько я понимаю, это требует расходования двух публичных IP-адресов на dom0, чего я не могу себе позволить.

В моей настройке X domUs будут иметь публичный IP-адрес и должны быть доступны из сети. Другие domUs должны быть в частных подсетях (например, 10.0.0../ 192.168..) и не достижимы извне. domU в одних и тех же частных подсетях должны иметь возможность добираться друг до друга, но не до domU в других частных подсетях. Плюсом было бы, если бы весь трафик (включая domU с публичными IP-адресами) направлялся через dom0, который мог бы выступать в качестве брандмауэра (iptables?).

Есть ли кто-нибудь, у кого такая же конфигурация, как у меня, и кто готов поделиться файлами конфигурации и советами?

решение1

Вам следует настроить два моста на dom0. Для этого можно использовать стандартные записи /etc/network/interfaces. Предположим, что ваша реальная карта — eth0 (и за ней есть DHCP-сервер), и вы установили bridge-utils. Файл может выглядеть так:

auto br0
iface br0 inet dhcp
    bridge_ports eth0
    bridge_maxwait 0

auto br1
iface br1 inet static
    bridge_ports none
    bridge_maxwait 0
    address 192.168.0.1
    netmask 255.255.255.0

Вы настраиваете /etc/xen/xend-config.sxpс помощью network-brigde и vif-bridge. В каждом файле конфигурации domU вы выбираете, хотите ли вы, чтобы у него был прямой внешний доступ (через br0) или он должен получить доступ только через br1. Для этого вы можете использовать строки vif, например:

vif = ['bridge=br0']
vif = ['bridge=br1']

Конечно, вам все равно придется настроить NAT/маскарадинг на br1, а сетевая конфигурация domU должна совпадать (т. е. те, что на br0, должны использовать DHCP, а те, что на br1, должны иметь статический IP-адрес, как в моем примере выше).

решение2

Я настроил то же самое. То, что мы сделали, было NAT. Это определенно то, что вы ищете. Вам нужен скрипт в dom0, который преобразует NAT трафик публичных IP-адресов в соответствующие частные IP-адреса. Вы, очевидно, можете применить правила брандмауэра в этом процессе.

Для преобразования IP-адресов в NAT достаточно одной строки:

iptables -t nat -A PREROUTING -i eth0 -d PUBLICIP -j DNAT --to-destination INTERNALIP

Повторите этот процесс для каждого публичного IP-адреса и добавьте правила брандмауэра, если хотите.

Маскировка виртуальных машин:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

решение3

Мостовой сетевой маршрут невозможен из-за требований хостинговой компании.

Мне просто интересно, я понятия не имею, сработает ли это, но вы исследовали возможность использованияпрокси-arpподход?

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