Я только что решил проблему при открытии интерфейса, но не могу объяснить Зачем это сработало. Так что я ищу кого-нибудь, кто лучше разбирается в сетевом стеке Linux, чтобы объяснить мне это.
Эта машина оснащена двумя гигабитными сетевыми адаптерами Broadcom, использующими драйвер tg3. ОС - CentOS 5.7. Эти ники есть на борту.
Один уже настроен и работает. Я подключил кабель ко второму, другим концом в гигабитный коммутатор.
ethtool eth0 (тот, который работал) показал ссылку, полный дуплекс, автосогласование, гигабитную скорость. Так что никаких изменений.
Однако ethtool eth1 не обнаружил связи. Индикаторы связи горели, хотя индикаторы на переключателе показывали, что согласование происходит неправильно. Итак, я решил, что это какая-то проблема с автосогласованием, и использовал ethtool -s eth1 autoneg off speed 100 duplex full
чтобы попытаться получить ссылку. Это не удалось - отчеты ethtool «не могут установить недопустимый аргумент для новых настроек».
После долгих раздумий и напряженных размышлений я растерялся и наконец добрался до файла ifcfg-eth1. Для этого был включен DHCP, хотя он был установлен на ONBOOT = no. В этой сети нет DHCP-сервера.
Кроме того, я добавлю, что во время этого процесса я несколько раз пытался поднимать и опускать карту, и когда я внес следующие изменения, карта вышла из строя.
Я удалил строку BOOTPROTO = dhcp и установил ONBOOT на yes, а также дал ей действующий IP-адрес и другие обычные настройки. ifup eth1
и, что удивительно, связь была достигнута.
Что меня смущает, так это то, что я мог подумать, что ethtool сможет управлять картой и обнаруживать ссылку без какой-либо ссылки на сетевые настройки ОС для этого устройства. В прошлом, даже если карта Ethernet не настроена или не работает, ethtool будет показывать ссылку, когда есть физическая ссылка на карту.
Но, очевидно, по крайней мере, в этом случае мои предположения неверны.
Есть ли у кого-нибудь объяснение, почему такое поведение проявилось?
Не уверен на 100%, но я считаю, что интерфейс не нужно настраивать, но он должен быть up
. Вы пробовали простой ifconfig eth1 up
или ip link set eth1 up
?