Назад | Перейти на главную страницу

Необычное поведение сетевых карт на CentOS

Итак, я испытываю некоторую странность на одном из моих серверов. Он имеет два встроенных порта Gigabit Ethernet на материнской плате, оба из которых, похоже, были обнаружены правильно (Broadcom NetXtreme II Gigabit Ethernet). Оба порта подключены к двум отдельным управляемым коммутаторам в одной подсети.

Я указал независимые IP-адреса eth0 и eth1 в одной подсети (10.0.10.20 и 10.0.10.30 соответственно). Я подтвердил, что могу пинговать их обоих.

На управляемых коммутаторах, если я отключу порт, к которому также подключен eth1, я больше не смогу пинговать 10.0.10.30, как ожидалось. Повторное включение порта возобновляет службу. Когда я выключаю порт, к которому подключен eth0, я больше не могу пинговать либо адрес. При повторном включении порта возобновляется обслуживание обоих адресов.

"ifdown eth0" также отключает оба интерфейса (хотя ifconfig показывает, что eth1 все еще работает)

Если я помещаю eth0 в отдельную сеть, будучи физически активным, я сталкиваюсь с той же проблемой, что оба интерфейса не отвечают (это моя самая большая проблема с этой проблемой).

В журнале загрузки или журнале сообщений нет ошибок, и журнал сообщений отражает, что оба интерфейса полностью отключаются, когда я по какой-либо причине выключаю eth0 из той же сети, что и eth1.

Единственные ошибки, которые я когда-либо видел, находятся в ifconfig, где в самом низу eth0 и eth1 будет показано одно из трех сообщений (они не согласованы и не всегда присутствуют). Сообщения следующие:

Прерывание: 185 Память: ea000000-ea012800

Прерывание: 17

Прерывание: 18

Поиск в Google привел к некоторым расплывчатым вопросам, но так и не нашел решения.

Глядя на это, мне кажется, что это проблема arp flux, а не проблема прошивки. Это может возникнуть, когда у вас есть два сетевых адаптера в одной подсети и в вашем случае в одной и той же топологии L2. http://linux-ip.net/html/ether-arp.html

Вы можете проверить это, поместив их в разные IP-адреса / подсети и посмотреть, остались ли у вас те же проблемы. Если вам нужно заставить это работать, очень внимательно посмотрите на arp_filter и свою маршрутизацию.

Вы знаете, Linux действительно не любит две сетевые карты в одной подсети. По крайней мере, не с помощью основных инструментов ifconfig. Только один из них привык к передаче, кажется, что они используют один и тот же MAC-адрес и т. Д. Это вызывает множество странных вещей. Как только что упомянул MattyB.

Лучшее решение - использовать инструменты iproute2 (немного легче читать сообщение в блоге) для настройки сетевых адаптеров. Попробуй это:

Инициализировать интерфейсы:

ip link set eth0 up
ip link set eth1 up

Настроить IP-адреса

ip addr add 10.0.10.20/24 dev ethe0
ip addr add 10.0.10.30/24 dev eth0

Затем настройте таблицу маршрутизации так, чтобы одна из этих сетевых карт была «по умолчанию». ip route добавить 10.0.0.0/16 через 10.0.10.20


- Кристофер Карел