Quase mês sem escrever! Senti falta. Trabalho a mil, clientes mimados, projetos saindo.

Uma característica minha: o perfeccionismo meticulosamente detalhista. Para o bem e para o mal.

Exemplo para o mal: se um dia precisar torturar alguém, será em uma sala assepticamente branca, luz a 6500K, <50dB de ruído, paredes lisas e amplas para uma reverberação entre três e quatro segundos. Exatamente no meio da largura da parede da esquerda, a mais ao fundo a partir da porta, uma torneira branca e fosca paira a exatos 120cm do chão. Sob ela um apoio de cabeça confortável e envolvente a 60cm e, ao longo deste, uma maca de metal com pintura termoplástica também branca, lisa, bem lisa, também fosca e devidamente paramentada com alças em couro e fivelas, ambas brancas, para pés, membros inferiores, cintura, tórax, membros superiores, mãos, pescoço e queixo. Nela um corpo em sua plena sanidade será cuidadosa e vagarosamente amarrado. Sua cabeça será devidamente presa no apoio sob a torneira, com a fronte meticulosamente alinhada para que o seu centro exato, obtido através das belezas da trigonometria e instrumentos de precisão, sem qualquer pressa, fique abaixo do bico da torneira. Oito horas de solidão após a preparação, a torneira então será aberta de um modo particular: um pingo a cada dúzia de segundos. Alguns centésimos de fonte sonora aquosa, três ou quatro segundos de som residual, pouco mais de sete segundos de silêncio. Repete o ciclo. Dias, noites, dias, noites, deste único ciclo sonoro e daquele pingo infalível e certeiro molhando a face. Assim ficará, até o tempo em si e a sanidade não fazerem mais sentido, o meu amado torturado.

Exemplo para o bem: uma rede em casa que me possibilita ter um laboratório de rede e infraestrutura completo para qualquer ocasião que eu possa necessitar, profissional ou particular.

Como isso pode ser reproduzido e tornar-se útil para alguém, é o que vou contar nesta série de artigos. Com o mesmo nível de detalhes do método de tortura.

Escopo

Antes de mais nada, vou deixar claro sobre o que vou falar nos artigos e, principalmente, o que não vou falar.

Abaixo segue uma lista dos temas que vou abordar nesta série:

  1. Topologia, lógica e implementação da rede;
  2. Configuração básica do roteador da operadora (ISP);
  3. Definição de uma DMZ para o gateway da LAN;
  4. Configuração do stack IPv4;
  5. Configuração do stack IPv6;
  6. Configuração dos serviços na LAN dual-stack;
  7. Configuração dos clientes em modo dual-stack.

Os temas abaixo estão FORA do escopo:

  1. Conceitos do IPv6 ou considerações sobre se você precisa dele ou não;
  2. Roteamento além do padrão;
  3. Protocolos de roteamento externos (ex.: BGP);
  4. Serviços de rede externos à LAN;
  5. Razões para você rodar em casa os serviços básicos de rede (DNS, NTP, NFS, HTTP e outros).

Outro ponto importante sobre o escopo refere-se à implementação dos dispositivos que uso em minha rede. A notação dos arquivos de configuração que vou utilizar se aplicam a estes dispositivos, os quais eu vou citar nominalmente no decorrer dos artigos. Esta notação pode ou não ser exatamente a que você vai usar em seus dispositivos ou software. Se não for, os conceitos são os mesmos, mas você precisará adaptar as instruções aqui contidas as suas necessidades particulares. RTFM.

Topologia

Nesta primeira parte do artigo, apresentarei a topologia, a lógica e, em seguida, a implementação desta rede. Vamos começar pela topologia.

Topologia da rede.

Este gráfico mostra como a rede está interconectada do ponto de vista estritamente físico.

Não há nada de emocionante quanto à topologia da rede. O modem da operadora (Router) está conectado à internet IPv4 (a de sempre, que usamos todos os dias desde sua entrada em operação), que por sua vez é a ponte para a internet IPv6.

Evidentemente, há (muitos) detalhes a mais no que diz respeito ao modo como o ISP provê a conexão à internet IPv4, mas isto está fora do escopo deste artigo. O único ponto relevante quanto à conectividade do seu ISP é que o seu IP precisa ser dinâmico. Se ele for estático, melhor para você, mas você terá que adaptar algumas coisas com relação ao que eu escrevo aqui.

O router possui um switch ethernet com quatro portas gigabit Ethernet (1000BASE-T) e destas, uma é usada para conectar o NAS (Network-attached Storage) e outra para conectar o WAP (Wireless Access Point). Este por sua vez possui um outro switch de quatro portas gigabit Ethernet, mas os dispositivos conectados a ele possuem NIC (Network Interface Card) Fast Ethernet apenas (100BASE-TX). O WAP também provê a camada física (PHY) e de controle de acesso (MAC) 802.11n para os dispositivos WiFi como notebooks e smartphones dentro da rede interna.

Se você parar de ler aqui, vai pensar que tudo nessa rede simplesmente se conecta à internet através do modem do ISP. Mas as aparências enganam. Radicalmente.

Rede Lógica

Vamos analisar agora como a topologia apresentada acima se parece do ponto de vista lógico.

Lógica da rede.

Veja como as aparências topológicas enganam quando começamos a configurar a rede.

Aqui as conexões não são mais mostradas como os meios físicos de interconexão. Elas são mostradas como itens na segunda camada do Internet Protocol Suite (IPS): IPv4, IPv6 e dual-stack (capaz de 'falar' IPv4 e IPv6 simultaneamente).

Veja que aqui há diferenças importantes quando comparado à topologia (que é estritamente física). O router não reina mais absoluto. Ele continua sendo essencial à rede, pois sem ele não há conexão à internet IPv4 e, por consequencia, não há IPv6. Mas o papel de estabelecer uma conexão à IPv6 deixa de ser do router do ISP e passa a ser do NAS.

Outra diferença importantíssima: note que quem se conecta ao router é o NAS e todos os outros dispositivos da rede estão conectados à internet através do NAS. Efetivamente, isso cria a seguinte circunstância:

  • O router é o default gateway do NAS: a única forma do NAS se conectar á internet é através do router;
  • O NAS é o default gateway da LAN: a única forma de qualquer componente da rede local, exceto o próprio, se conectar à internet é através do NAS.

Com o NAS é o único dispositivo efetivamente conectado diretamente à internet IPv4 e IPv6, ele é o único capaz de prover uma conexão dual-stack para o resto da rede local, o que simplifica muito a implementação de todo o resto da rede. E por esta razão ele se torna o gateway principal da LAN, cabendo ao roteador do ISP um papel coadjuvante em toda a rede.

Implementação

Com as camadas físicas e lógicas da nossa futura rede local definidas, podemos partir para a parte mais interessante e complicada delas: a implementação.

Implementação da
rede.

Este gráfico apresenta como os protocolos e serviços estão implementados para prover as redes IPv4 e IPv6 e os serviços dual-stack.

A internet IPv4, como visto na rede lógica, é disponibilizada pelo roteador do ISP, que é o gateway do NAS, que por sua vez é o gateway da LAN. A porta WAN do roteador dá acesso à rede do ISP, que está conectada à internet IPv4.

Mas aqui há novos atores na rede, principalmente no NAS. Vou descrevê-los a partir da rede IPv4, da LAN e do NAS.

  • IPv4 Stack: é a rede IPv4 padrão, a nossa internet e LAN de cada dia;
  • Firewall (IPv4): é a camada de segurança da rede IPv4. É esta camada que permite ou bloqueia acesso de entrada (WAN > LAN) e saída (LAN > WAN) e faz NAT para os serviços da rede;
  • DHCP (IPv4): é o protocolo do IPS que fornece os endereços IP de rede privada aos dispositivos da LAN. Esses endereços fazem parte das redes privadas reservadas pelo RFC 1918. Junto com o NAT, é o principal método para expansão de endereçamento disponível em redes IPv4.

Agora, os atores da rede IPv6:

  • IPv6 Stack: é a nova rede IPv6;
  • Firewall (IPv6): a camada de segurança da rede IPv6. Permite ou bloqueia tráfego de entrada e saída, mas não faz NAT (na verdade pode fazer, mas é obsoleto no IPv6);
  • AYIYA Tunnel: o protocolo Anything in Anything é usado para criar um túnel de tráfego de dados entre diferentes redes IP. É este protocolo que possibilita a conexão à rede IPv6 a partir de uma rede IPv4 com IP dinâmico e NAT como a que temos;
  • RADVD (IPv6): é o serviço Router Advertisement Daemon do IPv6. Ele tem uma função apenas parecida com o DHCP tradicional do IPv4, no sentido de prover informações iniciais para o endereçamento de dispositivos. Mas, diferente do DHCP, que provê um IP, máscara e outros dados para o cliente, o RADVD provê apenas o prefixo da rede e o endereço da rota padrão para o cliente, que faz o resto para gerar um endereço válido e único na rede IPv6 e configurar sua rota padrão (default gateway);
  • Tunnel Broker: é o ISP IPv6. O tunnel broker é quem provê acesso à rede IPv6 por meio de uma rede IPv4 existente e um IP estático ou dinâmico. Como nenhum ISP brasileiro provê IPv6 nativo (shame on you, operadoras de merda!), é o tunnel broker que nos prestará esse valioso serviço. O tunnel broker que vou utilizar em todo o artigo é o SixXS. Há muitos outros tunnel brokers por aí e você é livre para escolher qualquer um deles. Eu escolhi o SixXS em função dele ser o único com um PoP (Point of Presensece) no Brasil (gentilmente cedido pela CTBC, colocado em Uberlândia-MG, e que significa menor latência para quem está no Brasil) e por ele funcionar perfeitamente com o AYIYA (o protocolo AYIYA foi especificado pelos engenheiros da SixXS, que é uma entidade sem fins lucrativos cujo principal objetivo é prover um mecanismo de transição para redes IPv6 a quem não tem IPv6 nativo, eu e você, por exemplo). Se você optar por usar outro tunnel broker, terá que adaptar configurações que mencionarei por conta própria;
  • Ethernet Switch: é o switch gigabit Ethernet do roteador do ISP, que depois da rede IPv6, também fala e propaga IPv4 e IPv6 para o resto da rede. Aliás, daqui para baixo, toda a rede é dual-stack;
  • WAP: Assim como o Ethernet Switch, o mesmo vale para o ponto de acesso WiFi. Dual-stack;
  • v4/v6: São os clientes dual-stack na rede local e, dependendo do cliente, só IPv4 (comum) ou só IPv6 (raro).

Depois dos atores de cada um dos stacks, vem os serviços que rodam nessas redes. Como a partir deste ponto, já temos uma rede dual-stack, ou seja, que fala IPv4 e IPv6, todos os serviços básicos dessa rede podem rodar em ambas as redes. A única limitação aqui é se um determinado serviço não está pronto para IPv6 e precisar rodar somente em IPv4. Entretanto, nos dias de hoje, boa parte dos serviços essenciais de rede já estão disponíveis nos dois protocolos.

Entendendo o Túnel IPv6

Um outro conceito-chave que merece estar neste artigo é o modo que o túnel IPv6 funciona para prover conectividade à internet IPv6. Para isso, não precisamos de desenho, pois os acima já evidenciam o que vou dizer.

Primeiro temos uma rede IPv4. Ela é nossa velha conhecida e a utilizamos desde os imemoriais tempos do dial-up (acesso discado). Uma vez conectado à internet IPv4, o tunnel broker fornece um servidor TIC que, uma vez autenticado com sua conta de usuário, proverá informações sobre o seu túnel IPv6. É com essas informações que o seu túnel será criado e você terá acesso à internet IPv6 a partir da sua LAN IPv4.

De modo genérico e bastante simplificado, é isto que ocorre quando você cria um túnel (com o stack envolvido):

  1. Acionado cliente do túnel (IPv4);
  2. Cliente estabelece conexão com o servidor TIC (IPv4);
  3. Servidor TIC informa dados sobre a conexão IPv6 (IPv4);
  4. Cliente cria uma interface virtual na máquina local e dá a ela endereço IPv6 informado pelo servidor TIC e a rota padrão para o tráfego IPv6 (kernel);
  5. Conexão IPv6 é estabelecida a partir da nova interface (IPv6), porém todo o tráfego nesta interface é encapsulado e enviado pela rede IPv4 (IPv4);
  6. Servidor TIC monitora a conexão (IPv6).

A partir deste ponto, a máquina local onde você executou o túnel já tem conectividade à internet IPv6.

Note que tudo que entra ou sai pela rede IPv6 está na verdade passando por dentro da conexão IPv4, mas de modo encapsulado. A conexão IPv4, o seu roteador, o seu ISP ou qualquer outro dispositivo IPv4 no meio do caminho entre você e o TIC não fazem a mais vaga ideia de que ali dentro existem pacotes IPv6 trafegando. Este tráfego é todo encapsulado de modo transparente para a rede IPv4 e só as duas pontas do túnel, ou seja, o TIC e sua máquina local, sabem o que está acontecendo e que ali existe uma rede IPv6 inteirinha.

Mas atenção: não confunda encapsulamento com privacidade. São duas coisas BEM diferentes. Não há nada privado até aqui.

IPv6 na LAN

O túnel resolve o problema de ter uma rede IPv6 em uma máquina da rede local apenas: a que executou e possui a interface virtual do túnel. Os demais dispositivos em sua rede ainda não sabem que existe uma rede IPv6 pronta para ser usada. Esse é o papel do RADVD.

Quando o cliente/dispositivo é configurado para obter um endereço automaticamente na rede IPv6, ele espalha (multicast) na camada de rede física (Ethernet) uma solicitação de roteamento (router request, ou RS). O RADVD 'ouve' esse RS e envia um anúncio de roteamento (router advertisement, ou RA) para o MAC address do cliente que fez a solicitação o prefixo da rede IPv6 e o endereço da rota padrão (default gateway). O cliente então 'pega' o prefixo da rede e adiciona a ele, através de um algoritmo padronizado, o MAC address da interface, gerando assim o endereço IPv6 completo e válido.

De posse de um endereço válido na rede IPv6 e do endereço da rota padrão enviada pelo RADVD, o cliente configura a interface de rede para acesso à rede IPv6. A partir deste ponto, o cliente também possui uma rede IPv6 completamente funcional.

O RADVD faz mais coisas que isso, mas por agora, basta sabermos isso.

Preparação

Para continuarmos, você vai precisar de duas coisas: uma conta no SixXS e uma subrede /48. Quando você cria uma conta no SixXS, você recebe junto e por padrão uma rede /64. Deixa eu explicar melhor isso.

IPv6 é tudo sobre endereços IP. Muitos, um tantão, um tantão de tantão. Desse tantão assim que eu vou colocar em perspectiva agora.

Numa rede IPv4, você pode usar as redes privadas 10./8, 172.16./12, e 192.168./16 em sua LAN. O quem vem depois da / em um endereço IP é conhecido como CIDR. Resumidamente, ele separa o espaço estático do endereço IP (o prefixo da rede) da parte que pode ser alocada aos dispositivos na rede. Nas redes IPv4 privadas que citei acima, você pode ter até o máximo de subredes e endereços abaixo:

  • 10./8: 128 redes, 16.777.216 IPs, 16.777.214 IPs por rede;
  • 172.16./12: 16.384 redes, 1.048.576 IPs, 65 534 IPs por rede;
  • 192.168./16: 2.097.152 redes, 65.535 IPs, 254 IPs por rede;

Já numa rede IPv6, o CIDR 'mínimo' é /64, ou seja, a menor rede alocada é /64, sendo que os primeiros 64bit do endereço (que possui 128bit no total) são para o prefixo e os outros 64bit restantes são para o endereçamento de dispositivos. Num prefixo /48, o que vamos usar, teremos 16bit para criar subredes, sendo que cada uma dessas subredes será /64. Traduzindo isso em números:

  • 2001:db8:abcd::/48: 65.535 subredes /64;
  • 2001:db8:abcd:1234:/64: 18.446.744.073.709.551.616 IPs por rede. Basicamente, um IP VÁLIDO para cada ácaro da casa.

Voltando à conta no SixXS, como dito, ao criar a conta você receberá um prefixo para uma rede /64. Para ter um prefixo /48, você vai precisar criar a sua conta e ativar o seu túnel por algumas semanas. Isso ocorre porque o SixXS sabiamente implementa um sistema de créditos, o ISK, para evitar abusos.

Para obter ISK você só precisa manter o seu túnel rodando (ou fazer coisas legais, ver FAQ). Se você tiver como criar um túnel estático, ganha 5 ISK a por semana. Se você só puder criar túneis AYIYA, então ganhará 5 ISK na primeira semana e outros 5 ISK a cada duas semanas de túnel ativo. Este guia pode te ajudar com o AYIYA.

Para criar a subrede /48 no SixXS, você vai precisar de 10 ISK para solicitar a subrede /48 e outros 4 ISK para a aprovação. Total da conta: 14 ISK, ou três semanas de túnel estático no ar, ou cinco semanas de túnel AYIYA no ar. É um saco, mas é assim que é e assim o é por um excelente motivo.

Eu tenho neste momento 618 ISK e ficaria feliz em doar a quem precisasse, mas infelizmente o SixXS não permite transferência de ISK entre seus usuários.

Detalhe: há um limite de subredes /48 disponíveis em cada PoP do SixXS. O da CTBC possui, no momento em que escrevo isso, apenas 53 subredes disponíveis. Então, corra!

Bom, já que você vai precisar de um tempo para obter seus ISK e sua subrede /48, vou parar por aqui. Na próxima parte vamos deixar de bla, bla, bla e meter a mão na massa para começar a configurar essa bagaça toda.