У меня модем был настроен роутером, сам подключался к Укртелекому и раздавал интернет, но со временем нагрузка выросла, таблица-NAT стала переполнятся, скайп и торрент начали генерировать просто огромные объемы UDP-трафика и модем перестал справляться с нагрузкой. Определить что модему плохо очень легко, ко многим adsl-модемам можно подключиться по протоколу telnet, список команд можно получить введя ? или help, и например в dlink-2500 или zhone/paradyne 6211 введя команду sysinfo можно посмотреть load averages, которые и показывают насколько загружен модем.
Если среднее значение приближается к единице или больше, то модем с нагрузкой не справляется.
Есть еще один способ определить что проблема в модеме, он проще чем использование telnet но менее точен, пингуйте какой нить адрес в интернете (рекомендую выбирать что-то вроде google.com, mail.ru или например ip 8.8.8.8), если есть потери пакетов то косвенно это может значить что модем не справляется нагрузкой, ну или у вас проблемы с каналом, или сайт который вы пингуете перегружен.
Решение этой проблемы несложное, необходимо чтоб соединение выполнял компьютер к которому подключен модем, это позволит снять нагрузку с слабенького процессора модема и перенести ее на намного более мощный процессор компьютера. В моем случае это был сервер с freebsd.
Официально Укртелеком насколько я знаю не поддерживает freebsd, однако заставить работать их вместе все же можно. Я использовал старую версию freebsd 5.3, и встроенный в нее ppp. Вы можете использовать любую другую версию, и вместо ppp можно использовать mpd, у многих mpd работает лучше чем ppp, в общем надо пробовать. Я настроил ppp, немного поигрался с конфигом (в инете можно найти несколько разных вариантов) и вот уже несколько недель интернет стабильно работает.
Содержимое файла /etc/ppp/ppp.conf, важно после строки pppoe-ukrtel: все последующие строки должны начинаться с tab.
ukrtel:
set device PPPoE:rl0
set speed sync
set mru 1492
set mtu 1492
set ctsrts off
enable lqr
set lqrperiod 5
add default HISADDR
set timeout 0
set redial 0 0
set authname логин@dsl.ukrtel.net
set authkey пароль
enable dns
set reconnect 5 10000
Сохраняем конфиг и пробуем подсоединиться:
#ppp -ddial ukrtel
Проверяем наличии интерфейса:
# ifconfig tun0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
inet 95.135.x.x —> 195.5.x.x netmask 0xffffffff
Все ок, туннель поднялся ip получен, инет работает.
Если ppp завис убить можно командой:
#killall ppp
У меня нормально работает инет с таким конфигом, при разрыве раз в сутки все корректно подсоединяется обратно, поэтому mpd я не стал пробовать.
Да кстати, качество линии у меня не очень, snr margin модем показывает 20 для входящего сигнала и 10 для исходящего, при таких параметрах стабильная работа затруднена, но модем zhone/paradyne 6211 справляется.
p.s. Еще в конфиге можно сразу настроить нат, добавив несколько строк но у меня он был настроен отдельно через ipfw+natd.