Mikrotik: Servidor DHCP Ipv6

Mikrotik: Servidor DHCP Ipv6

Resumo

Padrões: RFC 3315, RFC 3633

DUID único é usado para identificação de cliente e servidor, apenas IAID irá variar entre os clientes correspondentes à sua interface atribuída.

A vinculação do cliente cria um pool dinâmico com o tempo limite definido para o tempo de expiração da vinculação (observe que agora os pools dinâmicos podem ter um tempo limite), que será atualizado sempre que a vinculação for renovada.

Quando um cliente está vinculado a um prefixo, o servidor DHCP adiciona informações de roteamento para saber como alcançar o prefixo atribuído.

As ligações do cliente no servidor não mostram mais o endereço MAC (como era na v5.8), DUID (hex) e IAID são usados. Após a atualização, os endereços MAC serão convertidos em DUIDs automaticamente, mas devido ao tipo desconhecido de DUID e IAID desconhecido, eles devem ser atualizados pelo usuário;

O servidor RouterOS DHCPv6 só pode delegar prefixos IPv6, não endereços.

Propriedades

PropriedadeDescrição
pool de endereços  ( enum | apenas estático ; Padrão: apenas estático ) Pool IPv6 , do qual obter o prefixo IPv6 para os clientes.
autoritativo  ( após 10 segundos de atraso | após 2 segundos de atraso | sim | não ; Padrão: após 2 segundos de atraso ) Se o servidor DHCP é o único servidor DHCP para a rede:after-10sec-delay  – para clientes solicitarem um endereço, o servidor DHCP irá aguardar 10 segundos e se houver outra solicitação do cliente após este período de tempo, o servidor DHCP oferecerá o endereço ao cliente ou enviará DHCPNAK se o o endereço solicitado não está disponível neste servidorafter-2sec-delay  – para clientes solicitarem um endereço, o servidor DHCP irá aguardar 2 segundos e se houver outra solicitação do cliente após este período de tempo, o servidor DHCP oferecerá o endereço ao cliente ou enviará DHCPNAK se o o endereço solicitado não está disponível neste servidorsim  – para clientes solicitarem um endereço que não está disponível neste servidor, o servidor DHCP enviará uma confirmação negativa (DHCPNAK)não  – o servidor DHCP ignora solicitações de clientes para endereços que não estão disponíveis neste servidor
binding-script  ( string ; Padrão:)Um script que será executado após a vinculação ser atribuída ou desatribuída. Variáveis ​​”globais” internas que podem ser usadas no script:bindingBound  – definido como “1” se vinculado, caso contrário, definido como “0”bindingServerName  – nome do servidor dhcpbindingDUID  – DUIDbindingAddress  – endereço ativobindingPrefix  – prefixo ativo
limite de atraso  ( tempo | nenhum ; Padrão: nenhum ) Se o campo secs no pacote DHCP for menor que o limite de atraso, este pacote será ignorado. Se definido como nenhum – não há limite (todos os pacotes DHCP são processados)  
desativado  ( sim | não ; Padrão: não ) Se o servidor DHCP-PD participa do processo de atribuição de prefixo.
interface  ( string ; Padrão:)A interface em que o servidor será executado.
tempo de locação  ( tempo ; Padrão: 3d ) O tempo que um cliente pode usar o endereço atribuído. O cliente tentará renovar este endereço após a metade desse tempo e solicitará um novo endereço após o prazo expirar.
nome  ( string ; Padrão:)Nome de referencia


Propriedades somente leitura

PropriedadeDescrição
dinâmico  ( sim | não )
inválido  ( sim | não )

Bindings

O DUID é usado apenas para ligações dinâmicas, portanto, se ele mudar, o cliente receberá um prefixo diferente do anterior.

/ipv6 dhcp-server binding
PropriedadeDescrição
endereço  ( prefixo IPv6 ; Padrão:)Prefixo IPv6 que será atribuído ao cliente
allow-dual-stack-queue  ( sim | não ; Padrão: sim ) Cria uma única entrada de fila simples para endereços IPv4 e IPv6, usa o endereço MAC e DUID para identificação. Requer que o  servidor DHCP IPv4 também  tenha essa opção ativada para funcionar corretamente.
comentário  ( string ; Padrão:)Breve descrição de um item.
desativado  ( sim | não ; Padrão: não ) Se um item está desabilitado
opção dhcp  ( string ; Padrão:)Adicionar opções de DHCP adicionais a partir da  lista de opções.
dhcp-option-set  ( string ; Padrão:)Adicione um conjunto adicional de opções de DHCP.
tempo de vida  ( tempo ; Padrão: 3d ) O período de tempo após o qual a vinculação expira.
duid  ( string hexadecimal ; Padrão 🙂Valor DUID. Deve ser especificado apenas em formato hexadecimal.
iid  ( inteiro [0..4294967295] ; Padrão 🙂Identificador de associação de identidade, parte do ID do cliente.
pool de prefixo  ( string ; Padrão:)Pool de prefixo que está sendo anunciado para o cliente DHCPv6.
limite de taxa  ( inteiro [/ inteiro] [inteiro [/ inteiro] [inteiro [/ inteiro] [inteiro [/ inteiro]]]] ; Padrão:)Adiciona uma fila simples dinâmica para limitar a largura de banda do IP a uma taxa especificada. Requer que o aluguel seja estático. O formato é: rx-rate [/ tx-rate] [rx-burst-rate [/ tx-burst-rate] [rx-burst-threshold [/ tx-burst-threshold] [rx-burst-time [/ tx- tempo de explosão]]]]. Todas as taxas devem ser números com ‘k’ opcional (1.000) ou ‘M’ (1.000.000). Se tx-rate não for especificado, rx-rate também será como tx-rate. O mesmo vale para tx-burst-rate e tx-burst-threshold e tx-burst-time. Se tanto rx-burst-threshold e tx-burst-threshold não forem especificados (mas a taxa de burst for especificada), rx-rate e tx-rate serão usados ​​como limites de burst. Se rx-burst-time e tx-burst-time não forem especificados, 1s será usado como padrão.
servidor  ( string | tudo ; Padrão: tudo ) Nome do servidor. Se definido como todos , a ligação se aplica a todos os servidores DHCP-PD criados. 


Propriedades somente leitura

PropriedadeDescrição
dinâmico  ( sim | não )Se um item é criado dinamicamente.
expira após  ( tempo )O período de tempo após o qual a vinculação expira.
visto pela última vez  ( hora )Período de tempo desde que o cliente foi visto pela última vez.
status  (em espera | oferecido | vinculado )Três valores de status são possíveis:esperando  – Exibido para ligações estáticas, se não for usado. Para ligações dinâmicas, este status é mostrado se tiver sido usado anteriormente, o servidor aguardará 10 minutos para permitir que um cliente antigo obtenha essa ligação, caso contrário, a ligação será limpa e o prefixo será oferecido a outros clientes.oferecido  – se a mensagem de solicitação foi recebida e o servidor respondeu com anunciar uma  mensagem, mas a  solicitação não foi recebida. Durante esse estado, o cliente tem 2 minutos para obter essa ligação, caso contrário, ela é liberada ou muda de status para aguardando ligações estáticas.      vinculado  – atualmente vinculado.


Por exemplo, prefixo / 62 atribuído dinamicamente

[[email protected]/ipv6 dhcp-server binding> print detail Flags: X - disabled, D - dynamic0 D address=2a02:610:7501:ff00::/62 duid="1605fcb400241d1781f7" iaid=0 server=local-dhcp life-time=3d status=bound expires-after=2d23h40m10slast-seen=19m50s1 D address=2a02:610:7501:ff04::/62 duid="0019d1393535" iaid=2server=local-dhcp life-time=3d status=bound expires-after=2d23h43m47slast-seen=16m13s

Comandos específicos do menu

PropriedadeDescrição
make-static  ()Defina a vinculação dinâmica como estática.

Limitação de taxa

É possível definir a largura de banda para um endereço IPv6 específico usando ligações DHCPv6. Isso pode ser feito definindo um limite de taxa na própria vinculação DHCPv6; ao fazer isso, uma regra de fila simples dinâmica será adicionada para o endereço IPv6 que corresponde à vinculação DHCPv6. Usando o do  parâmetro que você pode facilmente limitar a largura de banda do usuário. rate-limit

Para que as filas funcionem corretamente, o tráfego não deve ser FastTracked, certifique-se de que seu Firewall não faça o tráfego FastTrack que você deseja limitar.

Primeiro, torne a ligação DHCPv6 estática, caso contrário, não será possível definir um limite de taxa para uma ligação DHCPv6:

[[email protected]] > /ipv6 dhcp-server binding printFlags: X - disabled, D - dynamic# ADDRESS DUID SERVER STATUS0 D fdb4:4de7:a3f8:418c::/66 0x6c3b6b7c413e DHCPv6_Server bound [[email protected]] > /ipv6 dhcp-server binding make-static 0 [[email protected]] > /ipv6 dhcp-server binding printFlags: X - disabled, D - dynamic# ADDRESS DUID SERVER STATUS0 fdb4:4de7:a3f8:418c::/66 0x6c3b6b7c413e DHCPv6_Server bound

Em seguida, você precisa definir uma taxa para uma ligação DHCPv6 que criará uma nova entrada de fila simples dinâmica:

[[email protected]] > /ipv6 dhcp-server binding set rate-limit=10M/10[[email protected]] > /queue simple printFlags: X - disabled, I - invalid, D - dynamic0 D name="dhcp<6c3b6b7c413e fdb4:4de7:a3f8:418c::/66>" target=fdb4:4de7:a3f8:418c::/66 parent=none packet-marks="" priority=8/8 queue=default-small/default-small limit-at=10M/10M max-limit=10M/10M burst-limit=0/0burst-threshold=0/0 burst-time=0s/0s bucket-size=0.1/0.1

Por padrão,  allow-dual-stack-queue está habilitado, isso adicionará uma única entrada de fila simples dinâmica para vinculação DCHPv6 e concessão de DHCPv4, sem essa opção habilitada, entradas de fila simples dinâmicas separadas serão adicionadas para IPv6 e IPv4.

Se estiver ativado, uma única entrada de fila simples dinâmica será criada contendo os endereços IPv4 e IPv6: allow-dual-stack-queue 

[[email protected]] > /queue simple printFlags: X - disabled, I - invalid, D - dynamic 0 D name="dhcp-ds<6C:3B:6B:7C:41:3E>" target=192.168.1.200/32,fdb4:4de7:a3f8:418c::/66 parent=none packet-marks="" priority=8/8 queue=default-small/default-small limit-at=10M/10M max-limit=10M/10Mburst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s bucket-size=0.1/0.1

Suporte RADIUS

Desde o RouterOS v6.43 é possível usar o RADIUS para atribuir um limite de taxa por ligação DHCPv6, para fazer isso você precisa passar o  atributo Mikrotik-Rate-Limit  de seu servidor RADIUS para sua ligação DHCPv6. Para conseguir isso, primeiro você precisa configurar o servidor DHCPv6 para usar o RADIUS para atribuir ligações. Abaixo está um exemplo de como configurá-lo:

/radiusadd address=10.0.0.1 secret=VERYsecret123 service=dhcp/ipv6 dhcp-serverset dhcp1 use-radius=yes

Depois disso, você precisa dizer ao seu servidor RADIUS para passar o  atributo Mikrotik-Rate-Limit  . No caso de você estiver usando FreeRADIUS com o MySQL, então você precisa adicionar entradas apropriadas em radcheck e radreply tabelas para um endereço MAC, que está sendo usado para o seu DHCPv6 cliente. Abaixo está um exemplo para entradas de tabela:    

INSERT INTO `radcheck` (`username`, `attribute`, `op`, `value`) VALUES('000c4200d464', 'Auth-Type', ':=', 'Accept'), INSERT INTO `radreply` (`username`, `attribute`, `op`, `value`) VALUES('000c4200d464', 'Delegated-IPv6-Prefix', '=', 'fdb4:4de7:a3f8:418c::/66'),('000c4200d464', 'Mikrotik-Rate-Limit', '=', '10M');

Por padrão,  allow-dual-stack-queue  está habilitado e adicionará uma única entrada de fila dinâmica se o endereço MAC do lease IPv4 (ou DUID, se o cliente DHCPv4 for compatível com RFC4361), mas o DUID do cliente DHCPv6 nem sempre for baseado em o endereço MAC da interface na qual o cliente DHCPv6 está sendo executado, o DUID é gerado por dispositivo. Por esse motivo, uma única entrada de fila dinâmica pode não ser criada; entradas de fila dinâmicas separadas podem ser criadas em seu lugar. Node-specific Client Identifiers 

Exemplos de configuração

Habilitando a delegação de prefixo IPv6

Vamos considerar que já temos um servidor DHCP em execução.

Para habilitar a delegação de prefixo IPv6, primeiro, precisamos criar um pool de endereços:

/ipv6 pool add name=myPool prefix=2001:db8:7501::/60 prefix-length=62

Observe que o comprimento do prefixo é de 62 bits, o que significa que os clientes receberão os prefixos / 62 do conjunto / 60.

A próxima etapa é habilitar o DHCP-PD:

/ipv6 dhcp-server add name=myServer address-pool=myPool interface=local


Para testar nosso servidor, configuraremos o Wide-dhcpv6 em uma máquina ubuntu:

  • instalar o wide-dhcpv6-client
  • edite “/etc/wide-dhcpv6/dhcp6c.conf” como acima

Você também pode usar o RouterOS como um cliente DHCP-PD.

interface eth2{send ia-pd 0;}; id-assoc pd {prefix-interface eth3{sla-id 1;sla-len 2;};};
  • Execute o cliente DHCP-PD:
sudo dhcp6c -d -D -f eth2
  • Verifique se o prefixo foi adicionado ao:
[email protected]:/media/aaa$ ip -6 addr ..2: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000 inet6 2001:db8:7501:1:200:ff:fe00:0/64 scope global valid_lft forever preferred_lft forever inet6 fe80::224:1dff:fe17:81f7/64 scope link valid_lft forever preferred_lft forever
  • Você pode fazer vinculação a um cliente estático específico para que ele sempre receba o mesmo prefixo:
[[email protected]/ipv6 dhcp-server binding> printFlags: X - disabled, D - dynamic# ADDRESS DU IAID SER.. STATUS 0 D 2001:db8:7501:1::/62 16 0 loc.. bound[[email protected]/ipv6 dhcp-server binding> make-static 0
  • O DHCP-PD também instala uma rota para o prefixo atribuído na tabela de roteamento IPv6:
[[email protected]/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...2 ADS 2001:db8:7501:1::/62 fe80::224:1dff:fe17:8... 1

Deixe uma resposta

0