GPON

IPv6 na ONU Huawei: WAN PPPoE dual stack e prefixo delegado

ONU Huawei com selo v6 azul-marinho e prefixo IPv6 delegado chegando pela fibra, sobre fundo verde-limão

O concentrador já entrega prefixo, o trânsito já fala IPv6, e mesmo assim o cliente abre um site de teste e vê só IPv4. Na maioria das vezes o problema está na última peça: o IPv6 na ONU Huawei não foi ligado. Quando a ONU trabalha em modo roteador, ela é quem disca o PPPoE, recebe o prefixo e anuncia a rede para os aparelhos da casa. Se a WAN dela estiver configurada só para IPv4, o resto da rede pode estar perfeito que o IPv6 não chega no celular do cliente.

Na minha rede, o IPv6 das ONUs é ligado pelo ACS, sem ninguém entrar em ONU por ONU. Este guia mostra os dois caminhos: a interface web, para entender cada campo e resolver um caso isolado, e os parâmetros TR-069 no GenieACS, para aplicar em toda a base. No fim, como conferir pela OLT e no computador do cliente. Se precisar revisar os conceitos antes, o post sobre o que é IPv6 cobre a base. Os exemplos usam o prefixo de documentação 2001:db8::/32.

Resposta rápida: como ligar o IPv6 na ONU Huawei

  1. Na WAN de internet (PPPoE, modo Route WAN), mude o Protocol Type para IPv4/IPv6.
  2. Em Prefix Acquisition Mode, escolha DHCPv6-PD: é por ele que o BNG entrega o prefixo do cliente.
  3. Em IP Acquisition Mode, escolha Automatic se o BNG entrega endereço global na WAN, ou None se a WAN fica só com link-local.
  4. Na LAN (DHCPv6 Server Configuration), confira o Parent prefix apontando para a WAN de internet e use SLAAC para os aparelhos.
  5. Habilite a rota padrão IPv6 pela WAN de internet.
  6. Pelo GenieACS, o mesmo resultado sai de X_HW_IPv6Enable e dos objetos X_HW_IPv6.IPv6Address e X_HW_IPv6.IPv6Prefix da WANPPPConnection.
  7. Confira na OLT com display ont wan-info: IPv6 switch: Enable e o Prefix preenchido.

O que a ONU precisa para entregar IPv6

Com IPv4, a ONU recebe um endereço na WAN e faz NAT para a casa inteira. Com IPv6 a conta muda: não há NAT, e cada aparelho do cliente precisa de endereço global próprio. Por isso a ONU precisa de um bloco inteiro para distribuir, e não só de um endereço. Esse bloco é o prefixo delegado, entregue pelo BNG por DHCPv6-PD dentro da sessão PPPoE.

Ligar o IPv6 na ONU Huawei é, na prática, acertar cinco peças. Se faltar uma, o cliente fica sem IPv6 ou com um IPv6 que não navega.

PeçaO que fazOnde fica na ONU
WAN IPv6 ligadaA sessão PPPoE negocia IPv6 além do IPv4Protocol Type IPv4/IPv6
Prefixo delegado (PD)O BNG entrega um bloco, como um /56, para a rede do clientePrefix Acquisition Mode DHCPv6-PD
Endereço da WANOpcional: endereço global na própria WAN (numbered) ou só link-local (unnumbered)IP Acquisition Mode
RA na LANA ONU anuncia um /64 do prefixo e se coloca como gatewayDHCPv6 Server Configuration
Rota padrão IPv6Tráfego IPv6 sai pela WAN de internetDefault IPv6 Route Configuration
Diagrama do IPv6 na ONU Huawei: BNG entrega IPv4 e prefixo /56 pela WAN PPPoE e a ONU anuncia um /64 na LAN
A ONU recebe o /56 pela WAN PPPoE e anuncia um /64 na LAN. Os aparelhos montam o endereço por SLAAC e usam a ONU como gateway.

O lado do BNG fica fora deste post. A configuração do concentrador, com pool de PD e o tamanho do prefixo por cliente, está no guia de IPv6 no PPPoE com prefixo delegado. Aqui eu parto do princípio de que o BNG já entrega prefixo para uma sessão de teste.

Configuração do IPv6 na ONU Huawei pela interface web

Os nomes abaixo são os da referência da Huawei para a linha HG8145V5 e EG8145V5. Firmwares mais antigos, como os da HS8546 v2, mudam a posição dos menus e alguns rótulos, mas os campos costumam ser os mesmos. Faça o teste numa ONU de bancada ou num cliente que aceite uma queda rápida: salvar a WAN derruba e refaz a sessão PPPoE.

WAN: dual stack e DHCPv6-PD

Em Advanced Configuration > WAN Configuration, abra a WAN de internet que já funciona em IPv4 e altere os campos:

CampoValorPor quê
Encapsulation ModePPPoEO mesmo da WAN IPv4 atual
Protocol TypeIPv4/IPv6Liga o dual stack na mesma sessão
ModeRoute WANEm Bridge WAN, quem faz IPv6 é o roteador do cliente
Service ListINTERNET (ou TR069_INTERNET)Mantenha o que a WAN já usa
Prefix Acquisition ModeDHCPv6-PDPede o prefixo ao BNG
IP Acquisition ModeAutomatic ou NoneAutomatic para WAN numbered, None para unnumbered

Um detalhe de firmware: versões antigas ofereciam RA ou Auto em Prefix Acquisition Mode. Segundo a Huawei, a partir da V300R019C00/V500R019C00 esses valores viram DHCPv6-PD na atualização. Se você achar uma ONU antiga com RA, é por isso.

Numbered ou unnumbered

O IP Acquisition Mode decide se a WAN da ONU ganha endereço global próprio. Em numbered, a WAN recebe um endereço global, por DHCPv6 ou SLAAC, conforme o flag M do RA que o BNG manda. A Huawei recomenda Automatic nos dois casos. Em unnumbered, a WAN fica só com link-local e todo o endereço global da casa sai do prefixo delegado. Nesse caso o modo é None.

A documentação da Huawei recomenda numbered, porque o endereço global na WAN facilita gerência e diagnóstico. Na minha rede a WAN é unnumbered, e funciona: o cliente navega pelo prefixo delegado, e a gerência da ONU continua pelo TR-069 na WAN de gestão. O que se perde é poder pingar a WAN IPv6 da ONU de fora. Escolha conforme o que o seu BNG entrega.

LAN: prefixo, RA e DNS

Em LAN Configuration > DHCPv6 Server Configuration fica o que a ONU anuncia para dentro de casa. O endereço de gerência IPv6 da ONU na LAN é fe80::1 por padrão, e é ele que aparece como gateway nos aparelhos.

CampoValorObservação
Parent prefixA WAN de internetVazio = a LAN fica sem prefixo
Child prefix maskQual /64 do /56 vai para a LANNecessário quando o prefixo recebido é mais curto que /64, como um /56
Address/Prefix assignment modeSLAACOs aparelhos montam o endereço pelo RA
Other information assignment modeDHCPv6 ou SLAACPor onde vai o DNS IPv6
ULA ModeProhibitA própria Huawei recomenda desligar

Prefiro SLAAC para endereço porque o Android não pega endereço por DHCPv6, só por SLAAC. Com DHCPv6 puro no endereço, o celular do cliente fica sem IPv6 global. Se o BNG entrega um /56, a ONU usa um /64 dele na LAN e o Child prefix mask escolhe qual. Os outros /64 ficam livres para uma segunda rede, se o modelo suportar.

Rota padrão IPv6

Em Route > Default IPv6 Route Configuration, habilite a rota padrão e aponte para a WAN de internet. Se a ONU tiver mais de uma WAN com IPv6, como TR-069 ou VoIP, sem isso o tráfego pode tentar sair pela WAN errada. A própria Huawei lembra que a WAN precisa ter obtido endereço antes de a rota padrão funcionar.

Parâmetros IPv6 via TR-069 no GenieACS

Entrar ONU por ONU não escala. Com as ONUs falando com o ACS, o IPv6 na ONU Huawei vira três parâmetros na WAN PPPoE. São parâmetros proprietários da Huawei, com prefixo X_HW_, dentro de WANPPPConnection. Se o seu GenieACS ainda não está no ar, o guia de GenieACS e TR-069 na ONU Huawei mostra a instalação e a lógica de presets e provisions.

Equivalente provável na webParâmetro TR-069Valor que eu uso
Protocol Type IPv4/IPv6...WANPPPConnection.N.X_HW_IPv6Enabletrue
IP Acquisition Mode None...X_HW_IPv6.IPv6Address.1.OriginNone
Prefix Acquisition Mode DHCPv6-PD...X_HW_IPv6.IPv6Prefix.1.OriginPrefixDelegation

Os parâmetros e os valores da coluna do meio são os do provision que roda no meu ACS. A coluna da web é uma correspondência deduzida pelo comportamento, não um mapeamento publicado pela Huawei, e os nomes mudam entre modelos e firmwares. Confirme no seu firmware/ACS: configure uma ONU pela web, leia a árvore dela no GenieACS e compare antes de aplicar em massa.

O provision que liga o IPv6 na ONU Huawei em toda a base

Eu coloquei a regra no provision default, o que vem de fábrica no GenieACS e roda em todo inform. Este é o trecho de IPv6:

const now = Date.now();
const PPP = "InternetGatewayDevice.WANDevice.*.WANConnectionDevice.*" +
  ".WANPPPConnection.*";

// liga o IPv6 em toda WAN PPPoE da ONU
declare(PPP + ".X_HW_IPv6Enable", {value: now}, {value: true});

// exatamente um objeto de endereço e um de prefixo por WAN
declare(PPP + ".X_HW_IPv6.IPv6Address.*", null, {path: 1});
declare(PPP + ".X_HW_IPv6.IPv6Address.*", {path: now});
declare(PPP + ".X_HW_IPv6.IPv6Prefix.*", null, {path: 1});
declare(PPP + ".X_HW_IPv6.IPv6Prefix.*", {path: now});

// WAN sem endereço global; o prefixo vem por DHCPv6-PD
declare(PPP + ".X_HW_IPv6.IPv6Address.*.Origin", {value: 1},
  {value: "None"});
declare(PPP + ".X_HW_IPv6.IPv6Prefix.*.Origin", {value: 1},
  {value: "PrefixDelegation"});

Linha a linha. O PPP usa curingas em WANDevice, WANConnectionDevice e WANPPPConnection, porque o índice da WAN de internet muda de modelo para modelo e de provisionamento para provisionamento. O primeiro declare lê o X_HW_IPv6Enable a cada inform e grava true se a ONU disser outra coisa.

Os pares com {path: 1} garantem que exista exatamente uma instância de IPv6Address e uma de IPv6Prefix: o GenieACS cria a que faltar e apaga as que sobrarem. A linha seguinte, com {path: now}, atualiza a árvore para o ACS saber o índice. As duas últimas gravam a origem do endereço (None, WAN unnumbered) e do prefixo (PrefixDelegation, DHCPv6-PD).

Duas lições de produção. Primeiro, o {value: 1} nas origens faz o ACS ler o valor só uma vez e não a cada inform, o que economiza tráfego numa base grande. Segundo, ONU recém-instalada precisa informar com frequência no primeiro dia: com o intervalo em 300 segundos, o IPv6 liga poucos minutos depois de a WAN aparecer. Com uma hora de intervalo, o técnico vai embora e o cliente fica sem IPv6 até o próximo inform.

O curinga só pega WAN PPPoE. Se a internet do cliente for IPoE, por DHCP, o caminho é WANIPConnection, e o provision precisa de uma variação para ela. Confirme no seu firmware/ACS se a árvore X_HW_IPv6 existe nesse objeto.

Ligar o IPv6 em uma ONU pela NBI

Para um caso isolado, sem esperar o inform, dá para mandar a tarefa direto pela NBI. Primeiro as variáveis e uma atualização da árvore de WAN, para descobrir o índice da WAN PPPoE:

ACS=http://127.0.0.1:7557
ONU=00259E-EG8145V5-48575443A1B2C3D4
W=InternetGatewayDevice.WANDevice.1.WANConnectionDevice
curl -i "$ACS/devices/$ONU/tasks?connection_request" -X POST --data '{"name": "refreshObject", "objectName": "'$W'"}'

Com o índice em mãos, aqui o WANConnectionDevice 2, o setParameterValues liga o IPv6. O connection_request pede à ONU que se conecte ao ACS na hora:

P=$W.2.WANPPPConnection.1
curl -i "$ACS/devices/$ONU/tasks?connection_request" -X POST --data "{\"name\": \"setParameterValues\", \"parameterValues\": [[\"$P.X_HW_IPv6Enable\", true]]}"

Uma nota de segurança: com IPv6 ligado, confira se a página web da ONU ficou acessível pela WAN. O post sobre acesso remoto à ONU Huawei mostra como testar e bloquear esse acesso.

Verificar o IPv6 na ONU Huawei pela OLT

A OLT não configura o IPv6 da ONU neste cenário, mas mostra o que a ONU reporta da WAN. O comando roda no modo config, fora da interface gpon:

enable
config
display ont wan-info 0/1 0 1

A saída traz um bloco por WAN. Este é o trecho da WAN de internet, resumido, com valores de exemplo. Os nomes dos campos são os do MA5800; o formato dos valores, como o do Prefix, pode mudar com a versão da OLT e da ONU:

  Index                      : 2
  Name                       : 2_INTERNET_R_VID_100
  Service type               : Internet
  Connection type            : IP routed
  IPv4 Connection status     : Connected
  IPv4 access type           : PPPoE
  IPv4 address               : 203.0.113.25
  IPv6 switch                : Enable
  Prefix                     : 2001:db8:a10:4500::/56
  IPv6 Connection status     : Connected
  IPv6 address               : -

Os campos que eu leio, nesta ordem. IPv6 switch diz se o IPv6 está ligado na WAN; Disable significa que a configuração não pegou. Prefix mostra o prefixo delegado recebido; com -, a ONU pediu e o BNG não entregou. IPv6 Connection status é o estado da parte IPv6 da sessão. IPv6 address com - é o esperado numa WAN unnumbered.

A saída tem ainda Prefix access mode e IPv6 address access mode, que dizem como cada um foi obtido, e os DNS IPv6. A WAN de TR-069 aparece em outro bloco, normalmente com o IPv6 desligado, e não precisa de IPv6.

Testes do IPv6 na ONU Huawei no cliente

Com a ONU mostrando o prefixo, o teste final é num aparelho da casa. No Windows:

ipconfig /all
ping -6 www.google.com
tracert -6 www.google.com

O ipconfig /all precisa mostrar um endereço IPv6 global, começando pelo prefixo da LAN, e o gateway padrão em fe80::1. O ping -6 e o tracert -6 forçam IPv6: se o ping resolve o nome e responde, a navegação está ok. No Linux:

ip -6 addr show
ip -6 route show default
ping -6 -c 4 www.google.com
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP
    inet6 2001:db8:a10:4500:5a1e:22ff:fe33:4455/64 scope global dynamic
    inet6 fe80::5a1e:22ff:fe33:4455/64 scope link
default via fe80::1 dev eth0 proto ra metric 1024

O endereço com scope global saiu do /64 da LAN, montado por SLAAC. A rota padrão vem por RA (proto ra) apontando para o link-local da ONU. Se aparecer só o scope link, o aparelho não recebeu o RA com prefixo e o problema está na LAN da ONU.

Para o cliente leigo, um site de teste de IPv6 aberto no celular resolve. Peça o print da tela, que mostra se há IPv6 e qual endereço apareceu.

Erros comuns com IPv6 na ONU Huawei

SintomaCausa provávelO que conferir
IPv6 switch: Disable na OLTWAN só IPv4 ou configuração não aplicadaProtocol Type na web; X_HW_IPv6Enable e faults no ACS
Prefix: – na OLTBNG não entregou PDPrefix Acquisition Mode DHCPv6-PD; pool de PD no BNG
ONU com prefixo, aparelho sem IPv6 globalLAN sem prefixo ou sem RAParent prefix vazio; modo de atribuição na LAN
Notebook com IPv6, celular semEndereço só por DHCPv6 na LANTrocar para SLAAC
IPv6 global, mas não navegaRota padrão IPv6 pela WAN erradaDefault IPv6 Route Configuration
Liga e desliga sozinhoProvision e configuração manual brigandoQuem é a fonte da verdade: ACS ou técnico

O último caso merece atenção. Com o provision rodando em todo inform, qualquer mudança manual na web é desfeita no próximo contato da ONU com o ACS. Se um técnico desligar o IPv6 de um cliente para testar alguma coisa, ele volta sozinho. Isso é o comportamento esperado, e o time de campo precisa saber.

Outro ponto que confunde: com a WAN em Bridge não existe IPv6 na ONU Huawei para configurar. Quem disca o PPPoE e pede o prefixo é o roteador do cliente, e a configuração passa a ser dele.

Perguntas frequentes

Preciso configurar algo na OLT para o IPv6 na ONU Huawei funcionar?

Com a WAN PPPoE configurada na ONU, não. A OLT transporta a sessão na VLAN de serviço sem olhar se dentro vai IPv4 ou IPv6. Ela só ajuda a conferir, com o display ont wan-info.

Qual tamanho de prefixo entregar para cada cliente?

A prática comum em provedor é /56 por cliente residencial, o que dá 256 redes /64. A ONU usa um /64 na LAN. O dimensionamento do pool fica no BNG, explicado no guia de IPv6 no PPPoE com prefixo delegado.

Ligar o IPv6 na ONU derruba a internet do cliente?

Pela web, salvar a WAN refaz a sessão PPPoE, então há uma queda de alguns segundos. Pelo ACS, no meu parque, gravar o X_HW_IPv6Enable não derrubou o cliente, mas isso pode mudar com o modelo e o firmware. Teste numa ONU antes de levar para a base e, na dúvida, faça fora do horário de pico.

Por que o celular não pega IPv6 e o notebook pega?

Quase sempre é a LAN em DHCPv6 para endereço. O Android só monta endereço por SLAAC. Troque o Address/Prefix assignment mode para SLAAC e reconecte o Wi-Fi.

O IPv6 na ONU Huawei deixa a ONU exposta na internet?

Sem NAT, os aparelhos da LAN passam a ter endereço global, e a proteção depende do filtro da ONU. A página de gerência também pode ficar alcançável, conforme o firmware. Depois de ligar, teste de fora pelo IPv6 e bloqueie o que não deveria responder.

Conclusão

O IPv6 na ONU Huawei depende de cinco peças: WAN dual stack, DHCPv6-PD, endereço da WAN, RA na LAN e rota padrão. Pela web, cada uma é um campo; pelo GenieACS, são três parâmetros na WAN PPPoE e um provision que garante o mesmo estado em toda a base. Comece por uma ONU de bancada, confira o Prefix na OLT e o endereço global num celular, e só depois leve a regra para o provision.

Leitura recomendada: IPv6 na ONU Huawei HS8546 v2, na wiki do Brasil Peering Forum (CC BY-NC 4.0).

Compartilhar:

Sobre o autor

Ivan Alves

Especialista em redes de provedores (ISP)

Ivan Alves trabalha há mais de 15 anos com redes de provedores de internet, do NOC ao backbone e à borda BGP. Coordena infraestrutura e tecnologia em um provedor regional e escreve aqui os tutoriais que gostaria de ter encontrado quando começou: comandos testados, cenário explicado e o porquê de cada linha.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *