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

Подключение адаптера 10/100 Мб к LAN 1000 Мб

У меня следующая проблема. Я не могу получить IP-адрес с помощью DHCP. У меня есть адаптер 10/100 Мб на приставке, подключенной к локальной сети 1000 Мб.

Когда я загружаю приставку, она получает IP-адрес от DHCP-сервера. Но когда я отключаю интерфейс Ethernet, используя

ifconfig eth0 down

оставьте его примерно на 10 минут и снова включите с помощью

ifconfig eth0 up

он не получает IP. Операционная система телеприставки - Linux-MIPSEL с ядром 2.6.22.19, а приложение udhcpc используется для получения IP от DHCP.

Как я вижу, приложение udhcpc запускается правильно. Я также использовал tcpdump, чтобы увидеть транзакции пакетов. Я использовал следующую команду:

tcpdump -lenx -i eth0 -l -vvv port bootps or port bootpc

Журнал tcpdump показал, что он отправил пакет Discover, но я не получил никакого ответа от DHCP-сервера. Файлы журнала с сервера показывают, что сервер отправляет предложение, но я не получаю этот пакет.

Поскольку я не специалист по сетям, можете ли вы подсказать, в чем может быть проблема? Может быть, у меня есть адаптер 10/100 Мб для LAN 1000 Мб? Или может быть что-то еще?

PS: Я также использовал переключатель 10/100 Мб для подключения к локальной сети, но у меня такая же проблема.

Обновление 1: После использования udhcpc в качестве dhcp-клиента я подумал о том, чтобы попробовать что-нибудь еще. Итак, я установил ConnMan который является сетевым менеджером и имеет собственный клиент DHCP. К сожалению, у меня был аналогичный результат, вместо того, чтобы вообще не получать IP, я получал Адрес APIPA что похоже на отсутствие IP. Я начинаю думать, что, возможно, порядок байтов имеет какое-то отношение ...

Обновление 2: Извините за задержку, я протестировал телеприставку с некоторыми домашними маршрутизаторами, такими как Cisco-Linksys E1500, и работает без проблем. У меня также есть дополнительная информация о локальной сети. Есть переключатель между DHCP-сервером и приставкой, Netgear GS724TS с аппаратной версией 00.00.01, загрузкой 1.0.0.07 и программной версией V3.1.0.1. Как я вижу, в разделе «Монитор» веб-интерфейса коммутатора информации не так много, даже если я выберу отладку в фильтре журнала.

Моя первоначальная мысль заключается в том, что ваш сценарий «up» на интерфейсе не вызывает клиента DHCP, а клиент DHCP вызывается где-то на одном из уровней выполнения в процессе загрузки.

После выполнения ifconfig eth0 вы пробовали запускать dhclient? Я не знаком с Linux-MIPSEL, но это будет мое направление исследования. Если это сработает, найдите свой eth0-up scipt или аналогичный и проверьте его.

Я очень сомневаюсь, что это имеет какое-то отношение к сетевой карте 100 Мб на коммутаторе 1 Гб. Коммутатор и сетевая карта будут согласовывать 100 МБ, и ваша проблема находится на другом уровне.

ifconfig eth0 up ничего не делает, кроме как поднять устройство Ethernet, т.е. сделать его активным. Вам нужно либо назначить статический IP-адрес (с ifconfig eth0 192.168.0.2, например) или запустить dhcp-клиент, чтобы получить IP-адрес (в вашем случае udhcpc).

Вы проверили кабель? Однажды я использовал кроссовый кабель вместо прямого и столкнулся с аналогичными проблемами.