Как использовать один и тот же 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
Другие вопросы по тегам