Debian Xen — маршрутизация одной виртуальной машины перестает работать случайным образом

Debian Xen — маршрутизация одной виртуальной машины перестает работать случайным образом

У меня есть сервер с установленным Debian Xen 4.1. Я буду называть этот сервер позже буквой A. На сервере запущено два виртуальных сервера. Назовем эти серверы буквами B и C.

Все серверы A(хост), B(виртуальная машина) и C(виртуальная машина) имеют публичные IP-адреса (у них есть только публичные IP-адреса и ничего больше). Сервер A: xxx82 Сервер B: xxx83 Сервер C: xxx84

У всех них одинаковая сетевая маска и шлюз. У сервера A есть интерфейсы xenbr0, vif2.0 и vif3.0. У сервера B есть интерфейс eth0 (привязанный к vif2.0). У сервера C есть интерфейс eth0 (привязанный к vif3.0). Я проверил маршруты, шлюзы и сетевые маски верны. И конфигурация работает.

route -n (on server A)
Destination     Gateway         Genmask         Flags Metric Ref    Use 
Iface
0.0.0.0         x.x.x.81        0.0.0.0         UG    0      0        0 xenbr0
x.x.x.80        0.0.0.0         255.255.255.240 U     0      0        0 xenbr0

route -n (on server B and C)
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         x.x.x.81        0.0.0.0         UG    0      0        0 eth0
x.x.x.80        0.0.0.0         255.255.255.240 U     0      0        0 eth0

Это может работать дни, недели, месяцы, но затем что-то происходит. Просто случайно виртуальный сервер B больше не может связаться со шлюзом, и никто не может получить доступ к серверу B через публичный IP. Все интерфейсы работают, маршруты по-прежнему правильные. Серверы A и C могут пинговать B, а B может пинговать их. Шлюз недоступен. Я проверил iptables на хосте (сервер A), и он абсолютно правильный, и ничего не изменилось. Я прочитал dmesg, syslog и все файлы журналов, которые я когда-либо мог себе представить на хост-сервере A и виртуальной машине B, но не могу найти никаких связанных с этим ошибок. Маршрутизация больше не работает так, как должна! И ничего не изменилось!

Насколько мне известно, единственным решением является перезагрузка виртуальной машины. После этого она отлично работает следующие несколько месяцев.

Я прочитал, возможно, сотни форумов и обсуждений, но так и не нашел решения - обычно у них что-то не так с конфигурацией или они получают сообщение об ошибке. Когда сервер B больше не может подключиться к шлюзу, сервер C работает отлично, и их сетевые настройки идентичны (за исключением разных IP, конечно).

Я также проверил brctl, и он говорит, что STP enabled - "no". Может ли это быть как-то связано с этим? Трудно поверить, потому что VM C все еще работает отлично.

Буду признателен за любые предложения, с чего начать искать причину этого. Я проверил iptables, ifconfig, brctl, dmesg, логи и т. д. так много раз, что у меня больше нет идей.

Связанный контент