Discuta este tópico no fórum

Se este conteúdo te ajudou, deixe um presente!

terça-feira, 17 de abril de 2018

OpenWrt: Configurando IPv6 (6 anos depois)

Mais um artigo da série sobre o OpenWrt/LEDE.

O que motivou iniciar o uso do OpenWrt não foi os inúmeros recursos a mais que você pode fazer com ele. O real motivador foi que eu queria usar IPv6 na minha rede. Escrevi sobre isso em 2012. Acho que cabe retomar o assunto.

Na época, o IPv6 no OpenWrt era opcional. As operadoras entregarem IPv6 era lenda urbana, quando não queriam te "vender" o pacote extra IPv6. O acesso IPv6 era coisa de universidade. A única alternativa era criar um túnel (lento) para um broker IPv6. De lá para cá, muita coisa mudou.

Hoje, todas as operadoras que se consideram minimamente significativas oferecem IPv6 a seus clientes. Então, se você não tem IPv6, já sabe o nível da sua operadora. As operadoras já estão com falta de IPv4 faz um tempo, tendo que apelar para técnicas como CGN (NAT na operadora) que, basicamente, coloca uma NAT na frente da sua NAT. O problema é que a sua NAT você tinha um certo nível de controle, podendo abrir/encaminhar portas. Já a NAT da operadora... Isso quebra um monte de coisas que iriam conectar na sua casa (ex: torrent, VPN, Câmera IP...). Se sua operadora tem que usar CGN, mas ao menos entrega IPv6, é a vida. Procure migrar suas coisas para IPv6. Se ela usa CGN mas não entrega IPv6... ela é incompetente. Procure trocar de operadora.

No mundo do OpenWrt, o IPv6 melhorou muito. Hoje em dia, ele vem autoconfigurado para IPv6. O normal é ele funcionando tão bem quanto IPv4, sem a necessidade de qualquer configuração. Não precisa de pacotes extras, ele simplesmente sai funcionando.

Vamos a um básico IPv6. Primeiro, o endereço. O IPv4 usava 32-bit, que dava um pouco mais de 4 bilhões de endereços (2^32). Deste tanto, tinha que tirar algumas faixas reservadas, um tanto para equipamentos intermediários, endereço de rede, broadcast. No fim, temos endereços para bem menos do que 4 bilhões de equipamentos. E com 7 bilhões de pessoas no planeta, isso era insuficiente. No IPv6, o pessoal exagerou e resolveu aumentar de 32-bit para 128-bit. Fica um trambolho deste tamanho:

2001:db8:85a3:8d3:1319:8a2e:370:7348

Cada conjunto separado por ":" tem 16-bit, ou 65536 variações. Com dois destes poderíamos colocar a internet IPv4 inteira (e temos 8 aqui). Como os números começaram a ficar grandes, resolveram usar notação hexadecimal, que inclui os algarismos normais e as letras de A até F. Isto permite usar endereços legíveis engraçadinhos. Caso tenha uma sequência de zeros, usa-se a notação "::", mas somente uma vez no endereço.

Existem variações para endereços especiais, como multicast, link-local, mas no caso geral, o endereço IPv6 pode ser dividido em duas partes, cada uma com 64-bit. No exemplo anterior, seriam as partes verdes e azul. A verde é seu prefixo de rede, que identifica uma rede IPv6 no mundo. A parte azul é o identificador da interface. Para fazer a analogia com  algo que todos têm familiaridade, seria algo assim no IPv4 privado da sua rede atual:

192.168.3.131/24

Então, com IPv4 você normalmente trabalha com redes /24 com 254 endereços "livres". Com IPv6, no mínimo temos 18.446.744.073.709.551.616 (2^64). Para quê tudo isso? Bem, assim você pode usar o endereço MAC da sua placa (48-bit) e obter automaticamente um endereço sem chance de conflito. Esse é o método de obtenção de endereços sem estado (SLAAC). Funciona assim:

equipamento: olá! tem um roteador aí? Eu preciso de uma rede!
roteador: Oi, eu sou o roteador no endereço fe80::1234:1234:3214:1234. Eu ofereço o prefixo de rede 2001:db8:85a3:8d3::/64

E o equipamento começa a usar 2001:db8:85a3:8d3:1319:8a2e:370:7348 usando fe80::1234:1234:3214:1234 como roteador padrão. Sem mais nenhum passo. Sem nenhuma negociação ou confirmação.

Este endereço, apesar de parecer "aleatório", será sempre igual, claro, se mantido o prefixo de rede. Equipamentos mais simples (IoT) podem só funcionar desta forma. E o DNS? Esse pode vir pelo serviço RDNSS, que vem junto com a resposta do roteador. Mas nem todos os clientes e roteadores suportam isso.

E não tem DHCPv6? Tem sim. Ele funciona de uma forma bem parecida com DHCPv4, mas pode tanto gerar os endereços dos clientes da mesma forma que o SLAAC ou da forma tradicional do IPv4: alocando de uma faixa de endereços (que podem ser fixados).

O prefixo de rede ainda pode ser dividido em duas partes: prefixo de roteamento e um identificador de subrede. O prefixo de roteamento é o que identifica todas as redes gerenciadas pelo seu roteador. Então, qualquer rede "acessível globalmente" no seu roteador compartilha essa parte inicial. O que sobra até atingir os 64-bit é usado pelo seu roteador para subdividir a rede em múltiplas redes locais. 

Vamos ao OpenWrt.

Ao ligar o OpenWrt, ele cria aleatoriamente um endereço de rede local (ULA). Sim, o recomendado é ser aleatório mesmo. Esse endereço é um /48 e sempre começa com "fd". Ex:

fdab:1234:1343::/48

Você pode ver (ou modificar) este endereço na aba "network/interfaces", lá no final. Isto seria equivalente a sua rede privada 192.168.1.0/24 do IPv4. Diferentemente do IPv4, eu não recomendo que mude este valor. 

O OpenWrt usa o "prefixo de roteamento" fdab:1234:1343:: e adiciona um identificador de subrede para formar uma rede final, normalmente de tamanho /64, mas pode ser modificado pela opção "ip6assign". E de onde ele pega identificador de subrede? Do campo "ip6hint". Se não definido, ele usa zero. Para o endereço anterior, ficaria:

fdab:1234:1343::/64

Mas é igual? Não! Agora tem um monte de zeros até chegar ao /64. De 48 para 64 são 16-bit ou 4 algarismos/letras em hexadecimal. Seria igual a isso:

fdab:1234:1343:0000::/64

Onde o magenta é o identificador da subrede. Se ele fosse "12", o resultado seria:

fdab:1234:1343:0012::/64

Simples? Por enquanto estamos só na rede local. O DHCPv6 pode ser configurado no mesmo local onde era configurado o IPv4, ao final da edição de cada interface. Lá você pode configurar se o roteador se anunciará como roteador (para SLAAC), se terá DHCPv6 e qual modo de endereços será distribuído pelo DHCPv6: SLAAC, por atribuição ou ambos. 

E como ficariam os endereços de rede? O OpenWrt normalmente usa o identificador de rede ::1 para si. Então, na subrede fdab:1234:1343:123A::/64, ele ficaria com:

fdab:1234:1343:0012::1/64

Mas o "::1" pode ser modificado pelo campo ip6ifaceid. E uma máquina na rede? Se ela tiver o endereço MAC 11:22:33:44:55:66, por SLAAC ela teria o endereço:

fdab:1234:1343:0012:1322:33ff:fe44:5566/64

Note que o MAC sofre uma pequena alteração, mas ele é visível no endereço. E se for por atribuição DHCPv6, será dinâmico (com relativa estabilidade) como no DHCPv4. E se eu quiser fixar? Assim como a interface tem o atributo "ip6ifaceid", a entrada DHCP onde você fixa o IPv4 terá um campo "hostid" (na interface WEB está como "IPv6-Suffix") onde você pode preencher o que quiser lá (até 64-bit ou 16 algarismos hexadecimais). Se for "cafe", o endereço ficaria:

fdab:1234:1343:0012::cafe/64

Pronto. Temos uma rede local que fala IPv6. Isto vai estar disponível em qualquer OpenWrt recente, mesmo que sua operadora não ofereça IPv6. Os endereços fd00::/8 não são (normalmente) roteáveis para a internet. Só devem ser usados dentro da sua rede doméstica ou corporativa.

Agora vamos falar com a Internet.

O básico de um roteador é ter uma interface WAN e uma ou mais LAN. Normalmente o endereço WAN IPv6 é obtido por DHCPv6 (ex: NetVirtua) ou por PPPoE/PPPoA (ex: Oi). Como é um protocolo diferente do IPv4, no OpenWrt é necessário usar uma segunda interface (ex: wan6) que utiliza o mesmo dispositivo físico da wan IPv4. Por padrão, ele já vem com uma wan6 configurada como DHCPv6, que resolve em grande parte dos casos.

O que muda do DHCPv4? Na requisição do DHCPv6, além de pedir um endereço para a interface WAN, existe um pedido de um campo adicional chamado de "prefixo de rede delegada" (Prefix Delegated - PD).  Você receberá da sua operadora um endereço WAN para seu roteador e um prefixo de rede com endereços reais (globais) para distribuir dentro da sua rede. O tamanho do prefixo solicitado pode ser modificado pelo campo "reqprefix", mas as operadoras não vão respeitar mesmo. Você receberá algo como:

IPv6 WAN: 2804:14d:baba:1000::17d7/64
IPv6 prefixo delegado: 2804:14d:baba:1f00::/56

Se a WAN IPv6 utilizar endereço IP fixo, você pode informar a rede delegada manualmente.

O que o OpenWrt faz com isso? O IPv6 WAN é usado para a interface WAN. Ele pode ser, inclusive um /128. Já o prefixo delegado é distribuído para todas as LANs internas. Da mesma forma que ocorreu com a  rede ULA, ele utilizará o prefixo roteado em conjunto com o identificador da subrede para criar prefixos de rede para cada rede interna. No exemplo, a operadora ofereceu um prefixo /56 (ex: Oi ADSL residencial), que permitiria subdividi-lo em 256 redes. É o suficiente para uma residência ou mesmo para um pequeno negócio.

( Bem, tem algumas operadoras que entregam apenas um /64 para seus clientes. Sim NetVirtua, estou apontando para você. Pode ser trauma da escassez de IPv4 mas não se justifica no mundo IPv6. Até a Oi, que normalmente não é usada como bom exemplo, oferece uma rede /56. Com uma rede /64, eu não tenho espaço para subdividir a rede em múltiplas redes LAN e ainda usar SLAAC. Isto quer dizer que não tenho como criar uma segunda LAN com IPv6. Mas quem precisa de duas LAN? Isso é coisa de empresa! Claro, o vizinho que eventualmente fez uma visita e precisou conectar na Wifi aqui em casa jamais irá enviar um vídeo por engano ao meu Chromecast, nem mesmo irá olhar sem querer na babá eletrônica... realmente a segunda rede é desnecessária. Não preciso dizer qual foi a resposta do Call Center da Net. Mas voltando... )

Com as redes do exemplo, a LAN do roteador passa a ter estes dois endereços:

fdab:1234:1343:0012::1/64
2804:14d:baba:1f12::1/64

E a máquina que tem o endereço MAC 11:22:33:44:55:66? Se usar tanto o SLAAC como o sufixo "cafe", teremos todos estes endereços configurados:

fd
ab:1234:1343:0012:1322:33ff:fe44:5566/64
fdab:1234:1343:0012::cafe/64
2804:14d:baba:1f12:1322:33ff:fe44:5566/64
2804:14d:baba:1f12::cafe/64

E para cada outra LAN no roteador, basta configurar o campo ip6hint dela com um identificador diferente das demais LAN e ela receberá seu cunhão de endereços automaticamente.

E se não tiver espaço para uma segunda LAN? O que posso fazer? E se minha operadora não entregar um prefixo delegado? Infelizmente, ainda temos a alternativa de usar NAT66 (NAT entre duas redes IPv6).

Beleza. Acabei de olhar a interface do meu computador e tem esses quatro endereços aí e mais um monte! Sim, temos ainda endereços usados apenas no contexto do enlace local (link-local), que começam com "fe80". Ele seria equivalente ao famigerado 169.254.0.0/24 do IPv4.

fe80::1322:33ff:fe44:5566/64

Este endereço normalmente nem responde aos serviços de rede normais. Ele é usado para as tarefas administrativas do IPv6, como encontrar um outro equipamento na mesma rede ou o seu roteador. É necessário.

Mas tenho muito mais endereços! Bem, o endereço MAC não é algo muito "mutável" nas máquinas. Como ele começou a fazer parte do endereço visível na internet, ficou fácil rastrear os equipamentos que usam SLAAC. Mesmo que você mude o prefixo, o final sempre será o mesmo. Com isso você obtem o MAC e individualiza o computador. Solução? Uma extensão de privacidade. Além de todos os endereços listados anteriormente, a máquina pode periodicamente criar novos endereços com o identificador de interface (parte verde) aleatória. Quando usada a extensão de privacidade, o endereço SLAAC fixo é usado para receber conexões que queiram se conectar no computador enquanto os endereços aleatórios são usados pelo computador para acessar serviços remotos. Depois de um tempo, o endereço aleatório é desativado e outro é criado. Com isso, o serviço remoto não tem como rastrear o equipamento apenas pelo endereço de origem. Se deixar um computador que usa a extensão de privacidade muito tempo ligado, é normal ver uma lista mais de uma dezena de endereços IPv6.

E tem mais assuntos IPv6? Tem! Firewall IPv6, NAT66 (sim, NAT para IPv6 as vezes é necessário), multihoming (duas WANs), VPN sobre IPv6, e assim por diante. Mas isso fica para outro artigo.

Se pintar uma dúvida, temos o fórum.

Até a próxima.

39 comentários:

  1. Opa Luiz, muito bom... e você fez rápido pra caramba!
    Eu uso Net e Vivo. A Vivo não fornece PD (ou pelo menos, não aparece na Luci).
    Eu tenho outros "roteadores", com openwrt (lede), operando como access point. Deixo a ULA deles como está, ou deixo igual ao principal?

    ResponderExcluir
    Respostas
    1. Access point deve estar com DHCP (e NDP) desativado na LAN. A ULA pode remover pois ela só interessa para roteadores, não AP.
      É estranho a Vivo não oferecer PD. É um modem 3g?

      Excluir
    2. Não, é vivo fibra. Tem comando pra ver o PD? Pq na Luci não aparece. Inclusive acabei de reparei que nem aparece o IP Publico, aparece só o IP "fe80", mas a rede que eu escolhi pra receber o IPv6, reebeu 3 IPs, 2 parecidos com o da NET, um parecido com o da vivo.

      Excluir
    3. E pros APs pegaram IPv6, eu crio uma interface "lan6", ou configuro algo nela mesma?

      Excluir
    4. Você pode capturar a requisição do DHCPv6 para ver o que o roteador pedee o que a Vivo responde. Tcpdump e wireshark são seus amigos.

      Lembre-se que fe80 é link-local (texto do artigo), equivalente ao 169.254.x.x. O fato dele estar presente não é sinal algum que sua operadora entrega ipv6. Se só tem ele, provavelmente você está sozinho na rede (não tem um roteador do lado de lá)

      Sim, lan6 é o caminho se usar DHCPv6

      Talvez seja melhor continuar no fórum do blog. É mais fácil de responder e referenciar

      Excluir
    5. Tenho o Lede 17.01.6 e nele aparece o PD na interface WAN6. Faltou somente mencionar que a Vivo também só oferece o prefixo /64.

      Excluir
    6. /64, infelizmente, não é exclusividade da Vivo. A NET também entrega só isso. Já a Oi entrega um /56, que permite criar facilmente subredes.

      Eles devem achar que vai faltar endereços IPv6...

      Se aparece na interface, a Vivo entregou um PD.

      Excluir
    7. Se depender das operadoras, o IPV6 vai morrer antes mesmo de se popularizar. É ridículo ter que fazer um NAT em IPV6 para poder ter ter mais de uma subnet em casa.

      Excluir
    8. É triste e não vai mudar. Só ser o CGI criar uma norma obrigando.

      Mas NAT em si não vai morrer no ipv6. Temos alguns usos que ele ou NPT são necessarios, como quando tem 2 links para a internet.

      Excluir
    9. Acho que seria interessante um tópico referente ao NAT6 no OpenWRT.

      Excluir
    10. Seria excelente se vc fizesse um artigo falando de mwan3 e NPT pra 2 ISPs!

      Excluir
  2. Sem sucesso. Roteador principal vê o IPv6, mas não consigo pingar ipv6.google.com

    ResponderExcluir
    Respostas
    1. Renato, não sei se ainda esta com problemas mas na questão ser mais facil recomendo configurar o Openwrt/Lede em modo PPPOE assim o proprio sistema faz a configuração de Delegação para a rede LAN

      Excluir
  3. Como faço para portar um firmware openwrt de um dir-610 a1 para o dir-610 b1, o a1 tem uma cpu ralink RT5350 mas a versão b1 tem um ralink RT8196E, não achei nada a respeito, se tiver algum tutorial eu agradeço, porque estou disposto a fazer isso mesmo não tendo nenhuma experiência.

    ResponderExcluir
  4. Ola Luiz,

    Estou com muitas dificuldades com IPv6, em relação de ter um prefixo /64 queria entregar endereços IPV6 em minha rede OpenVPN nos meus dispositivos como posso fazer essa configuração sem usar SLAAC, você teria um guia de como configurar NAT66?

    ResponderExcluir
  5. boa noite Luiz, tudo bem ?

    sou meio leigo no assunto e gostaria de uma dica sua,a um tempo atrás eu ja tinha um modem da NET em bridge funcionando perfeitamente com IPv6 e atualmente mudei de residencia e a NET instalou o modem Techinicolor e uso o openwrt no TPlink wdr4300 , ocorre que coloquei meu modem da NET em Bridge porém não consigo chegar em uma configuração que o ipv6 chegue nos computadores e dispositivos da rede. Vou descrever as configs atuais para que voce possa dar uma opinião a respeito do que posso fazer para ajusta-las e conseguir a navegação com IPv6:

    Na interface LAN em "IPv6 Settings" tenho:

    Router Advertisement-Service: Server Mode
    DHCPv6-Service: Server Mode
    NDP-Proxy: disabled
    Always announce default router: desabilitado
    Announced DNS servers: em branco
    Announced DNS domains: em branco


    Em WAN6 tenho:

    Protocol: DHCPv6 Client
    Request IPv6-address: try
    Request IPv6-prefix of length: automatic


    atenciosamente,
    Marcos






    ResponderExcluir
    Respostas
    1. Olá Fábrica,

      Talvez você não tenha mesmo IPv6 neste local. Já tentou verificar em novo "não bridge" se os clientes ganham IPv6?

      Não há nada de errado na sua configuração. O IPv6 deveria funcionar sem intervenção. A versão 18.06 resolve alguns problemas que eu tinha com a NET ao evitar usar o endereço da WAN para comunicação, mas isso não afetava a entrega de endereços locais nem o uso do IPv6 na LAN.

      Olha se tem informações sobre o IPv6 já na página de entrada do OpenWrt, depois que você loga. Para mim, está em "IPv6 Upstream", ao lado de "IPv4 Upstream"

      Excluir
  6. Ola Luiz, muito obrigado pelas informações consegui fazer funcionar o IPv6 eu estava batendo cabeça de bobeira, o que faltava era depois de alterar a config. do modem da net para bridge reiniciar tudo (modem e router)... enfim um erro meio primário mesmo..rsrs.. mas agora descobri que estou em CGNAT da NET e tenho necessidade de abrir portas para acesso remoto, estou tentando resolver isso agora com a net.

    muito obrigado mais uma vez pela sua atenção,

    abs,
    Marcos

    ResponderExcluir
    Respostas
    1. CGNAT? Que tristeza... ainda não tive este desprazer, mas ele vai chegar a todos. Daqui um tempo, só serviços terão IPv4 real.
      Para isso que temos IPv6.

      A NET é assim mesmo. Ela aprende o MAC que você está usando e normalmente precisa reiniciar o equipamento para ele esquecer o MAC antigo.

      Excluir
  7. Luiz, bom dia. Ainda estou aprendendo acerca do ipv6. Minha conexao é uma vdsl da vivo. A interface wan conecta via pppoe e recebe tanto ipv4 quanto ipv6. Na aba interfaces do openwrt na wan tem um endereço ipv6/128 e na wan6 tem outro endereço ipv6/64 quanto o ipv6 pd tambem /64. Qual a diferença do ipva na wan e o outro na wan6?

    ResponderExcluir
    Respostas
    1. wan6 é so uma interface adicional para ter uma conf conf diferente para o mesmo dispositivo.
      Se estiver com dúvidas sobre o Ipv6, sugiro http://saladeaula.nic.br/courses/course-v1:NIC.br+IPV6-001+T001/about

      Excluir
  8. Olá Luiz. Tenho Openwrt versão de desenvolvimento instalado em dois roteadores Xiaomi MIR3G funcionando sem maiores problemas. Porém, smartphones e televisores não recebem a configuração correta dos servidores DNS em ipv6, e a consulta DNS em ipv6 não funciona. Alguma ideia?

    ResponderExcluir
    Respostas
    1. Olá Marcos.

      Como diria Jack, vamos por partes. Primeiro: seu roteador recebeu um servidor DNS ipv6? Sem isso ele não tem o que repassar. Se não receber do se provedor, existem servidores públicos, como do Google.

      Existem duas formas de entrega da configuração de endereços ipv6 e, consequentemente, configuração do DNS. Se for por DHCPv6, é tudo muito parecido com ipv4. Temos também a outra alternativa por conf sem estado, onde o cliente calcula seu endereço usando a rede anunciada pelo roteador e um identificador baseado no seu mac (ou mesmo um aleatório). Nesta segunda forma, a conf dns (RDNSS) pega uma carona no pacote router advertisement. Esta última nem sempre é entendida por todos os equipamentos, seja o roteador ou um cliente. Pode ser isso. Você pode desativar a entrega de endereços ipv6 sem estado para testar.

      Por fim, só para lembrar, dns ipv6 não é necessário para usar ipv6 pois o dns ipv4 resolve nomes ipv6 mesma forma. Só será necessário mesmo se seu cliente não tiver ipv4 ou acesso a um servidor dns ipv4

      Excluir
  9. Boa tarde Luiz. Muito obrigado pela resposta.

    Sim, o roteador está com o ipv6 configurado e funcionando normalmente na rede interna, cabeada e wifi, inclusive com configuração manual de dns em ipv4 e ipv6. Nos computadores da rede interna o Windows recebe normalmente a configuração automática de tudo, conforme definido no roteador, e no linux (Arch) a configuração de ip e dns é manual, funcionando sem problemas.

    O arquivo /etc/config/dhcp, na sessão dhcp, está assim:

    config dhcp 'lan'
    option interface 'lan'
    option start '100'
    option limit '150'
    option leasetime '12h'
    list dhcp_option '6,1.1.1.1,192.168.1.1'
    list dns '2606:4700:4700::1001'
    list dns 'aqui é o endereço local ipv6 da rede interna no roteador, mas eu omiti'
    option ra 'server'
    option dhcpv6 'server'
    option ndp 'relay'
    option ra_management '1'
    option ra_default '1'

    O problema, como eu disse, está em alguns dispositivos como smartphones e TV, que não recebem a configuração correta do servidor DNS em ipv6. No meu Xiaomi Redimi 6, por exemplo, com o termux instalado o comando dig não responde quando se usa ipv6. Isso me chateia um pouco pelo fato de que a navegação fica lenta. Como o ipv6 é padrão, parece que o dispositivo tenta fazer primeiro a requisição dns em ipv6, e somente após a falha passa para ipv4, o que atrasa o carregamento da página. Isso acontece também nos computadores quando por algum motivo a rede ipv6 está configurada, mas não operante. O navegador demora uns 3 ou 4 segundos para fazer a conversão de ipv6 para ipv4 e a navegação fica comprometida.

    ResponderExcluir
    Respostas
    1. Achei estão o ndp relay. Você não tem uma rede delegada? Normalmente você não configura o dns no DHCP, fazendo seu roteador ser o servidor DNS. Aí ele repassa para seus servidores (configurados nas interfaces manualmente ou pela operadora).

      Eu uso a conf padrão

      config dhcp 'lan'
      option interface 'lan'
      option start '100'
      option limit '150'
      option leasetime '12h'
      option dhcpv6 'server'
      option ra 'server'
      option ra_management '1'


      E que eu comentei de desativar a conf sem estado desativaria o 'ra'.

      Já tentasse olhar os pacotes? Tenho um artigo sobre captura de pacotes no roteador.

      Excluir
  10. Nossa Luiz, entendi nada com nada.. só queria PPPoE v6 no meu led, antes minha wan estava sobre CGNAT + IPV6, ai liguei lá e pedi um ipv4 cgnat estava acabando com meus jogos.. ai colocaram, mais tiraram ipv6, agora graças a Deus eles colocaram ipv6..

    eu posso ter ipv4 e ipv6 coexistindo juntos no mesmo espaço e tempo no lede?

    como eu faço a configuração?

    att

    ResponderExcluir
    Respostas
    1. IPv6 e IPv4 são independentes. Normalmente você tem uma interface para cada apontando para o mesmo dispositivo. Para o PPPoE da Oi, eu uso:

      config interface 'oi_dsl'
      option proto 'pppoe'
      option username '9999999999@oi.com.br'
      option password '9999999999'
      option delegate '0'
      option ifname 'eth0.2'
      option ipv6 'auto'

      config interface 'oi_dsl6'
      option ifname '@oi_dsl'
      option proto 'dhcpv6'
      option reqaddress 'try'
      option reqprefix '56'

      Algumas opções são "extras", referenciando valores já padrão e não necessárias. Mas com isso você pode ter uma base.

      Excluir
  11. Este comentário foi removido pelo autor.

    ResponderExcluir
  12. Muito bom Luiz, muito didático!

    Qd botei um serve Ubuntu em casa e fui fazer port forwarding eu descobri q a MET tava me colocando em CGNAT. Ela tem mais de 10 milhões de addr IPv4 e vem dizer q tá faltando!! Consegui q me dessem um válido, mas resolvi estudar e aventurar no IPv6.

    Meu Cisco RV340 não tem suporte adequado, então descartei ele e comprei outro router e entrei pra comunidade do OpenWRT!

    Indeed, ele já configura o IPv6 tudo por default! O RV340 num gera ULA de forma alguma na LAN, já o OpenWRT deixa até configurar o ULA prefix! Se o ISP estiver com DHCP-PD funcionando, o OpenWRT recebe e já distribui GUA pra todos os devices sem a gente precisar fazer nada! Isso é fantástico!! De quebra, com base nos MAC, consegui atribuir IPv4 addr fixo e IPv6 suffix e domain name pra todos os meus devices! E assim eles ficam com ULA e GUA, muito bom!!!! A impressão q fiquei do RV340 é q ele foi desenvolvido sem testarem IPv6 nele, colocaram só pra dizer q tem mas sem visar ser usado.

    Infelizmente ainda ando com problemas. Pelo q consegui levantar o OpenWRT ainda não suporta NPTv6. Acho q seria mais confortável ter só o ULA na LAN e deixar o router fazer a tradução.

    E nossos ISPs são uma tristeza. NET e Vivo violam o padrão do IPv6 e entregam prefixes /64. Num consigo entender se é má fé ou ignorância. Os atendentes ficam querendo mandar tecnico em casa e cobrar por isso.

    O modem da NET, mesmo com prefix /64, pelo menos eu consegui passar pra bridge e é com ele q meu router recebe um prefix e distribui GUA pros meus devices e eles conseguem acessar a Intenet usando IPv6. O modem dela tem um bridge simulado, nesse modo ele só aceita 1 único device conectado a ele e via DHCP entrega o IPv4 válido, o IPv6 addr e o IPv6 global prefix via PD. O modem em router atribui addr pro OpenWRT, mas não delega PD, aí o router não consegue distribuir addr na LAN.

    Já o da Vivo é uma tristeza. Além de receber prefix /64 (oq pra ele nem faz diferença, pq ele num suporta VLAN mesmo) e não delegar PD, ainda não funciona como bridge. Passei ele pra bridge com um tecnico aqui em casa, e ferrou tudo. Esse sim é bridge real, e aí o router precisa conectar em PPPoE. Configurei wan e wan6 pra PPPoE, mas se a wan6 conectar, a wan é derrubada e não funciona. Desconectando a wan6 aí a wan funciona.

    Ou seja, a NET tá usando CGNAT e violando o padrão pra impedir q criemos VLANs em casa e nos arrancar dinheiro pra mandar tecnico, q nem sei oq faria, e a Vivo tá com IPv6 totalmente quebrado.

    ResponderExcluir
    Respostas
    1. Pode desabafar Hikari, eu te entendo. É frustrante. Nunca usei cisco em casa mas a filosofia deles normalmente não é sair funcionando. O OpenWrt realmente tenta resolver para você várias coisas por padrão.

      Para ter um roteador seu, o equipamento da operadora deve ser tornar um modem (modo bridge). Aquela gambiarra de redirecionar todas as portas externas para um endereço da intranet já era uma aberração no IPv4, mas no IPv6 não faz o menor sentido. Tem que ser Bridge mesmo. Em um mundo ideal, até poderia funcionar em modo roteador se o roteador da operadora tivesse uma faixa divisível (/56?), e o DHCPv6 dele aceitasse delegar uma ou mais dessas redes se o cliente pedisse. Mas tem tanto "se" que nem vou cogitar, em especial por só ter uma /64 (carcamanos).

      Quando ao NPTv6 ou mesmo NAT66 no OpenWrt, pode não ter na interface gráfica ou factível pela configuração. Porém, ele é um Linux. Tudo que você precisa de software está disponível. Basta instalar pacotes e ridar uma linha do ip6tables. Já brinquei com ambos no OpenWrt. Evitei o NPTv6 pois ele quebra o conntrack. Sem ele, você não tem mais um firewall com estado e sua segurança fica pior que NAT.

      O ULA, a princípio, é para comunicação apenas interna e não deveria ser roteado para fora. É para usar o endereço global mesmo (2xxx:...). Ser tivesse uma rede IPv6 fixa, nem precisaria existir. O problema é que, se a internet estiver com problemas, seu roteador não saberia qual endereço usar e você não teria como falar com o roteador por IPv6. Agora você quer o inverso, só usar ULA. Isso é diferente e só faz sentido em alguns casos.

      Eu uso ULA com NAT66 para rotear outras redes (só porque tenho apenas uma /64). Também usei para mwan mas ainda só tenho um link com IPv6. Daqui a dois meses devo ter novidades e preparo o material com propriedade. Esse parece ser seu caso. Fora isso, com um só link, recomendo o endereço global.

      Quando ao PPPoE, tem que ver o que eles oferecem. O equipamento deles em modo roteador pode dar uma dica. Na Oi, uso PPPoE para IPv4 e dhcpv6 na interface ppp que o PPPoE criou. Acho que tem também uma extensão do pppoe para entregar IPv6, mas nunca usei.

      E o CGNAT é o que teremos, não adianta lutar contra. Reclame do IPv6 sem funcionar, com rede limitada a uma /64, mas não do CGNAT pois é uma batalha perdida. Você acha que sua operadora vai te entregar um endereço IPv4 real quando ela precisa dele para vender internet para um cliente empresarial? Fora do Brasil, o mercado negro de endereços IPv4 está quente. Você está certo em investir no IPv6. Se todos fizessem isso, tava resolvido.

      Excluir
    2. Muito obrigado pela atennção Luiz! E obrigado também, pq ontem eu passei meu modem pra bridge e tava tentando fazer o wan6 funcionar com PPPoE e foi vc num ticket do mwan3 q me ensinou a configurar! hahahaha

      Pelo q eu entendi nos meus estudos, o link-local seria apenas pra fazer os devices entrarem da forma mais básica na rede, tipo um suporte pra habilitar SLAAC e DHCP. ULA seria justamente um endereço fixo interno da LAN, pra ficar independente de mudanças de prefix do GUA.

      A questão do CGNAT é que Vivo tem 9 milhões de addr IPv4 e a Telefónica tem mais de 10 milhões. Eles estão longe de estarem com problema, pra Consumidores q querem só 1. Ontem mesmo o tecnico da Vivo fez várias ligações procurando alguém q entendesse de IPv6, e ouvi um deles dizendo q IPv6 na Vivo tá sendo implantado ainda e tá com problema.

      Oq não é o caso do prefix length, pois vi relados lá de 2012 da Comcast passando /64 pros Consumidores e aumentando pra /56 quando pediam, então naquela época os DHCP já permitiam setar individualmente.

      Bom, o NPTv6 é o mais relevante. Não encontrei 1 único site explicando como configurar ele no OpenWRT, só encontrei 1 thread no forum de alguém tentando fazer e não teve resolução. Encontrei gente dizendo q NPTv6 é fundamental pra multihoming. Considerando q IPv6 ainda é pouco usado na prática, q multihoming é raro, eu já esperava pouca gente no mundo falando sobre situações combinando ambos e mais OpenWRT.

      Acontece q eu acho mais simples de configurar uma LAN se tiver apenas o ULA nos devices e o router usar NPTv6 pra lidar com os prefixes. O mwan3 funciona muito bem em IPv4, mas nos testes q fiz ontem de noite, o Win10 ao saber da existência de 2 GUA prefixes parece querer fazer o roteamento por conta própria. Algumas vezes ele passou por cima das rules do mwan3 e usou rota q eu tinha bloqueado, algumas vezes o mwan3 bloqueou a tentativa do Win10 mas esse insistiu e recusou a rota do mwan3 e não conseguiu sair.

      Cheguei a pensar q era wan6 ou wanb6 com problema, mas até o momento parece estar havendo conflito mesmo entre devices e router. Seria mais simples deixar o GUA prefix invisível pros devices e o router com toda a responsabilidade do roteamento.

      Se vc topar com algum, poderia me indicar artigo ou thread no forum explicando como configurar NPTv6 no OpenWRT? Ou qual software usar pra configurar.

      Excluir
  13. Net e vivo estavam desesperadas para colocar limite de dados mas redes fixas, igual ocorre na rede móvel.

    Do mesmo modo na internet móvel limitada com franquia o ipv6 é /48 . Já na rede fixa sem franquia a rede é limitada com ipv6 /64.

    Tenho absoluta certeza de que se a franquia na rede fixa fosse permitida, a rede fixa passaria a ser /48 também.

    Essas operadoras estão com medinho de fulano comprar internet 120 mega e distribuir rede de 1 mega para 120 residências por meio de sub redes criadas com ipv6 /56 ou /48.

    A Net com milhões de ipv4 disponíveis e colocando CGNAT nas redes. Tem alguma outra explicação para essas operadoras quebrarem o ipv6 desse jeito???

    ResponderExcluir
    Respostas
    1. SrLan,

      Disponibilizar apenas um /64 dificulta muito pouco a vida de quem irá distribuir em diversas subredes. Basta fazer um network prefix translation (NPT) ou um NETMAP (NAT66). Eventualmente estas opções estarão "1 clique" de distância. É mais na linha do "nivelar por baixo", em especial nos casos onde a operadora oferece o equipamento. De qualquer forma, não faz muito sentido impedir uma prática indesejada prejudicando um protocolo pouco usado. Faria mais sentido controlar o número de conexões simultâneas, ou algo do tipo (se é que já não o fazem).

      Sim, a Claro/NET tem milhões de endereços IPv4 (uma busca rápida, 9.144.320). Um tanto disso é perdido em fragmentação e endereços gerenciais. Mesmo que fosse 100% aproveitável, a claro tinha em 2017 mais de 60 milhões de clientes móveis e a NET 7 milhões.
      O Brasil TODO tem só 48.572.160 endereços IPv4. Se dividir por pessoas, dá 0,23 endereços por pessoa. Não dá nem para dar um endereço por cliente claro, imagina para cada celular (temos mais linhas que gente no Brasil), fora as conexões físicas. O sorteio do bife acabou. Em resumo (para quem tem mais de 30 anos):

      https://youtu.be/kc1x6LUHuf0?t=35

      CGNAT é ruim para os clientes mas também para as operadoras. Eles tem que criar imensas infraestruturas, guardar logs enormes de cada conexão. Não fazem para "prejudicar", mas porque não tem alternativa.

      Então, pode ficar revoltado com a forma que as operadoras lidam com o IPv6. Já o IPv4 e CGNAT, é briga pelas migalhas e uma luta perdida. Invista 100% em IPv6.

      Excluir
  14. Estamos na porta de 2021, gente trabalhando em casa, home office cada vez mais comum, e esses demônios de operadora só oferecem /64. Vivo fibra ótica, Net/Claro mesma coisa. Só a Oi que oferece /56, mas aí eles não oferecem fibra ótica onde moro! Inferno! País lixo até nisso!

    ResponderExcluir
  15. Opa, deixa eu aproveitar a notificação q recebi pra dar um update.

    Estudei os softwares de routers. O OpenWRT num tem suporte nenhum a NPTv6, há uns anos tinha umas pessoas no forum relatando q estavam tentando fazer funcionar, mas pararam de postar e nunca disseram terem conseguido.

    pfSense tem suporte nativo a NPTv6, mas só com fixed global prefix. Se o ISP trocar o global prefix, a gente precisa acessar o router, identificar qual o prefix novo, e editar na mão a config do NPTv6. Eu cheguei a considerar montar um miniPC ou comprar um Netgate, mas tendo q setar o prefix manualmente, num rola.

    OPNsense tem uma task pra implementar a feature de detectar alteração no global prefix e atualizar todos os services q usam ela, mas pouco trabalho foi feito e eles ficam repassando a task pra versions seguintes. Chegou até a rolar um drama nos comments, com um cara reclamando de num estar avançando e um dev reclamar q ninguém apóia. Se um dia isso for implementado e funcionar redondo com NPTv6, talvez eu monte um router.

    Mas só compensa montar um miniPC qd tivermos uma nova geração de chips de rede. Os atuais q foram desenvolvidos há vários anos ainda usam 3GIO 2.0 e alguns ainda usam o 1.0, e usam 4 lanes. Pra compensar montar um router atualmente, precisamos de pelo menos 8 ports GbE RJ45 e 2 ports 10GbE SFP+. Com os chips de rede atuais, isso requer 2 placas de rede com 4 ports RJ45 + 1 placa com SPF+, e isso requer uma mobo com 3 slots 3GIO x16. Fica muito caro.

    Torço pra próxima geração de chips ser 3GIO 3.0, isso vai permitir placas com 4 ports GbE ou 2 ports 10GbE usando apenas 1 lane, assim vamos poder ter 3 placas numa mobo mais compacta e barata e botar num case pequeno. Vai ser filé.

    Quanto aos ISP, há quase 2 anos travei uma batalha coa Telefuk e a Escuro. Foram meses discutindo com atendentes de ouvidoria em cima de reclamações na Anatel. Fiz todo o levantamento dos dados e embasei os argumentos pra demonstrar q estão descumprindo o padrão IPv6.

    A Telefuk na maior falta de ética usou meu próprio documento cortando um pedaço pra afirmar exatamente o contrário, q eles num são obrigados a fornecer mais q /64. A Escuro chegou na cara de pau de um tecnico aqui em casa dizer q ela é uma empresa privada, e com isso ela num precisa seguir padrão dos protocolos. Só empresas estatais são obrigadas a seguir os padrões. Disse q empresas privadas podem usar seus próprios protocolos proprietários, daí se e a Internet funcionar, legal, se ela toda ou parte dela num funcionar, azar o nosso.

    ResponderExcluir
    Respostas
    1. Tudo que existe no Linux, assim como o NPTv6, pode ser usado sim. Só não faz sentido o NPT. No Linux ele quebra o conntrack e você perde o estado da conexão, necessário para a liberação no firewall da volta dos pacotes. Para um roteador de rede único, o conntrack é quase requisito e faz mais sentido usar o NETMAP. De qualquer forma, terá que usar um script que gere as regras na subida da rede IPv6 ou na recarga do firewall (recomendo). Não existe nada pronto (ainda), mas você pode ser quem irá fazê-lo ;)

      A troca do prefixo (usando NETMAP) pode ser complicada de fazer de forma genérica. Eu uso, por exemplo para oferecer IPv6 para compartilhar o mesmo /64 entre várias redes. Em outro local, uso para o balanceador de links (mwan3), arrumando o prefixo de saída. Converter isso em um script genérico é difícil mas provavelmente possível.

      Excluir
    2. Nossa eu num entendi quase nada do q vc disse :-x

      Bom, NPTv6 ainda é draft, dá pra aceitar q o OpenWRT num suporte. O problema é q o IPv4 stagnou, precisamos usar IPv6 urgente, e nossas queridas ISPs ficam de... sacaneando.

      O problema real é q o design do IPv6 é horrível. Criaram uma complexidade imensa pra resolver problemas irrelevantes hoje (IP funcionar em LAN sem necessidade de protocolos secundários como DHCP e sem fixed address, tirar pontos de centralização qd na prática hoje tudo depende de Internet e se o router cair muitos services vão parar de funcionar mesmo, etc), e q criam problemas graves, como o ISP definir os addresses das LANs de seus consumidores.

      Acho q pelos dramas como DHCPv6 x SLAAC acabou atrasando o design de tecnologias como o NTPv6. E até por causa da maior complexidade do IPv6, implementar seus protocolos derivados e suas features é mais difícil tb.

      Eu nunca estudei sobre NETMAP, q tal fazer um artigo sobre ele? :D

      Excluir
  16. Sei que o assunto é velho, mas não consegui entrar no forum, fica dando erro.
    Pro mwan3 funcionar, ele pede que sejam colocadas métricas nas interfaces, mas...
    Eu não consigo setar metricas na wan6 e wanb_6 (pppoe). Como faço? idéias?

    ResponderExcluir