Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:mikrotik:ru [2014/10/20 13:17] asmodeus [Дополнительно] |
abills:docs:mikrotik:ru [2016/01/15 10:37] (текущий) anton создано |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | =====Mikrotik===== | + | [[abills:docs:nas:mikrotik:ru| Mikrotik: Раздел переместили сюда ]] |
- | {{http://www.mikrotik.com/img/header/sitelogo.png|http://www.mikrotik.com}}\\ | + | |
- | Version: >=2.9.13 \\ | + | |
- | + | ||
- | ===Настройка на сервере биллинга=== | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ====FreeRadius==== | + | |
- | + | ||
- | **radius/etc/raddb/dictionary** | + | |
- | + | ||
- | $INCLUDE /usr/local/share/freeradius/dictionary.mikrotik | + | |
- | + | ||
- | + | ||
- | **В /usr/local/share/freeradius/dictionary.mikrotik добавляем такой атрибут** | + | |
- | + | ||
- | ATTRIBUTE Mikrotik-Address-List 19 string | + | |
- | ATTRIBUTE Mikrotik-Total-Limit 17 integer | + | |
- | ATTRIBUTE Mikrotik-Total-Limit-Gigawords 18 integer | + | |
- | + | ||
- | + | ||
- | + | ||
- | Добавляем сервер доступа в RADIUS \\ | + | |
- | + | ||
- | **raddb/clients.conf** | + | |
- | + | ||
- | + | ||
- | client xx.xx.xx.xx { | + | |
- | secret = radsecret | + | |
- | } | + | |
- | + | ||
- | + | ||
- | После внесения всех изменений перезагрузите радиус | + | |
- | + | ||
- | + | ||
- | ====Управление через ssh==== | + | |
- | Удалённое выполнение команд на Mikrotik через ssh, используется для управления правилами шейпера и фаервола. | + | |
- | Для выполнения команд нужно создать ssh сертификат с пустым паролем и залить его на микротик по ftp. Перед созданием сертификата убедитесь включён ли на микротике ftp. | + | |
- | + | ||
- | **Создание сертификата**\\ | + | |
- | Сделайте сертификат пустым паролем(для дальнейшего управления микротиком) | + | |
- | # /usr/abills/misc/certs_create.sh ssh abills_admin -UPLOAD_FTP admin@10.20.1.1 | + | |
- | + | ||
- | **Не используйте пользователя 'admin'. Для удалённого доступа создайте отдельного пользователя.** \\ | + | |
- | Создание пользователя | + | |
- | [admin@mikrotik]> user add name=abills_admin group=write | + | |
- | + | ||
- | Подключите SSH ключ пользователю | + | |
- | [admin@mikrotik]> user ssh-keys import public-key-file=id_dsa.abills_admin.pub user=abills_admin | + | |
- | + | ||
- | + | ||
- | **Проверяем:**\\ | + | |
- | % ssh -l abills_admin -i /usr/abills/Certs/id_dsa.abills_admin 10.20.1.1 "/system identity print" | + | |
- | + | ||
- | если все правильно сделано результат\\ | + | |
- | + | ||
- | name: "MikroTik" | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ====Mikrotik PPPoE/PPTP==== | + | |
- | + | ||
- | ===Radius=== | + | |
- | **Настройка через консоль** | + | |
- | + | ||
- | + | ||
- | тут вводим адрес Radius сервера | + | |
- | /radius add address=192.168.1.50 secret=radsecret service=ppp | + | |
- | /radius incoming set accept=yes port=1700 | + | |
- | + | ||
- | **Настройка через WinBox** | + | |
- | + | ||
- | авторизация на RADIUS сервере \\ | + | |
- | {{http://abills.net.ua/img/radius1.jpg?400|radius}} | + | |
- | + | ||
- | Открытие RADIUS PoD для сброса с линии \\ | + | |
- | + | ||
- | {{http://abills.net.ua/img/radius2.jpg?400|radius}} | + | |
- | + | ||
- | ===PPP=== | + | |
- | + | ||
- | Через консоль | + | |
- | + | ||
- | /ppp aaa set accounting=yes use-radius=yes interim-update=300 | + | |
- | /ppp profile set default local-address=192.168.101.10 | + | |
- | + | ||
- | Через WinBox | + | |
- | + | ||
- | {{http://abills.net.ua/img/ppp_acounting.jpg?400|ppp_acounting}} | + | |
- | {{http://abills.net.ua/img/ppp_profile.jpg?400|ppp_profile}} | + | |
- | + | ||
- | ===PPPoE=== | + | |
- | + | ||
- | Через консоль | + | |
- | + | ||
- | /interface pppoe-server server add interface=ether1 \ | + | |
- | \... service-name=pppoe-in authentication=chap | + | |
- | + | ||
- | Через WinBox | + | |
- | + | ||
- | {{http://abills.net.ua/img/pppoe.jpg?450|pppoe}} | + | |
- | + | ||
- | + | ||
- | ===PPTP=== | + | |
- | + | ||
- | Через консоль | + | |
- | + | ||
- | /interface pptp-server server set enabled=yes authentication=chap | + | |
- | + | ||
- | Через WinBox | + | |
- | + | ||
- | {{http://abills.net.ua/img/pptp.jpg?450|pptp}} | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ====Mikrotik IPN==== | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===Настройка сервера доступа=== | + | |
- | + | ||
- | ''/ System configuration/ NAS/'' | + | |
- | + | ||
- | ^Type | ipcad| | + | |
- | / System configuration/ NAS/ IP POOLs/ | + | |
- | Нужно внести пул адресов, с которых можно авторизоваться. | + | |
- | Тарифные планы | + | |
- | + | ||
- | Модуль использует тарифную логику модуля Dv (Internet). | + | |
- | Заводим классы трафика / System configuration/ Internet/ Traffic Classes. Глобальный класс трафика должен иметь номер 0. | + | |
- | Заводим тарифные планы в / System configuration/ Internet/ Tarif plans/ . | + | |
- | **В тарифном плане в Intervals обязательно указывать сети в противном случае модуль не будет вести подсчёт трафика**. | + | |
- | + | ||
- | **Слушать и отправлять flow пакеты на сервер для их подальшей обработки с помощью колектора (flow-tools)** | + | |
- | + | ||
- | Через консоль | + | |
- | + | ||
- | /ip traffic-flow set enabled=yes | + | |
- | /ip traffic-flow target add address=10.0.0.10:9996 version=5 | + | |
- | /ip traffic-flow set interfaces=ether3 active-flow-timeout=30m inactive-flow-timeout=15s cache-entries=4k enabled=yes ; | + | |
- | + | ||
- | ether3 интерфейс на котором слушать | + | |
- | 10.0.0.10 - адрес сервера обработки flow пакетов | + | |
- | + | ||
- | Также добавить правила для перенаправления на клиентский кабинет для подключения к IPN | + | |
- | + | ||
- | /ip firewall nat add chain=dstnat action=dst-nat to-addresses=10.0.0.10 to-ports=80 protocol=tcp | + | |
- | src-address=192.168.6.0/24 dst-address=0.0.0.0/0 dst-port=80 | + | |
- | + | ||
- | Инициализация и контроль правил шейпера | + | |
- | + | ||
- | # /usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 NAS_IDS=1 | + | |
- | + | ||
- | Дополнительные параметры | + | |
- | + | ||
- | |NAT=1 | Поднять маскарадинг для всех адрес листов | | + | |
- | |SKIP_NAT_IPS=xxx.xxx.xxx.xxx | Не маскарадить обращения к адресу | | + | |
- | |NAS_IDS=1 | Номер сервера доступа | | + | |
- | + | ||
- | + | ||
- | **config.pl** | + | |
- | $conf{IPN_FW_START_RULE}="/usr/bin/sudo /usr/abills/libexec/linkupdown mikrotik up - %LOGIN %IP NAS_HOST=10.0.0.1 NAS_ADMIN=abills_admin". ' > /dev/null 2>&1'; | + | |
- | $conf{IPN_FW_STOP_RULE}="/usr/bin/sudo /usr/abills/libexec/linkupdown mikrotik down - %LOGIN %IP NAS_HOST=10.0.0.1 NAS_ADMIN=abills_admin". ' > /dev/null 2>&1'; | + | |
- | + | ||
- | + | ||
- | ====Mikrotik DHCP==== | + | |
- | Для управления данным функционалом нужен модуль [[abills:docs:modules:dhcphosts:ru?&#freeradius_dhcp|Freeradius DHCP]]. \\ | + | |
- | При данной схеме работы DHCP запросы клиентов приходят на Mikrotik DHCP, затем Mikrotik их трансформирует в radius запрос и отправляет на RADIUS сервер где происходит авторизация пакета и отправка результата на Mikrotik. После получения результата от RADIUS сервера Mikrotik формирует пакет DHCP для клиента. | + | |
- | + | ||
- | + | ||
- | **Возможности** \\ | + | |
- | * Динамическая и статическая раздача IP адресов | + | |
- | * Option 82 (Удобная система интеграции с любым нестандартным оборудованием) | + | |
- | * Нарезка скорости абонентам | + | |
- | * Гостевой доступ | + | |
- | + | ||
- | ** Настройка** \\ | + | |
- | **config.pl**\\ | + | |
- | + | ||
- | $AUTH{mikrotik_dhcp}='Mac_auth'; | + | |
- | Так как DNS, маска сети и шлюз прописываются на Mikrotik и их нельзя изменить через radius вы можете для гостевых сетей только отправлять параметры длительности для ип адреса и как гостевые адреса использовать часть сети dhcp. \\ | + | |
- | Пример параметров для гостевого пула | + | |
- | + | ||
- | $conf{DHCPHOSTS_GUEST_POOLS}='0:16:Session-Timeout=300'; | + | |
- | + | ||
- | + | ||
- | {{:abills:docs:mikrotik:2.jpg|}} | + | |
- | + | ||
- | \\ | + | |
- | + | ||
- | {{:abills:docs:mikrotik:1.jpg |}} | + | |
- | + | ||
- | \\ | + | |
- | + | ||
- | Если все правильно настроено на RADIUS сервер приходят следующие пары. | + | |
- | + | ||
- | + | ||
- | <code> | + | |
- | NAS-Port-Type = Ethernet | + | |
- | NAS-Port = 2205156610 | + | |
- | Called-Station-Id = "DHCP-server" | + | |
- | User-Name = "00:1B:FC:3A:B7:AA" | + | |
- | User-Password = "" | + | |
- | Agent-Remote-Id = 0x00067072cf5c8f82 | + | |
- | Agent-Circuit-Id = 0x0004000b0101 | + | |
- | NAS-Identifier = "MikroTik" | + | |
- | NAS-IP-Address = 10.10.0.1 | + | |
- | </code> | + | |
- | + | ||
- | Если используете авторизацию по порту и маку коммутатора в запросе обязательно должны быть параметры Option 82 | + | |
- | + | ||
- | Agent-Remote-Id = 0x00067072cf5c8f82 | + | |
- | Agent-Circuit-Id = 0x0004000b0101 | + | |
- | + | ||
- | + | ||
- | Ответ RADIUS для микротика (Access-Accept/Access-Deny) | + | |
- | <code> | + | |
- | Sending Access-Accept of id 19 to 193.106.59.230 port 55118 | + | |
- | Mikrotik-Address-List = "CLIENTS_12" | + | |
- | Session-Timeout = 300 | + | |
- | Framed-IP-Address = 10.10.1.200 | + | |
- | </code> | + | |
- | + | ||
- | ====Управление шейпером==== | + | |
- | + | ||
- | Инициализация и контроль правил шейпера. При использовании разных скоростей в разные промежутки времени нужно через крон вызывать данную команду на границе интервалов. Данную команду нужно делать для любого типа подключения PPPoE, PPTP или IPoE. \\ | + | |
- | + | ||
- | Программа инициализации правил шейпера и загрузки их на mikrotik сервера | + | |
- | # /usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 | + | |
- | + | ||
- | Параметры | + | |
- | ^NAS_IDS='1,2' | Список серверов доступа. По умолчанию скорость просматривается на всех | | + | |
- | ^RECONFIGURE=1 | переинициализировать правила шейпера | | + | |
- | ^NAT=1 | Включение ната | | + | |
- | ^SHOW_SPEED=1 | Показать абонентов для которых применён шейпер id, address_list, ip | | + | |
- | ^MIKROTIK6=1 | Поднятие шейперов для Mikrotik 6 | | + | |
- | ^DEBUG=1..7 | Режимы отладки. \\ **1** - Отображать базовые сообщения программы и писать лог команд для Mikrotik. Лог записывается в файл /usr/abills/var/log/mikrotik_cmd.log \\ **2** - Отображать команды для Mikrotik на экран. \\ **5** - Отображать но не выполнять команды \\ **7** - Отображать SQL запросы к базе во время выполнения программы | | + | |
- | + | ||
- | + | ||
- | После инициализации правил шейпера при подключении абонента на Mikrotik передаётся только IP адрес абонента с указанием в какой список его внести. \\ | + | |
- | При использовании PPoE, PPTP адрес передаётся системой через RADIUS пары: | + | |
- | + | ||
- | Mikrotik-Address-List=CLIENTS_[TP_ID] | + | |
- | + | ||
- | + | ||
- | При использовании IPN используется стандарnный [[abills:docs:modules:ipn:ru#kontrol_dostupa_i_narezka_trafika|IPN механизм $conf{IPN_START_RULES} $conf{IPN_STOP_RULES}]] | + | |
- | + | ||
- | + | ||
- | + | ||
- | **Проверка правил шейпера:** \\ | + | |
- | + | ||
- | Если всё настроено правильно и команда "builld RECONFIGURE=1" сделала свое дело ,- вы должны получить приблизительно такие ответы по соответствующих запросах в консоли MikroTik: | + | |
- | /ip firewall mangle print | + | |
- | 0 chain=forward action=mark-packet new-packet-mark=ALLOW_TRAFFIC_CLASS_2_out passthrough=yes | + | |
- | dst-address=0.0.0.0/0 src-address-list=CLIENTS_2 | + | |
- | 1 chain=forward action=mark-packet new-packet-mark=ALLOW_TRAFFIC_CLASS_2_in passthrough=yes | + | |
- | src-address=0.0.0.0/0 dst-address-list=CLIENTS_2 | + | |
- | + | ||
- | /queue tree print | + | |
- | 0 name="TP_2_in_global" parent=global-out packet-mark=ALLOW_TRAFFIC_CLASS_2_in limit-at=0 | + | |
- | queue=TP_2_in_global_speed priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s | + | |
- | 1 name="TP_2_out_global" parent=global-out packet-mark=ALLOW_TRAFFIC_CLASS_2_out limit-at=0 | + | |
- | queue=TP_2_out_global_speed priority=5 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s | + | |
- | + | ||
- | ====ABillS==== | + | |
- | + | ||
- | **/ System configuration/ NAS/** | + | |
- | + | ||
- | ^IP| IP Адрес Mikrotik | | + | |
- | ^Type | mikrotik | | + | |
- | ^Alive | Время обновления статистики. Рекомендуемое значение 300 | | + | |
- | ^:Manage: | | | + | |
- | ^:Radius NAS Identifier| используеться только в случае нескольких радиус клиентов на одном IP | | + | |
- | ^IP:PORT: | IP адрес и порт для контроля соединения. Например, для отключения пользователя с веб-интерфейса. MIKROTIC_IP:CoA_PORT:SSH_PORT \\ \\ MIKROTIC_IP - адрес микротик \\ CoA_PORT - порт дял сброса пользователя с линии (По умолчанию 1700)\\ SSH_PORT - порт для управления по ssh (По умолчанию 22) \\ **пример:** 10.11.11.1:1700:22 | | + | |
- | ^User: | abills_admin \\ Имя пользователя для запуска удалённых команд через SSH.\\ После заведения пользователя заведите [[ SSH сертификат]] в системе. | | + | |
- | ^Password: | radsecret - Пароль PoD/CoA для сброса пользователя с линии. | | + | |
- | + | ||
- | ====Перенаправление в клиентский кабинет ==== | + | |
- | + | ||
- | ip firewall nat add chain=dstnat action=dst-nat to-addresses=10.0.0.10 to-ports=80 protocol=tcp | + | |
- | src-address=192.168.6.0/24 dst-address=0.0.0.0/0 dst-port=80 | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | ===== Настройка HotSpot на Mikrotik ===== | + | |
- | + | ||
- | Инструкция по настройке hotspot на Mikrtoik RouterBoard через интерфейс WinBox: | + | |
- | Рекомендуем обнулить систему RouterOS перед настройкой ,- в терминале делаем : | + | |
- | >system reset-configuration | + | |
- | + | ||
- | + | ||
- | + | ||
- | - Создаем новый bridge : **bridge -> "+" -> "OK"** | + | |
- | - Добавляем туда wlan порт : **ports -> "+" -> interface: wlan1** | + | |
- | - Добавляем DHCP клиент : ** IP -> DHCP Client -> "+" -> interface: bridge1** | + | |
- | - Добавляем новый пул адресов для хотспота : **IP -> Adresses -> "+" -> interface: bridge1 , adress: свободный пул адресов , например 192.168.111.0/24** | + | |
- | - Переключаем wifi модуль в режим bridge : **Wireless -> intefaces -> wlan1 -> Wireless - mode: bridge , band: 2GHz-B/G , protocol 802.11 , enable , OK** | + | |
- | - Настраиваем хотспот : **IP -> Hotspot -> Hotspot setup -> Hotspot interface: bridge1 -> Local Adress of Network:(пул который мы создали) -> Adress pool of network:(оставляем как есть) -> SSL-sertificate: none -> SMTP server: 0.0.0.0 -> DNS servers :(8.8.8.8 ,-гугловский DNS , можно свой) -> DNS name: можно оставить пустым -> готово** | + | |
- | + | ||
- | + | ||
- | если нам нужно чтобы хотспот использовал для авторизации внешний Radius сервер , - в терминале пишем : | + | |
- | + | ||
- | > ip hotspot profile set hsprof1 use-radius=yes | + | |
- | > radius add service=hotspot address=y.y.y.y secret=123456 | + | |
- | + | ||
- | где y.y.y.y - адрес радиуса и secret - пароль к радиусу. | + | |
- | + | ||
- | Для того чтобы hotspot работал с Abills ,- нужно cоздать в биллинге сервер доступа : | + | |
- | ** Настройки -> Сервер доступа -> "+" -> IP:(IP Mikrotik) ,тип:MikroTik** | + | |
- | + | ||
- | {{youtube>large:3ezFzH14k8c|ABillS: настройка Mikrotik+HotSpot+ABillS}} | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | =====Автонастройщик mikrotik_configure===== | + | |
- | + | ||
- | Программа авто настройки mikrotik дает возможность настроить микротик удалённо, а также после настройки сохранить конфигурацию для последующей заливки в однотипные сервера (доступна в коммерческой версии системы) | + | |
- | + | ||
- | + | ||
- | =====Дополнительно===== | + | |
- | * Выставление скорости с возможностью быстрого серфинга | + | |
- | Для это используем RADIUS параметр Mikrotik-Rate-Limit. Для примера скорость 1 мегабит. Данный параметр стоит занести в радиус пары тарифного плана (/ Система/ Internet/ Тарифные планы/ Добавить/) : | + | |
- | + | ||
- | Mikrotik-Rate-Limit="1M 1536k 768k 8 8 1M" | + | |
- | + | ||
- | + | ||
- | rx-rate – 1 Mbps | + | |
- | rx-burst-rate – 1536 kbps | + | |
- | rx-burst-threshold – 768 kbps | + | |
- | rx-burst-time – 8 секунд | + | |
- | priority – 8 | + | |
- | rx-rate-min – 1 Mbps | + | |
- | + | ||
- | Т.е. я ограничиваю полосу пропускания канала в 1 мегабит (как гарантированную, так и максимальную), но если пользователь за 8 секунд не превышает 768 кбит, то ему может быть отдано 1.5 мегабита. | + | |
- | + | ||
- | **При использовании данного скорость интервалов не будет учитиватсья и соответственно нельзя будет построить скоростя с учётом времени суток (Например день/ночь) ** | + | |
- | + | ||
- | ===Проверка синхронности сессий микротика с билингом=== | + | |
- | + | ||
- | Программа проверяет активные сессии на микротике и сравнивает их с билингом. Не зарегистрированные в биллинге сессии программа отключает. Также есть возможность просмотр активных сессий микротика. | + | |
- | + | ||
- | /usr/abills/libexec/billd checkmikro | + | |
- | + | ||
- | + | ||
- | ^NAS_IDS='1,2' | Список серверов доступа. По умолчанию скорость просматривается на всех | | + | |
- | ^DEBUG=1..7 | Режимы отладки. \\ **1** - Отображать базовые сообщения программы и писать лог команд для | | + | |
- | + | ||
- | + | ||
- | ===Видео пособие по настройке Mikrotik=== | + | |
- | \\ | + | |
- | + | ||
- | {{youtube>large:M6YU9g9W9VU|ABillS: Установка и настройка коммерческой версии}} | + | |
- | + | ||
- | \\ | + | |
- | ==Другие ресурсы == | + | |
- | * [[http://abills.net.ua/forum/viewforum.php?f=45|Обсуждение]] | + |