Это старая версия документа.
Mikrotik DHCP
Для управления данным функционалом нужен модуль Freeradius DHCP.
Начиная в версии 0.74 есть альтернатива для Freeradius DHCP. - управление через mikrotik_dhcp_leases.pl
Управление DHCP серверами на Mikrotik'e
перед началом работ настройте Freeradius c Mikrotik
При данной схеме работы DHCP запросы клиентов приходят на Mikrotik DHCP, затем Mikrotik их трансформирует в radius запрос и отправляет на RADIUS сервер где происходит авторизация пакета и отправка результата на Mikrotik. После получения результата от RADIUS сервера Mikrotik формирует пакет DHCP для клиента.
Возможности
- Динамическая и статическая раздача IP адресов
- Option 82 (Удобная система интеграции с любым нестандартным оборудованием)
- Нарезка скорости абонентам
- Гостевой доступ
Настройка
config.pl
$AUTH{mikrotik_dhcp}='Mac_auth';
данная опция должна быть обязательно под опцией %AUTH=();
Так как DNS, маска сети и шлюз прописываются на Mikrotik и их нельзя изменить через radius, для гостевых сетей можно отправлять только параметры длительности lease для IP адреса и использовать часть сети как гостевые адреса для dhcp.
Пример параметров для гостевого пула
$conf{DHCPHOSTS_GUEST_POOLS}='0:16:Session-Timeout=300';
Параметр Session-Timeout=300 - время через которое система переспрашивает у RADIUS сервера статус клиента. Если не указывать, Mikrotik обновляет сессию не запрашивая статус. Данный параметр должен быть такой же как и NAS Alive.
Настройка DHCP
с помощью Winbox
IP > DHCP Server > New DHCP Server
Radius > New Radius Server
Если все правильно настроено на RADIUS сервер приходят следующие пары.
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;';
Шейпер
По умолчанию система производит шейпер по средством правил
Ascend-Xmit-Rate = 2097152 Ascend-Data-Rate = 1048576
если включить опцию $conf{DHCPHOSTS_EXTERNAL_SHAPPER}=1; система будет производить шейпер через внешние табличные правила и добавлять абонента в адрес лист через
Mikrotik-Address-List = "CLIENTS_67"
где CLIENT_67 это CLIENT_ префикс адрес листа, а 67 ID тарифного плана