Это проблема, которую я несколько лет игнорировал.
У меня есть стабильный сервер Debian под управлением linux 3.16.0-4-amd64. Через несколько минут или часов после загрузки сервер теряет исходящее сетевое подключение и перестает отвечать на SSH и ping. Открытые SSH-соединения зависают. Однако у меня есть 3 виртуальных машины на основе KVM, работающих на этом хосте, и они могут буквально работать годами без каких-либо проблем с подключением. Я тоже могу их перезагрузить.
/etc/network/interfaces
:
auto lo
iface lo inet loopback
iface eth0 inet manual
auto br0
iface br0 inet static
address xxx.xxx.xxx.6
netmask 255.255.255.0
network xxx.xxx.xxx.0
broadcast xxx.xxx.xxx.255
gateway xxx.xxx.xxx.1
bridge_ports eth0
bridge_stp off
bridge_maxwait 0
bridge_fd 0
В журнале нет ничего интересного. Единственное сообщение, связанное с сетью, в нем следующее, и оно обычно приходит через 10–15 минут после загрузки, но, возможно, за несколько часов до отключения:
kernel: br0: Multicast hash table maximum of 512 reached, disabling snooping: eth0
route -n
и ip addr
выход не меняется при отключении. ping 8.8.8.8
говорит:
From OWN_IPv4 icmp_seq=1 Destination Host Unreachable
Отключение IPv6 (которым я сейчас не пользуюсь) не помогло.
редактировать: Это происходит независимо от того, запущены виртуальные машины или нет. Мне просто было любопытно, что у них есть подключение, а у хоста его нет, поэтому я упомянул их. Никакого трафика быть не должно, кроме периодического сканирования SSH.
Машина не теряла подключение к сети в течение 16 часов подряд, поэтому я почти уверен, что это ›исправлено‹. Я загрузился с /etc/network/interfaces
файл без определенного моста:
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet static
address xxx.xxx.xxx.6
netmask 255.255.255.0
network xxx.xxx.xxx.0
broadcast xxx.xxx.xxx.255
gateway xxx.xxx.xxx.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers SOME_IP SOME_OTHER_IP
Через два часа (на всякий случай) я скопировал /etc/network/interfaces
от вопроса и побежал:
ip address flush eth0 scope global && ifup br0
Через четыре минуты хеш-таблица многоадресной рассылки снова заполнилась, но меня это не волновало. Еще через два часа я загрузил виртуальные машины.
Таким образом, очевидно, что загрузка с помощью моста приводит к потере связи системы через разное время, тогда как добавление моста после загрузки, похоже, работает. Хотя понятия не имею, почему это так.