У меня есть несколько хостов Xen, настроенных в мостовом режиме, чьи виртуальные машины используют общедоступные или частные IP-адреса:
Хост # 1
Хост # 2
Хост # 3
Виртуальные машины с общедоступными IP-адресами (3.3.3. *) Доступны из Интернета. Виртуальные машины с частными IP-адресами доступны друг из друга, и это желаемое поведение. Однако они не могут подключиться к Интернету, потому что в локальной подсети нет шлюза 10.0.2.1. Как я могу это исправить?
Одним из решений было бы настроить один сервер с интерфейсом 10.0.2.1 для работы в качестве NAT. Однако мне не нужен SPOF, и я бы хотел, чтобы каждый хост выполнял свой собственный NAT, используя общедоступный IP-адрес, назначенный dom0.
Я считаю, что это просто вопрос настройки iptables в dom0. Если это правильно, то как?
Я нашел следующее решение. Я все еще открыт для хороших альтернатив и подсказок.
На каждом хосте Xen:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -m physdev --physdev-in vif5.0 -o eth0 \
-j SNAT --to-source 3.3.3.71
На каждом domU, имеющем частный IP (10.0.2. *):
route add -net 3.3.3.0 netmask 255.255.255.0 dev eth0
route add default gw 3.3.3.71
route del default gw 10.0.2.1
Есть ли причина, по которой вы не подключаете DomU, которым необходим доступ в Интернет, к интернет-мостам?
Если вы этого не хотите - подключите один из ваших DomU, подключенных к Интернету, к "частным" мостам и установите на нем прокси (squid). Свяжитесь с этим прокси ...
Я не думаю, что подключать Dom0 к Интернету - хорошая идея, но у вас будут свои причины ...