====Mikrotik DHCP====
Для управления данным функционалом нужен модуль [[abills:docs:modules:dhcphosts:ru?freeradius_dhcp|Freeradius DHCP]]. \\
\\
**Начиная в версии 0.74 есть альтернатива для Freeradius DHCP. - управление через ''mikrotik_dhcp_leases.pl''**\\
[[abills:docs:nas:mikrotik:dhcp_leases| Управление DHCP серверами на Mikrotik'e ]]\\
перед началом работ настройте [[abills:docs:nas:mikrotik:freeradius|Freeradius c Mikrotik]]
При данной схеме работы DHCP запросы клиентов приходят на Mikrotik DHCP, затем Mikrotik их трансформирует в radius запрос и отправляет на RADIUS сервер где происходит авторизация пакета и отправка результата на Mikrotik. После получения результата от RADIUS сервера Mikrotik формирует пакет DHCP для клиента.
**Возможности** \\
* Динамическая и статическая раздача IP адресов
* Option 82 (Удобная система интеграции с любым нестандартным оборудованием)
* Нарезка скорости абонентам
* Гостевой доступ
** Настройка** \\
**config.pl**\\
$AUTH{mikrotik_dhcp}='Mac_auth';
$ACCT{mikrotik_dhcp}='Mac_auth';
**данная опция должна быть обязательно под опцией ''%AUTH=();''**
Так как DNS, маска сети и шлюз прописываются на Mikrotik (''/ IP / DHCP Servers/ Networks '') и их нельзя изменить через RADIUS.
Для гостевых сетей можно отправлять только параметры длительности lease для IP адреса и использовать часть сети как гостевые адреса для dhcp. \\
**Пример параметров для гостевого пула**
$conf{DHCPHOSTS_GUEST_POOLS}='0:16:Session-Timeout=300';
**Параметр Session-Timeout=300 - время через которое система переспрашивает у RADIUS сервера статус клиента. Если не указывать, Mikrotik обновляет сессию не запрашивая статус**. Данный параметр должен быть такой же как и NAS Alive.
**Настройка DHCP**
**через терминал**
/ip dhcp-server add interface=ether2 address-pool=static-only authoritative=after-2sec-delay use-radius=yes lease-time=5min
/radius add address=192.168.1.62 secret=secretpass timeout=300ms authentication-port=1812 accounting-port=1813 service=dhcp
с помощью Winbox\\
''IP > DHCP Server > New DHCP Server''
{{ :abills:docs:nas:mikrotik:freeradius_dhcp_winbox1.png?nolink |}}
'' Radius > New Radius Server ''
{{ :abills:docs:mikrotik:1.jpg?nolink |}}
\\
Если все правильно настроено на RADIUS сервер приходят следующие пары в дебаг режиме (radiusd -X).
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
Если используете авторизацию по порту и маку коммутатора в запросе обязательно должны быть параметры Option 82
Agent-Remote-Id = 0x00067072cf5c8f82
Agent-Circuit-Id = 0x0004000b0101
Ответ RADIUS для Mikrotik'a (Access-Accept/Access-Deny)
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
**Пример выражения** \\
$conf{AUTH_EXPR}='Agent-Circuit-Id:0x0004(\S{4})\d{2}([0-9a-f]{2}):VLAN,PORT;Agent-Remote-Id:0x0006([0-9a-f]{12}):MAC;'
. 'Agent-Circuit-Id:0x([0-9a-f]{4})\d{2}([0-9a-f]{4})$:VLAN,PORT_DEC;Agent-Remote-Id:0x([0-9a-f]{12})$:MAC;';
[[abills:docs:modules:dhcphosts_expr:ru|примеры выражений]]
====Шейпер====
По умолчанию система производит шейпер по средством правил
Ascend-Xmit-Rate = 2097152
Ascend-Data-Rate = 1048576
если включить опцию **$conf{INTERNET_EXTERNAL_SHAPPER}=1;** (для старых версий **$conf{DHCPHOSTS_EXTERNAL_SHAPPER}=1;**) система будет производить шейпер через внешние табличные правила и добавлять абонента в адрес лист через
Mikrotik-Address-List = "CLIENTS_67"
где CLIENT_67 это **CLIENT_** префикс адрес листа, а 67 ID тарифного плана
=== ISC-DHCP ===
При использовании ISC-DHCP настраиваем DHCP RELAY на микротике с помощью Winbox
'' IP > DHCP RELAY ''
{{:abills:docs:nas:mikrotik:dhcp_relay.png|}}
=====Подсчет трафика=====
Подсчет трафика осуществляется через модуль IPN.
====возможные ошибки====
**Нет связи с радиусом **
/log print
17:28:45 dhcp,error ONU: radius authentication failed for 40:ED:98:60:33:59: RADIUS server is not responding
**radiusd -X**
Access-Request packet from host 172.30.9.1 port 35496, id=32, length=111
NAS-Port-Type = Ethernet
NAS-Port = 2211448818
Calling-Station-Id = "1:40:ed:98:60:33:59"
Called-Station-Id = "ONU"
User-Name = "40:ED:98:60:33:59"
User-Password = "P\301\377cJ\237\255\244\302\350\2230\3370=\335"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
NAS-Identifier = "MikroTik"
NAS-IP-Address = 172.30.9.1
Sending Access-Accept of id 31 to 172.30.9.1 port 50139
Framed-IP-Address = 10.0.0.2
Mikrotik-Address-List = "CLIENTS_1"
Session-Timeout = 600
скорее всего секретный ключ radius secret не совпадает.
Нужно повторно внести в поле пароля управления RADIUS секрет и перезагрузить радиус, также этот пароль нужно обновить на микротике