Я решил проблему со скоростью интернета, но все еще озадачен. Я не могу понять, что случилось.
Мой сценарий: небольшая интрасеть подключена к Интернету через шлюз Linux, который подключается к кабельному модему (Motorola SBV5121), мой провайдер дает мне статический IP-адрес, а номинальная скорость составляет 3 Мбит / с / 512 Кбит / с.
Шлюз Linux - это старый Centos 5.10 с iptables и сервером Dhcp с двумя сетевыми адаптерами:
eth0 (Intranet) # 3Com Corporation 3c905C-TX/TX-M [Tornado]
eth1 (Internet) # Sundance Technology Inc / IC Plus Corp IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY
[INTERNET]---[Motorola CableModem]----[eth1 LINUX-GW eth0]-----[LAN]---[desktop machines]
Все довольно стандартно, и давно работало; но последнее время у меня была низкая скорость, особенно при загрузке. Обычные тесты (например, http://www.speakeasy.net/speedtest/ ) сообщал (постоянно) об очень низких скоростях (около 200 Кбит / с) при загрузке из США (я нахожусь в Южной Америке); при загрузке из моей страны скорость была приличной (хотя я так и не достигла предела в 3 Мбит / с): от 1 Мбит / с до 1,5 Мбит / с. Скорость загрузки была правильной, около 512 Кбит / с. У меня не было проблем с пингами, без потерянных пакетов, обе NIC сообщили о полнодуплексном соединении 100 Мбит / с. Тесты проводились с настольного компьютера с Windows внутри локальной сети, но поведение соответствовало тому, что я получил при загрузке из Linux GW. Отключение iptables разницы не дало.
Я был почти уверен, что это была проблема с маршрутизацией или формированием у моего провайдера. При звонке они попросили меня проверить скорость подключения простого компьютера с Windows к кабельному модему. Я очень скептически относился к тому, что это будет иметь значение.
[INTERNET]---[Motorola CableModem]----[Windows desktop machine]
К моему удивлению, это определенно сработало: скорость была правильной (3 Мбит / с / 512 Кбит / с, независимо от цели).
Я был очень озадачен, все перепроверил, ничего не нашел. Трассировка была такой же. В крайнем случае, я попытался переключить сетевые адаптеры в GW. Я не менял ни кабели, ни конфигурацию, я сделал самое простое: я изменил MAC в файлах конфигурации "ifcfg-ethX", чтобы eth1 оставался подключенным к Интернету, но переключались сетевые адаптеры:
eth0 (Intranet) # Sundance Technology Inc / IC Plus Corp IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY
eth1 (Internet) # 3Com Corporation 3c905C-TX/TX-M [Tornado]
[INTERNET]---[Motorola CableModem]----[eth1 LINUX-GW eth0]-----[LAN]---[desktop machines]
И теперь работает отлично! Как это может быть?
Обратите внимание, что это не просто проблема с сетевым адаптером "Sundance", так как в текущей конфигурации, когда я провожу тесты с компьютера в локальной сети, я все еще просматриваю две карты, как и раньше (только в другом порядке) . Кроме того, когда я передаюсь внутри LAN (рабочий стол <-> GW), он работает с хорошей скоростью Ethernet.
Есть ли у кого-нибудь правдоподобное объяснение или подобное поведение?
Одно правдоподобное объяснение - сбой дуплексного согласования между картой sundance и вашим модемом DSL.
Ethernet 10/100 Мбит был известен плохим дуплексным согласованием. Многие рекомендовали жестко задавать скорость и дуплекс на обоих концах. Я не был большим поклонником этого, но это было разумно.
С годами это стало меньше проблемой. Автосогласование Gigabit Ethernet надежно - отчасти потому, что не существует такой вещи, как полудуплексный гигабит. Я полагаю, что автосогласование 10/100 стало умнее и с новыми наборами микросхем.
Единственное объяснение, которое я могу придумать, - это неисправный кабель, соединяющий шлюз с модемом.
Возможно, чип основной полосы частот (тот, который на самом деле выполняет кодирование / декодирование строки) выходит из строя или не так хорош с самого начала, так что увеличение линейного шума (из-за ухудшения качества кабеля) значительно сбивает его с толку.
Попробуйте проверить частоту ошибок с помощью эттоол; сравните результаты с другими сетевыми адаптерами. Это может помочь пролить свет.