23 июн. 2010 г.

Vyatta и беспроводной модем

Сегодня утром мне пришла в голову мысль попробовать заявленную поддержку беспроводных модемов во Vyatta. Собственно модема под рукой не оказалось, поэтому я подключил телефон Nokia к маршрутизатору по USB.
Выбрал режим подключения «PC Suite», в режиме «Накопитель» нокии работают как простой USB mass storage device. Телефон определился как /dev/ttyACM0, реакция на AT-команды была проверена путем подключения через minicom.

Практическая ценность такого мероприятия в наших условиях, конечно, сомнительна, разве что использовать как резервный канал для управления на случай глобальных проблем с основным. В местах, где есть дешевые 3G-провайдеры это существенно актуальнее.

Приступаем к настройке

Беспроводные модемы настраиваются в set interfaces wirelessmodem, сами интерфейсы должны иметь имя wlmX. Для работы достаточно указать опции «device <имя устройства>» и «network <название сети>». И вот тут начинаются проблемы.

Дело в том, что по умолчанию там присутствуют только сети AT&T, Verizon и SC1. Видимо, это те, которыми пользуются сами авторы и на которых тестировали функциональность. Для моей TELE2 там ничего нет. А от сети зависят AT-команды, посылаемые модему для подключения.

Создаем новую сеть

Раз нашей сети нет, создадим ее сами. Находим в исходном коде, что файлы описаний сетей лежат в /opt/vyatta/share/ppp/network. Путем чтения сайта оператора связи и общения с тех. поддержкой узнаем подробности о нужных AT-командах и делаем свой файл (в моем случае пришлось лишь немного поправить настройки AT&T). Вот содержимое файла /opt/vyatta/share/ppp/network/tele2ru

ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT 'NO CARRIER' ABORT DELAYED
'' AT
OK ATZ
OK  'AT+CGDCONT=1,"IP","internet.tele2.ru"'
OK ATD*99#
CONNECT ''

Создаем интерфейс

Вот теперь действительно можно приступать. Настраиваем интерфейс:

dmbaturin@rekki# set interfaces wirelessmodem wlm0 device ttyACM0

dmbaturin@rekki# set interfaces wirelessmodem wlm0 network tele2ru

dmbaturin@rekki# commit

dmbaturin@rekki# show interfaces wirelessmodem
 wlm0 {
     device ttyACM0
     network tele2ru
 }

После commit он подключится автоматически, что можно увидеть в системных сообщениях.

Jun 23 16:25:41 vyatta pppd[29193]: pppd 2.4.4 started by root, uid 0
Jun 23 16:25:45 vyatta pppd[29193]: Connect: ppp9 <--> /dev/ttyACM0
Jun 23 16:25:45 vyatta vyatta-zebra[2915]: interface ppp9 index 822  added.
Jun 23 16:25:45 vyatta pppd[29193]: PAP authentication succeeded
Jun 23 16:25:47 vyatta vyatta-zebra[2915]: warning: PtP interface ppp9 with addr 77.216.137.187/32 needs a peer address
Jun 23 16:25:47 vyatta vyatta-zebra[2915]: interface index 822 was renamed from ppp9 to wlm0
Jun 23 16:25:47 vyatta vyatta-ripngd[2919]: interface delete ppp9 index 822 flags 0x1090 metric 1 mtu 1500
Jun 23 16:25:47 vyatta vyatta-ripd[2917]: interface delete ppp9 index 822 flags 0x1090 metric 1 mtu 1500
Jun 23 16:25:47 vyatta vyatta-zebra[2915]: interface wlm0 index 822 changed .
Jun 23 16:25:47 vyatta pppd[29193]: Cannot determine ethernet address for proxy ARP
Jun 23 16:25:47 vyatta pppd[29193]: local  IP address 77.216.137.187
Jun 23 16:25:47 vyatta pppd[29193]: remote IP address 10.6.6.6
Jun 23 16:25:47 vyatta pppd[29193]: primary   DNS address 193.12.150.26

При желании его можно подключить или отключить вручную, используя команды операционного режима «connect interface wlm0» и «disconnect interface wlm0» соответственно.

На всякий случай проверим правильность работы. Добавим статический маршрут до чего-нибудь редко используемого (чтобы не допустить прохождения основного трафика через дорогое соединение) и посмотрим трассировку маршрута до него.

dmbaturin@rekki# set protocols static interface-route 193.12.93.139/32 next-hop-interface wlm0
[edit]
dmbaturin@rekki# commit
[edit]
dmbaturin@rekki# run traceroute www.tomsk.tele2.ru
traceroute to www.tomsk.tele2.ru (193.12.93.139), 30 hops max, 40 byte packets
 1  spb-c7606-rtk.vlan411.swip.net (212.151.224.17)  630.295 ms  646.184 ms  666.634 ms
 2  kst-core-1.gigabiteth9-0-0.swip.net (212.151.224.49)  686.061 ms  706.023 ms  745.949 ms
 3  kst-ncore-1.tengigabiteth2-1.swip.net (130.244.52.106)  765.912 ms  790.003 ms  805.800 ms
 4  kst-spe-1.tengigabiteth3-4.swip.net (130.244.206.118)  805.747 ms  805.694 ms  825.622 ms
 5  kst-spe-1.tengigabiteth3-4.swip.net (130.244.206.118)  825.569 ms !X  826.878 ms !X *

Проблемы

В целом, использовать беспроводные модемы с Vyatta можно. Были обнаружены только два несущественных бага, первый: добавить description и прочие опции можно только после создания интерфейса; второй: при подключении не создается файл журнала.

Существенно более серьезной проблемой являются настройки конкретных сетей. Почти для всех эти настройки сейчас придеться добавлять самому. Не то, чтобы действительно мешало работе, но я все же был бы за как можно большее число готовых настроек, особенно учитывая что в явном виде они обычно нигде не лежат.

Если у кого-то будет желание, можете прислать мне настройки подключений для других сетей.

Комментариев нет:

Отправить комментарий