Как использовать один и тот же IP для dom0 и один domU в XEN
В настоящее время у меня есть Xen на Debian Wheezy DOM0. У меня есть 6 (общедоступных) IP-адресов, и я хотел бы настроить 6 виртуальных машин (каждая использует один IP-адрес).
Чтобы сохранить доступ к dom0, я бы хотел, чтобы dom0 ssh привязывался к одному IP-порту (скажем, 4444). Я действительно не знаю, с чего начать. Есть указатели?
1 ответ
Итак, я наконец-то нашел решение, о котором я расскажу подробнее:
В этом примере у нас есть один физический сетевой интерфейс (eth0
), 3 IP-адреса и 3 виртуальных машины:
a.a.a.a
(это будет общий для dom0 и одного domU под названиемVM_A
)b.b.b.b
(на одного человекаVM_B
)b.b.b.c
(на одного человекаVM_C
)
dom0 / etc / network / interface:
auto xenbr0
iface xenbr0 inet static
bridge_ports eth0
address a.a.a.a
netmask 255.255.255.0
network a.a.a.0
broadcast a.a.a.255
gateway a.a.a.254
VIF-скрипт по умолчанию, используемый в /etc/xen/xend-config.sx
будет (vif-script vif-bridge)
, Это для VM_B
а также VM_C
которые имеют свои IP.
Для скрипта конфигурации VM_B
а также VM_C
(/etc/xen/VM_[BC].cfg) мы будем иметь:
vif = [ 'ip=b.b.b.b,mac=XX:XX:XX:XX:XX:XX' ]
Для скрипта конфигурации VM_A
(/etc/xen/VM_A.cfg) у нас будет:
vif = [ 'ip=192.168.0.1,script=vif-nat']
Мы должны добавить правила iptables, чтобы сделать VM_A
виден в интернете:
iptables -t nat -A POSTROUTING -s 192.168.0.1 -o xenbr0 -j MASQUERADE
# One rule for each port that need to be forwarded to `VM_A`
iptables -t nat -A PREROUTING -p tcp -d a.a.a.a --dport 22 -j DNAT --to 192.168.0.1:22
iptables -t nat -A PREROUTING -p tcp -d a.a.a.a --dport 80 -j DNAT --to 192.168.0.1:80
Также необходимо включить пересылку пакетов (/etc/sysctl.conf
):
net.ipv4.ip_forward=1
net.ipv4.conf.eth0.proxy_arp=1