Около месяца назад я задал этот вопрос на Superuser. Ответ, данный там, конечно, работает, но я столкнулся с проблемой, о которой раньше не думал.
Настройка, которую я выполнял (на основе ранее упомянутого ответа) была
auto eth0
iface eth0 inet static
address a.b.c.d
netmask 255.255.255.0
network a.b.c.0
broadcast a.b.c.255
gateway a.b.c.254
auto xenbr0
iface xenbr0 inet static
bridge_ports none
address e.f.g.1
netmask 255.255.255.0
Затем я бы сконфигурировал domU для использования адреса в диапазоне, который был назначен мне центром обработки данных. В частности, этот диапазон будет efg24/29, что даст мне 8 IP-адресов, доступных для domU. Шлюзом будет IP-адрес моста, откуда пакеты направляются через eth0 во внешний мир. Это сработало отлично.
Проблема, которую я осознал пару дней назад, заключается в том, что domU никогда не сможет достичь таких адресов, как efg1, потому что это сам мост. Но что, если одному из domU действительно необходим доступ к efg1 (фактическому внешнему IP)?
Итак, я начал перемещать все внутри сетей, которые мне назначены. Тогда проблема заключалась в том, что с блоком /29 я бы оставил только 5 IP-адресов доступными для domU:
auto xenbr0
iface xenbr0 inet static
bridge_ports none
address e.f.g.25
netmask 255.255.255.248
Я всегда теряю три адреса в своей сети (один для "сети", один для самого моста и один для широковещательного адреса). Я фактически не определял сеть и широковещательный адрес, но ifconfig
прежнему отображает широковещательный адрес как 31 (последний IP-адрес в сети), и я не могу разместить мост по адресу 24 любым рабочим способом. Проблема становится еще хуже с сетью /30, где у меня будет только один из четырех IP-адресов, доступных для domU (да, у меня также есть такая сеть).
Поскольку я плачу за IP-адрес, я хочу максимально эффективно использовать их. Затем я начал исследовать маршрут Xen. Сейчас я пытаюсь использовать vif-route
и network-route
в /etc/xen/xend-config.sxp
чтобы выполнить настройку следующим образом:
+-----------------------------+ +-------------+
| dom0 | | domU |
| | | |
-------eth0 vif1.0--------------eth0 |
| a.b.c.d ???? | | e.f.g.24 |
| | | |
+-----------------------------+ +-------------+
Таким образом, центр обработки данных будет отправлять пакеты для моих IP-адресов на eth0 dom0, dom0 направляет его на правильный vif, который передает его на eth0 domU.
Неважно, что я пытаюсь, я не могу заставить его работать, без каких-либо значимых сообщений об ошибках, с которых можно начать отладку. Два дня постоянных поисков в Google мне не помогли, и сейчас я как бы смотрю на это с пустыми глазами.
Я смотрю на это неправильно или я просто неправильно настраиваю вещи? Возможна ли такая установка? Если так, что я делаю не так?