Страницы

Показаны сообщения с ярлыком mikrotik. Показать все сообщения
Показаны сообщения с ярлыком mikrotik. Показать все сообщения

вторник, 1 мая 2018 г.

Mikrotik simple IPv6 ULA Unique local addresses. Простое правило планирования приватных сетей

Когда нет возможности нормально использовать глобальную сеть IPv6 - провайдер не предоставляет глобальные IPv6-префиксы, а поддержку и отладку сервисов на совместимость с IPv6 надо, то самое разумное (определённое стандартом rfc4193) использовать уникальные локальные адреса IPv6 - Unique local addresses (ULA).

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

В принципе, это можно не делать, но подтянуть свою домашнюю инфраструктуру к готовности к IPv6 уже надо бы. 2018 год на дворе.

Префикс ULA начинается с FD. FD00::/8. F - сразу становится понятно FICTION - фиктивый.

Итак, сложное - это генерация 56-битной части префикса ULA. Её 40-бит Global ID и 16-бит Subnet-ID.
Но для этого есть калькулятор, доступный в web: https://www.ultratools.com/tools/rangeGenerator

После нажатия кнопки GO, выдаётся несколько строк, которые можно сохранить в блокноте.
Prefix/L:  fd

Global ID:  2b96cddd52

Subnet ID:  f1ad

Combine/CID:  fd2b:96cd:dd52:f1ad::/64

IPv6 addresses:  fd2b:96cd:dd52:f1ad::/64:XXXX:XXXX:XXXX:XXXX

Start Range:  fd2b:96cd:dd52:f1ad:0:0:0:0

End Range:  fd2b:96cd:dd52:f1ad:ffff:ffff:ffff:ffff

No. of hosts:  18446744073709551616



Заметка, не об этом, а о том, как подключить их в Mikrotik.

Итак, Mikrotik RouterOS 6.40.1.

Идеальная последовательность настройки IPv6 в Mirkotik RouterOS у меня сложилась в несколько шагов.

1. GROUP. Сгруппировать подсети устройств. Обычно, все проводные и беспроводные клиенты подключены в один мост. Я же делаю несколько мостов и подсетей, а между ними маршруты и пр. Это вкладки bridge, interfaces.

2. GET ULAs. Далее понять, что для каждой подсети (группы устройств) нужен свой ipv6-префикс, сгенерированный на сайте. Выделен жёлтым: fd2b:96cd:dd52:f1ad::/64
Тут кроется ошибка многих российских провайдеров - считать роутер клиента - одним устройством с /64 префиксом. Ан нет. У клиента в роутере набилось несколько потребителей /64 префиксов.


3.  POOL. Начать настройку лучше всего, с занесения выделенных префиксов в разделе IPv6/Pool. Сколько подсетей, минимум столько и пулов. Полученное значение ipv6-префикса заносится в поле Prefix, длина остаётся - 64, тогда работает протокол автоконфигурации SLAAC.

4. ADDRESS. Добавить IPv6-адрес из пула, привязав его к каждому выбранному мосту. У меня мост (bridge) для проводных клиентов. мост для беспроводных и другие подсети (по функциям).

5. ADVERTISE. Разрекламировать с помошью встроенного агента RADVD на конкретных интерфейсах (мостах), в разделе IPv6/ND (Neighbor Discovery). Клиенты подключенные к мостам сразу получат адреса с этими префиксами.





Т.е. принцип, заложенный в web-интерфейс - это в начале всё подготовить, все данные, залезая вглубь вкладок, а затем настроить на главных вкладках конечно. Master-Slave.
Такая схема, в туннелях и т.п.


※※※

вторник, 30 августа 2016 г.

Краткая памятка 4G модем Tele2 и роутер Mikrotik 912UAG-2HPnD

При подключении в usb-порт роутера MikroTik 912UAG-2HPnD модема Tele2 MF823D нужно не забыть сделать 2 вещи.
1. Во вкладке IP-DHCP Client указать автоматическое получение IP-адреса на создавшемся автоматически интерфейсе lte1. По-умолчанию модем Tele2 MF823D работает как промежуточный маршрутизатор (роутер) с адресом 192.168.01 и микротик должен получить адрес из подсети модем-роутера 192.168.0.0/24. Не важно, что порт выглядит физически как USB. Там протокол USB- Ethernet, что-то типа RNDIS если мне не изменяет память.
2. Во вкладке IP-Firewall-NAT надо добавить маскарада. srcnat на создавшемся автоматически интерфейсе lte1. После этого компьютер или компьютеры, подключенные через единственный порт Ethernet у роутера Mikrotik  912UAG-2HPnD должны просочиться в Интернет.
Т.е. компьютеры получаются за 3-мя NAT. NAT-Mikrotik, NAT-Modem, NAT-Tele2. А всё почему - никак не хотят внедрить IPv6 повсеместно. Прогресс замер последние 5 лет, в этом плане.
Удалённый доступ - получите проблемы. Peer-to-peer - получите проблемы.

Модем Теле2 MF823D  аналогично настраивается в роутерах Mikrotik 751,951 имеющих USB-порт.
Единственно - не использовать длинный usb-кабель, пытаясь улучшить связь, но создав себе периодические пропадания. Проблема с питанием 5 В на таких роутерах Mikrotik.

Модем Tele2 MF823D произведен компанией ZTE, то есть это модем ZTE MF823D.
Недостатком моего экземпляра явилось отсутствие слота для карт памяти, а также разъёма для подключения внешней антенны.
ПО: WEB_TELE2RUSMF823DV1.0.0B01
ПО устройства: BD_MF823DV1.0.0B01
Модель: MF823D-1.0.0
Эксплуатируется с родной симкартой Tele2. Не разлочен.

Теперь пару слов про автоподключение (автодозвон) модема Tele2 MF823D.
Во встроенном интерфейсе модема Tele2 присутствует какой-то баг, что не работает автоподключение к сети, через APN настроенной по-умолчанию.
Ну так, настроить надо новую APN, например AUTOTELE2, по аналогии. И уже с ней автоподключение начинает работать.

APN для автодозвона модема Tele2 MF823D


※※※

понедельник, 12 января 2015 г.

Тестирование Mikrotik Routerboard RB912UAG-2HPnD и Ericsson F3607gw, Ericsson F5521gw 3g mini-PCIe модемов

По умолчанию, плата маршрутизатора RB912UAG-2HPnD прибыла без всего - в пакетике. Пришлось докупать проводки коннекторы (pigtail) MMCX - RPSMA для подсоединения антенн ко встроенному приёмо-передатчику Wi-Fi (без них нельзя включать, т.к. по умолчанию wi-fi работает), 3g-модемы Ericsson F5521gw, а пигтейлы U.FL-SMA были. Антенны были от старого роутера Bigpond. Был также ранее исследованный модем Toshiba Ericcson F3607gw [1].

RouterBoard RB912UAG-2HPnD в сборке 3g модемом Ericsson F3607gw

Включение Mini-PCIe на плате RB912UAG-2HPnD

Включение поддержки слота Mini-PCIe в плате Routerboard RB912UAG-2HPnD надо сделать из консоли, подключившись с помощью SSH или Telnet, потому что из графического режима версии 5.26 это сделать не получается, а вот после обновления до 6.24 вкладка стала видна и всё можно сделать из графического интерфейса.

Это было актуально для версии 5.26:
Первоначально плата настроена на использование разъёма USB типа A:

/system routerboard usb print
use: USB-type-A

Чтобы включить поддержку слота mini-PCIe распаянного на плате  Routerboard RB912UAG-2HPnD надо выполнить (для версии 5.26):

/system routerboard usb set use=mini-PCIe


После этого надо выключить плату роутера командой
/system shutdown
нажав y в подтверждение выключения.

После этого надо отключить питание от платы, подождать некоторое время (пока разрядятся некоторые конденсаторы) и включить систему.

После включения, модем, если он поддерживается (а покупался поддерживаемый модем) будет виден в нескольких местах:

В System > Ports
usb1
имя порта usb1 можно переименовать, например в minipcie, чтобы не путаться.

В System > Resources > USB

Можно переходить к настройке PPP-подключения.

※※※

Настройка PPP подключения для модема Ericsson F3607gw

Подключение к провайдеру Мегафон. В Воронежской области.

В меню PPP надо добавить новое соединение PPP-Client
Сразу перейти на вкладку "Advanced Mode"

В полях указать:

Name: megafon-vrn
APN: internet
Modem Init: AT+CFUN=1
Phone: *99#
DIAL Command: ATDT
User: gdata
Password: gdata

MTU:1476

Port: usb1
Data Channel: 1
Info Channel: 2

Тут, важно что:
AT+CFUN=1 - это включает приёмопередатчик модема и он после выполнения подключается к сотовой сети. Подключение к сети может занять чувствительное время ( несколько секунд и пр., в зависимости от условий). Если требуется ещё информации о модеме то можно обратиться к заметке [1].
При отключении (D) приёмо-передатчик тоже выключается, т.е. модем отключается от сотовой сети.
Это очень странно сделано, но видимо были свои причины.

Data Channel - это канал по которому будут передаваться данные.
Info Channel - это информационный канал, по которому можно смотреть характеристики сотовой связи (уровень сигнала, оператор, 2g/3g), даже при подключенном соединении (не устойчиво).
В инструкции [3] на сайте Mikrotik, рекомендуется установить Info & Data каналы в 2, но тогда нормально неработает вкладка Info.


Подключение задумчивое, обычно если с модемом что-либо не так и пр.
Можно просмотреть информацию по модему, на вкладке Info

Поля:
Functionality: full
Access Technology: 3g
и уровень сигнала
обычно говорят о нормальной работе.

Либо в консоли:
/interface ppp-client info 0
Выведется что-то вроде этого (иногда могут быть ошибки):

[admin@MikroTik] /interface ppp-client> info 0
       modem-status: ready
         pin-status: no password required
      functionality: full
       manufacturer: TOSHIBA
              model: F3607gw
           revision: R1K06
      serial-number: n/a
   current-operator: Megafon

  access-technology: 3g
     signal-strengh: -89dBm
   frame-error-rate: n/a


Итак, первая часть подключения сделана. Теперь надо настроить преобразование адресов (NAT) для клиентов локальной и беспроводной сети, чтобы получить доступ в Интернет не только на routerboard, а и на подключенных через Ethernet стационарных компьютерах и беспроводных устройствах.


Тест скорости платы MikroTik RouterBoard RB912UAG-2HPnD и Ericcson F3607gw 3g модема, с обычной штыревой антенной, в городе


※※※

Особенности при подключении модема Ericcson F5521gw

Модем вроде бы не поддерживается Микротик официально. Но работает.Он более скоростной на передачу, чем F3607gw.
Добавлено: 17.01.2015. У моей сборки есть постоянные зависания модема при интенсивной передаче, такие, что не помогает usb power reset, что странно. Также есть какая-то плавающая зависимость, видимо по питанию, модема и wi-fi модуля (наверное нехватка энергии). Так что, пока вернул обратно F3607gw.


Этот модем при подключении к порту mini-PCIe начинает именоваться usb2. В разделе System Drivers появляется дополнительно драйвер клавиатуры и мышки. Что это - неизвестно.
Каналов у него 6 оказалось. Правда потом появилось 3.
Т.е. выглядит как другой порт и старые привязки сделанные для F3607gw не сработали.
Автоматически создалось новое пустое PPP-out подключение.
Надо вновь переименовать порт и указать его в настройках PPP-подключения.

Data Channel = 2
Info Channel = 1
Для SMS управления исп. канал 0.

С этим модемом случилась проблема - он завис, после тестирования скорости. Сброс питания через интерфейс не помог, с первого раза, пришлось удалить порт и передернуть питание в Routerboard USBPowerReset. Тогда он снова появился.

Т.е. нужен ещё скрипт для перезапуска питания у модема.

После перезагрузки, он ещё раз поменял свою идентификацию в системе, правда уже интерфейсы в интернет не испортились. Пропали только мышь и клавиатура из списка драйверов. ну и число каналов стало = 3.

После очередного тестирования скорости завис опять. Пришлось опять делать USB Power Reset (правильная однако функция - для удалённого устройства).

Похоже этот модем может преподнести сюрпризы при эксплуатации.

Ну что же, сделаю третий тест скорости и посмотрю реакцию. Поэксплуатирую очередные 48 часов, на приём-передачу.

Посмотрим, как с пропаданием питания - внезапным. Отработал. Канал поднялся через 15 секунд после последнего писка Микротика.

Есть особенность. После USB Power Reset модем принимает новое значение. Например был USB 1.2, а после передергивания - 1.6.

Приём сообщений SMS работает.

Работал не более 5 часов, после этого завис. Ни Wi-Fi, ни через Интернет не подключиться было. Более-менее удалось подключиться по проводному подключению. USB Power Reset не помог. Пришлось выполнить физическое отключение питания.

Тест скорости платы MikroTik RouterBoard RB912UAG-2HPnD и Ericcson F5521gw 3g модема, с обычной штыревой антенной, в городе


※※※

RB912UAG-2HPnD как 3g шлюз в Интернет

Самое быстрое и простое правило в IP > Firewall > NAT:

/ip firewall nat add out-interface=megafon-vrn chain=srcnat action=masquerade


※※※

Дополнительные настройки

Для некоторых целей, я вынимаю беспроводной интерфейс из моста и делаю для него отдельную подсеть.
Обычно я делаю настройку email для отправки событий входа-выхода.
Настройку LED индикаторов, для индикации подключения к сети Интернет и VPN подключение к другому роутеру Mikrotik.

※※※

SMS оповещения (/tool SMS) от Микротика


Для Воронежа (Мегафон-Кавказ) номер SMSC центра для указания при отправке SMS из Микротика:
+79282000002
Для Санкт-Петербурга (Мегафон-Северо-Запад) номер SMSC центра для указания при отправке SMS из Микротика: +79219909090

Управление языком принимаемых сообщений, нужно т.к. Микротик не поддерживает кодировку на русском, а только латиницу.

Мегафон

"Для получения сообщений на русском языке от оператора Мегафон, необходимо отправить SMS - сообщение RUS на номер +79272909090. Для получения сообщений на латинице от оператора Мегафон, необходимо отправить SMS - сообщение ENG на номер +79272909090".
После отправки придёт сообщение "Транслитерация включена". Новые сообщения будут на латинице.

МТС

SMS на номер +79126313431 с текстом Eng. Пока не проверено.



Возможен также приём сообщений и запуск скриптов при получении определенных SMS.

Отправка сообщения:

/tool sms send minipcie phone-number="+7XXXXXXXXXX" message="Mikrotik says" channel=0

Эта команда не работает сразу после перезагрузки (on startup). Возможно модем ещё не инициализировался.

※※※

Управление Miktrotik через SMS


Встроенный инструмент SMS в RouterOS позволяет выполнять скрипты, по принятию SMS-сообщения.


Перед приёмом сообщений и выполнением скриптов, нужно чтобы был отлажен приём обычных сообщений SMS.


Выглядеть всё это должно как-то так:
/tool sms print

recive-enabled: yes
port: minipcie
channel: 0
secret: XXX
allowed-number: +70000000000
keep-max-sms: 20
sim-pin:


/tool sms inbox print

# PHONE TIMESTAMP MESSAGE

В [4] приведён синтаксис команд:

:cmd SECRET script myscript VAR="VAL"

Если на телефонный номер 3g-модема послать SMS-сообщение вида:

:cmd XXX script checkhome

Да, именно так и начинается SMS, с двоеточия.

То, если включен приём SMS, настроено кодовое слово XXX, и сообщение отправлено с номера совпадающего с allowed-number, указан верный канал модема и он не занять ничем другим, то по идее выполниться скрипт checkhome, а в журнале (Log) появиться запись


gsm,info running script: checkhome

И таким образом, можно "пнуть" удалённый роутер, чтобы он выполнил некий "танец обновления" или перезагрузился.
Теперь остаётся понять, что делать с накопившимися SMS, они сами очищаются?

Однако, при зависании модема, не удастся управлять с помощью SMS. Вся логика должна быть внутри роутера - писать скрипты.


※※※

Подключение к терминалу модема


У меня usb-порт переименован из usb1 в minipcie, поэтому:

/system serial-terminal port=minipcie channel=0

ATI
F3607gw
OK


Выйти из терминала Ctrl-A, затем Q.

Channel=0 указывает канал, в который отправляются команды AT.

Терминальный доступ позволяет например включить GPS для модема Ericcson F5521gw:
Init1 = AT*E2GPSCTL=1,5,1
Init2 = AT*E2GPSNPD

※※※



Недостатки RB912UAG-2HPnD

1. Неудобно расположен слот SIM карты, для оперативной замены
2. Нет второго USB порта (не используется разъём), а хотелось бы, например подключить туда UPS.
3. Малоинформативные LED - хотелось бы иметь их разноцветными и больше управляемых состояний.
4. Нет поддержки 802.11af (стандартное питание через ethernet)
5. Недостаточное средств управления железом, помимо USB Power Reset хотелось бы иметь возможность удалённо отключить питание и вновь подать, через какое-то время.


※※※

Ресурсы


1. http://gimmor.blogspot.ru/2012/08/wwan-3g-intel-dn2800mt.html

2. http://wiki.mikrotik.com/wiki/Manual:USB_Features

3. http://wiki.mikrotik.com/wiki/Supported_Hardware#3G_cards_and_modems

4. Mikrotik SMS. http://wiki.mikrotik.com/wiki/Manual:Tools/Sms

5. OpenWRT on MikroTik. http://wiki.openwrt.org/toh/mikrotik/rb91xg_5hpnd

6. OpenWRT on MikroTik 750gl. http://www.ericconrad.com/2012/05/installing-openwrt-on-routerboard-750gl.html
※※※

среда, 28 мая 2014 г.

Mikrotik. Собственный FTP-сервис на домашнем компьютере. Проброс порта №21

Возникла задача сделать собственный простейших сервис загрузки/выгрузки файлов на домашний ftp-сервер.

Настройка ftp-сервера в ubuntu, можно посмотреть в заметке:
FTP-сервер Vsftpd на Hp proliant microserver

Для уменьшения проблем, клиент FTP надо настроить в пассивном режиме (PASSIVE MODE), который гарантирует, что все соединения будут открывать со стороны клиента к серверу, что гарантирует корректное прохождение NAT на роутере.

Для такого режима (FTP Passive mode) на роутере надо пробросить один порт. Моя конкретная ситуация осложняется тем, что порт № 21, ответственный за управление FTP, фильтруется на стороне провайдера.

Поэтому, сделаем себе другой порт на роутере (к примеру 12121) и его пробросим на стандартный порт № 21 на домашнем компьютере (192.168.1.11).

На Микротике надо добавить первое правило, в таблицу IP NAT.

Вот выкопировка:

$ /ip firewall nat print
 0   ;;; To FTP server. SERVER PASSIVE MODE
     chain=dstnat action=netmap to-addresses=192.168.1.11 to-ports=21
     protocol=tcp in-interface=wan dst-port=12121


Используется специальное действие, предназначенное для таких целей - netmap.
in-interface=wan - это для интернет- интерфейса трансляция.

Чтобы подключаться из домашней сети (bridge-local) я склонировал правило, указав входной интерфейс bridge-local.

Тоже самое проделал и для беспроводной сети, которая у меня удалена из bridge-local, и создает свой мост wireless. Это позволило избежать проблем при трансляции UDP-multicast.

Всё.

Настройка клиентов на Androide и настольном компьютере, простейшая. Только надо выбрать режим PASSIVE (Пассивный). И этот дурацкий 20 порт не будет участвовать в обмене.


Из Android FTP-клиентов очень понравился Turbo client. Так его и искать в Google Play.

Пока замечу, что c FTPS (SSL) у Turbo client в связки с NAT Mikrotik) пока возникают сложности, с которыми ещё надо разобраться. Ниже пример, решения. Другой FTP клиент, заработал, когда ему настроил второе правило, см. ниже.

Для того, чтобы некоторые клиенты корректно работали с FTPS (SSL), помимо настройки сервера, надо добавить проброс открываемых сервером портов, на домашний компьютер (ftp-сервер).

 4   ;;; To FTP Data
     chain=dstnat action=netmap to-addresses=192.168.1.11 to-ports=12122-12199
     protocol=tcp in-interface=wan dst-port=12122-12199


Эти значения корреспондируют с настройками в vstftpd сервере:

pasv_max_port=12199
pasv_min_port=12122
Т.е. FTP-сервер, при необходимости будет делать соединения в этом диапазоне.

Для моих настроек, для android ftp-клиента Turbo client сработало указание типа подключения FTPES. Именно ES. Для AndFTP - тип подключения FTPS (Explicit SSL).
Как-то так. Есть мелкие баги, которые постепенно выковыриваются.

Как результат, есть защищённый, анонимный доступ к домашнему ftp-серверу из внешней сети.

※※※

Часто возникает проблема подключения к ftp-серверу изнутри домашней сети, по его публичному адресу (или динамическому домену). Эта проблема известна - надо использовать дополнительное правило преобразования ip-адресов [3].
В случае несовпадения портов, надо использовать пример в [4].
Пока не настроил, приходится использовать доступ по внутреннему адресу, а при внешнем доступе - по внешнему.


Для упрощения операций на ftp-сервере, я задал права в /etc/vsftpd.conf:
anon_umask=0000
file_open_mode=0777



※※※

Ресурсы


1. FTP-сервер Vsftpd на Hp proliant microserver. http://gimmor.blogspot.ru/2012/09/ftp-vsftpd-hp-proliant-microserver.html
2. Консольный клиент FTP. http://lftp.yar.ru/
3. http://wiki.mikrotik.com/wiki/Hairpin_NAT
4. http://superuser.com/questions/663820/port-forwarding-from-inner-network-to-inner-network-hairpin-nat

※※※

четверг, 9 января 2014 г.

Mikrotik admin scripts - некоторые простые скрипты

Некоторые сведения о скриптах RouterOS


Скрипты находятся в меню System/Scripts

Для того чтобы скрипт нормально отрабатывал (а я столкнулся с неработоспособностью встроенной программы fetch, т.к. подразумевал, что я что-то делаю не так, начал искать и нашёл правило - установить флаги Policy - READ,WRITE,TEST,POLICY.

NOTE: В расписании запуска скрипта тоже надо их установить - READ, WRITE, TEST, POLICY

Скрипты не понимают русского языка, так что всё на английском.

Итак, "парочка" скриптов.

Wifi ON/OFF


Скрипт отключения wifi точки доступа по расписанию.
wifi-ap - это имя (name) беспроводного интерфейса у меня (я его переименовал).

# Script for disable wifi-ap at night
# Node: mikrotik RB951G-2HnD
# Date: 09.01.2014
/interface disable wifi-ap
:log info "wifi sleep at night"

Соответственно включения:

# Script to enable wifi-ap access at morning
# Node: mikrotik RB951G-2HnD
/interface enable wifi-ap
:log info "wifi enabled to day work"

И задать в расписании их запуск когда надо. Не забыть про флаги.

※※※

Dynamic DNS updates



Как я выяснил в результате изысканий, достаточно выполнить следующую команду и сервер сам определить IP и если всё в порядке то обновит записи DNS.

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


Пример для www.dyndns.org

/tool fetch user=myusername password=mypassword \
url="http://members.dyndns.org/nic/update\?hostname=myfqdnname" \ dst-path="/dyndns.reply"

NOTE: DynDNS похоже стал платным и удаляет привязки как ему хочется, а посему ...

Следующий пример для twodns.de

Немножко по другому написан, чтобы показать возможности использования переменных

:local myusername "myusername"
:local
mypassword "mypassword"
:local fqdnname "myfqdnname"

/tool fetch keep-result=no user="$myusername" password="$mypassword" url="http://update.two-dns.de/nic/update\?hostname=$
fqdnname"

NOTE: Заметьте, что используется символ \ для снятия специального значения у вопросика (вопрос в консоли выводит список команд доступных в меню).

В принципе, всё. Это работает. Можно установить обновление через пару-тройку часов и забыть. А можно сделать обвязку, которая проверяет доступность интерфейсов, текущее значение IP и пр.

Вот например, получение адреса с маской, отбрасывание маски и установка переменной с текущим значение внешнего IPv4-адреса

# mywan - my wan interface name
:local wan "mywan"
:local wanip [ /ip address get [/ip address find interface=$wan ] address ]
:local wanip [:pick $
wanip 0 [:find $wanip "/"]]
:log info "Wan IPv4 address is $wanip"


Вот получение преобразованного DNS-имени в IP от DNS-серверов, пишется в скриптах.

:log info ("DynDNS: Previous resolved FQDN name $myfqdnname" . [:resolve "$myfqdnname"])

или в переменную
:local dnsip [:resolve "$myfqdnname"]

Если писать в консоли ssh, то можно так смотреть для пошаговой отладки:
:put [:resolve "$myfqdnname"]
а потом в скриптах заменять на переменные.
Это всё потому, что отладка скриптов на микротике дело запутанное.


Условие можно написать так:
:if (wanip != dnsip) do={

} else={

}
В условии if,  do= и else= так и пишутся без пробелов. Да и в циклах.

NOTE: Все спец.инструкции скриптового языка начинаются с символа : .

※※※

Sheduler - Расписание


При задании интервала в 1 день в расписании, через Web-интерфейс, интервал надо указывать в формате   1d 00:00:00
либо воспользоваться консолью:

[admin@MikroTik] /system scheduler> set [find name=wifidayup] interval 1d

※※※

Netwatch


При настроенной электронной почте (/tool e-mail), появляется возможность отправки событий от Сетевого наблюдателя - Netwatch (/tool netwatch).

Все сообщения на английском, т.к. у Mikrotik трудности с кодировками.

Наблюдая за состоянием IP-адреса (например IP камеры), netwatch вызывает события при первой доступности камеры, а также при первой недоступности и соотв. при смене состояния.

Надо заполнить поля On Up и On Down простейшим скриптом.

/tool e-mail send to=my@mail.ru subject="IP Camera 1 up" body="Netwatch say IP Camera 1 up and running"

On Down:

/tool e-mail send to=my@mail.ru subject="IP Camera 1 down" body="Netwatch say IP Camera unreachable"

※※※

PPtP и динамическое имя домашнего роутера


Основная проблема с подъёмом туннеля на Микротик - это отсутствие встроенной функции преобразования имён. Всё сделано на чистых IP-адресах.
Если домашний роутер имеет динамический IP-адрес, который часто меняется, то для того чтобы PPtP-клиент мог автоматически подключаться после изменений адреса, можно приделать такой скрипт, который выясняет изменения IP-адреса домашнего роутера и если было изменение - то выполняет обновление поля Connect-to у PPtP-интерфейса на клиенте (другой роутер). Это простой скрипт, без проверок, чтобы было понятно куда двигаться дальше. А сбои могут быть разные, вплоть до получения текста в значениях переменных.
Чтобы улучшить - надо устраивать проверки.



# Script to update a Connect-to IP address of home router in PPtP tunnel
# Host: router, Mikrotik
# Date: 13.01.2015
# author: Dmitriy for site gimmor.blogspot.com

# defint FQDN of home router
:local homehost "my.dynamic.name"

# define PPtP-interface (copy "name" from "Interfaces" section of pptp-client)
:local tunnelinterface "pptp-to-home"

:local ddnsip [:resolve $homehost ]
:log info ("ddns IP: $ddnsip.")
:local connectto [/interface pptp-client get [/interface pptp-client find name=$tunnelinterface ] connect-to]
:log info ("local Connect-to IP: $connectto.")

:if ($connectto != $ddnsip) do={
   :log info ("ddns IP: $ddnsip.")
   :log info ("local Connect-to IP: $connectto.")
   [ /interface pptp-client set [/interface pptp-client find name=$tunnelinterface ] connect-to=$ddnsip ]
   :log info ("Connect-to Done!")
} else={
   :log info "NO tunnel's connect-to IP address update needed! host $homehost bind to address $ddnsip"
}

Желтым выделена команда обновления поля. После обновления поля "Connect-to" из скрипта происходит автоматический разрыв и переподсоединение. Если всё работает, то туннель PPtP автоматически присоединиться к домашнему роутеру.

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

※※※

Мониторинг питания Микротика


При наличии встроенных датчиков питания и температуры (например в Routerboard RB912UAG-2HPnD) можно осуществить просмотр значений напряжения и температуры:

:put [/system health get voltage]
:put [/system health get temperaute]

Значение напряжения, да и температуры возвращается в виде 3 цифр, без десятичной точки.

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



※※※

Ресурсы


1. http://wiki.mikrotik.com/wiki/Scripts
2. http://dyn.com/support/developers/api/perform-update/
3. http://aacable.wordpress.com/tag/mikrotik/



※※※








6to4 IPv6 tunnel на Mikrotik RB951G-2HnD

Настройка IPv6 в домашней сети


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

Mikrotik для удобства поддерживает переходный механизм 6to4, что даёт возможность установить ipv6-подключение, пока провайдеры тестируют свои сети.
В процессе экспериментов с подключением, чтением справки и руководств, выработалась некая последовательность действий, которая и будет тут приземлена.

Что-бы данная заметка смогла помочь, требуются некоторые условия.

1. Провайдер сети Интернет должен выдавать маршрутизируемый(routed) адрес на интерфейсе подключения, т.е. выдавать "белый" ipv4-адрес. В данной заметке провайдер, а им оказался Rostelecom, подключает по технологии ADSL.
2. Желательно статический маршрутизируемый ipv4 адрес, но может подойти и динамический.

Особенности моего подключения получились следующие:
1. Динамический маршрутизируемый IPv4-адрес.
2. Переподключение каждые 24-часа. Пока не определил, меняется ли адрес или нет. Буду исходить из того, что меняется.

3. Проверить доступность важного ipv4-адреса: 192.88.99.1. Это anycast адрес, который сообщает туннельному клиенту (нашему роутеру) адреса шлюзов IPv4-IPv6.

На Ubuntu:

$ ping 192.88.99.1

На Микротике:

> /ping 192.88.99.1


При использовании трансляции адресов и маскарада (NAT & masquerade) на стороне провайдера, когда IPv4-адрес выдаётся из диапазона немаршрутизируемых сетей, таких как 192.168.x.x, 10.0.0.0 и пр. данная заметка не применима, требуется иное туннельное решение. Но будет частью полезна.

Домашний роутер может быть любой с поддержкой IPv6. Обычно они строятся на платформе Linux или подобной и так или иначе используют сходный набор программ для обслуживания протокола IPv6. Однако Mikrotik RouterOS даёт некоторые возможности управления настройками с помощью пользовательских скриптов, а это важно в случае динамического IPv4-адреса, настройка меняется с помощью скрипта. Также спокойно подойдут и открытые прошивки. Можно посмотреть настройки IPv6 в DD-WRT и Open-WRT.



Простейшее ручное подключение и настройка 6to4 туннеля на маршрутизаторе Mikrotik RB951G-2HnD

Я обновил прошивку роутера, скачав её с сайта производителя и положив в меню "Файлы", после перезагрузился и система RouterOS стала версии 6.7.


1. Итак, в меню роутера Микротик RB951G-2HnD "Interface", надо добавить новый интерфейс туннельного подключения 6to4tunnel, указав в качестве важного свойства "local-address" - текущий ipv4-адрес интернет-соединения, которое должно быть поднято. Свойство Remote-address  заполнить anycast ipv4-адресом 192.88.99.1. Указать MTU=1280.
Если заполнить, то появляется автоматический IP-адрес, из диапазона автоконфигурации, FE80::, вида: FE80::XXXX:XXXX/64.
Таблица маршрутов ipv6 пока пустая.


Итак, для примера, внешний IP-адрес интернет подключения: 77.88.01.239


Можно сделать из консоли:

/interface 6to4 add name=ipng disabled=no local-address=77.88.01.239 remote-address=192.88.99.1 mtu=1280

2. Сформировать и добавить в ручную переходный IPv6-адрес, для туннельного подключения и внести его в меню IPv6/Addresses, привязав к интерфейсу туннельного подключения.
Переходный IPv6-адрес, получен полным отражением полной адресной сети IPv4 (а это 4M адресов) в подсеть IPv6, с префиксом 2002:, если я в правильно выразился.
Формируется так - 32 битный IPv4 адрес преобразуется в шестнадцатиричный вид и укладывается после префикса 2002:, который зарезервирован, при этом соблюдая текстовую нотацию.
Т.е. адрес вида 77.88.01.239 - XXXX:XXXX
Получаем префикс 2002:XXXX:XXXX::/48

Этот префикс будет присутствовать у всех устройств домашней сети. А при изменении внешнего IPv4-адреса, также будет соответственно изменяться, но на роутере это надо будет автоматизировать, поскольку туннель 6to4 всё же любит статические IPv4-адреса. Делаться изменения будут пользовательским скриптом.

Также стоит заметить, что на подсеть (subnet prefix) остается 16 бит (а это 65536 подсетей, от 0 до FFFF).



В консоли:
/ipv6 address add address=2002:XXXX:XXXX::1/16 advertise=no comment=6to4public disabled=no eui-64=no interface=ipng

Т.к. за основу своего скрипта, я взял существующий какой-то скрипт, то метка 6to4public используется в комментарии, чтобы скрипт мог определить, какой адрес менять.

В таблице маршрутов появлятся динамический маршрут 2002::/16, а ipng для него шлюзом.

[admin@MikroTik] >> ipv6 route print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, o - ospf, b - bgp, U - unreachable
 #      DST-ADDRESS              GATEWAY                  DISTANCE
 0 ADC  2002::/16                ipng                            0

Добавленный адрес, пока не доступен извне.


3. Также надо прописать хитрый шлюз, в спец.формате.

/ipv6 route add disabled=no distance=1 dst-address=2000::/3 gateway=::192.88.99.1%ipng


::192.88.99.1 - это специальный формат IPv6-адреса, т.н. "IPv4-Compatible IPv6 Address".

%ipng указывает через какой интерфейс оно доступно. Через наш туннель.


Префикс 2000::/3 - это весь IPv6 интернет. Он попал в подсеть с этим префиксом, что сузило адресное пространство до 125 бит, а остальное как я понял - зарезервировано.


4. Сформировать и добавить вручную подсеть для домашних ipv6-устройств, таких как Windows, Ubuntu, чтобы они все получили маршрутизируемые IPv6 адреса, доступные из сети Интернет, по протоколу IPv6, через туннель 6to4.

2002:IPv4:Местный префикс::1/64

/ipv6 add address=2002:XXXX:XXXX:1::1/64 advertise=yes comment=6to4subnet disabled=no eui-64=no interface=bridge-local

Здесь важна опция  advertise=yes, чтобы встроенная программа radvd в RouterOS начала выдавать префикс (2002:XXXX:XXXX:1:) клиентам сети, которые на основе этого префикса автоматически сформируют белые маршрутизируемые IPv6 адреса. Эта опция влияет на появление динамического префикса в списке меню /ipv6 nd prefix.


Конечная цель всего этого - сделать так, чтобы клиенты домашней сети, получили доступ в IPv6 автоматически. Простая цель, а сколько тонкостей, а всё из-за того, что подзадержались провайдеры с поддержкой IP New Generation.
Цитата
"RouterOS has Ipv6 Neighbor Detection and stateless address autoconfiguration support using Router Advertisement Daemon (RADVD)".
Т.е. в принципе, не нужно включать DHCPv6 сервер, хотя клиентам Windows может понадобиться.


5. Маршрут на всё
Добавить маршрут ::/0 через шлюз ipng.
[admin@MikroTik] /ipv6 route> print
Flags: X - disabled, A - active, D - dynamic,
C - connect, S - static, r - rip, o - ospf, b - bgp, U - unreachable
 #      DST-ADDRESS              GATEWAY                  DISTANCE
 0 A S  ::/0                     ipng                            1
 1 A S  2000::/3                 ::192.88.99.1%ipng              1
 2 ADC  2002::/16                ipng                            0
 3 ADC  2002:XXXX:XXXX:1::/64    bridge-local                    0

Из-за отсутствия этого маршрута, могут быть проблемы с доступностью IPv6 серверов.



На этом шаге, из консоли роутера (ssh command console), можно выполнить пробу любого ipv6-адреса (команда ping) и IPv6 сеть должна быть доступна.
Также извне, можно попробовать достучаться до адреса роутера, присвоенного интерфейсу туннеля (ipng). Я использовал сайт [3].

NOTE: Имеет смысл перезагрузиться и поправить адреса, в соответствии с новыми IP wan-интерфейса. Перезагрузка нужна, если туннель подключается, но пинги не ходят и извне нельзя достучаться по протоколу ipv6.

Из интересных IPv6-адресов:
2001:4860:4860::8888
2001:4860:4860::8844
Это публичные DNS-сервера Google.

Команда Ping (по протоколу IPv6) в выполняется в Mikrotik следующим образом:

> ping 2001:4860:4860::8888

либо при рабочем преобразовании имён:

> ping [:resolve ipv6.google.com]

Надо получить правильные таблицы маршрутов на клиентах и на роутере,
правильные доступные DNS-сервера.
Можно сделать это 2 путями, с помощью RADVD либо DHCPv6.

RADVD - Router Advertisement Daemon
Простейшее встроенное средство рекламы роутера в сети, на основе которого домашние компьютеры (умеющие это) смогут сформировать свои адреса, получить DNS сервера и полностью стать готовыми для работы в сети IPv6.

Во многих случаях, этого будет достаточно. Это называется Stateless Autoconfiguraton.

Однако, есть и Statefull autoconfiguration которое выполняется DHCPv6 сервисом.


6. DNS

IPv6 без преобразования доменных имен не очень удобно для доступа.
С этим конечно есть некоторые трудности, преодолимые.


IPv6-адреса DNS серверов, могут выдаваться роутером с помощью radvd, либо по протоколу конфигурации хоста DHCPv6.

Чтобы указать выдаваемые клиентами ipv6-адреса DNS серверов, можно их добавить в меню "IP/DNS". Указать их в ipv6-формате.

IPv6 DNS сервера в меню IP/DNS Mikrotik
Надёжное функционирование DNSv6 я ещё не исследовал более подробно, так что могут быть ошибки в конфигурации. Да и вообще, микротик ещё та запутанная штука.




Специальные адреса IPv6

1. Клиент (хост) может выполнить команду Ping на адрес: FF02::1 , чтобы найти доступные компьютеры в локальной сети (один широковещательный домен, один хаб, свитч).

На микротике:
[admin@MikroTik] /ping FF02::1

На Ubuntu:
$ ping6 FF02::1%eth0

указывая интерфейс через который надо искать, т.к. адрес немаршрутизируемый.

2. Доступный адрес FF02::2. Список ipv6-адресов роутеров.
Найти роутеры в локальной сети, которые себя рекламируют (Router advertisement) в данном подключении.
Обычно один, но бывает и несколько.


3. FC00::/7 ULA's. Uniq local addresses. Уникальные локальные адреса
Этот префикс можно использовать для статического конфигурирования неприсоединенной IPv6 сети.


4. FE80::/10. Автоматически присваиваемый каждому аппаратному и неаппаратному интерфейсу IPv6-адрес. Т.н. Link-local.
Позволяет сразу обеспечить связь компьютеров.


Тестирование доступности IPv6 сети на клиенте

Перейти по адресам:
test-ipv6.com
ipv6.nic.ru

Ubuntu

ipv6.google.com - спец.сайт, доступный как видно ниже, только по протоколу ipv6.

$ host ipv6.google.com
ipv6.google.com is an alias for ipv6.l.google.com.
ipv6.l.google.com has IPv6 address 2a00:1450:4010:c03::6a


Если DNS преобразование имён доступно, то можно проверить:
$ ping6 ipv6.google.com
$ traceroute6 ipv6.google.com



Windows Vista, 7 и т.п.

В свойствах соединения должен быть включен протокол ipv6.


> ping -6 ipv6.google.com



Настройка файрволлов на клиентах

Т.к. компьютеры с поддержкой протокола IPv6 становятся доступными из сети Интернет, то требуется настроить Firewall, на каждом IPv6-подключенном устройстве. Базовые правила можно также настроить и на роутере.
Например, не принимать входящие соединения. Однако может отвалиться ping (icmpv6), если не предусмотреть разрешение.


Отладка

Т.к. технология новая, как работает IPv6 на Mikrotik не совсем понятно, то если что-то не работает, надо начинать с чистого листа - удалить добавленное и перезагрузить роутер, затем начать заново.
Пошагово.
Ещё не все зависимости и особенности выявлены.

Отлаживать скрипты на Mikrotik - это вообще "за гранью".
Основные трудности начинаются после смены динамического ipv4-адреса. Тут вступает в работу скрипт, которые я пока отлаживаю.


Помните, т.к. IPv6-адреса клиентов могут меняться очень часто, при автоподключении, то при использовании внешних утилит, проверяйте каждый раз задаваемый IPv6-адрес.Не используйте извне адреса, содержащие MAC-адрес. Не пытайтесь извне пробовать (ping) автоматические link-local адреса, начинающиеся с префикса FE80:/10, они работают только на конретных линках.

Пример трассировки компьютера, с помощью внешнего сервиса http://www.wservice.info/

1 ipv6.wservice.info 0.965 ms 32.612 ms 0.901 ms
2 2a01:230:3::1 0.568 ms 0.627 ms 0.503 ms
3 khouse-tr1.tcinet.ru 2.660 ms 2.567 ms 2.770 ms
4 KHOUSE-TR2.TCINET.RU 2.331 ms 3.927 ms 2.295 ms
5 * * *
6 2002:XXXX:XXXX::1 39.618 ms 38.146 ms 38.525 ms
7 2002:XXXX:XXXX:1:XXXX:XXXX:XXXX:XXXX 39.453 ms 41.635 ms 39.016 ms


Видно, что щупальце добралось до публичного адреса роутера, а затем полезло в домашний компьютер.

Заметил, что в Ubuntu куда-то часто пропадают IPv6-адреса, и компьютер отваливается от ipv6-сети. Проходит время и опять появляются адреса, уже частично другие. Dmesg команда показывает, что периодически Ethernet-интерфейс уходить в down, а затем поднимается опять. Это что-то видимо Network Manager в Gnome. Короче глючки. Когда ipv6-адреса появляются, то становиться доступным и сеть. Какие-то частые переподключения.

Windows 7 также очень часто обновляет IPv6 адреса. Это было у меня установлено время жизни маленьким, на время отладки (несколько минут).

Похоже это связано с временем жизни префикса:
[admin@MikroTik] /ipv6 nd prefix> print
Flags: X - disabled, I - invalid, D - dynamic
 0  D prefix=2002:XXXX:XXXX:1::/64 interface=bridge-local on-link=yes
      autonomous=yes valid-lifetime=2h preferred-lifetime=1h

Свойство autonomous=yes - это значит параметры будут раздаваться в RA-сообщениях.

2 часа - это 7200 секунд, 1 час соотв. 3600 сек.
Итак, Preffered-lifetime - это основное время жизни префикса (и адреса). В течении этого интервала времени, с этим адресом можно устанавливать новые (NEW) соединения и спокойно обмениваться пакетами. По истечении этого интервала, новые соединения уже нельзя, но существующие ещё можно.
Valid-lifetime можно сделать чуть больше, чем Preffered-lifitime.


Вывод сконфигурированных адресов на Linux host. Видны заданные параметры времени жизни адресов, которые уменьшаются со временем (при повторном запуске команды):
$ ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: home: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2002:XXXX:XXXX:1:xxxx:xxxx:xxxx:xxxx/64 scope global temporary dynamic
       valid_lft 6878sec preferred_lft 3278sec
    inet6 2002:XXXX:XXXX:1:xxxx:xxff:fexx:xxxx/64 scope global dynamic
       valid_lft 6878sec preferred_lft 3278sec
    inet6 fe80::xxxx:xxff:fexx:xxxx/64 scope link
       valid_lft forever preferred_lft forever 
У интерфейса home (переименованный eth0) видны автосконфигурированные ipv6-адреса, как на основе MAC-адреса, так и произвольный (в соответствии с Privacy Extensions), он помечен меткой temporary.
Зная MAC-адрес интерфейса (записав его куда-нибудь), зная принцип формирования префикса, можно извне достучаться до домашнего компьютера. Однако, это очень не полезно, т.к. если временный адрес, замучаются перебирать, то по MAC-легко будет добраться до компьютера.
И как я понимаю, со временем, будут сформированы базы данных MAC-адресов, если эти адреса будут передаваться по сети (в силу различных причин, например, указав однажды в качестве пункта назначения).

scope global - видимость глобальная
scope link - видимость в пределах соединения (link-local).

Шестая версия NMap (v6) поддерживает IPv6 полностью.
$ nmap -6 -Pn 2002:XXXX:XXXX:1:XXXX:XXXX:XXXX:XXXX
Starting Nmap 6.00 ( http://nmap.org ) at 2014-01-08 17:33 MSK
Nmap scan report for cetonia (2002:XXXX:XXXX:1:XXXX:XXXX:XXXX:XXXX)
Host is up (0.00027s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

Вот и видно, что SAMBA (SMB/CIFS) висит на своих портах и доступна по протоколу ipv6 (это лучше видно с добавочной опцией -sV).


Скрипт автообновления

Скрипт для автоматического обновления ipv6-адресов, если wan-интерфейс имеет белый динамический ipv4-адрес. Если серый, то ничего не будет работать. Я нашёл в инете какой-то скрипт, который у меня не работал и переделал под свои условия. Получился длинный, т.к. скриптовый язык Mikrotik не очень развит, отсутствуют многие функции (преобразование в шестнадцатиричный вид), которые пришлось написать.
Важную роль играет комментарий к ipv6-адресу, по которому этот скрипт находит его, чтобы изменить префикс.
Его надо запускать, после того как сформированы ipv6 адреса, и поднят туннель 6to4, и сеть ipv6-работает.

Вот такой костыль. Выделять куском и вставлять в окно скриптов.
А потом добавить в расписание запуск этого скрипта, с определённым интервалом. (10 минут или по желанию).

Микротику надо задуматься об добавлении функций в скриптовый язык.

# IPv6 6to4-tunnel endpoint update script
# Automatic update IPv6 address of 6to4 tunnel endpoint when internet connection IPv4 address changed (reconnect)
# Applicable for pppoe (adsl) connection and l2tp with dynamic routed IPv4 address
# Periodic (according setting sheduler) check internet connection IPv4 address and update tunnel endpoint when needed
# Host: router, Mikrotik
# Date: 25.02.2014
# RU: http://gimmor.blogspot.com/2014/01/6to4-ipv6-tunnel-mikrotik-rb951g-2hnd.html

# NOTE: if wan interface down or tunnel disabled then nothing happen.

:local waninterface;
:local 6to4interface;
:local wanaddress;
:local PubAddrComment;
:local SubnetAddrComment;

# IPV4 provider internet connection with routed (white) IPv4 address available on waninterface
:set waninterface "wan";

# 6to4 tunnel
:set 6to4interface "ipng";


# The special lables within comments of ipv6 address needed for script update
:set PubAddrComment "6to4public";
:set SubnetAddrComment "6to4subnet";


# START MAIN LOGIC

:log info "IPv6 6to4-tunnel endpoint update script start...";

:local wanup;
:local ipngup;

# needupdate - flag meens prfixes update needed
# default - false no need update
:local needupdate false;

# Check interfaces up and running
:set wanup (:put [/interface get [/interface find name=$waninterface] running; ]);
:set ipngup (:put [/interface get [/interface find name=$6to4interface] running; ]);

:log info "Wan Interface state: $wanup";
:log info "IPv6 tunnel interface state: $ipngup";

# STARTIF
:if (wanup) do={
:log info "IPv6. WAN interface $waninterface up and running"
:if (wanup && ipngup) do={
:log info "IPv6 tunnel seems to be up and ready to update endpoint";
# Update 6to4 tunnel connection when address changed
:set wanaddress [/ip address get [/ip address find interface=$waninterface] address];
:set wanaddress [:pick [:tostr $wanaddress] 0 [:find [:tostr $wanaddress] "/"]];
#:log info [:put $wanaddress];
:local tunnellocaladdress;
:set tunnellocaladdress [:put [/interface 6to4 get [/interface 6to4 find name=$6to4interface] local-address]];
#:log info $tunnellocaladdress;
:if ($tunnellocaladdress!=$wanaddress) do={
:set needupdate true;
:log info "IPv6. Need update 6to4 tunnel endpoint local-address";

# Disable addresses and tunnel interface prior changes
/ipv6 address disable [find comment=6to4public]
/ipv6 address disable [find comment=6to4subnet]
/interface 6to4 disable $6to4interface;

/interface 6to4 set ($6to4interface) local-address=$wanaddress;
:log info "IPv6. 6to4 tunnel endpoint updated with new local-address $wanaddress";
} else={
:log info "IPv6. No need update 6to4 tunnel endpoint local-address.";
:log info "IPv6. Current tunnel local-address $tunnellocaladdress and WAN address $wanaddress";
}
} else={
:log info "IPv6. 6to4 tunnel $6to4interface needed to be enabled";
}
} else={
:log info "IPv6. IPv4 internet connection (WAN interface) $waninterface must be enabled";
}
# ENDIF




:global toHexDigit do={
:local hexsym;
:set hexsym "0";
:if ($digit < 10) do={ :set hexsym (:tostr $digit); }
:if ($digit = 10) do={ :set hexsym "a"; }
:if ($digit = 11) do={ :set hexsym "b"; }
:if ($digit = 12) do={ :set hexsym "c"; }
:if ($digit = 13) do={ :set hexsym "d"; }
:if ($digit = 14) do={ :set hexsym "e"; }
:if ($digit = 15) do={ :set hexsym "f"; }
:return $hexsym;
};

# Transform ipv4 address into specifix ipv6 address with 2002: prefix and bind to 6to4interface
# 2002:XXXX:XXXX::1
# XXXX:XXXX - a hexadecimal form of public "routed" WAN address stored in wanaddress variable

:local 6to4prefix;
:set 6to4prefix "2002:";

#:log info "STARTF";
{
:local outstr;
:set outstr "";
:local dotpos;
:local numer;

:for i from=1 to=3 do={
:set dotpos [:find $wanaddress "."];
:set numer [:pick $wanaddress 0 $dotpos];
:set wanaddress [:pick $wanaddress ($dotpos + 1) 16];
:if (i=1) do={
 :set outstr ([:put $numer]);
} else={
 :set outstr ([:put $outstr] . "," . [:put $numer]);
};
};
:set outstr ([:put $outstr] . "," . [:put $wanaddress]);
#:log info [:put $outstr];

# Translate array of decimal values into hex values within array
:local octets;
:set octets [:toarray $outstr];
:local j;
:set j (1);
:local outstr;
:foreach octet in=$octets do={
 :local output;
 :local left;
 :local right;
 :local leftsym;
 :local rightsym;
 :set left ($octet / 16);
 :set right ($octet - ($left * 16));
 :set leftsym [:put [$toHexDigit digit=$left]];
 :set rightsym [:put [$toHexDigit digit=$right]];
 :set output ([:put $leftsym] . [:put $rightsym]);
# :log info ([:put $octet] . [:put $output]);
 :if (j=1) do={
  :set outstr ([:put $output]);
 } else={
  :set outstr ([:put $outstr] . "," . [:put $output]);
 };
 :set j ($j + 1);
# :log info [:put $outstr];
};
:local hexoctets;
:set hexoctets [:toarray $outstr];
#:log info [:put $hexoctets];

# Translate array of hex values into required ip prefix
:local ippref;
:set ippref "";
:local kd;
:set kd (1);
:foreach oct in=$hexoctets do={
# :log info [:put $oct];
 :set ippref ([:put $ippref] . [:tostr $oct]);
 :if (kd=2) do={ :set ippref ([:put $ippref] . ":") };
 :set kd ($kd + 1);
};
#:log info [:put $ippref];

# Forming final ipv6 prefix
:local myprefix;
:set myprefix ([:put $6to4prefix] . [:put $ippref]);
:log info ("IPv6. Global IPv6-prefix calculated: " . [:put $myprefix]);

# Update IPv6 white address of 6to4 interface (tunnel)
:foreach i in=[/ipv6 address find interface=$6to4interface] do={
:local addr [/ipv6 address get $i address];
:local cmnt [/ipv6 address get $i comment];
:local name [/ipv6 address get $i interface];
#:log info [:put $i];
#:log info ([:put $name] . [:put $addr]);
#:log info ([:put $cmnt]);
:if ($cmnt=$PubAddrComment) do={
:local newaddr ($myprefix . "::1/16");
if (needupdate) do={
[/ipv6 address set $i address=$newaddr];
 :log info ("IPv6. Changed ipv6-address of interface " . $name . " from " . $addr . " to " . $newaddr);
} else={
 :log info ("IPv6. No changes ipv6-address of interface " . $name . " from " . $addr . " to " . $newaddr);
}
};
}

# Update IPv6 white addresses for LAN

:foreach i in=[/ipv6 address find] do={
:local addr [/ipv6 address get $i address];
:local cmnt [/ipv6 address get $i comment];
:local name [/ipv6 address get $i interface];

:if ($cmnt=$SubnetAddrComment) do={
#:log info ([:put $name] . " " . [:put $addr]);
:local tmp;
:local pos;
:set tmp $addr;
:for j from=0 to=2 do={
 :set pos [:find $tmp ":"];
 :set tmp [:pick $tmp ($pos + 1) 99];
 :if ($j=2) do={
  :set pos [:find $tmp ":"];
  :local newaddr ($myprefix . ":" . [:pick $tmp 0 $pos] . "::1/64");
if (needupdate) do={
[/ipv6 address set $i address=$newaddr];
 :log info ("IPv6. Changed ipv6-address of interface " . $name . " from " . $addr . " to " . $newaddr);
} else={
 :log info ("IPv6. No changes ipv6-address of interface " . $name . " from " . $addr . " to " . $newaddr);
}
 }
}
};
};

# Check another things

};
#:log info "ENDF";

:if (needupdate) do={
:local ipv4addr [/ip address get [find interface=$waninterface] address ]
:local ipv6addr [/ipv6 address get [find comment=6to4public] address ]

# Enable interface and addresses
/interface 6to4 enable $6to4interface
/ipv6 address enable [find comment=6to4public]
/ipv6 address enable [find comment=6to4subnet]

}

:log info "IPv6 End of script Ho-Ho!";





Выводы

Удивительно, до сих пор требуется ручная настройка подключений к сети, с кучей неясных зависимостей. Ха-Ха.
6to4 штука интересная, но надо трясти провайдеров на предмет предоставления нормальной ipv6-сети.

Логика настройки роутера Микротик состоит в том, что вначале готовяться настройки нижнего уровня, а затем верхнего. Т.е. пример - вначале делается pool адресов, а затем конфигурируется DHCP на его основе.


Ресурсы
1. Setting up an IPv6 tunnel via 6to4. http://wiki.mikrotik.com/wiki/Setting_up_an_IPv6_tunnel_via_6to4
. http://www.mikrotik-routeros.com/2010/09/ipv6-and-mikrotik-using-6to4/
. http://6to4.ru/
- Тестирование связи извне по протоколу IPv6. http://www.wservice.info/
- http://wiki.mikrotik.com/wiki/Manual:IPv6_Overview
- IPv6 подключения к Микротику, по протоколу PPP. http://wiki.mikrotik.com/wiki/Manual:IPv6_PD_over_PPP
. http://blog.kladov.su/2013/11/6to4-mikrotik.html
. http://version6.ru/6to4/to-lan
- IPv6 шлюз для локальной сети. http://habrahabr.ru/post/134797/
. http://version6.ru/ip6tables
- IPv6 Address architecture. http://tools.ietf.org/rfc/rfc4291.txt
- IPv6 провайдеры. http://version6.ru/isp
. Internet Protocol Version 6 (IPv6). http://msdn.microsoft.com/en-us/library/windows/desktop/ms738570%28v=vs.85%29.aspx
Настройка IPv6 на OpenWRT. http://wiki.rnet.ru/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_ipv6_%D0%BD%D0%B0_openwrt
. http://www.mikrotik.by/index.php?showforum=1
. http://tools.ietf.org/html/rfc3056
. http://tools.ietf.org/rfc/rfc2461.txt
. http://wiki.mikrotik.com/wiki/Manual:IPv6/Address
. https://mebsd.com/ipv6-ping-and-traceroute
. http://ipv6-or-no-ipv6.blogspot.ru/2011/11/ipv6-fun-defaced.html

понедельник, 22 июля 2013 г.

Mikrotik в сети Beeline

Для восстановления подключения к сети был приобретён маршрутизатор Mikrotik RB951G-2HnD.

Из плюсов этого маршрутизатора отмечу расширенные возможности настройки, благодаря RouterOS v5.25.

Клиентами маршрутизатора будут настольный компьютер и беспроводные устройства. Т.е. будут использованы проводные и беспроводные интерфейсы устройства для доступа в сеть Интернет, с одновременным обеспечением просмотра бесплатных IPTV каналов от провайдера Beeline, на настольном компьютере и по возможности через Wi-Fi.



Предварительные сведения о серверах Beeline


vpn.internet.beeline.ru - PPtP сервер
tp.internet.beeline.ru - L2TP сервер
Получение IP-адресов VPN-серверов надо выполнять без подключения к сети Интернет, только к локальной сети, потому что если есть подключение к сети Интернет, можно получить неверные адреса.

Итак, в моем текущем случае:
L2TP - 83.102.254.204, 83.102.254.207
PPTP - 83.102.254.249

Замечание от 16 августа 2013 года.Сразу скажу, что это для СПб, моего района и пр. Первый IP перестал работать подключился на второй. Посмотрю как пойдёт.

DNS сервера
Первый: 213.234.192.8
Второй: 85.21.192.3

Районный шлюз: 10.123.240.1



Настройка подключения к сети Интернет через провайдера Beeline

Это скомпилированное и адаптированное к моим условиям руководство из источников в сети Интернет.

Для настройки маршрутизатора можно воспользоваться командной строкой маршрутизатора (telnet,ssh), либо его веб-итерфейсом webfig.

Первоначальную настройку маршрутизатора следует сделать через web-интерфейс Webfig, на вкладке QuickConfig. Это создаст автоматическое подключение к локальной сети Beeline (с получением ip-адреса динамически), даст возможность подключаться по wi-fi к домашней сети созданной коммутатором внутри маршрутизатора.
Также сразу надо защитить беспроводную сеть и сменить пароль по умолчанию. Всем остальным можно заняться потом.

После этого, надо настроить туннельное подключение (VPN), чтобы получить возможность доступа в сеть Интернет для домашней сети.


Туннель можно выбрать как PPtP так и L2TP.  Настраивается это на вкладке PPP. Надо нажать кнопку "Add new" и задать параметры.

Первая особенность данного маршрутизатора, с которой я столкнулся - это явное указание IP-адреса VPN-сервера, а не доменного имени, при настройке туннельного подключения. Это повлекло необходимость выяснения IP-адреса VPN-сервера, с помощью настольного компьютера, временно подключенного к провайдеру.
Тут появляется вторая особенность - это динамический ip-адрес vpn-сервера, т.е. каждый раз новый. Но для первоначальной настройки подойдет и первый попавшийся, а затем воспользоваться помощью скриптов из интернета, для периодического преобразования и получения нового ip-адреса.
Третья особенность, маршруты до VPN и DNS серверов не прописываются автоматически, что вызывает обрыв после подключения туннеля

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

Итак, надо сделать следующее:
. Прописать в таблицу маршрутов ip-адреса DNS серверов Beeline (в пункте меню IP Routes)
. Прописать в таблицу маршрутов ip-адреса VPN серверов Beeline (в пункте меню IP Routes)
. Создать профиль PPP соединения (в пункте меню PPP-Profiles) с указанием фиктивного Remote-Address
. Создать PPP-интерфейс на основе профиля PPP соединения (в пункте меню PPP Interface)
. Настроить NAT (в пункте меню Firewall NAT) для обеспечения прохождения трафика клиентов в сеть Интернет

dns  и vpn сервера достижимы через районный шлюз. Это и надо указать при добавлении маршрутов. В принципе, с маской /32 можно прописывать отдельные ip-адреса.
Маршруты добавляются через пункт меню IP - Routes, либо в командной строке:

/ip route add dst-address=213.234.192.8/32 gateway=10.123.240.1 comment="Beeline Primary DNS server"

/ip route add dst-address=85.21.192.3/32 gateway=10.123.240.1 comment="Beeline Secondary DNS server"

Также и VPN сервера:
/ip route add dst-address=83.102.254.204/32 gateway=10.123.240.1 comment="Beeline VPN L2TP server"

/ip route add dst-address=83.102.254.249/32 gateway=10.123.240.1 comment="Beeline VPN PPTP server"

Во вкладке PPP Profiles создать профиль, указать фиктивный Remote-address из неподключенной подсети. Это как удалось выяснить на просторах сети исправляет сбои туннеля. У меня, без этого не работает.

/ppp profile add change-tcp-mss=yes comment="Beeline internet L2TP PPP profile" name="beeline-internet-l2tp" only-one=default  remote-address=192.168.255.254 use-compression=no use-encryption=no use-vj-compression=no

На основе созданного профиля создать PPP-интерфейс, нажав кнопку "Add new" и выбрав L2TP Client и заполнить поля, либо в командной строке:

/ppp interface l2tp-client add name=beeline-internet-l2tp profile=beeline-internet-l2tp user=имя пользователя password=пароль  server-address=83.102.254.204 disabled=no add-default-route=yes max-mru=1420 max-mtu=1420 mrru=disabled

Настройка сетевой трансляции адресов (NAT) - костыля эпохи IPv4, надо сделать в пункте меню IP - Firewall - NAT
либо в командной строке:
/ip firewall nat add out-interface=beeline-internet-l2tp chain=srcnat action=masquerade


Похоже всё.


Настройка бесплатных каналов IPTV Beeline

Настройка для Ubuntu server 12.04 можно посмотреть в моей заметке: IPTV Beeline....
Там же список каналов, действующий и по сей день, для Санкт-Петербурга.

Некоторые отличия настроек маршрутизатора Mikrotik RB951G-2HnD и будут освещены в этой заметке. Она является скорее дополнением к вышеуказанной заметке, где более подробно изложен порядок настройки.

Итак, нужно иметь возможность смотреть бесплатные каналы (мультиплекс) на настольном компьютере (по проводной сети Ethernet) и на планшете (по беспроводной сети Wi-Fi), подключенные к маршрутизатору Mikrotik RB951G-2HnD.

Прежде надо обновить операционную систему RouterOS (у меня была версия 5.24, а на сайте 5.25, я скачал пакет с ОС и положил его на маршрутизатор, через меню Files и перезагрузился) и установить пакет multicast. После перезагрузки должен появиться пункт меню "Routing - IGMP Proxy".

Надо выполнить следующее:

В пункте меню "Routing - IGMP Proxy Interface" надо добавить интерфейс с которого будет идти широковещательный трафик (IPTV) и интерфейс на который он будет передаваться.
В моем случае - это первый порт маршрутизатора, под названием beeline-home-gateway и внутренний мост bridge-local, в который объединены остальные 4 порта маршрутизатора и беспроводной интерфейс (клиенты - просмотрщики IPTV).

Некоторые настройки (alternative-subnets) я взял из своей заметки, упомянутой выше, в которой тоже был настроен IGMP proxy. Там же описан способ выяснения всех этих подсетей. Вот эти alternative-subnets и влияют на приём IPTV.

/routing igmp-proxy interface add alternative-subnets="10.0.0.0/8, 224.0.0.0/4, 78.107.196.0/24, 10.24.254.0/24, 85.21.90.0/24" comment="IPTV source interface" interface=beeline-home-gateway threshold=1 upstream=yes

/routing igmp-proxy interface add alternative-subnets="" comment="IPTV client interface" interface=bridge-local threshold=1 upstream=no

Также надо разрешить входящий трафик протокола IGMP на интерфейсе локальной сети Beeline (beeline-home-gateway), в настройках Firewall.

/ip firewall filter add chain="input" action="accept" protocol="igmp" in-interface=beeline-home-gateway comment="IGMP for IPTV"

Подправить настройки беспроводного интерфейса в разделе "Wireless - Interfaces". Для интерфейса wlan1 надо включить "Advanced Mode" и в настройке Multicast helper установить full. Можно включить WMM.
Также надо уменьшить мощность передатчика. Я поставил 15 dBm, это попадает в разрешенную мощность в России.


Опционально.

Замечено, что при отключении Wi-Fi интерфейса, пропадает доступ к системе, при настройках по умолчанию. И приходится делать аппаратный сброс настроек.
Это связано с тем, что IP-адрес маршрутизатора (192.168.88.1) присвоен беспроводному интерфейсу и при его отключении и происходит то что происходит.

Исправляется это в меню IP - Addresses. Сетевой адрес маршрутизатора можно переприсвоить какому-нибудь проводному интерфейсу и тогда при отключении беспроводного интерфейса, проводная связь с микротиком не пропадает и можно продолжать конфигурирование.

Опционально.

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



Ресурсы

Mikrotik- Типичные Проблемы И Их Решения. http://mstream.com.ua/mikrotik-tipichnie-problemi-i-ih-resheniay.html

Beeline L2TP на Mikrotik RB750 от a-zazell. http://blog.a-zazell.ru/beeline-l2tp-%D0%BD%D0%B0-mikrotik-rb750/

Форум IXBT по Mikrotik RouterOS. http://forum.ixbt.com\/topic.cgi?id=14:57592-98

Mikrotik IGMP Proxy manual. http://wiki.mikrotik.com/wiki/Manual:Routing/IGMP-Proxy

Настройка IPTV Билайн через WiFi с использовнием роутеров Mikrotik. http://itlifeway.blogspot.ru/2013/03/iptv-wifi-mikrotik.html

вторник, 17 июля 2012 г.

Village internet. 3G Интернет в деревне

3G Интернет в деревне или коттедже, а также за городом

Над обеспечением надежно функционирующего подключения к сети интернет, в условиях пригорода задумываются многие. Многие же ограничиваются широко распространенными 3G usb-модемами, предлагаемыми провайдерами сотовой связи.
Недостатки такого решения проявляются позднее - потеря связи в плохую погоду, зависимость от расположения usb-модема и пр.
Кардинальным решением является стационарный 3G роутер с внешней антенной. Как назло, розничная сеть готового комплекта не предлагает. Предлагаются роутеры, но со встроенной антенной, более мощной, но все же - встроенной.

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

Первое решение. Чтобы был интернет
Вышка связи находится в 3-4 км от места приема (во впадине). 3g usb-модем, ловит сеть очень плохо, с постоянными переходами на режим EDGE. Использовать не возможно, нервов не хватает.
На просторах Интернета, было найдено решение в виде б/у устройства Netcomm Bigpond 3G9WB. Куплено и доставлено с aliexpress.com. Также была куплена внешняя 3G антенна на сайте: www.bester-ltd.ru. Также заказаны были переходники u.fl-rpsma (пигтейл) на ebay.com. 
Все было установлено, скручено и подключено.
По результатам - просто работает, но хочется большего, да и ограничения выявились с ростом потребностей.
Само устройство, его технические характеристики, позволяют подключить 4 проводных клиента, несколько беспроводных (по ст. Wi-Fi). Карты Wi-Fi и 3G съемные. 3G карта Sierra Sierra Wireless MC8781 MiniPCIe. Особенностью данного роутера является то, что слот sim-карты распаян на материнской плате.
В спецификации Sierra Wireless MC8781 mini-PCIe упоминается что модем 3G со встроенным GPS, однако использовать эту возможность в данном роутере не представляется возможным из-за прошивки.

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

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

Второе решение. Потенциал растет

Нашлись интересные решения Mikrotik - материнские платы - подороже RouterBOARD 411UAHR, подешевле  RouterBOARD 411U (без Wi-Fi). На обеих платах распаяны слоты sim-карты - это важно для 3g карты.
Теперь можно приобрести недорогую карту mini-PCIe 3G модема, например Sierra Wireless MC8790 на ebay.com, либо на aliexpress.com. Покупать надо т.н. unlocked (т.е. чтобы работали все sim-карты, любого провайдера). Список совместимости материнских плат с 3g miniPCIe картами см. в Ресурсах.

Т.е. комплект для приобретения выглядит следующим образом.
1. RouterBOARD 411U или 411UAHR
2. 3g модем в виде mini-PCIe карты, например Sierra Wireless MC8790, либо из списка совместимости. Именно mini-PCIe.
3. Внешняя антенна 3G, см. Ресурсы.
4. Кабель от антенны до роутера.
5. Переходник u.fl-rpsma, для связи 3g модема и кабеля от антенны.
6. Корпус, подходящих размеров, герметичный или иной, в зависимости от требований надежности.
7. Блок питания, либо инжектор питания производства Mikrotik, для питания по кабелю ethernet.
8. Опционально. Источник бесперебойного питания ИБП.

Затраты больше, но и результат обнадеживает.


Что получаем в результате
Настраиваемая ОС, на ядре Linux, позволяющая организовать удаленный доступ из вне, во внутрь, 3g роутер с широкими возможностями регулирования трафика.

Из замеченных недостатков
- недостаточно мощное, по нынешним временам, аппаратное обеспечение, однако на уровне лучших маршрутизаторов 2-летней давности.
- отсутствие встроенного коммутатора.
- нестандартный PoE.
- специализирована под 3g, потом сложно перепрофилировать и расширить.
- невозможность установить стороннее ПО
- роутер работает на коммерческой ОС, что ограничивает пользователя в плане расширения сторонними пакетами и устройствами
Некритические недостатки нивелируются мощной программной платформой и возможностью  гибкой настройки всего нужного.

Преимущества
 - низкое энергопотребление, что позволяет подключить солнечную энергоустановку и обеспечить беспрерывную работу
- возможность установки OpenWRT


Третий вариант. Нирвана

Платформа меняется и становится x86-совместимой системой.
В качестве основы можно выбрать материнские платы Intel со встроенным процессором Atom, серий Intel DN2800MT. Важно наличие mini-PCIe слота. Единственное дополнение - специальный адаптер для sim-карты - "Solderless USIM Sim Socket Holder". Он позволит установить 3g модем на материнскую плату Intel DN2800MT. Этим нивелируется потребность в распаянном на плате слоте sim-карты. Он просто оборачивается вокруг группы контактов модема и вставляется вместе с модемом в слот mini-PCIe. Всё.
Адаптер выглядит так:
usim-holder


Если смущает такой адаптер, есть более надежный, но более дорогой.
http://www.5sgroup.ru/list_products.php?class=50707&type=interface&l=CN030



Комплект приобретения, принимает законченный вид:
1. Материнская плата Intel DN2800MT + модуль памяти So-DIMM.
2. 3g модем в виде mini-PCIe карты, например Sierra Wireless MC8790, либо из списка совместимости. Именно mini-PCIe.
3. Внешняя антенна 3G, см. Ресурсы.
4. Кабель от антенны до роутера.
5. Переходник u.fl-rpsma, для связи 3g модема и кабеля от антенны.
6. Корпус, подходящих размеров, герметичный или иной, в зависимости от требований надежности.
7. Блок питания, либо инжектор питания производства Mikrotik, для питания по кабелю ethernet.
8. Опционально. Источник бесперебойного питания ИБП.
9. Адаптер "Solderless USIM Sim Socket Holder". 


Недостатки
- Возможно, не очень удачное крепление сим-адаптера
- Недостаточная поддержка видеодрайвера GMA3650 в Linux, но неважно для целей роутера
- Цена комплекта выше чем у второго варианта

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

Преимущества данного варианта перевешивают всё.


Справочно. Модемы - цены и места
- Sierra Wireless MC8790. http://www.ebay.com/itm/Sierra-MC8790-HSUPA-3G-WWAN-Modem-Card-7-2Mbps-GPS-not-MC8780-MC8781-mini-pci-e-/271016319789?pt=US_Internal_Network_Cards&hash=item3f19d4db2d#ht_4002wt_1002
- Ericsson F3607GW. http://www.ebay.com/itm/New-Unlocked-Ericsson-F3607GW-DELL-Wireless-5540-3G-GPS-Mini-WWAN-Card-/290659200462?pt=US_Internal_Network_Cards&hash=item43aca36dce#ht_3558wt_919
- Huawei EM770W. 
http://www.aliexpress.com/product-fm/542841577-UNLOCKED-HUAWEI-EM770W-WWAN-3G-HSDPA-HSUPA-PCI-E-card-10130-wholesalers.html

Ресурсы
Форум ixbt по Microtik. http://forum.ixbt.com/topic.cgi?id=14:51525
Форум ixbt по RouterBOARD. http://forum.ixbt.com/topic.cgi?id=14:51483
Список совместимости материнских плат с 3g картами. http://wiki.mikrotik.com/wiki/Supported_Hardware#3G_cards
Отечественные внешние антенны 3G. http://bester-ltd.ru/category/vsyo-dlja-3g-gsm-4g-lte-internet/
Почти аналогичный опыт. http://lobzik84.livejournal.com/17476.html
OpenWRT на Mikrotik. http://wiki.openwrt.org/toh/mikrotik/rb411
Подробное описание и фото Bigpond 3G9WB: http://www.ebay-forum.ru/phpBB2/topic/74740-3g-wifi-ethernet-%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80-%D1%81-%D0%BD%D0%B0%D0%B1%D0%BE%D1%80%D0%BE%D0%BC-%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85-%D0%B2%D0%BA%D1%83%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9/