O RouterOS até a versão 6.xx não possuía a implementação correta do atributo Delegated-IPv6-Prefix do radius, impossibilitando assim o armazenamento em log via accounting do IPv6 delegado ao cliente, era possível somente o armazenamento do Framed-IPv6-Prefix, no entanto, existem diversas maneiras de se capturar esta informação e salvá-la em log, explicaremos neste tópico como fazer utilizando a API do VigoWEB.
Passo 1: Definir o Remote IPv6 Prefix Pool e também o DHCPv6 PD Pool no profile do PPPoE Server, estes deverão ser pools locais criados no Mikrotik.
Passo 2: Definir os scripts nos eventos onUP e onDOWN do profile.
Não esquecer de ajustar os parâmetros “nome-do-provedor”, “login-da-api”, “senha-da-api” e “ip-do-mikrotik” no script abaixo.
:local servername "<pppoe-$user>" :local prefixo :delay 30s :foreach binding in=[/ipv6 dhcp-server binding find status="bound" server="$servername"] do={ :set $prefixo [/ipv6 dhcp-server binding get $binding address] :log info "Login=$user IPv6PD=$prefixo" /tool fetch url="https://nome-do-provedor.vigoweb.com.br/api/ipv6pd" http-data="usuario=login-da-api&senha=senha-da-api&login=$user&nas=ip-do-mikrotik&ipv6pd=$prefixo" http-method=post }
:local servername "<pppoe-$user>" /ipv6 dhcp-server binding remove [find server=$servername] /ipv6 dhcp-server remove [find numbers=$user]
Passo 3: Criar uma tarefa agendada, SCHEDULER, para que ela atue como “interim-update”, atualizando as informações a cada hora.
Não esquecer de ajustar os parâmetros “nome-do-provedor”, “login-da-api”, “senha-da-api” e “ip-do-mikrotik” no script abaixo.
:local loginpppoe :local prefixo :local servername :foreach logins in=[/ppp active find] do={ :set $loginpppoe [/ppp active get $logins name] :set $servername "<pppoe-$loginpppoe>" :foreach b in=[/ipv6 dhcp-server binding find status="bound" server="$servername"] do={ :set $prefixo [/ipv6 dhcp-server binding get $b address] :log info "Login=$loginpppoe IPv6PD=$prefixo" /tool fetch url="https://nome-do-provedor.vigoweb.com.br/api/ipv6pd" http-data="usuario=login-da-api&senha=senha-da-api&login=$loginpppoe&nas=ip-do-mikrotik&ipv6pd=$prefixo" http-method=post } }
Passo 4: Verificar o funcionamento dos scripts no log do mikrotik, deverá aparecer registros como na imagem abaixo.
Passo 5: Também se faz necessário uma configuração específica na query do radius utilizada para o interim-update, para que o interim-update do radius não remova a informação já capturada, após efetuar as configurações acima você deverá entrar em contato com o suporte da Vigo Tecnologia e solicitar este ajuste.