
На определенном корневом сервере с 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подход?