Страницы

четверг, 30 августа 2012 г.

HP Proliant Microserver router VLAN + Cisco SG200-08

PC маршрутизатор на основе связки микросервера HP Proliant microserver и гигабитного управляемого коммутатор Cisco SG200-08 (SLM2008T-EU).

Использование управляемого коммутатора 2-го уровня и PC роутера (в данном случае микросервера) с одной сетевой картой, для организации маршрутизации домашней сети в Интернет.
Исходная сетевая конфигурация микросервера представляла собой 2 сетевые карты, одна для внешней сети и Интернет (usb-адаптер), другая для домашней сети (встроенный гигабитный адаптер). Микросервер работает под операционной системой Ubuntu 12.04 LTS.

В данном руководстве, используется идея организации сети, которая была почерпнута на форуме [1]. Идея позволяет экономить 1 сетевой порт на сервере, за счет внедрения vlan "между" коммутатором и микросервером. Это расширяет возможности применения систем с одним сетевым интерфейсом в домашних условиях, в качестве маршрутизатора Интернета.
В нашем микросервере, мы избавляемся от сетевого usb-адаптера, переводя встроенный гигабитный адаптер в специальный "транковый" режим.
Для данной конфигурации, коммутатор обязательно должен быть управляемым и в нем должна присутствовать поддержка VLAN.
Возможно, это решение не требуется обычным пользователям, имеющим 1 подключение к сети интернет и один компьютер.

Идея технологии VLAN (англ. Virtual Local Area Network) - присвоение специальной метки VLAN ID (тэга) ethernet фрейму, означающего принадлежность к определенной VLAN. Получается т.н. тэгированный трафик. Подробное описание в стандарте 802.1Q. В результате любое устройство с поддержкой vlan может этот трафик обрабатывать тем или иным способом.

Each VLAN in a network has an associated VLAN ID, which appears in the IEEE
802.1Q tag, also known as VLAN tag, in the Layer 2 header of packets transmitted
on a VLAN



Определение возможностей оборудования
Определим наличие аппаратной поддержки vlan ( 802.1q) у встроенного сетевого интерфейса микросервера, в данном случае это home.

Предварительно установим пакет программы Ethtool, для управления сетевой картой
$sudo apt-get install ethtool
$sudo ethtool -k home

Offload parameters for home:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: off

В данном случае, интересует разгрузка для vlan, - она присутствует, о чем свидетельствуют rx-vlan-offload, tx-vlan-offload

Гигабитный управляемый коммутатор Cisco SG200-08 (SLM2008T-EU) имеет встроенную поддержку VLAN, о чем свидетельствует спецификация устройства. Да и выбирался он именно с такой поддержкой.


Установка пакета поддержки VLAN на микросервере
$sudo apt-get install vlan

Общее описание схемы подключения

Цитата с [1]:
"
Общая схема подключений примерно такая:
- в один из портов управляемого коммутатора включается приход от провайдера, порт назначается в vlan1;
- в другой порт включается приход от другого провайдера, если таковой имеется, порт назначается в vlan2;
- выбирается группа портов, в которые будут подключаться устройства домашней локальной сети, эти порты назначаются, например, в vlan50;
- в Web-интерфейсе коммутатора ему переназначаются IP, маска и шлюз из произвольной подсети и назначается Management VLAN, например, vlan100 (эта подсеть будет использоваться для управления коммутатором, поэтому её маска может быть узкой, вплоть до /30);
- в произвольный порт коммутатора включается кабель от роутера, этот порт назначается транковым с инкапсуляцией по 802.1Q; vlan1, vlan2, vlan50 тегируются при передаче в этот порт (tagged), vlan100 не тегируется (untagged);
- для случая FreeBSD настраиваем вланы vlan1, vlan2, vlan50, vlan100 и присваиваем им IP-адреса, согласно вышепроцитированному сообщению.
Очевидным недостатком такой схемы является то, что через транковый порт коммутатора ходит трафик как внутренней домашней сети, так и трафик от/к провайдера(у), но в разных вланах, т.е. не пересекаясь на 2-ом уровне. Поэтому, как минимум, этот порт коммутатора и встроенная сетевая карта mini-ITX-платы должны быть гигабитными.
"
После продолжительного размышления идея стала понятна. Так что в путь.


Общий порядок действий администратора микросервера

1. Обычная загрузка микросервера, в настроенной сетевой конфигурации с двумя сетевыми адаптерами.
2. Вход в консоль и выполнение отключения сетевого интерфейса Интернета ppp8 и местного провайдера beeline. В моем случае и извлечение сетевого usb-адаптера. Выход из консоли. Эти операции можно проделать и удаленно. На сервере остается поднятым только интерфейс home.
3. Провод (ethernet кабель 5 категории) из гнезда микросервера подключаем в один из портов. Я решил выбрать №1 порт, т.к. он крайний (граничный) и его позиция одним взглядом позволяет судить о том, есть связь сервера и коммутатора или нет, а не искать его среди других портов.
4. Включаем управляемый коммутатор cisco sg200-08. Коммутатор по умолчанию настроен на получение ip-адреса через dhcp и он его получит, о чем будет свидетельствовать прекращение моргания индикатора питания. А вот от кого он его получить зависит от настроек сети. У меня он получает как от микросервера, так и роутера и часто оказывается в разных подсетях.
5. Провод настольного компьютера можно подключить в один из портов коммутатора. Я выбрал №3, т.к. порт №2 я зарезервировал за вторым провайдером. Компьютер автоматически должен получить ip-адрес. Если все прошло гладко, то включение коммутатора в домашнюю сеть прошло штатно. 
6. Порт №2 оставил пустым в резерве для второго провайдера.
7. Т.к. ip-адрес коммутатора после динамического получения ip-адреса от dhcp-сервиса микросервера, не известен, то пропинговав несколько адресов из диапазона местной сети, я его нашел. Указываю его в броузере и захожу в web-интерфейс управления. Пароли по умолчанию стандартные cisco/cisco. Тут же предлагается его сменить. Меняю. Выхожу из интерфейса и повторно захожу уже с новым паролем.
Также можно найти выданный коммутатору (арендованный) ip-адрес, если в качестве dhcp-сервера использовался микросервер с dhcpd просмотрев файл аренды адресов:
root@microserver:~# cat /var/lib/dhcp/dhcpd.leases

8. Теперь надо немного остановиться и подумать как организовать свои виртуальные сети, сколько VLAN создать, какие практики хорошие, а какие "так себе". С чего начать конфигурирование, так чтобы не развалилась домашняя сеть и переход прошел гладко.
Виртуальная локальная сеть позволяет сделать "как-бы" несколько сетевых плат на микросервере, доступных однако через 1 физический встроенный ethernet-адаптер.
Т.е. таким образом, при планировании, я выделяю одну виртуальную сетевую плату первому провайдеру, одну виртуальную сетевую плату второму провайдеру, третью сетевую плату домашней сети. Микросервер должен осуществить ip маршрутизацию между этими сетевыми виртуальными платами. Ситуация почти аналогична той исходной, в которой 2 физические сетевые платы. На языке vlan, это называется сегментация по широковещательным доменам или разделение по подсетям. Один vlan - это один широковещательный домен( или одна подсеть), который может находится и на разных коммутаторах. Также можно рассматривать одну виртуальную сеть и как сегмент сети. Ранее, до vlan это сегмент ограничивался одним коммутатором, теперь можно сделать одну сеть разнесенную территориально. Чем все это может помочь в домашней сети? А домашние сети бывают разные.

Предварительно, запросы портов такие:

 - Группа портов для домашней инфраструктуры (ip телефон №3, камера №4, точки доступа №5), пока не существующей.

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

Приходит понимание, что количество портов - очень ограниченный ресурс и их требуется больше в современных условиях. Например, коммутатор Cisco SB SRW2016-K9-EU.
Приходит также понимание, что коммутаторы с 8 портами лучше использовать локально на местах, а не в качестве основы инфраструктуры.

Недостаток данной схемы в том, что полоса пропускания порта №8 (т.е. до микросервера) делиться между провайдерами и домашней сетью. Спасает ситуацию то, что редко провайдер (а чаще пользователю не нужно) предоставляет 1Gigabit, обычно 100 Мбит, что с лихвой покрывается гигабитным портом. Да и не каждый пользователь строит сеть в такой конфигурации.

В принципе, можно создать 8 vlan по числу портов, потому что требования к качеству обслуживания у разного оборудования разные, например для ip-телефона очень, очень важен приоритет голосового трафика. Одно более разумно продумать иное группирование, чтобы абоненты-корреспонденты одной группы не выходили за пределы одной vlan, снижая нагрузку на порт микросервера. Например, медиасервер и телевизор для просмотра медиаконтента, или группа видеокамер и видеосервер.


9. Заходим в интерфейс управления коммутатором и выполняем административные процедуры
Устанавливаем время на коммутаторе, задаем иные параметры.
Сохраняем конфигурацию, чтобы при следующем включении конфигурация соответствовала настроенной. Вкладка "Administration" - "File management" - "Copy/Save configuration". Указываем сохранять конфигурацию "Running configuration" в "Startup configuration".
По идее, после выключения питания и включения, коммутатор должен иметь настроенную конфигурацию, а не по умолчанию. Обязательно проверить, сохранилась ли конфигурация и восстанавливается ли она после холодного рестарта.


10. Интерфейс home на микросервере переименовываем в vlan или trunk, так чтобы имя интерфейса  отражало суть. В принципе, можно не переименовывать, но я это делаю. Переименование осуществляется в файле:
nano /etc/udev/rules.d/70-persistent-net.rules

11. Пример решения о конфигурации
Особенности: микросервер "on the go". Сетевая конфигурация отличается от ранее настроенной, микросервер путешествует.
. В порт №1 коммутатора я решил подключить микросервер. Порт №1 будет "trank" транковый, т.е. пропускать трафик всех vlan до микросервера.
. В порт №8 я решил подключить 3G роутер bigpond, в один из его портов встроенного хаба (интернет провайдер в деревне. Тариф Мегафон-модем). В принципе его можно использовать с любым роутером, который раздает готовое подключение к Интернет, например adsl. Т.к. интерфейс у микросервера будет настроен на получение динамической конфигурации.
. В порт №3 я решил подключить настольный компьютер.

Определил VLAN ID 8 для порта №8 для провайдера интернета, в данном случае 3g.
Определил VLAN ID 99 для будущей Management VLAN. Это на этапе первоначальной настройки можно не делать.


12. Настройка сетевой конфигурации на микросервере

На микросервере добавим заданные VLAN к интерфейсу home. Он может быть поднят.
root@microserver#modprobe 8021q
root@microserver#vconfig add home 99
root@microserver#vconfig add home 8


Для Management VLAN определим виртуальный интерфейс, исключительно предназначенный для управления коммутатором, в файле /etc/network/interfaces микросервера. Как бы выделенный провод между микросервером и коммутатором.

root@microserver#cat /etc/network/interfaces
...
# Management VLAN адаптер. Интерфейс для управления коммутатором cisco
# 30 августа 2012
# VLAN ID = 99
iface home.99 inet static
 address 192.168.99.2
 netmask 255.255.255.0
 gateway 192.168.99.2
 broadcast 192.168.99.255
 vlan_raw_device home

# Интерфейс провайдера 3g
# 30 августа 2012
# VLAN ID = 8
iface home.8 inet dchp
 vlan_raw_device home
...
auto home
auto home.99
auto home.8
...

Если их поднять без настроенного коммутатора, то не будет ip-адресов.

13. Настройка коммутатора. Создание виртуальных локальных сетей.

Вкладка "VLAN Management" - "Create VLAN"
Нажмем кнопку "Add..."
В открывшемся окне можно задать VLAN ID, VLAN NAME, также можно создать несколько сетей задав диапазон (range) VLAN ID.
Вкладка "Create VLAN" на Cisco SB200-08

Создание vlan - безопасная операция.


Т.к. любой провайдер обычно поставляет нетегированный (untagged) трафик, то нам надо, чтобы этот трафик попадал в определенный vlan и далее через "trunk" в микросервер.

Пример для первого провайдера. Операция манипуляции с vlan опасная, можно случайно потерять связь с коммутатором из-за переназначения.

Вкладка "Interface settings" на Cisco SB200-08
Вкладка "Port to VLAN" на Cisco SB200-08
Вкладка "Port VLAN Membership" на Cisco SB200-08

В коммутаторе на вкладке Interface Settings для интерфейса g8, мы указываем, для физического порта режим "access", "admin untagged only", для Access VLAN указываем 8. Таким образом, весь непомеченный трафик, прибывший через этот порт (№8) в коммутатор, будет помечен тэгом VLAN ID = 8 и соответственно следуя другим настройкам будет направлен в транковый порт №1 где достигнет микросервера и его интерфейса home.8.

И да, надо не забыть сохранить рабочую конфигурацию коммутатора в загрузочную конфигурацию. См. п.9.

Интерфейс home.8 получает адрес от dhcp-сервера bigpond. Для этого в данной рабочей обстановке, коммутатор и роутер (провайдер) должны быть включены ранее микросервера, чтобы при загрузке интерфейс home.8 получил динамический ip-адрес.

Для второго провайдера аналогично, только VLAN ID иной. У меня пока нет, но можно проэмулировать с помощью другого компьютера или роутера.

После этого на микросервере имеется 2 интерфейса с доступом в Интернет и можно настраивать режим "two WAN", так как будто это обычные сетевые адаптеры. Выполнять балансировку, резервирование канала и т.п.

14. Для порядка, можно все неиспользуемые порты назначить в режим "access", предполагая, что в них будут подключаться устройства с нетегированным трафиком. Однако, можно сделать роуминг некоторых устройств, тогда портам надо установить режим "general", для пропуска и тегированного трафика, а на самом устройстве сделать членство в определенной vlan. Получиться что-то типа роуминга.
Также, vlan-коммутатор, позволяет легко собирать сеть из отдельных устройств, на новом месте, при этом не меняя сетевую конфигурацию.


Также можно повесить dhcp-сервер на определенный интерфейс vlan. Это может пригодиться, например, когда нет выделенного dhcp-сервера.


Вопросы
1. Куда использовать старое оборудование DIR-320, уже 4 года в эксплуатации в качестве интернет-маршрутизатора, с dd-wrt прошивкой? В холодный резерв.

Вывод
- сделать ревизию оборудования на предмет поддержки vlan
- в коммутаторе Cisco Switch SG 200-08 отсутствует ssh доступ, что создает некоторые трудности в удаленном управлении


Ресурсы
1. Создание PC-роутера на базе Mini-ITX/-DTX-платформ.  http://forum.ixbt.com/topic.cgi?id=14:51494
VLAN в Linux. http://xgu.ru/wiki/VLAN_%D0%B2_Linux
VLAN "разветвитель" своими руками. http://mcmcc.bat.ru/vlan/
Коммутатор Cisco SB 200-08. Страница поддержки.  http://www.cisco.com/en/US/products/ps11229/tsd_products_support_series_home.html

среда, 15 августа 2012 г.

Netcomm Bigpond 3G9WB

Описание 3G маршрутизатора BigPond 3G9WB

Маршрутизатор основан на процессоре Broadcom BCM6359. Встроенный 3g mini-PCIe модем Sierra Wireless MC8781.

Характеристики маршрутизатора BigPond 3G9WB:

WAN Interface
• HSPA x 1
LAN Interface
• Ethernet x 4
WLAN
• MAC Address Filtering, WEP, WPA, IEEE 802.1X
• 10, 25, 50, 100mW @ 22MHz
• IEEE 802.11g, backward compatible with 802.11b Encryption
• 64, 128-bit Wired Equivalent Privacy (WEP, WPA2) Data Encryption
Channels (В зависимости от страны, которую можно выбрать в самом устройстве)
• 11 Channels (US, Canada)
• 13 Channels (Europe, Australia)
• 14 Channels (Japan)
Скорость WLAN
• До 54Mbps
WAN PPP
• Yes
Стандарт
• Совместим со спецификацией "3GPP release 5 UMTS specification"
Диапазоны
• Support Quad-band GSM/GRPS (850 / 900 / 1800 / 1900 MHz)
• Support tri-band UMTS/HSDPA/HSUPA (850 / 1900 /2100 MHz)
Скорость
• HSUPA (up to 1.9 Mbps uplink)
• HSDPA and UMTS (up to 7.2 Mbps downlink and 384 Kbps uplink)
• EDGE / GPRS / GSM (up to 247 Kbps)
Antenna Type
• Removable antenna
• SNMP, SNTP, Telnet, Web-based management, Configuration backup and restoration
• Firmware upgrade via HTTP, TFTP client and server, or FTP server
Маршрутизация
• Static route, NAT/PAT, DMZ, DHCP Client/Server/Relay, DNS Proxy, DDNS
Безопасность
• Stateful Packet Inspection, Packet filtering, Denial Of Service protection, Management
Authentication protocols
• PAP, CHAP
VPN
• PPTP/L2TP/IpSec pass-through
Индикаторы
• Питания, LAN 4, LAN 3, LAN2, LAN 1, Wi-Fi, Internet, 3G, 2G, Сила сигнала Low, Med and High LEDs
Питание
• Внешний адаптер питания
• 100-240Vac to 12Vdc /1.5A
Габариты
• 205 mm (W) x 47 mm (H) x 145 mm (D)

Преимущества

  • Съемные антенны, дают возможность подключить внешние направленные антенны
  • Работает с всеми местными провайдерами (unlocked)
  • Компактность, возможность монтажа на стене
  • Бесшумность, нет вентиляторов
  • Питание от 12 В
  • Разбор на компоненты, можно снять 3g модем и wi-fi адаптер и использовать в иных местах
  • Поддержка WPA2-PSK


Недостатки

  • Закрытая прошивка (firmware)
  • 100МБит концентратор и невозможность замены
  • 54МБит Wi-Fi и невозможность замены
  • Не поддерживает произвольные модемы, неудачно 
  • Невозможность назначить один из портов LAN как WAN

Характеристики встроенного 3g модема Sierra Wireless MC8781 с поддержкой GPS:

Форм-фактор: PCI Express Mini Card
Чипсет: Qualcomm MSM7200TM
UMTS HSDPA Category 8/6/4 (7.2/3.6/1.8 Mbps downlink), HSUPA Category 4 (2.0 Mbps uplink)
EDGE/GPRS MS Class 12
Receive equalizer with dual antenna
diversity
поддержка USIM (UMTS SIM-карты)
PC/SC interface
Технология GPS: Qualcomm GpsOne®

Размеры
Длина: 51 mm
Ширина: 30 mm
Толщина: 4.5 mm
Вес: under 12 g

Питание
Входное напряжение, диапазон:: 3.0 ~ 3.6V
Low talk current
Low stand-by current
Антенный вход
50 Ohm compatible
U. FL RF connector

Диапазоны
850/1900/2100MHz WCDMA
Power class 3 (+24dBm)
850/900MHz GSM/GPRS/EDGE
GSM Power class 4/EDGE E2
1800/1900 MHz GSM/GPRS/EDGE
GSM Power Class 1/EDGE E2
GPS/1575.42 MHz

Интерфейс
52-Pin Edge Connector
Pinout supports PCI-Express Mini Card Specification Rev 1.1
USB 2.0
Software configurable LED control
U-SIM - стандарт SIM-карты в сетях UMTS

Поддерживаемые AT-команды (список уточняется)

 GSM AT Command Reference

 TS 27.007 AT command set for User Equipment (UE)

 TS 27.005 Use of Data Terminal Equipment ‐‐ Data Circuit terminating Equipment (DTE‐DCE) interface for Short Message Service (SMS) and Cell Broadcast Service (BSE)



Выводы
Вещь в себе. Решила проблему и ладно. Существенный недостаток, относящийся скорее к сети провайдера - серые IP-адреса WAN интерфейса.

Ресурсы
1. TS 27.007 AT command set for User Equipment (UE). Разные ревизии. http://www.3gpp.org/ftp/Specs/archive/27_series/27.007/

2. Firmware upgrade. http://support.netcommwireless.com/sm/firmware/3g9wb
3. Страница устройства. http://support.netcommwireless.com/product/3g/3g9wb

пятница, 10 августа 2012 г.

WWAN 3g модем и Intel DN2800MT

Подключение 3g модема Toshiba Ericsson f3607gw к материнской плате Intel DN2800MT

Подключение производилось для тестирования связки и выявления тонких особенностей. Задумка описана в другой заметке : 3g Интернет в деревне.
Здесь практическая работа, журнал подключения.

Итак, первое подключение.
Для тестирования использовался дистрибутив Ubuntu 11.10 (рабочая система) и Ubuntu 12.04 LiveCD.

К модему обязательно должна быть подключена SIM-карта, без  нее он не работает.

#lsusb

...
Bus 001 Device 002: ID 0930:130c Toshiba Corp. F3607gw Mobile Broadband Module
...

Модуль по сути является usb-устройством, только в исполнении mini PCI-e.

Устройство видится какToshiba Corp. F3607gw Mobile Broadband Module.
Его PID VID 0930:130c.

в каталоге /dev нашлись файлы, относящиеся к устройству. /dev/ttyACM0 (модем), /dev/ttyACM1, /dev/ttyACM2 (gps)


Устройства, созданные модулем, в каталоге /dev:
# for n in `ls /sys/class/*/*{ACM,wdm,usb0}*/device/interface`;do echo $(echo $n|awk -F '/' '{print $5}') : $(cat $n);done

ttyACM0 : TOSHIBA F3607gw Mobile Broadband Data Modem
ttyACM1 : TOSHIBA F3607gw Mobile Broadband Modem
ttyACM2 : TOSHIBA F3607gw Mobile Broadband GPS Port
cdc-wdm0 : TOSHIBA F3607gw Mobile Broadband Device Management
cdc-wdm1 : TOSHIBA F3607gw Mobile Broadband USIM Port


Также устройством (его драйвером) формируется интерфейс wwan0
#ifconfig -a

wwan0     Link encap:Ethernet  HWaddr 02:80:37:ec:02:00  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:6863 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6665 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5651645 (5.6 MB)  TX bytes:1563007 (1.5 MB)



#dmesg | grep wwan
[   22.565216] cdc_ether 1-1:1.6: wwan0: register 'cdc_ether' at usb-0000:00:1d.7-1, Mobile Broadband Network Device, 02:80:37:ec:02:00



Первое подключение неудачное. NetworkManager определил устройство, но соединения не устанавливалось. "И так и сяк, ни в какую". Это при том, что была подключена рабочая внешняя антенна и рабочая сим-карта, использовавшиеся в роутере Bigpond.
Следующим шагом было повторная проверка соединений и установлена обычная круговая антенна от роутера и другая сим-карта. Запуск и попытка подключения. Удалось соединится в режиме EDGE. По крайней мере, хоть как-то работает. Провайдер Мегафон.
Как я предполагаю, дело было в контактах между модулем usim, он особенно точно должен ставиться в разъеме. Также важно, чтобы антенные пигтейлы были плотно посажены на разъемы.
Далее, подключил более мощную направленную антенну, правда диапазона Wi-Fi. Загрузка, попытка подключения. Не подключается.
Вернул предыдущую антенну. Подключается в режиме EDGE. Скорость около 21 кб/c.
Дело в том, что в деревне, вышка сотовой связи находится в 5 километрах от места приема и на обычные антенны прием 3g сигнала оказывается невозможным.

Антенны я подключаю после полного обесточивания оборудования.

И наконец, подключение 3g антенны. Загрузка, попытка подключения. Не работает. Что навело на мысль пересмотреть контакты.
Проблема оказалась, что был использован обычный SMA-U.FL пигтейл от старой антенны, а нужен был реверсивный SMA-U.FL. После замены, все решилось. 3g заработал. Скорость составила 6 МБит на загрузку, 0.85 МБит на выгрузку. Да, такие скорости никогда не достигались в этом месте. Бинго.



Включение модуля
Для проверки будет использоваться программа minicom. Установить ее пакет:
#sudo apt-get install minicom

Порт модема /dev/ttyACM1 - контрольный порт, используется для подачи разных команд, снятия состояния сети и пр.

Запуск из под суперпользователя.
#minicom -D /dev/ttyACM1
Параметры порта 115200 8 N 1. Выход из программы - последовательное нажатие CTRL-A X.
В процессе работы через этот порт периодически сыпятся разнобразные сообщения, понять которые, без тщательного изучения AT команд, невозможно.

Проверка того, защищена ли sim-карта pin-кодом.

Запрос: AT+CPIN?
Ответ: +CPIN: READY
Что свидетельствует что sim-карта разблокирована.
Если ответ:
+CPIN: SIM PIN
Для разблокировки sim-карты
Запрос: AT+CPIN="Ваш PIN"
Ответ: OK

Проверка уровня сигнала.
Запрос: AT+CSQ
Ответ:
 11,99
OK
Ответ состоит из двух цфир: +CSQ: 11,99. С помощью первой определяем уровень сигнала в дБ по форумуле: [-113 + Х * 2]. Второе число - количнство ошибок в процентах. 99 - не определено.
Итак уровень получается -91 dB. Например, уровень на направленной 3g антенне -86 dB. В лучшие моменты -79 dB.
Мое предположение, непроверенное пока, что уровень сигнала сообщается для 2G, а не 3G, потому что при разных антеннах, выдается одно и тоже значение. Позже уточню.

Список сетей. Долго думает, но всё же выводит.

AT+COPS=?
+COPS: (2,"MegaFon RUS","MegaFon RUS","25002",0),(2,"MegaFon RUS","MegaFon RUS",
OK
Внутренние часы модуля
Запрос: AT+CCLK?
Ответ: +CCLK: "2000/01/01,03:48:02+00"

OK
Время не установлено, надо установить:
AT+CCLK=«yy/mm/dd,hh:mm:ss+zz» — установить время. Обязательно в таком формате и с ведущими нулями.
Пример:
Запрос: AT+CCLK="2012/08/10,18:28:00+03"
Ответ: OK

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

Карта включается командой:
Запрос: AT+CFUN=1
Ответ: +PACSP0

Установить только 2g подключение
AT+CFUN=5

Установить только 3g подключение
AT+CFUN=6

Можно это не делать, это всё делает NetworkManager входящий в поставку Ubuntu.

Просмотреть индикатор-состояние:
Запрос: AT+CIND?
Ответ: +CIND: 0,3,1,0,1,0,1,0,0,0,0,0
Вторая цифра показывает уровень сигнала в диапазоне 0-5.


Просмотреть CellID возможно в следующем ответе:
AT+CREG?
+CREG: 2,1,"0E11","01693912"

"01693912" - 2 байта cell id в шестнадцатиричном формате
"0E11" - код местоположения

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

Запрос: AT*E2OTR?
Ответ: *E2OTR: 0,75,80,85,1,57

OK

Проверка баланса 3g модема

Для проверки баланса использовать специальные USSD AT-команды.
Если выполнить на терминале /dev/ttyACM1 ( это управляющий порт) команду:
AT+CUSD=1,"*100#",15

то симка мегафона вернёт текущий баланс счёта.

+CUSD - это префикс для выполнения команд USSD.
*100# - код для запроса баланса у провайдера Мегафон.


Выключение модуля

Для перевода модуля в энергосберегающий режим:
Запрос: AT+CFUN=4
Ответ: OK

Для обесточивания карты (опасная команда, потом потребуется перезагрузка), Карта не будет способна принимать команды.
Запрос: AT+CFUN=0
Ответ: ОК

Использование модуля Ericsson f3607gw как GPS приемника

В модуль Ericsson f3607gw встроена функция GPS - глобального определения координат. Грех ее будет не использовать.
GPS данные поставляются по протоколу NMEA через порт /dev/ttyACM2. По умолчанию, порт выключен и его надо включить отправив AT-команды.

Первый шаг. Отправка строки вида  AT*E2GPSCTL=X,Y,Z в контрольный порт /dev/ttyACM1.
где

X -  0 (выключены NMEA сообщения) или 1 (включены NMEA сообщения)
Y - частота в секундах появления NMEA сообщений (от 1 до 60 сек)
Z -  0 (DGPS выключена) или 1 (DGPS включена)

Запрос: AT*E2GPSCTL=1,5,1
Второй шаг. Отправка в порт /dev/ttyACM2 команды AT*E2GPSNPD. После получения и отработки команды, порт /dev/ttyACM2 перестанет получать команды, до отключения питания. Управление потоком NMEA сообщений сохраниться через контрольный порт /dev/ttyACM1.


Просмотреть, все ли получилось можно обычной командой cat /dev/ttyACM2.

#cat /dev/ttyACM2

$GPGGA,,,,,,0,00,0.5,,M,0.315099,M,0.0000199,0000*7B
$GPRMC,002408.38,V,,,,,,,060180,,,N*77

GPS требует собственной антенны, расчитанной на диапазон около 1.5 ГГц.

Существует стандартный демон gpsd, который позволяет разделять 1 последовательный порт с сообщениями NMEA между нескольким программами.

Выводы
Модем оправдал свои вложения. Не без трудностей, но удалось улучшить Интернет-подключение.


Ресурсы
AT-команды аналогичного устройства. http://www.natisbad.org/E4300/Dell_Wireless_5530_AT_cmd_ref.html
Подробное описание модуля SIM900D. http://we.easyelectronics.ru/part/gsm-gprs-modul-sim900-chast-vtoraya.html

четверг, 9 августа 2012 г.

Ubuntu 12.04 server + Wi-Fi Atheros AR9285 adapter в консоли

Подключение Wi-Fi карты к микросерверу или настройка Wi-Fi в консоли

Wi-Fi адаптер на чипсете Atheros AR9285 в формате Mini-PCI-e, временно подключен через адаптер Mini-PCI-e to PCI-e к слоту PCI-e 1x микросервера. В дальнейшем планируется замена на 3g адаптер.
Wi-Fi адаптер поддерживает стандарты 802.11bgn.

Основной пакет программ для беспроводных интерфейсов - "wireless-tools". В него входит команда iwconfig для конфигурирования беспроводного адаптера, iwlist scan - для просмотра доступных сетей. Также для беспроводных защищенных сетей необходим пакет программ wpasupplicant, а для точки доступа пакет hostapd.

После физического подключения адаптера и загрузки микросервера. Посмотрим в каком состоянии адаптер.

root@microserver:~# lspci | grep Wireless
02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)

root@microserver#iwconfig
...
wlan0  IEEE 802.11bgn  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
...

root@microserver#lspci | grep Wireless
02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)

root@microserver#lspci -v
...
02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
Subsystem: Foxconn International, Inc. Device e016
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at fe8f0000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
Capabilities: [60] Express Legacy Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel
Capabilities: [160] Device Serial Number 00-00-00-00-00-00-00-00
Capabilities: [170] Power Budgeting <?>
Kernel driver in use: ath9k
Kernel modules: ath9k
...
Видно, что для адаптера используется драйвер ath9k (Atheros). Он входит в ядро. Согласно описанию драйвера возможно использование адаптера в следующих режимах:
Station Mode (STA) - клиентская станция, по умолчанию
AP Mode (AP) - точка доступа
Ad-Hoc (IBSS) mode - режим peer-to-peer без точки доступа. Если у двух компьютеров перевести адаптеры в этот режим, то будет возможно их соединение без проводов.
WDS - беспроводной мост между точками доступа.
и др.
Качественная поддержка чипсета в ядре обеспечена переданными сообществу linux исходными кодами драйвера.

root@microserver#dmesg | grep Atheros

[    9.964031] ieee80211 phy0: Atheros AR9285 Rev:2 mem=0xffffc900109c0000, irq=16

Предварительно можно сделать вывод, что адаптер поддерживается ядром Linux "из коробки".


Настройка беспроводного адаптера в режиме "клиента"
Режим клиента нужен чтобы иметь возможность подключения к существующей инфраструктуре, например к роутеру с wi-fi. А микросервер у меня выступает как "основа инфраструктуры" самостоятельно и его сетевая настройка предназначена предоставлять сервисы, а не получать. Это создает легкие трудности манипулирования сетевой конфигурацией.

Включим беспроводной интерфейс:
root@microserver#ifconfig wlan0 up

Просканировать наличие какой-либо wi-fi сети
Чтобы подключиться к какой-либо сети wi-fi вначале просканируем эфир на их наличие. Это выполняется с помощью команды iwlist scan или iwlist wlan0 scan, где wlan0 - беспроводной интерфейс участвующий в сканировании.


root@microserver#iwlist scan
...
wlan0     Scan completed :
          Cell 01 - Address: 00:1A:2B:00:00:01
                    Channel:11
                    Frequency:2.462 GHz (Channel 11)
                    Quality=39/70  Signal level=-71 dBm  
                    Encryption key:on
                    ESSID:"TestAP"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s
                              24 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
                    Mode:Master
                    Extra:tsf=00000001ca485186
                    Extra: Last beacon: 256ms ago
                    IE: Unknown: 0003477531
                    IE: Unknown: 010882848B962430486C
                    IE: Unknown: 03010B
                    IE: Unknown: 2A0100
                    IE: Unknown: 2F0100
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 32040C121860
                    IE: Unknown: DD06001018020014
...


Видим, что обнаружена точка доступа Wi-Fi с именем TestAP с частотным каналом 11. Здесь она именуется Cell 01 - "Ячейка 01". Уровень сигнала отличный. "Encryption on" - означает, что включено шифрование и оно имеет вид "IEEE 802.11i/WPA2 Version 1" и "Authentication Suites (1) : PSK". Т.е. WPA2-PSK. PSK - пароль-ключ предварительно переданный клиентам". Т.е. потребуется предварительная настройка пакета wpasupplicant для задания пароля доступа и характеристик шифрования.

root@microserver:~#wpa_passphrase TestAP > /etc/wpa_supplicant.conf
root@microserver:~#cat /etc/wpa_supplicant.conf

# reading passphrase from stdin
network={
ssid="TestAP"
#psk="testpasswo"
psk=c640b48e3fcd0842de9be8fcb83760f17a262b187e93291701f1c550e820dbc98
}


root@microserver:~#nano /etc/wpa_supplicant.conf


scan_ssid=1 # сканировать точку доступа если скрытая
proto=RSN
key_mgmt=WPA-PSK


т.е. RSN - это для WPA2 протокола


Далее, проверим подключение к точке доступа.
root@microserver:~#wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
...
Associated with 00:1a:2b:00:00:01
...
Таким образом, физическое соединение установилось, т.е. Layer 2 поднят.

Ctrl-C чтобы прервать соединение.
Для того чтобы команда wpa_supplicant выполнялась в фоне, задать опцию -B, означающую "background".

Далее, можно запросить IP-адрес у dhcp-сервера точки доступа, разумеется при запущенном wpa_supplicant.
root@microserver:~#dhclient wlan0
Проверяем
root@microserver:~#ifconfig wlan0

Теперь посмотрим таблицу маршрутизации и проверим, чтобы маршрут по умолчанию, для неизвестных ip-адресов проходил через беспроводной адаптер (мое требование).
root@microserver:~#ip route

root@microserver:~#ip route del default
root@microserver:~#ip route add default via 10.0.0.138

где - 10.0.0.138 - адрес шлюза, в данном случае wi-fi 3g router Bigpond.

Проверка доступности сети Интернет, при условии что роутер подключен к ней.
root@microserver:~#ping 8.8.8.8
root@microserver:~#ping www.google.com


Для упрощения подключения к сети, можно задать конфигурацию в файле /etc/network/interfaces

root@microserver:~#cat /etc/network/interfaces

...
auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
post-up wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant.conf

...
Вышеуказанные строки обеспечивают присоединение к точке доступа автоматически во время загрузки. Если это не требуется, то нужно убрать строку auto wlan0, а подключение осуществлять командой ifconfig wlan0 up.
Все параметры, касающиеся шифрования, протоколов, пароля точки доступа находятся в файле /etc/wpa_supplicant.conf

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



Настройка беспроводного адаптера в  режиме "точка доступа"
Режим "точка доступа" нужен для роли микросервера как точки доступа в локальную и глобальную сеть, когда он является основой инфраструктуры - роутером, точкой доступа, сервером.
Начинать надо с чистого листа, т.е. без каких-либо предварительных конфигураций клиентского режима.

root@microserver:~#ifconfig wlan0 up

Это создаст интерфейс wlan0 , но не присвоит ему IP адрес и пр.

Перевод адаптера в режим точки доступа - старый способ (у меня не работающий):
root@microserver:~#iwconfig wlan0 mode Master
У меня не сработало. Выдало. Invalid argument

Причина в следующем:
"All new mac80211 based drivers that implement AP functionality are supported with hostapd's nl80211 driver."
Т.е. все настройки режима точки доступа проводятся через hostapd. В моем случае это так. И команда lsmod показывает, что драйвер в данном случае на новой архитектуре.

root@microserver:~# lsmod | grep 80211
mac80211              506816  1 ath9k
cfg80211              205544  3 ath9k,mac80211,ath


Обратная операция  - перевод адаптера в режим клиента:

root@microserver:~#iwconfig wlan0 mode Managed

Также доступен режим ad-hoc.
root@microserver:~#apt-get install iw hostapd
Эти операции пока работают.


hostapd демон точек доступа и серверов аутентификации. Реализует поддержку протоколов IEEE 802.11 access point management, IEEE 802.1X/WPA/WPA2/EAP Authenticators, RADIUS client, EAP server, and RADIUS authentication server. Полноценное ПО, позволяющее создать точку доступа с современнейшими средствами контроля доступа.

Описание hostapd советует создать минимальный конфигурационный файл hostapd-minimal.conf со следующим содержимым:

root@microserver:~#nano hostapd-minimal.conf
#change wlan0 to your wireless device
interface=wlan0
driver=nl80211
ssid=microserver
channel=1


и проверить запуск точки доступа командой:

root@microserver:~# hostapd hostapd-minimal.conf
Configuration file: hostapd-minimal.conf
Using interface wlan0 with hwaddr 00:00:00:00:00:02 and ssid 'microserver'


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

Теперь, после проверки возможностей, нужно сформировать полноценный конфигурационный файл точки доступа.

Опять же, руководство hostapd советует базовый конфигурационный файл для точки доступа WPA2.
root@microserver:~#nano /etc/hostapd/hostapd.conf


interface=wlan0
driver=nl80211
ssid=microserver
channel=1
# Опции

macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=YourPassPhrase
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Просмотр сообщений:
tail -f /var/log/syslog


Опция -B отвечает за запуск в фоновом режиме (демон).
root@microserver:~#hostapd -B /etc/hostapd/hostapd.conf

Существует возможность сделать для каждого пользователя свой ключ для доступа к точке доступа. См. Ресурсы.


Запуск hostapd при загрузке микросервера


Итак, для настройки точки доступа сделать следующее:
Отредактировать /etc/network/interfaces - присвоить статический ip-адрес адаптеру.
Отредактировать /etc/hostapd/hostapd.conf - конфигурация сервиса hostapd.
Отредактировать /etc/default/hostapd для запуска сервиса hostapd при загрузке.
Отредактировать /etc/dhcp/dhcpd.conf для обслуживания беспроводных клиентов.



Для автозапуска сервиса точки доступа при загрузке, нужно отредактировать файл /etc/default/hostapd и изменить строки на:
RUN_DAEMON="yes"
DAEMON_CONF="/etc/hostapd/hostapd.conf"

Т.к. беспроводной адаптер будет работать в режиме точки доступа, то ему желательно присвоить статический ip-адрес, отредактировав /etc/network/interfaces.
...
iface wlan0 inet static
 address 192.168.5.1
 netmask 255.255.255.0
 gateway 192.168.5.1
 broadcast 192.168.5.255
...
auto wlan0
...


После установления связи по беспроводной сети на уровне L2, необходимо озаботиться автоконфигурацией клиентов точки доступа. Для этого надо  включить имя беспроводного интерфейса wlan0 в список интерфейсов dhcpd сервера, на которых он раздает адреса.
В моем случае это в файле /etc/default/isc-dhcp-server
root@microserver:~#cat  /etc/default/isc-dhcp-server
...
INTERFACES="home wlan0"
...

А также, внести изменения в файл /etc/dhcp/dhcpd.conf, внести новую подсеть для wlan.

...
subnet 192.168.5.0 netmask 255.255.255.000 {
 range 192.168.5.3 192.168.5.200;
 option domain-name-servers 85.21.192.3, 213.234.192.7;
 option routers 192.168.5.1;
 option broadcast-address 192.168.5.255;
 default-lease-time 86400;
 max-lease-time 172800;
}

...

Перезапуск сервера dchp
Остановка dchp сервера: $ sudo service isc-dhcp-server stop
Запуск dchp сервера: $ sudo service isc-dhcp-server start

Либо перезагрузка микросервера.


Также некоторые сервисы и их конфигурации, как то smbd, nfs, ssh должны быть поправлены при необходимости, чтобы внести поддержку на новом беспроводном интерфейсе.



Ресурсы
http://help.ubuntu.ru/wiki/wifi_ap
http://help.ubuntu.ru/wiki/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_%D1%81%D0%B5%D1%82%D0%B8_%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E
Описание драйвера Atheros ath9k. http://linuxwireless.org/en/users/Drivers/ath9k/
Описание hostapd. http://wireless.kernel.org/en/users/Documentation/hostapd
Сайт hostapd. http://w1.fi/hostapd/
Простая реализация криптостойкого шифрования WiFi с помощью hostapd. http://www.ibm.com/developerworks/ru/library/l-wifiencrypthostapd/index.html

Установка поддержки wi-fi карты BCM4318

Установка поддержки wi-fi карты на чипсете Broadcom BCM4318

При загрузке диска Ubuntu desktop на различных платформах, иногда обнаруживаются встроенные сетевые беспроводные адаптеры. Обычно на их на стройку нет времени и они идут в фоне, определились и ладно. Понадобилось однажды получить доступ к сети по Wi-Fi, а драйвер работает неполностью - отсутствует прошивка.


Быстрый поиск подсказал:
$sudo apt-get install b43-fwcutter firmware-b43-installer

После выполнения команды Network Manager подхватил сетевую карту и заработал.
Всё.


Ресурсы
WifiDocs/Driver/bcm43xx. https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx#b43_-_Internet_access

воскресенье, 5 августа 2012 г.

Canon EOS 1100d + МС Волна 9

Подключение объектива МС Волна 9 2.8/50 к цифровой зеркальной камере Canon EOS 1100d

Объектив применяется как для съемки бесконечно удаленных предметов, так и для макросъемки с дистанции 0,24 м (масштаб съемки 1:2)
Объектив рекомендуется для съемки архитектурных деталей, пейзажей, мелких животных и насекомых, съемки в музеях и для пересъемки текста и репродукций.

Характеристики объектива МС Волна 9 2.8/50

Фокусное расстояние 52.19 мм
Геометрическое относительное отверстие 1:2.8
Пределы изменения геометрического относительного отверстия от 1:2.8 до 1:16
Угловое поле зрения 46 град
Рабочий отрезок 45,5 мм
Резьба для соединения с фотоаппаратом М42х1
Пределы фокусировки от 0.24 м до бесконечности
Присоединительные размеры для насадок, резьбовой М52x0,75, гладкий 54 мм
Длина объектива, установленного на бесконечность, без крышек 68 мм
Наибольший диаметр оправы, 64,5 мм
Масса без крышек, 340 г
Характеристики взяты из прилагаемой инструкции.

Подключение производилось через адаптер Canon EOS-M42 с чипом автофокусировки.
При подключении к камере с кроп-фактором, перестает быть "нормальным". Для камеры формата APS-C, коей является Canon EOS 1100d, "нормальным" считается объектив с фокусным расстоянием 27 мм.

Август 2012. Виноград сорта Кадрянка