Você está na página 1de 51

Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.

br - HP13916100312981

0
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Introdução 2
O que é o IPv6? 2
Técnicas de transição 2
IPv6 x IPv4 4
Tipos de comunicação 6
Endereçamento - Entendendo a fundo o IPv6 6
Órgãos que controlam os endereços 6
Hexadecimais 7
Representação de um IPv6 8
Endereços especiais 9

SLAAC e ICMPv6 12
Cenário Prático 14

Planejamento 15
phpIPAM 18

Execução - Do BGP ao PPPoE 23


Configuração do BGP 24
Configuração de ponto-a-ponto 31
Configuração de interface de loopback 31
Configuração do OSPFv3 33
Configuração do PPPoE Server 36
Configuração do Cliente Final 39
Mikrotik 39
Tenda HG9 39
TP-Link Archer C5 40
Intelbras IWR 40
Mais um pouco de OSPFv3 - Sumarização 41

Firewall 43
Protegendo o Roteador 45
Protegendo os Clientes 45
Considerações finais 46

1
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Introdução

O que é o IPv6?
O IPv6 é o protocolo padrão de internet nos dias atuais, sendo o IPv4 já
considerado como legado. Sim, você não leu errado, ​o IPv4 é um protocolo
legado​, e quer uma notícia ainda mais bizarra? A RFC que definiu o protocolo IPv6
é de 1998, ou seja, o protocolo já existe ​há mais de 20 anos​. O grande problema
foi termos empurrado com a barriga para adotar o IPv6 até o ponto da exaustão de
endereços IPv4. Agora, não há mais opção, o IPV6 ​deve ser adotado na rede, caso
contrário, não há como continuar o crescimento da internet.
E se a exaustão de endereços IPv4 não for motivo suficiente para adotar o
IPv6, temos muitos outros, como:
● Não temos mais IPv4: os últimos blocos mundiais de IPv4 já foram
alocados, no Brasil mesmo, novos ASN só recebem blocos de IPv6.
● Melhora o acesso do cliente: técnicas como o CGNAT deixam de ser
necessárias, já que compartilhamento de endereços IP não precisam ocorrer
mais. Acabando com problemas relacionados ao NAT e tornando a
comunicação fim-a-fim totalmente possível em 100% dos casos.
● Preparado para a IoT: a Internet of Things é uma realidade - aspiradores de
pó, geladeiras, máquinas de lavar, lâmpadas ​já estão conectados na
internet, o que irá demandar o uso do IPv6 como algo obrigatório, caso
contrário, vários equipamentos de CGNAT terão problemas em alocar portas
para os assinantes por conta da exaustão das mesmas devido a quantidade
de dispositivos.
● Maior segurança: ​temos por exemplo, o IPSec que foi desenvolvido para o
IPv6 e ​adaptado para uso no IPv4, ele proporciona uma maior dificuldade
dos bots em fazer scan de redes em IPv6, entrega endereços IP temporários
para cada conexão segura, entre outros mecanismos.

Técnicas de transição
E não podemos fazer uma introdução sobre IPv6 sem falarmos de
mecanismos de transição de redes IPv4 para IPv6, inclusive um deles já
mencionado, o NAT. Se focarmos em todos os mecanismos que envolvem as

2
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

técnicas de transição, acabaríamos perdendo muito tempo, portanto, focaremos nos


que de fato são utilizados: o NAT e o dual-stack.
O NAT é um mecanismo intrusivo que modifica o conteúdo de um pacote IP,
podendo trocar seu endereço e/ou portas de origem e destino. Sua principal
desvantagem está na necessidade de um processamento muito grande para manter
várias conexões simultâneas. A grosso modo ele funciona da seguinte forma:

Já o CGNAT é o NAT feito por um provedor de internet, para economia de


endereços IP públicos entregues aos seus clientes, compartilhando, assim, um
endereço público entre diversos assinantes, devido a limitação da disponibilidade de
endereçamento global do IPv4.

O dual-stack ocorre quando temos ambos os protocolos - IPv4 e IPv6 -


rodando na mesma rede, o que é perfeitamente possível, já que são protocolos
independentes entre si. A princípio, temos uma rede IPv4 que também roda IPv6,
mas a partir do momento que o tráfego IPv6 representar 51% do total da rede,
passamos a ter uma rede IPv6 que mantém o IPv4 ativo.
E deixa eu te contar algo: a maioria dos grandes nomes da internet,
Facebook, Google, Netflix, todos possuem suporte total a IPv6, o que vai te garantir,
em termos de processamento, um alívio tremendo, já que não há a necessidade de
fazer NAT para eles, e as aplicações, como DNS, navegadores de internet, os
próprios sistemas operacionais preferem conexões IPv6 do que IPv4.

3
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

IPv6 x IPv4
E, começando agora nossa comparação entre os protocolos, deixo uma
tabela elencando as principais diferenças entre ambos os protocolos.

IPv4 - 192.168.0.1 IPv6 - 2001:DB8::1

32 bits de endereçamento 128 bits de endereçamento

Endereço IP dividido em quatro blocos Endereço IP dividido em oito blocos

Notação decimal Notação Hexadecimal

Composto por octetos Composto por hexadecatetos

Cada octeto é separado por ​. Cada hexadecateto é separado por ​:

Endereço não pode ser encurtado Endereço pode ser encurtado

Depende de NAT Não depende de NAT

Utiliza o protocolo ARP O ARP foi inserido dentro do ICMPv6

Protocolo ICMP não é parte essencial Protocolo ICMPv6 é parte essencial

Utiliza Broadcast Não utiliza Broadcast

Hosts configurados manualmente Hosts se auto configuram (SLAAC)

Fragmentação feita no caminho Fragmentação feita na origem

Na tabela, temos algumas informações novas que merecem ser discutidas,


como a notação de um endereço IPv6:

2001:0DB8:0000:0000:0000:0000:0000:0001/32

Como podem ver, um endereço IPv6 é composto de 8 blocos com números


hexadecimais (vamos ver mais sobre eles depois), separados por ​:​. Uma das
características dos endereços IPv6 é que eles podem ser resumidos, tendo seus 0 a
direita encurtados ou até mesmo ocultados. Desta forma, o endereço acima também
pode ser escrito como:

2001:0DB8:0:0:0:0:0:0001/32

4
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

2001:DB8:0:0:0:0:0:1/32
2001:DB8::1/32

E como já dito, com o IPv6 a necessidade do NAT acaba, pois todos os


dispositivos terão um IP público. Para efeitos de comparação, a quantidade total de
IPv4 disponível no planeta é de aproximadamente 4 bilhões, já, a quantidade de
endereços que ​cada assinante irá receber na sua casa ​é de no mínimo 18
quintilhões. Você entendeu agora o porquê de todo dispositivo IPv6 ter IP público?
Outra característica é que no IPv4, o ICMP, que é o protocolo responsável
pela sinalização da rede e testes como o ​ping (e sim, ​ping vem de ​ping pong​),
tinha um papel importante, mas não essencial. No IPv6 ele tem um papel essencial,
não devendo ser bloqueado por completo, e se me permite fazer uma sugestão, não
o bloqueie nem parcialmente, pois a chance de ocasionar problemas é muito
grande.
Um exemplo da importância do ICMPv6 é que o antigo protocolo ARP, que
tinha a função de descobrir um endereço MAC a partir do endereço IP, agora está
inserido dentro de mensagens ICMP, um outro exemplo é a auto configuração feita
a partir do mecanismo SLAAC também depende do ICMPv6.
No IPv6 temos algo muito inteligente que é a fragmentação de pacotes
direto na origem. No IPv4, quando um pacote precisa ser fragmentado, são os
roteadores no meio do caminho que o fazem, já no IPv6, quando um roteador
identifica que o pacote precisa ser fragmentado, ele envia uma mensagem ICMPv6
para a origem informando que ela precisa diminuir o tamanho do pacote. Algo
bastante simples, mas que na prática aumenta consideravelmente o desempenho
da internet como um todo.
No IPv4 até tentaram utilizar um mecanismo como este, mas devido aos
bloqueios de firewall que o protocolo sofreu, acabou não sendo utilizado.
Mas como este capítulo é apenas introdutório, vamos ver mais a fundo
sobre estes temas no decorrer da leitura. Já um tema que temos condições de
aprofundar aqui, por não ser relacionado exclusivamente com IPv6, são os tipos de
encaminhamento, unicast, anycast, multicast e broadcast.

5
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Tipos de comunicação
O unicast é quando a troca de
mensagens ocorre diretamente
entre dois hosts. Dizemos que ela
é uma comunicação um-para-um.
Por exemplo, quando você inicia uma conversa com uma pessoa no Whatsapp,
você está enviando uma mensagem para ela, e apenas para ela.

Já o anycast é quando temos mais um dispositivo que


responde pelo mesmo endereço IP, e chamamos de
comunicação um-para-um-de-muitos. Um exemplo
deste tipo de comunicação são as dos DNS do
Google e Cloudflare, 8.8.8.8 e 1.1.1.1
respectivamente, onde vários servidores respondem
pelo mesmo endereço IP, sendo que a mensagem
será entregue ao que estiver mais próximo.

Já o broadcast é quando enviamos uma mensagem


para todos os dispositivos da rede, chamamos de
um-para-todos. Um exemplo seria um grupo da
empresa onde estão todos os funcionários, quando
enviamos uma mensagem ao grupo, ela chega pra
todos. Esta comunicação, o broadcast, foi extinta no
IPv6.

E por fim temos o multicast, que é uma


mensagem um-para-vários, usando o
exemplo acima, seria um grupo apenas
do departamento de TI da empresa e
não da empresa toda. O IPv6 utiliza um
endereço especial de multicast para
fazer o seu broadcast, mas novamente, vamos nos aprofundar nisso mais adiante.

6
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Neste link, podemos ver estatísticas coletadas pelo Google da adoção de


IPv6 no Brasil e no mundo: ​https://www.google.com/intl/pt-BR/ipv6/statistics.html

Endereçamento - Entendendo a fundo o IPv6

Órgãos que controlam os endereços


Mas antes de começarmos a escovar os bits do protocolo, vamos primeiro
entender de onde surgem os endereços. O órgão central que controla a distribuição
de endereços IP tem o nome de IANA, que além de endereços IP também cuidam
dos servidores root de DNS. Ela distribui blocos de endereços para suas RIRs
(Regional Internet Registries), que são:
● LACNIC:​ responsável pela América Latina.
● ARIN:​ responsável pela América do Norte.
● RIPENCC:​ responsável pela Europa, Oriente Médio e Ásia central.
● AFRINIC:​ responsável pela África.
● APNIC:​ responsável pela Ásia e Pácifico.
Os RIRs, em alguns casos, como no Brasil, ainda se dividem em registros
nacionais - a NICBR. Os blocos que são delegados aos RIRs pela IANA, são
subdivididos novamente para entregar aos NIR e posteriormente aos provedores.

Hexadecimais
Continuando de onde surgem os endereços... Deixo uma tabela
comparando números hexadecimais com decimais e binários. Preste atenção nela,
pois provavelmente é a primeira vez, de muitos, tendo que trabalhar com este
sistema numérico e pode dar um nó na cabeça enquanto não entendermos que 10
em hexadecimal é 16 em decimal e que 10 em decimal é A em hexadecimal.

Decimal Binário Hexadecimal

0 0000 0

1 0001 1

2 0010 2

7
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

3 0011 3

4 0100 4

5 0101 5

6 0110 6

7 0111 7

8 1000 8

9 1001 9

10 1010 A

11 1011 B

12 1100 C

13 1101 D

14 1110 E

15 1111 F

16 1000 10

17 1001 11

26 11010 1A

100 1100100 64

Perceba o quão confuso ficam os sistemas após o número 16 em decimal.

Representação de um IPv6
Como dito anteriormente, um IPv6 é simbolizado por um conjunto de 8
blocos com 4 dígitos hexadecimais em cada bloco. Como vimos acima, a maior
unidade hexadecimal é composta de 4 bits (1111), logo, podemos dizer que cada
bloco de um endereço IPv6 tem 16 bits, e como temos 8 blocos: 16 x 8 totaliza os
128 bits de um endereço.

8
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Sua representação pode tanto usar letras maiúsculas quanto minúsculas e


seus 0 à esquerda podem, e devem, ser ocultados quando possível, e também cada
hexadecateto é separado por :.
Caso tenhamos mais de um hexadecateto composto apenas de 0, podemos
ocultar quantos forem necessários utilizando ::, por exemplo:

2001:DB8:0000:0000:0000:0000:0000:0000/32

Pode ser escrito como:

2001:0DB8::/32

Porém, só podemos utilizar uma vez os ​::​, pois, ficaria impossível diferenciar
alguns endereços, por exemplo:

2001:0DB8::1::/32

Seria:

2001:0DB8:​0000:0000:0000​:0001:​0000:0000​/32

Ou seria:

2001:0DB8:​0000:0000​:0001:​0000:0000:0000​/32

E como dito, zeros à esquerda podem ser ocultados, então o hexadecateto


0DB8 pode ser escrito apenas como DB8 e 0001 como 1. As boas práticas
recomendam que sempre utilizemos a menor representação possível e que
precisamos encurtar sempre o primeiro grupo de zeros, utilizando o :0 nos demais
grupos.
Outro detalhe que pode causar confusão é a questão da porta de acesso do
protocolo de camada superior. Por exemplo:

2001:0DB8::1:443

Estou querendo acessar o IP 2001:0DB8::1 na porta 443 ou eu estou


querendo acessar de fato o IP 2001:0DB8::1:443?

9
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Para resolver isso, ficou determinado que a parte que se refere ao endereço
IP deve ser escrito entre colchetes ([IP]), no caso acima poderíamos:
Acessar o IP na porta 443:

[2001:0DB8::1]:443

Acessar o IP:

[2001:0DB8::1:443]

Endereços especiais
Assim como o IPv4 possui endereços de uso especial (127.0.0.1/8,
192.168.0.0/16), também foram reservados alguns blocos de IPv6 para usos
especiais, principalmente para multicast. Mas antes de falarmos sobre os grupos de
multicast, que é um assunto muito importante dentro do endereçamento do IPv6,
vamos comparar alguns endereços especiais que existem em ambos protocolos.

IPv4 IPv6

Rota default 0.0.0.0/0 ::/0

Inespecífico 0.0.0.0/32 ::/128

Loopback 127.0.0.1/8 ::1/128

Multicast 224.0.0.0/4 FF00::/8

Link local 169.254.0.0/16 FE80::/10

Global Unicast 2000::/3

10.0.0.0/8

Unique local 172.16.0.0/12 FC::/7

192.168.0.0/16

192.0.2.0/24

Documentação 198.51.100.0/24 2001:DB8::/32

203.0.113.0/24
Não analisaremos todos, mas o Link Local e Multicast merecem nossa
atenção.

10
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

O Link local é um endereço especial que serve para a comunicação apenas


entre dois hosts diretamente conectados. Assim que a interface do equipamento fica
up, um endereço Link local é atribuído a ela e o mesmo ​não deve ser removido​,
pois muitos protocolos utilizam o Link local para funcionar, como por exemplo o
protocolo OSPFv3.
Se você olhar no seu computador Windows, executando ipconfig /all no
CMD e procurar pela sua interface de rede, irá ver algo parecido com isto:

Ao final do FE80, perceba que há um %16. Provavelmente o seu será


diferente, uma vez que esse código após o endereço simboliza a interface física, e
sempre que a comunicação é feita via FE80, é obrigatório informar os dados de
interface.
A formação de um endereço FE80 é feita, não unicamente, com base no
endereço MAC da placa, utilizando uma técnica denominada EUI-64, que
transforma os 48 bits de um endereço MAC em 64 bits. Utiliza-se os 24 primeiros
bits + FFFE + 24 últimos bits e, posteriormente, invertendo o 7 bit do endereço
MAC.
Você pode estar se perguntando: Mas qual o porquê disso? Afinal,
endereços MAC já são únicos e não estamos diminuindo o tamanho e sim
aumentando. Isso ocorre porque no projeto do IPv6 ficou definido que os últimos 64
bits do endereço de Link local servem para identificar a interface e também já existe
um padrão de MAC que usa 64 bits e não mais 48 bits.
Já os endereços de Multicast tem diversos grupos, inclusive um para
funcionar como endereço de broadcast. Vejamos mais uma tabela:

Endereço Multicast Descrição

FF01::1 Todas as interfaces do host local

FF01::2 Todas as interfaces do roteador local

FF02::1 Todos os nós

FF02::2 Todos os roteadores

11
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

FF02::5 Todos os roteadores OSPF

FF02::6 Todos os DR

FF02::D Todos os roteadores PIM

FF02::16 Todos os roteadores MLDv2

FF02:1:2 Todos os agentes DHCP

FF02::1:FFXX:XX:XX Nó solicitado. Os X indicam os 24 bits do endereço MAC


de uma interface.

FF05::2 Todos os roteadores de um site

FF05::3 Todos os servidores DHCP

E aqui eu quero fazer um adendo bem legal para aqueles que já tiveram que
caçar qual roteador está com DHCP ativo e soltando IP na rede, e assim, tendo que
desligar cabo a cabo até descobrir quem era o infeliz. Com o IPv6, isto não é mais
necessário. Agora, podemos enviar uma mensagem para FF05::3 e teremos uma
resposta de todos os servidores DHCP daquela rede. E que, de qualquer forma,
vamos receber um IP público!
Para finalizarmos, uma tabela comparando o tamanho da máscara entre o
IPv4 e IPv6 e qual a quantidade de endereços IP disponíveis, guarde-a com carinho,
pois verá que será bem útil:

Máscara IPv4 Máscara IPv6 Quantidade de IP

/32 /128 1

/31 /127 2

/30 /126 4

/29 /125 8

/28 /124 16

/27 /123 32

/26 /122 64

12
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Agora eu te faço outra pergunta, se precisamos dividir um bloco para


endereçar 4 hosts, qual máscara teríamos de usar? Se você respondeu um /29 para
IPv4, acertou! Lembre-se que temos o endereço de rede, que é o primeiro endereço
do bloco e o endereço de broadcast, que é o último endereço do bloco.
Agora, se você respondeu /125 para IPv6, você errou! Além de não termos
o endereço de broadcast, pois o IPv6 não tem broadcast, também não precisamos
de um endereço para indicar a rede, logo, os 4 endereços IP do bloco /126 são
utilizáveis e podem ser configurados nos hosts.
Mas é importante salientar que em roteadores residenciais, utilizar os
endereços com final 0, podem ocasionar problemas.

SLAAC e ICMPv6
Vamos ver um pouco sobre o ICMPv6, algumas de suas mensagens, e
também, nossa primeira parte prática, onde finalmente descobriremos o que é e
como o SLAAC funciona.
SLAAC vem de ​S​tate​l​ess ​A​ddress ​A​uto​c​onfiguration, e permite que, tendo
um roteador IPv6 configurado com um prefixo de rede /64 fazendo ​Advertise,​ os
hosts configuram-se de forma automática. E para tanto, ele depende do ICMPv6.
O ICMPv6 é responsável por diversas funções dentro do IPv6, algumas já
vimos, como a fragmentação de pacotes e o próprio SLAAC. Outra função bastante
importante é a Descoberta de Vizinhança, na qual o SLAAC se baseia para a
configuração. Vamos estudar quatro mensagens principais da descoberta de
vizinhança:
● Router Solicitation (RS): ​mensagem enviada por dispositivos
perguntando se existem roteadores na rede e requisitando
informações como MTU e a própria auto configuração, pode partir de
uma RS.
● Router Advertisement (RA): ​mensagem enviada por roteadores
avisando que é um roteador da rede, pode partir de uma resposta da
mensagem RS ou de forma automática. Envia informações como DNS,
MTU, prefixo da rede. Guarde o último.
● Neighbor Solicitation (NS): ​mensagem enviada por um dispositivo
para receber informações do vizinho, como endereço MAC, ou até

13
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

mesmo verificar se determinado endereço IPv6 existe na vizinhança.


Essa última funcionalidade é utilizada para detectar se existem
endereços duplicados na rede, onde o dispositivo envia uma
mensagem NS com o endereço IP que está sendo configurado nele,
caso essa mensagem receba resposta, ele não instalará o endereço IP
na interface de rede.
● Neighbor Advertisement (NA): ​mensagem enviada para responder
uma NS ou para avisar de mudanças na configuração do dispositivo.
Agora, eu preciso que preste atenção e pense um pouco comigo. Eu disse
que a auto configuração funciona apenas com prefixos de rede /64, correto?
Portanto, sobram outros 64 bits para endereçamento do host. Eu também disse que
existe um padrão de endereço MAC com 64 bits e que para configurar o endereço
de Link local, o dispositivo expande os 48 bits do MAC para 64 bits através do
EUI-64, certo?
Então, o SLAAC só funciona com prefixos de rede /64, pois os outros 64 bits
que sobram para o host são configurados baseados no endereço MAC, sendo
impossível fazer com algum outro tamanho de rede. Quando é informado ao
roteador para ele enviar mensagens de RA, ele informa o prefixo de rede, o
dispositivo de posse desta informação calcula os últimos 64 bits e se auto configura.

Cenário Prático
Para fazermos isto, temos o seguinte cenário:

14
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

No Windows, o programa Wireshark está sendo executado. Com ele


conseguimos capturar pacotes de rede e seu conteúdo, que estão trafegando pelas
interfaces. Estes dados serão essenciais para analisarmos o comportamento do
ICMPv6 e SLAAC.
Para configurarmos o Mikrotik, primeiro devemos instalar o pacote do IPv6.
Quando usamos o pacote main, o IPv6 vem instalado, mas é preciso habilitá-lo. Se
você fez a instalação dos pacotes via extra, terá um pacote específico do IPv6.
Após instalado e habilitado, já podemos começar a mexer no IPv6. Para
fazermos o laboratório do SLAAC, só precisamos colocar um prefixo qualquer de
tamanho /64 na interface que se conecta com o Windows e deixar habilitada a
função de Advertise da interface.

Agora, vamos abrir o CMD do Windows e executar o comando​ ipconfig /all​:

Perceba os endereços 2001:db8 presentes na minha placa de rede


Ethernet.
E no Linux, ​ip address show​:

15
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

E este é o funcionamento do SLAAC. Simples, não? A única coisa que


precisou ser feita foi colocar um endereço /64 na interface, e o próprio protocolo já
cuidou do resto. É este mesmo conceito que vamos usar para endereçar a WAN dos
nossos clientes PPPoE.

Planejamento
Antes de começar a ler este capítulo, deixe-me te adiantar:
● O planejamento de IPv6 é muito confuso no início: falta de costume
com o endereçamento, hexadecimais, maior quantidade de bits, tudo
isto torna complexa a compreensão do porque e como planejar o IPv6.
● Você precisará ler mais de uma vez.
● Você precisará buscar ajuda em outros artigos.
● Mas é ​essencial​ que você entenda como fazer.
Com certeza, o tópico de planejamento do IPv6 costuma ser o mais difícil de
ser ensinado, e particularmente para mim, foi o mais difícil de ser apreendido, foram
noites sem dormir até vir o estalo na mente e tudo começou a fazer sentido e ficar
óbvio. Então, se não entender, não se desespere.
Diferentemente do IPv4, o IPv6 ​precisa ser planejado antes de sua
implantação. Caso contrário, pode ser difícil e ter muitos retrabalhos… Digo isto por
experiência própria! Faremos o estudo com um cenário de provedor de internet e
divido em duas etapas: a primeira, via planilha e a outra, via software de
gerenciamento de IP.
E o que devemos planejar? ​Tudo​. Começaremos pela última milha, o que
devemos levar em consideração aqui é: Qual a quantidade de clientes que
queremos colocar em cada concentrador? Esta consideração se faz necessária,
pois precisamos entregar dois endereços, um endereço na WAN do roteador - via
interface PPPoE - e outro para a LAN dele. Este processo de entrega de endereço
IP na LAN, chamamos de Prefix Delegation (PD).

16
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Parece confuso a princípio, mas é exatamente o que fazemos com IPv4


também. Normalmente entregamos um /32 na WAN através do túnel PPPoE,
porém, a diferença é que o endereço de LAN já vem no roteador (10.0.0.0/8,
192.168.0.0/16), então não precisamos fazê-lo. A exceção está quando roteamos
um bloco público para dentro do cliente, neste caso, o conceito fica igual ao que
faremos no IPv6.
Para o endereço de WAN, vamos usar o SLAAC, então, devemos entregar
prefixos /64 para nossos clientes e deixar que eles se auto configurarem. Já para a
LAN, a recomendação é entregar prefixos de tamanho /56, assim o cliente pode ter
até 256 redes /64. Parece muito, desperdício, mas não é. E é justamente por
pensamentos deste tipo, no passado, que hoje sofremos com a falta de IPv4.
O bloco de IPv6 que vem com o ASN é um /32, a forma que eu gosto de
dividi-lo é:
● /46 para o pool que será entregue ao usuário final, permitindo até 1024
clientes com /56 na LAN.
● /44 para cada concentrador, permitindo até 4096 clientes por
concentrador.
● /40 por cidade, permitindo até 16 concentradores em cada cidade e
65536 clientes.
● E com o /32, conseguimos dividir em 256 cidades diferentes com
65536 assinantes em cada.
Para entendermos porque separar um /46 para o usuário final, precisamos
fazer a seguinte conta: precisamos entregar X redes /64 e X redes /56, onde X é a
quantidade de clientes que irá comportar o concentrador. Se X for 1000 clientes, por
exemplo, teremos que:
Separar um bloco /54 para entregar 1024 redes /64
Separar um bloco /46 para entregar 1024 redes /56
E os cálculos são fáceis de se fazer, acredite em mim, você só precisa
lembrar de quatro números mágicos:
8 equivale a 256
10 equivale a 1024
Agora vamos entender os quatro números. Você se lembra da tabela de
quantidade de IPs baseado na máscara de sub-rede presente lá na introdução? Se
não se lembra, compare o que vou falar no próximo parágrafo com ela.

17
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Quando diminuímos um bit da máscara de rede, dobramos a quantidade de


endereços IP disponíveis para uso, consequentemente, se aumentamos um bit da
máscara, dividimos pela metade a quantidade de endereços IP.
O que devemos lembrar é que se 2 (estamos trabalhando com binários)
elevado a 8 são 256, e 2 elevado a 10 são 1024. Logo, se queremos 1000 redes
/64, e sabemos que 10 está para 1024, diminuímos 10 bits da máscara. ​Por isso
precisamos separar um bloco /54 para entregar 1024 redes /64 e um bloco /46 para
entregar 1024 redes /46.
Ah, e se fossemos fazer para 1500 clientes? Lembra que eu falei que cada
vez que a rede diminui o número de endereços disponíveis dobra? Então, se
dermos um passo para trás e separarmos um bloco /53, vamos ter 2048 redes /64 e
um bloco /45 temos 2048 redes /56.
Mas claro que esta não é a única forma de se fazer a divisão. Podemos ir
brincando com os bits para modificar a quantidade de concentradores, cidades,
clientes. E tudo depende da necessidade atual do provedor, mas eu preciso
fornecer um exemplo geral que funcione para a maioria das redes, que é a divisão
acima.
Com todos os cálculos feitos, existe um software muito útil chamado
phpIPAM, com ele podemos documentar toda essa parte de endereçamento e, cá
entre nós, fica visualmente muito melhor do que uma planilha, e muito mais fácil de
mexer também, já que ele quebra os blocos de forma automática.
Também elaborei uma planilha do Planejamento de Redes IPv6, onde além
de definir a pirâmide do planejamento, também mostro quatro formas diferentes de
fazer o planejamento. Você pode acessá-la por meio do link:
https://bit.ly/planilha_ipv6.

phpIPAM
O intuito do ebook não é ensinar a instalar o phpIPAM, por este motivo, não
vou entrar nesses detalhes. O que vamos usar para mexer nele é a demo disponível
em ambiente de cloud, que os próprios desenvolvedores fornecem a partir do link:
https://demo.phpipam.net/login/​.
Na tela inicial, contém as informações de login. Utilize as do usuário admin.

18
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Essa é a tela inicial do phpIPAM, a primeira coisa que eu recomendo fazer,


quando estiver no seu de produção, é ir em ​Administration → Sections e criar
uma nova com o nome da empresa/provedor. Não conseguimos fazer neste por ser
um ambiente de demonstração.
Assim, você pode limitar o acesso de usuários e fazer a documentação não
só da sua empresa, como também de seus clientes, ou até mesmo vender o acesso
ao phpIPAM para eles.
Clicando em ​Subnets​, temos a ​IPv6 Section​. Selecione-a e vamos
começar a nossa documentação.

Ao cair na seguinte tela, clique sobre ​Add subnet​, e uma nova janela se
abrirá, com os parâmetros que precisamos configurar.

Se rolar esta janela para baixo, verá a opção ​Show as name​, recomendo
que deixe-o marcado, pois assim, ao invés de aparecer como um endereço IP, igual
ao 435:123:32::/32 ao fundo, aparecerá identificado conforme você nomeá-lo.

19
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Entrando na configuração da ​Subnet PROVEDOR, nós temos uma opção


muito legal, e é com ela que a nossa vida é facilitada, a ​Split subnet​. Através dela
conseguimos fazer a divisão de blocos de forma automática, então, clique para
editar a subnet dentro de ​actions​.

Clicando em ​Split​, irá abrir outra janela, na qual podemos selecionar em


quantas subredes queremos dividir e qual o prefixo que cada subrede receberá no
nome. O split possui uma limitação de criarmos até 256 sub-redes por vez, portanto,
se precisarmos de mais, será necessário fazer mais um split.

20
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Como resultado final temos:

Agora, basta repetir o processo dentro de cada cidade, fazendo a divisão


dos blocos /44 de cada concentrador e posteriormente os de clientes.
No último bloco /44 de cada concentrador, recomendo que deixe-os
separados para os endereços IP de infraestrutura, como as loopbacks, endereços
ponto-a-ponto, endereços de WAN dos clientes autenticados nos concentradores, e
assim por diante.

21
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Dentro da infraestrutura, quebre os blocos em /48, logo vocês irão entender.


E lá dentro, vamos separar um bloco para o ponto-a-ponto, um para loopbacks e
outro para os pool de wan da cidade.
Para os ponto-a-pontos, deixo aqui uma dica muito boa que aprendi com o
instrutor ​Francisco Neto​, de separar um bloco /64 para os ponto-a-ponto, prevenido
assim que algum protocolo novo, no futuro, possa ser implementado, e dentro deste
/64 separar um /125, para ter até 8 endereços IP, pois sabemos que muitos links
ainda são recebidos via rádio. Desta forma, a topologia fica:

Poderíamos usar um /126 que contém 4 endereços IP utilizáveis, mas ainda


hoje temos equipamentos que não funcionam bem quando atribuídos o endereço
“referente a rede”. Loopbacks não tem segredo, são endereços /128.

22
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Agora vem o pulo do gato do ​POOL-WAN​. Vamos supor que teremos até 15
concentradores nesta cidade, tudo bem? E cada um suportando até 4096 clientes,
já que separamos um dos blocos /44 para a infraestrutura. Pois bem, se vamos
entregar /64, precisamos separar um /52 por concentrador, para termos as 4096
redes.
Dentro de um /48 existem 16 redes /52, logo a conta fecha. E não só isso,
como é um /48 podemos anunciar ele via BGP de forma mais específica. Você deve
estar se perguntando a vantagem disso, certo?
A maior parte dos roteadores e ONTs hoje em dia vem com ping habilitado
na WAN, então, se algum cliente ou grupo de clientes reclamar que determinado
site não acessa, podemos fazer um anúncio mais específico e realizar testes direto
do roteador dele, sem afetar a navegação, já que o bloco da LAN não faz parte
desse /48.

23
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Execução - Do BGP ao PPPoE


Agora, depois de muito estudo, podemos começar a executar a implantação
do IPv6 em nossa rede. E o primeiro ponto é começar pelo BGP, afinal, quem irá te
passar as configurações será sua operadora, configurações estas que não
dependem de seu planejamento.
Validando que o seu IP, aquele que recebeu para a sessão do BGP está
funcionando e navegando, podemos partir para a nossa infraestrutura e
posteriormente para nossos clientes.
O cenário atual é o seguinte:

24
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

A OPERADORA e DNS-GOOGLE já estão pré configurados. E toda a rede em


IPv4 também já está configurada.

Você está vendo a interconexão entre os concentradores, certo? Agora com


o IPv6 mais do que nunca, seus concentradores devem estar interconectados.
Como todos os clientes têm IP público e não há necessidade de CGNAT, o próximo
salto deles sempre deve ser para o roteador de borda, a menos que o tráfego seja
local.
Imagine que a dona Maria, que se autentica no primeiro concentrador, quer
fazer uma chamada de vídeo com seu filho, que se autentica no outro concentrador.
Este tráfego não precisa passar pela borda, ele pode, e deve, ficar apenas entre os
concentradores. Imagine o quanto de mensagens de Whatsapp são trocadas por dia
que estão dando um salto, desnecessário, a mais na rede?

Configuração do BGP
De posse dos dados que a operadora te passou, com os pacotes de routing
e IPv6 ativos no Mikrotik, vamos fazer a configuração da sessão BGP. Como vimos
no cenário acima, recebemos o nosso link pela ​vlan 697​, e o endereço de rede ficou
o ​2007:1d2c::697:2/126​. Então, vamos criá-la e adicionar o endereço IP nela.
Um detalhe a se notar aqui, é que o Mikrotik não funciona bem com redes
/127, da mesma forma que não funciona direito com redes /31 no IPv4. Caso a

25
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

operadora tenha te mandado um endereço nesta faixa de rede, o ideal é você pedir
que troquem. Mas pode ficar tranquilo, hoje em dia, dificilmente vemos ser entregue
em /127, até por conta da quantidade de Mikrotiks que dão trabalho.
Então a primeira coisa é configurar o IP e a VLAN no roteador de BGP.
Execute os seguintes comandos:

/interface vlan
add name vlan697-BGP-OPERADORA vlan-id=697 interface=ether1
/ipv6 address
add interface=vlan697-BGP-OPERADORA address=2007:1d2c::697:2/126

Agora, vamos para a nossa sessão BGP, dentro de ​Routing → BGP​, o


primeiro passo é configurar a instância:
A ​Instance são as configurações padrões que o roteador irá utilizar para o
lado dele, então aqui vamos informar o ​nosso ​número de AS, que tipos de rota
vamos redistribuir, se queremos que esse roteador seja um refletor de rotas (client
to client reflection), entre outras opções.
A configuração básica que precisamos fazer é mudar o número de AS para
o nosso e desmarcar o ​Client to Client Reflection​. Uma boa prática é preencher o
Router ID com o mesmo valor do endereço IP de loopback. Nós ainda não o
criamos, mas como o ​Router ID​ é apenas um identificador, vamos adicioná-lo.

26
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

E antes de irmos para a configuração do peer, devemos deixar nossos filtros


de roteamento prontos! Esse é um passo importantíssimo para evitar que façamos
anúncios de redes que não deveriam ser anunciadas. Vamos então para ​Routing →
Filters​.
Aqui nos filtros, a forma que eu gosto de organizar as chains, é a seguinte:
● OPERADORA-V4-IN
● OPERADORA-V4-OUT
● OPERADORA-V6-IN
● OPERADORA-V6-OUT
Se for existir alguma sessão CDN:
● OPERADORA-CDN-V4-IN, V4-OUT, V6-IN e V6-OUT.
E assim por diante... Sempre separando os filtros por entrada e saída,
operadora e sessão. E eu sempre deixo o nome do peer igual ao filtro, removendo a
parte que indica o endereço IP e o fluxo, entrada/saída.
O mínimo de filtros que devemos fazer são:
● Accept no IN da rota padrão.
● Discard no IN de todo o resto.
● Accept no OUT do nosso bloco de IP público, em todos os tamanhos
de máscara variados.
● Discard no OUT de todo o resto.
Estamos usando Mikrotik, então, dificilmente vamos usar full-routing. Claro
que se você tiver dois links de internet, e está usando Mikrotik, terá de fazer alguns
ajustes nos filtros para receber uma quantidade menor de rotas do que a full.

Com esses filtros garantimos que apenas a rota default será instalada no
roteador, e que vamos fazer o anúncio apenas dos nossos blocos de IP no tamanho
de máscara que quisermos para o peer que quisermos.

27
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Uma breve explicação sobre as máscaras dos filtros, os /32, /33 e /34 são
para manipular o tráfego dos Upstreams, CDN, PTT conforme a necessidade, e
também para já deixar pronto caso aconteça alguma urgência. Já os de máscara /40
(cidades), /44 (concentradores) e /48 (WAN/Clientes) são, além de urgências,
destinados a testes, devendo ser editados conforme a necessidade.
Os comandos executados para chegar no resultado acima foram:

/routing filter
add action=accept chain=OPERADORA-V6-IN comment="ACEITA ROTA
DEFAULT" prefix=::/0
add action=discard chain=OPERADORA-V6-IN comment="DESCARTA TODO
O RESTO"
add action=accept chain=OPERADORA-V6-OUT comment="LIBERA
PREFIXO /32" prefix=2001:db8::/32
add action=accept chain=OPERADORA-V6-OUT comment="LIBERA
PREFIXO /33-1" disabled=yes prefix=2001:db8::/33
add action=accept chain=OPERADORA-V6-OUT comment="LIBERA
PREFIXO /33-2" disabled=yes prefix=2001:db8:8000::/33
add action=accept chain=OPERADORA-V6-OUT comment="LIBERA
PREFIXO /36-1" disabled=yes prefix=2001:db8::/34
add action=accept chain=OPERADORA-V6-OUT comment="LIBERA
PREFIXO /36-2" disabled=yes prefix=2001:db8:4000::/34
add action=accept chain=OPERADORA-V6-OUT comment="LIBERA
PREFIXO /36-3" disabled=yes prefix=2001:db8:8000::/34
add action=accept chain=OPERADORA-V6-OUT comment="LIBERA
PREFIXO /36-4" disabled=yes prefix=2001:db8:c000::/34
add action=accept chain=OPERADORA-V6-OUT comment="LIBERA
PREFIXO /40 - EDITAR" disabled=yes prefix=2001:db8::/40
add action=accept chain=OPERADORA-V6-OUT comment="LIBERA
PREFIXO /44 - EDITAR" disabled=yes prefix=2001:db8::/44
add action=accept chain=OPERADORA-V6-OUT comment="LIBERA
PREFIXO /48 - EDITAR" disabled=yes prefix=2001:db8::/48
add action=discard chain=OPERADORA-V6-OUT comment="DESCARTA
TODO O RESTO"

28
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Indo para a configuração do peer, em ​Routing → BGP​, aba ​Peers​:

Em ​In Filter​ e ​Out Filter​ selecionamos os filtros que acabamos de criar.

Para ficar fácil de se localizar, mantenha sempre o mesmo padrão entre os


nomes do ​Peer ​e filtros, pois quando temos várias sessões BGP, será o padrão de
nomenclatura que irá definir uma caixa fácil de mexer de uma caixa difícil.
Um parâmetro que precisamos modificar é o ​Nexthop Choice​. Mantenha a
opção ​force self​, assim, todas as rotas que o nosso BGP propagar terá como
gateway o endereço dele. Caso contrário, seu peer começará a ver rotas recursivas
sendo instaladas na tabela de roteamento dele.

29
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Já na parte ​Advanced​, ao invés de utilizar a ​Address Families do tipo ​ip​,


vamos usar a ​ipv6​, para informarmos ao Mikrotik que a sessão com o peer irá
utilizar IPv6. Também selecionamos a ​Update Source e marcamos a interface que
faz conexão com a operadora.
Já devemos ter a sessão estabelecida e chegando a rota default.

Para fins de testes, vamos desabilitar o filtro de discard do IN simulando um


full routing.

Quando temos apenas um upstream é um


desperdício de processamento receber full routing.
Repare no gateway das rotas, são todos o
roteador da operadora. Logo, receber o full routing
só irá gerar uma busca de melhor rota atoa, todas
vão apontar para o mesmo lugar. Isso só muda
quando temos mais de um upstream de trânsito.

30
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Se tentarmos pingar no Google, ainda não vamos ter conectividade com a


internet, afinal, não fizemos nenhum anúncio de rota, apenas os filtros. E se não
anunciarmos rotas, ninguém irá saber como chegar até o nosso bloco de IP. Então,
ainda dentro de ​Routing → BGP​ selecione a aba ​Networks​.
Aqui, você irá adicionar os blocos de IP que serão anunciados por todas as
sessões BGP que estão estabelecidas, por isso também, a importância dos filtros,
para conseguir controlar qual anúncio vai para onde.
Um ponto importante para se notar aqui, é
a opção ​Synchronize ​no Mikrotik, ela funciona de
forma bem estranha e nem compensa ser mantida
ativa. Ela faz parte do protocolo BGP, e seu papel
é conferir se existe uma rota na FIB para o
anúncio feito. Caso não exista, ela impede que o
bloco seja anunciado. O que é algo muito bom,
afinal, é um mecanismo a mais para evitar fazer
coisas erradas.
O problema é que no Mikrotik, você deve ter uma rota de tamanho exato a
do anúncio, então, você acaba tendo que criar tantas rotas quanto há de networks
aqui, o que pode acabar causando mais confusão do que solução. Portanto, uma
dica não só minha, mas de vários instrutores: mantenha a opção ​Synchronize
desativada.
Com o anúncio feito, voltando para a opção ​Peer​, vamos clicar em ​Resend
para forçar as rotas a serem enviadas após adicionadas em ​Networks​. Depois,
basta testar a conectividade por meio de um ping até o Google. Para isso, vou
adicionar um endereço IP do nosso bloco na interface de loopback.

Configuração de ponto-a-ponto
A configuração da conexão ponto-a-ponto entre as interfaces é algo básico,
que poderia ser omitido, mas como este ebook é um ​guia definitivo eu preciso
mostrar todo o passo a passo. Mas como o objetivo também é o de não encher

31
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

linguiça, vou deixar apenas os comandos necessários, sem prints das telas, apenas
do planejamento do phpIPAM:

EQUIPAMENTO COMANDO

BGP /ipv6 address


add interface=ether2 address=2001:db8:f1::1/125
add interface=ether3 address=2001:db8:f1:1::1/125

CONCENTRADOR1 /ipv6 address


add interface=ether1 address=2001:db8:f1::2/125
add interface=ether3 address=2001:db8:f1:2::1/125

CONCENTRADOR2 /ipv6 address


add interface=ether1 address=2001:db8:f1:1::2/125
add interface=ether3 address=2001:db8:f1:2::2/125

É sempre bom validar se estamos tendo conectividade:

Configuração de interface de loopback


Primeiramente, para aqueles que não conhecem sua função e importância,
por definição, um endereço de loopback, é um IP colocado em uma interface virtual
que não está associada a nenhuma porta. Desta forma, a interface sempre estará
UP e nunca correrá o risco de cair. No Mikrotik, conseguimos fazer isso criando uma
interface bridge e não deixando nenhuma porta associada a ela.

32
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Quando colocamos um endereço IP em uma interface física ou vlan, aquele


IP só está alcançável enquanto a interface estiver funcionando. Se ocorrer algum
rompimento, ou algum outro tipo de desconexão daquela interface, o endereço IP
também parará de responder, mesmo que exista um caminho alternativo que leve
até o roteador. A interface de loopback vem, justamente, para corrigir esse
problema.
Como a loopback não é associada a nenhuma porta física, ela nunca cai, e
por meio de protocolos de roteamento dinâmico, já que fazer de forma estática é
inviável, conseguimos configurar um endereço IP no roteador que é alcançável
independente do caminho que estiver sendo utilizado.
E como, se configurado e planejado corretamente, a interface de loopback é
única, ela também serve como gerência para o roteador. Ela pode ser configurada
no servidor ​RADIUS ​para autenticar os clientes e também é uma boa prática,
colocar o mesmo “endereço” como ​Router-ID ​para o protocolo OSPF, MPLS e BGP.
Um ponto muito importante no Mikrotik, é que quando criamos uma interface
bridge, o RouterOS associa um endereço MAC gerado de forma automática a ela. O
problema é que toda vez que o roteador reiniciar, o endereço mudará. Uma boa
prática, portanto, é colocar um endereço MAC no parâmetro ​admin-mac​.
E para colocar este endereço MAC, a IANA tem uma faixa que não é
alocada para dispositivos de rede, que podemos usar, iniciando pelo
00:00:5E:80:00:00 e indo até o 00:00:5E:FF:FF:FF. Então, mãos à obra:

EQUIPAMENTO COMANDO

BGP /interface bridge


add name=loopback auto-mac=no \
admin-mac=00:00:5E:99:99:01

CONCENTRADOR1 /interface bridge


add name=loopback auto-mac=no \
admin-mac=00:00:5E:99:99:02

CONCENTRADOR2 /interface bridge


add name=loopback auto-mac=no \
admin-mac=00:00:5E:99:99:03

Feito isso, vamos consultar nosso phpIPAM. Para verificar quais endereços
de Loopback nós vamos utilizar:

33
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

EQUIPAMENTO COMANDO

BGP /ipv6 address


add interface=loopback address=2001:db8:f0::1/128
/ip address
add interface=loopback address=10.99.99.1

CONCENTRADOR1 /ipv6 address


add interface=loopback address=2001:db8:f0::2/128
/ip address
add interface=loopback address=10.99.99.2

CONCENTRADOR2 /ipv6 address


add interface=loopback address=2001:db8:f0::3/128
/ip address
add interface=loopback address=10.99.99.3

Não estranhe em configurarmos a loopback com um IPv4 também. Como eu


disse, o parâmetro do ​Router ID ​é um número de 32 bits no formato de um IPv4, e a
boa prática nos fala para deixar igual ao endereço de loopback do roteador, para
facilitar troubleshootings ou até mesmo a configuração de prioridades. Agora com
todas as loopbacks configuradas, vamos partir para a configuração do OSPFv3.

Configuração do OSPFv3
Vamos fazer uma definição do que são rotas e o que é o roteamento antes
de prosseguirmos para o OSPFv3.
● Rota: uma rota é a informação sobre o destino e por onde chegar.
Fazendo uma analogia aos correios, imagine que você despachou
uma encomenda de São Paulo para o Rio Grande do Sul. O CEP é
análogo ao endereço IP de destino, e a rota é a forma como o correio

34
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

irá fazer para entregar o pacote, já que os estados não são


conectados diretamente. Irá passar por Curitiba? Santa Catarina?
Dependerá da decisão de rota e melhor caminho.
● Já o roteamento é a função do roteador. Um roteador permite
encaminhamento de pacotes e faz as decisões de roteamento
baseado na sua ​RIB ​(​R​outing ​I​nformation ​B​ase). A RIB é o banco de
dados do roteador que contém informações de todas as rotas que ele
conhece, e as rotas que ele determina como o melhor caminho, são as
rotas que ficaram ativas, que ficam salvas na ​FIB ​(​F​orwarding
I​nformation ​B​ase).
O OSPFv3 é a versão atualizada do protocolo OSPF preparada para
funcionar com o IPv6. Ambos são muito parecidos, mas antes de começarmos eu
tenho um segredo para contar, a configuração do OSPFv3 é ainda mais simples que
a do OSPF normal.
A primeira grande diferença que precisamos notar comparando os dois
protocolos é a ausência da aba ​Networks no OSPFv3. No Mikrotik, o processo do
OSPF é iniciado assim que alguma rede é configurada dentro de Networks, já que a
instância e área já vem pré-configuradas e as interfaces são adicionadas
dinamicamente.

Na versão 3, o OSPF é iniciado assim que alguma interface é adicionada,


diferentemente da versão anterior, que é iniciado após a configuração da network.
E aqui vai outro segredo, ​não precisamos colocar um endereço IP na
interface para o OSPFv3 funcionar, pois ele utiliza endereços FE80 para
comunicação. ​E por conta disto não precisamos ter colocado os endereços de
ponto-a-ponto para todo o roteamento funcionar.
Vocês podem estar se perguntando o porquê de fazermos então…
Simplesmente por comodidade. Endereços FE80 não são roteáveis, então, o
roteador fica inalcançável, e colocando um endereço IP, conseguimos acessar o
mesmo.

35
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

O primeiro passo é configurar a instância


do processo de cada roteador, onde
informamos o ​Router ID​.
No nosso roteador de BGP, marcamos
para ele redistribuir a rota default, já que o
mesmo é o gateway da rede.
Já nos concentradores, vamos redistribuir
rotas conectadas e estáticas, assim, qualquer
rota de cliente PPPoE nosso conseguirá chegar
até o BGP. A única coisa que muda entre os
concentradores é o ​Router ID ​de cada um.
Como eu disse, o OSPFv3 é ainda mais fácil de
configurar do que o OSPF normal, então, vamos
adicionar as interfaces de cada roteador nele e marcá-las como redes ponto-a-ponto
e a nossa configuração de OSPF estará concluída. Novamente, vou deixar apenas o
print do BGP e do primeiro concentrador, já que a configuração de ambos
concentradores são iguais.

A vantagem de se usar redes ponto-a-ponto (PTP), ou quando necessário,


redes ponto-multiponto (PTMP) em comparação com redes broadcast é que nas
primeiras não há eleição de DR e BDR, o que torna todo o processo do OSPF mais
simples e de mais rápida convergência em caso de falhas.
Com tudo configurado e adjacências estabelecidas, vamos ver a tabela de
rotas de cada roteador.

36
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Com tudo funcionando corretamente, vamos agora para a configuração do


servidor PPPoE. Mas o OSPFv3 não acabou ainda, até o fim do ebook, vamos
voltar a falar sobre ele e sobre a sumarização de rotas e filtros.

Configuração do PPPoE Server


Chegamos ao momento em que finalmente estamos rumo aos últimos
passos para entregar IPv6 aos nossos clientes. E se você já tem um servidor
PPPoE rodando, e eu acredito que você já tenha, você vai ver que é ainda mais
simples de se configurar do que o
OSPFv3.
Voltando ao phpIPAM, vemos
como ficou a divisão de endereços para
os clientes do nosso primeiro
concentrador em nossa primeira cidade.
E de posse dos prefixos que
serão utilizados no concentrador para
entregar o IP na WAN e na LAN dos
roteadores dos clientes, vamos começar

37
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

as configurações criando a ​Pool​ de endereços de ambos.


Em ​Prefix Length​, informamos
qual o tamanho do prefixo que será
entregue daquele ​Pool​, e então, o que é
destinado para a WAN receberá um /64
e o da LAN receberá um /56.

Criados os ​Pools​, se você tiver


um servidor já rodando, só precisamos
adicionar ao ​Profile os pools de IPv6
que acabamos de criar. Para isso, vá
para ​PPP → Profiles e edite o que você
já tem.
Caso você não tenha, o
processo será o mesmo, a diferença que irá criar um ​Profile novo, portanto, vamos
comentar sobre os parâmetros:

● Name: ​nome do perfil. Pode colocar


como preferir.
● Local address: ​o gateway do túnel do
cliente PPPoE. Como boa prática, eu
recomendo deixar o endereço de loopback.
● Remote Address: ​endereço IPv4 que
será entregue ao cliente PPPoE. Pode ser

38
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

uma faixa, um endereço ou um nome de pool pré-configurado.


● Remote IPv6 Prefix Pool: ​endereço IPv6 que será entregue na WAN do
cliente PPPoE. Fazemos referência ao Pool destinado a WAN.
● DHCPv6 PD Pool: ​endereço IPv6 que será entregue na LAN do roteador
para ele fazer o Prefix Delegation.
● DNS Server: ​servidor DNS IPv4 que será entregue ao cliente. Para
configurarmos um servidor IPv6, devemos adicionar o endereço do mesmo
dentro de ​IP → DNS​.
● Change TCP MSS: ​o MSS é o “MTU de camada 4”, são os dados máximos
que pode conter em um segmento ao remover o cabeçalho do protocolo. A
melhor forma é deixar a Mikrotik calcular de modo automático.
● Use UPnP: ​desmarque! O UPnP é um protocolo que abre as portas de forma
dinâmica, se tiver clientes com IP público, é pedir para sofrer algum ataque.
● Use IPv6/MPLS/Compression/Encryption: ​são opções a mais que podem
ser definidas aos clientes PPPoE. Em IPv6 marque como ​yes​, pois se deixar
required,​ apenas clientes em que o roteador suporte IPv6 irão conectar. Nos
outros, pode deixar marcado com a opção ​no​.
Depois de ajustado, ainda em ​PPP​, vamos selecionar a aba ​PPPoE
Servers​. É nela que definimos quais interfaces irão servir como servidores. Clique
para adicionar um novo serviço:
Em ​Service Name a dica que eu dou
é colocar o mesmo nome da interface,
depois, quando precisar fazer alguma busca
de qual interface os clientes estão
conectados, tendo um servidor RADIUS,
ficará bem simples a tarefa.
Já o ​MTU/MRU é um assunto mais
complexo, e que gera muitas dúvidas na
cabeça das pessoas. A realidade é que o
MTU/MRU​ é o maior exemplo de que entender os fundamentos de rede é essencial.
Enquanto o MTU é a unidade máxima de transmissão, o MRU é a unidade
máxima de recepção, o ideal é sempre manter esses valores os maiores possíveis,
lembrando que o padrão ethernet aceita como tamanho máximo até pacotes de

39
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

1500 bytes. Como o PPPoE consome 8 bytes deste tamanho, devemos subtrair,
ficando com 1492 de tamanho máximo.
Se não estiver usando a CHR como concentrador, você pode deixar como
1492 sem problemas, pois em todas as Routerboard atuais, o L2MTU é maior que o
MTU, evitando fragmentações devido ao cabeçalho PPPoE, VLAN.
Via analisador de pacotes, é possível averiguar qual o tamanho de MTU
máximo que sua rede suporta. Pingue de um cliente final até sua borda,
aumentando o tamanho do pacote aos poucos e verifique se ocorre fragmentação.
Já o keepalive não precisamos mexer nele, pois o tempo é em segundos e
10 é o recomendado pelo próprio protocolo. Um parâmetro bem legal de ser
marcado é o One Session per Host, que impede que um endereço MAC faça
conexão com mais de um PPPoE.
Max Sessions são as quantidades totais de sessões que a interface irá
suportar, e o PADO delay serve para atrasar uma das mensagens trocadas durante
o início da conexão PPPoE. Ambas as opções são úteis apenas se você tiver
servidores redundantes, o que não é o nosso caso.
Agora nos modos de autenticação, o recomendado é desativar o modo pap,
já que o mesmo não garante segurança nenhuma, inclusive a senha do PPPoE é
enviada em texto claro. Todos os outros modos garantem que a senha nunca seja
trocada durante a autenticação.
Tanto o servidor quanto o cliente calculam uma hash entre as informações
de USUÁRIO+SENHA+CÓDIGO SECRETO e comparam entre si. Se a hash for
igual, significa que a senha cadastrada do lado do servidor é a mesma que a do
lado do cliente. O código secreto é gerado de forma aleatória pelo servidor, sendo
também chamado de magic number.
E com isso, já temos tudo pronto para autenticar os clientes com endereços
IPv6. Veremos, a seguir, como é feita a configuração em diversas CPE disponíveis
no mercado.
Se quiser conferir um vídeo onde eu faço a configuração do OSPFv3 na
prática, é só clicar no link: ​Configuração OSPFv3​.

40
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Configuração do Cliente Final

Mikrotik
Com certeza o Mikrotik é o mais complicado de configurar. A grande
vantagem dele ser complicado, é que fica extremamente didático para ensinar a
lógica de como configurar qualquer CPE usando-o como exemplo.
Lembre-se que estamos enviando duas redes IPv6, uma para a WAN e
outra para a LAN. Para recebermos o endereço de WAN, devemos:
1. Como o Prefix Delegation é via DHCPv6, a configuração é feita no
DHCP Client do Mikrotik;
2. Marcamos a interface como sendo do túnel PPPoE, para receber um
prefixo de rede e a rota default;
3. Do tamanho do prefixo, informamos que será /64, este não é o
tamanho que o Mikrotik espera receber, mas sim o tamanho que ele
irá repassar;
4. E definimos um nome para o Pool que iremos receber.
Então, indo até a opção de DHCP Cliente do IPv6 e clicando para adicionar
um novo, cairemos nesta tela:

Feito isto, se a conexão fechou, o status dela aparecerá como bound:

Para repassarmos os endereços para frente, podemos utilizar o SLAAC.


Indo até IPv6 Address, vamos adicionar um novo endereço, porém, utilizando
alguns parâmetros diferentes agora:

41
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Se deixarmos a opção from-pool marcada, o Mikrotik irá gerar um prefixo de


rede baseado na pool que acabamos de receber. A parte FFFF foi colocada por
gosto pessoal, mas você pode atribuir o endereço que preferir, desde que não use
mais bits do que o necessário para o pool.

Tenda HG9
Na ONT Tenda HG9, e em
várias outras que seguem o mesmo estilo de
firmware, a configuração é extremamente
simples. Na configuração da interface PPPoE,
marcamos para ela utilizar ambos protocolos
(IPv4/IPv6).
Já em ​IPv6 WAN Setting​,
marcamos que o modo de endereçamento é
via SLAAC e que vamos requisitar um prefixo
de rede. E pronto! Não é preciso fazer mais
nada. Toda a configuração da LAN já vem
pronta e quem se conectar a este roteador pegará endereços IPv6.

42
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

TP-Link Archer C5

Indo para o modo avançado, na


configuração do túnel PPPoE,
selecionamos o modo SLAAC, e na
configuração da LAN, indo até a
configuração de IPv6, selecionamos para ele entregar via DHCPv6 Server.
Pronto, só aplicar as alterações e teremos a entrega de endereços IPv6!

Intelbras IWR
Não tem roteador mais fácil de configurar o IPv6 do que a linha IWR da
Intelbras.

Você seleciona o modo avançado dele, clica em IPv6 e seleciona o modo de


conexão via ​PPPoE​, deixa tudo como está e salva. Está pronto!
Um detalhe para se comentar aqui, é que você pode querer selecionar o
modo de conexão ​SLAAC/DHCPv6​. Sua lógica não está errada, mas lembre-se que

43
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

estamos fazendo a conexão ​pelo túnel PPPoE e não via DHCPv6 Server
diretamente.
Alguns outros modelos de roteadores também seguem a lógica da Intelbras,
portanto é sempre bom estar atento. A dica é:
● Se estiver configurando o IPv6 ​dentro da interface PPPoE o modo
será ​SLAAC.
● Se ​não ​estiver configurando o IPv6 dentro da interface PPPoE, ele
com certeza terá o modo PPPoE.
Na LAN, se tiver que configurar em algum, a lógica será sempre igual,
DHCPv6 Server entregando via Prefix Delegation.

Mais um pouco de OSPFv3 - Sumarização


Retomando um pouco sobre o OSPF, lembra que marcamos no
concentrador para redistribuir rotas estáticas e conectadas? Isso irá nos causar um
problema de ​sumarização de rotas​.
Todo o cliente que subir no protocolo IPv4 terá uma rota conectada, e no
IPv6 terá uma rota estática, com uma rota associada a ele no roteador. Se tivermos
500 clientes conectados, teremos 500 rotas IPv4 e outras 500 rotas IPv6. O
exemplo do nosso cenário com 50 clientes conectados, totalizando 103 rotas OSPF:

Mas se definirmos os pools de forma estática a cada concentrador,


sabemos com absoluta certeza qual bloco de endereços está associado em cada
concentrador e isso nos dá a capacidade de sumarizar o pool de clientes.
Vamos pegar o concentrador 1 para servir de exemplo:
● Pool da WAN: 2001:db8:f2::/52

44
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

● Pool da LAN: 2001:db8::/44


Então criamos duas rotas do tipo ​unreachable​, uma para cada bloco de IP.
Como a rota que estamos criando também é uma rota estática, o OSPF irá contar
aos demais roteadores da rede.
Seguindo a mesma analogia, como toda a máscara de rede que os clientes
receberem será maior, portanto mais específico, que a rota que criamos, o
encaminhamento irá ocorrer normalmente.
Indo para o segundo passo da sumarização, precisamos limpar a tabela de
rotas. Da mesma forma que fazemos com o BGP para não recebermos full routing,
vamos criar um filtro de discard. Eu gosto de fazer o filtro no OUT do concentrador.

Pronto, temos nossas rotas filtradas. Por mais que na instância do OSPFv3
não apareça a opção de se usar filtros, por padrão, ele utiliza as chains ospf-in e
ospf-out. O importante é marcar a opção ​Address Family ​IPv6 nas regras, caso
contrário, suas rotas IPv4 também serão afetadas.
Após os filtros aplicados:

45
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

No meu Youtube, tenho um vídeo falando sobre o protocolo OSPF, apesar


de estar em IPv4, a esta altura do campeonato você já deve ter percebido o quão
parecidos eles são: ​https://bit.ly/ospf_no_mikrotik

Firewall
Ah, o Firewall, aquilo que todo mundo sabe que precisa, mas ninguém faz,
por preguiça ou por falta de conhecimento, quiçá medo de parar toda a rede. Mas
não se preocupe, eu irei te guiar e você verá ao final, que conhecendo os
fundamentos, assim como o IPv6, o Firewall não é nenhum bixo de sete cabeças.
Antes de tudo, dois comentários rápidos, o primeiro é que existe um modo
no RouterOS que é chamado de ​Safe Mode​, ele pode ser ativado clicando no botão
no canto superior esquerdo ou pressionando CTRL+X na linha de comando. Neste
modo, caso você perca acesso ao roteador, ele desfaz as últimas configurações.
Mas lembre-se de desativá-lo para tornar as mudanças permanentes.
O segundo comentário, é que você perceberá que o Firewall do IPv6 é igual
ao IPv4.
O RouterOS pode usar tanto firewall stateless quanto stateful. A diferença é
que o stateful ​conhece o estado das conexões, criando uma tabela chamada de
Connection Track, e guardando informações de onde para onde. É necessário para
regras de NAT, por exemplo. A vantagem é que se uma conexão for permitida, todo
o fluxo é permitido, não precisando checar pacote por pacote.
Já o stateless não precisa desta tabela, mas todo o pacote que chegar no
roteador é comparado às regras de firewall, pois o roteador não conhece o estado
das conexões.

46
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Dentro do firewall temos algumas tabelas, como a filter, raw, address-list. Na


address-list podemos criar listas de endereços para servir como filtros de origem e
destino para as regras da tabela Filter e Raw.
Já na tabela Filter, podemos criar regras de firewall com diversos
parâmetros, podendo especificar de qual interface o tráfego deverá vir, qual seu
sentido, input - quando é destinado ao roteador, output - quando é originado pelo
roteador, ou forward - quando o roteador está fazendo o encaminhamento de
pacotes.
Já a Raw é uma tabela com grande desempenho e grandes chances de má
configuração. Eu diria que é o alto risco e a alta recompensa do Firewall. Já que
como todo o tráfego de input e forward é tratado na mesma chain, qualquer regra
errada aqui ou irá parar o tráfego dos clientes de forma indevida ou perderá o
acesso ao roteador.
Das tabelas acima não há melhor ou pior, existe a necessidade e o como
resolvê-la de forma definitiva. Esqueça soluções paliativas, no final das contas, o
temporário sempre cobra seu preço.
A primeira coisa que devemos garantir é a proteção do roteador. A forma
mais fácil de proteger o roteador é criando uma lista de endereços confiáveis. Essa
lista pode conter o bloco de IP destinado ao seu escritório, NOC, casa, VPN, ou
seja, todos os lugares que você considera confiáveis. E apenas estes locais terão
acesso a gerência, SSH, Winbox, Web, do equipamento.
Outro ponto importantíssimo é se você quer adicionar uma regra de drop
geral ou não. Se você for fazer isso, lembre-se de habilitar, antes da regra, o input
para o bloco FE80::/10 e para os protocolos ICMPv6, DHCPv6, OSPF.
Outra coisa é se você tem regras de NAT ou não na caixa. Se você não tiver
regras de NAT você ​não precisa da Connection Track habilitada e pode fazer
todas as regras de Firewall na Raw, aumentando, assim, o desempenho do
roteador. Mas devemos tomar muito cuidado ao mexer na Raw, pois o input e o
forward são tratados da mesma forma dentro dela.
Se você tiver NAT na caixa, você pode utilizar o firewall stateful, habilitando
pacotes de conexões estabelecidas e relacionadas e fazendo as regras de firewall
apenas para novas conexões.
A segunda coisa é proteger os clientes PPPoE, dropando portas que
servem para gerência de equipamentos e serviços suscetíveis a ataques. Da

47
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

mesma forma, se você não tiver NAT, pode fazer todas as regras na aba Raw, caso
tenha, você pode usar o firewall stateful.

Protegendo o Roteador
Exemplo de configuração para proteção do roteador, utilizando Filter:

/ipv6 firewall address-list


add address=2001:db8:0:1::/64 list=admin comment=”NOC”
add address=2001:db8:3:1::/64 list=admin comment=”SERVIDORES”
add address=2001:db8:4:1::/64 list=admin comment=”VPN”
add address=fe80::/10 list=admin
/ipv6 firewall filter
add action=accept chain=input src-address-list=admin
add action=drop chain=input dst-port=8728,8729,22,8291,8080 protocol=tcp
add action=drop chain=input dst-port=161,123 protocol=udp

Essa é uma forma bem simples de se configurar o firewall, liberando o


acesso (input) das redes da lista ​admin e fazendo o drop apenas das portas de
gerência do RouterOS, SNMP e NTP. Com isso eu estarei totalmente protegido?
Não​. Mas é impossível falar a fundo sobre firewall em um ebook que tem o intuito de
ser um guia prático de implantação de IPv6. Só firewall dá um curso inteiro.

Protegendo os Clientes
Mais um exemplo de configuração utilizando a tabela Filter. Se a Connection
Track não estiver ativa, esta configuração de firewall não irá funcionar direito,
portanto, caso você deseje partir dessa configuração como exemplo e manter a
Connection Track desabilitada e remova a primeira regra do filter.

/ipv6 firewall address-list


add address=2001:db8::/32 list=bogons
add address=::ffff:0.0.0.0/96 list=bogons
add address=100::/64 list=bogons
add address=2001:2::/48 list=bogons

48
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

add address=2001:10::/28 list=bogons


add address=fc00::/7 list=bogons
add address=fec0::/10 list=bogons
add address=ff00::/8 list=bogons
/ipv6 firewall filter
add action=accept chain=forward connection-state=established,related
add action=accept chain=forward src-address-list=admin
add action=drop chain=forward src-address-list=bogons
add action=drop chain=forward dst-address-list=bogons
add action=drop chain=forward
dst-port=0,19,22,23,25,53,80,111,135,137-139,161,162,369,445,1900,8080
in-interface=all-ppp protocol=tcp
add action=drop chain=forward
dst-port=0,19,22,23,25,53,80,111,135,137-139,161,162,369,445,1900,8080
in-interface=all-ppp protocol=udp

Criamos uma lista de endereços bogons, que são endereços inválidos para
trafegar na internet, como o 10.0.0.0/8 do IPv4. Então criamos a regra de aceite de
conexões estabelecidas e relacionadas e o drop dos pacotes contendo bogons,
juntamente com um bypass do firewall pela lista dos endereços IP confiáveis.
O próximo passo é dropar as portas que são vulneráveis, como a SSH,
TELNET, DNS, HTTP, SNMP, que os clientes finais normalmente não precisam
tê-las disponíveis. Caso algum cliente precise, você pode criar uma regra de accept
logo após o aceite de estabelecidas e relacionadas, colocando o endereço IP do
cliente como dst-address, ou através de uma lista que dará bypass no firewall.

Considerações finais
Chegando ao fim da leitura, espero ter conseguido desmistificar o protocolo
IPv6 para você. Na minha opinião, com certeza, a parte mais difícil não é implantar
o protocolo, mas sim fazer todo o planejamento da rede. Por experiência própria, o
executar do IPv6 sem planejar só lhe trará dor de cabeça.

49
Licensed to Alan Hudson Mendes Nery - amendesnery@yahoo.com.br - HP13916100312981

Se você já tiver a infraestrutura em IPv4, que eu acredito fortemente que


você tem, a missão é copiar a forma como está configurada e adaptar para o IPv6.
Apesar de serem bastantes diferentes em relação aos aspectos técnicos, ambos os
protocolos operam da mesma forma.
Um ponto crucial que devemos ter cuidado, principalmente para o futuro,
quando scanners de rede forem melhor otimizados para o IPv6, é com a segurança
de nossos clientes. Portanto, tenha um firewall ao menos que proteja as portas de
gerência das CPE’s, como a 53, 80, 8080.

50

Você também pode gostar