Проблема с сетью / маршрутизацией с centos

У меня проблема с моей коробкой centos. После обновления нескольких пакетов, через некоторое время сеть сломается.

Случается, что eth0 больше не работает. Только ошибка в файле журнала, которую я нашел, была такой:

Invalid IP4 netmask 'NETMASK0' "0.0.0.0" 

После некоторых исследований я понял, что это проблема с файлом config-eth0, поскольку сеть запускается, но маршруты не добавляются. Если я добавлю их вручную, все будет хорошо.

Без него таблица маршрутизации очень странная:

  [root@CentOS-70-64-minimal network-scripts]# route -e Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default gateway 0.0.0.0 UG 0 0 0 eth1 default gateway 0.0.0.0 UG 0 0 0 eth0 gateway 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 CentOS-70-64-mi 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0 188.40.24.199 gateway 255.255.255.255 UGH 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 

Это CentOS Linux версии 7.2.1511 (Core).

/ И т.д. / sysconfig / сети-скрипты / ifcfg-eth0:

 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes HWADDR=44:8A:5B:D8:74:B3 IPADDR=136.243.34.136 NETMASK=255.255.255.255 SCOPE="peer 136.243.34.129" IPV6INIT=yes IPV6ADDR=2a01:4f8:212:283::2/64 IPV6_DEFAULTGW=fe80::1 IPV6_DEFAULTDEV=eth0 

/ И т.д. / sysconfig / сети-скрипты / маршрутно-eth0

 # routing for eth0 ADDRESS0=0.0.0.0 NETMASK0=0.0.0.0 GATEWAY0=136.243.34.129 

Btw, eth1 работает нормально. Также на другом сервере все интерфейсы работают с одинаковой конфигурацией.

Проблема может быть в том, что она была centos 6, а затем обновлена ​​до centos 7. Возможно, некоторые настройки остались и проблема.

Поскольку сайт в прямом эфире, я сделал временное решение, добавляя эту линию в crontab для запуска каждую минуту:

 /etc/sysconfig/network-scripts/ifup-routes eth0 

/etc/sysconfig/network-scripts/route-eth0 не является правильным местом для настройки шлюза по умолчанию, этот файл должен использоваться только для дополнительных статических маршрутов. У вас должна быть строка GATEWAY= /etc/sysconfig/network-scripts/ifcfg-eth0 или ifcfg-eth1 , а не обе. Без какой-либо расширенной маршрутизации, имеющей более одного маршрута по умолчанию, не будет работать, как показывает ваш вывод route .

Если вы настроили привязку точки точки к точке (потому что NETMASK=255.255.255.255 ), то вы хотите маршрутизировать весь трафик через eth0:

IPADDR=136.243.34.136 NETMASK=255.255.255.255 SCOPE="peer 136.243.34.129"

Я не понимаю, для чего вы настроили маршрут по умолчанию через eth1?

Я думаю, вам нужно изменить конфигурацию интерфейса eth0:

 IPADDR=136.243.34.136 NETMASK=255.255.255.127 

И удалите файл конфигурации маршрутизации для интерфейса eth0. Я вижу, что два интерфейса подключены к двум независимым провайдерам. Вот почему я рекомендую вам использовать iproute2 . Как его настроить, вы можете увидеть в разделе Настройка маршрутов по умолчанию в Linux