[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Сетевуха работает только в promisc режиме



On 21.05.2012 15:08, "Артём Н." wrote:
>>  Кстати, мы всё рассуждаем про eth1, а что с eth0? Существует ли он,
>>  подключен ли к сети, если да, то не к той же случайно?
> Кстати, хотел вас об этом спросить. :-)
> Ядро самосборное (изначально с oldconfig). Всё, что не нужно выкинуто. Всё, в
> чём сомневался, - оставил модулем.
> Как я понял, есть PHY и M-II подсистемы.

Нет.
Подсистема PHY одна. Почти все (а может и вообще все) современные
Эзернеты состоят из двух чипов: MAC и PHY, связанных между собой шиной
MDIO (конфигурация и служебная информация) и (каким-нибудь вариантов)
MII (данные). При этом чипы вовсе не должны быть одного производителя.

> Изначально (при установке на дистр. ядре) был eth0.
> После какого-то из изменений стал eth1.

Это, скорее всего, значит, что у карточки поменялся MAC. Повод задуматься.

> Я вкомпилил два драйвера (на всякий случай):
> 1. "Drivers for Realtek PHYs". (Supports the Realtek 821x PHY.)

PHY у Вас может быть совершенно другого производителя.

> 2. "Realtek 8169 gigabit ethernet support" (CONFIG_R8169) (Realtek 8169 PCI
> Gigabit Ethernet adapter).
> 
> Очевидно, что PHY не работает. И я его сейчас убрал вообще.

Очевидно как раз обратное. При неработающем PHY у Вас не прошла бы
негоциация, да и вообще карта не смогла бы ничего не отправить, не
получить. Другое дело, что, возможно, работает оно вовсе не
реалтековским драйвером, а с generic.

> Но вопрос: почему две подсистемы и в чём отличия (я мало знаю по адаптерам)?
> И почему остался eth1?

Как я уже написал: это уж точно не из-за драйвера PHY. Драйвер PHY -- не
есть драйвер сетевой карты, он не может появиться, как интерфейс. Скорее
всего, интерфейс Вам переименовывает udev. Насколько мне известно, это
может быть только при смене MAC адреса. Это факт No1.
Факт No2: где-то в Ваших логах был кусок вида
DHCPREQUEST
DHCPNACK
то есть
 а. Обмен пакетами прошёл успешно.
 б. Сервер отказался выдать адрес, который хост запомнил с прошлого
раза, т.е. скорее всего, сервер считает, что этот адрес отдан другому MAC'у.
Факт No3: Promisc помогает.
Факт No4: Как Вы сами пишете, точно так же может не работать и ifupdown,
а после перезагрузки снова работать.

Всё это заставляет меня думать, что неправильно идентифицировали
источник проблемы, как nm, а реально у вас глючит карточка (возможно,
"плавает" MAC адрес в EEPROM'е). Попробуйте задавать MAC руками.

--
Илья



Reply to: