Хотя я новичок в XEN (работающем под Ubuntu 14.04), до сих пор у меня не было серьезных проблем. Я установил свою сеть с использованием моста, и до сих пор это хорошо работало на многих разных машинах. Обычно я где-то могу найти ответы, но на этот раз я не справился и ищу помощь.
У меня есть клиентская виртуальная машина (DomU), которую я пытаюсь настроить с большим количеством IP-адресов, и это сильно меня огорчает. Вот установка:
Хост-компьютер имеет два сетевых адаптера, один используется для частного (10.10.10.x) xenbr0, а другой просто соединен мостом для общедоступного IPS (скажем, x.y.z. *) xenbr1:
Ниже мой /etc/networking/interfaces
файл с хоста:
iface eth0 inet manual
auto xenbr0
iface xenbr0 inet static
bridge_ports eth0
address 10.10.10.112
netmask 255.255.255.0
network 10.10.10.0
broadcast 10.10.10.255
gateway 10.10.10.1
auto eth1
iface eth1 inet manual
auto xenbr1
iface xenbr1 inet manual
bridge_ports eth1
bridge_maxwait 1
В клиентской ВМ также используются два мостовых ник /etc/networking/interfaces
:
auto eth0
iface eth0 inet static
address x.y.z.170
netmask 255.255.255.240
broadcast x.y.z.175
gateway x.y.z.161
auto eth1
iface eth1 inet static
address 10.10.10.155
netmask 255.255.255.0
broadcast 10.10.10.255
auto eth0:1
iface eth0:1 inet static
address x.y.z.162
netmask 255.255.255.240
broadcast x.y.z.175
auto eth0:2
iface eth0:2 inet static
address x.y.z.163
netmask 255.255.255.240
broadcast x.y.z.175
auto eth0:3
iface eth0:3 inet static
address x.y.z.164
netmask 255.255.255.240
broadcast x.y.z.175
etc…. up to 8 alaises.
В моем конфигурационном файле xen у меня есть: vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]
Я планирую удалить локальные IP-адреса из виртуальной машины, когда все будет настроено и заработает.
Я использую псевдонимы, так как пытаюсь перенести это с голого компьютера на виртуальную машину. В конце концов, чрезмерное использование IPS будет решено, но по разным причинам я пока не могу этого сделать. В любом случае, когда я загружаю виртуальную машину, только несколько IP-адресов доступны для проверки связи, если я не arping -U -I eth1 x.y.z.162
и т. д. для каждого IP-адреса. Тогда вроде бы хоть что-то отреагировало, но маршрутизация на самом деле не работает. Я могу использовать ssh и просматривать IP-адреса через http, но виртуальные сайты работают некорректно (т.е. он отправляет меня только на один и игнорирует другие) и перезапуск привязки, а некоторые другие службы не отвечают правильно. Это как если бы маршрутизация настроена неправильно, и пока IP-адреса отвечают, на самом деле отвечает не запрошенный IP-адрес, а другой IP-адрес.
Однако это только НА НЕКОТОРЫХ дополнительных IPS. Когда я перезагружаюсь, маршрутизация, исправленная командой arp, теряется. Тогда Bind и несколько других сервисов на виртуальной машине перестанут работать. Я выполняю команду arp, и все снова работает.
Я думаю, что арпинг - это просто пластырь, но он не решает реальной проблемы. Поскольку одна и та же система работает на «голом железе», я почти уверен, что проблема связана с настройкой моей сети XEN, а не с настройкой коммутатора или ОС, которую я пытаюсь перенести.
Чтобы еще больше изолировать проблему, я установил чистый гостевой Ubuntu 14.04 с несколькими IP-адресами, используя более современную (а не устаревшую настройку псевдонимов IP-адресов), показанную ниже на виртуальных машинах. /etc/networking/interfaces
файл:
auto eth0
allow-hotplug eth0
iface eth0 inet static
address x.y.z.110
netmask 255.255.255.240
broadcast x.y.z.175
gateway x.y.z.161
iface eth0 inet static
address x.y.z 162
netmask 255.255.255.240
broadcast x.y.z.175
iface eth0 inet static
address x.y.z 163
netmask 255.255.255.240
broadcast x.y.z.175
and on with the other IPS
Все с одинаковыми результатами. Что мне не хватает? Любая помощь будет оценена.
Я выяснил, в чем была моя проблема, и размещу ее здесь, если кто-то столкнется с аналогичной проблемой.
В моей конфигурации Xen я не указывал MAC-адрес. IE у меня было:
vif = [ 'bridge=xenbr0', 'bridge=xenbr1' ]
Когда мне понадобилось что-то вроде:
vif = [ 'bridge=xenbr0', 'mac=00:11:5e:5n:2c:1c,bridge=xenbr1' ]
Маршрутизация для MAC-адреса не истекла сразу, поэтому выполнение этой команды ARP для каждого IP-адреса исправило маршрутизацию: arping -U -I eth1 x.y.z.162
Я предполагаю, что каждый раз, когда виртуальная машина загружалась, у нее был новый MAC-адрес, и только некоторые таблицы маршрутизации обновлялись при загрузке виртуальной машины.
Теперь, когда MAC-адрес не меняется, все в порядке.
Попробуйте поменять местами конфигурации интерфейса в DomU. Согласно вашей конфигурации Dom0, вы должны использовать eth0 для частного и eth1 для общедоступного IP-адреса в вашем DomU.