Edgard Jamhour, 02/01/2012 14:43 PRÁTICA DE IPV6: ENDEREÇAMENTO, AUTOCONFIGURAÇÃO E ROTEAMENTO O objetivo dessa prática é ilustrar o processo de atribuição de endereços, roteamento e auto-configuração do IPv6. Como veremos, o IPv6 adota uma estrutura de endereçamento hierárquica. Essa estrutura dá autonomia para o usuário final segmentar sua rede e simplifica o conteúdo das tabelas dos roteadores IPv6 das empresas e dos ISP. O mecanismo de auto-configuração também dota as redes IPv6 de um suporte nativo a mobilidade, uma vez que o endereço do Host muda automaticamente quando ele muda de rede. Após digitar esses comandos feche o terminal. Utilize um novo terminal para lançar as máquinas virtuais, senão você irá receber mensagens de erro temporárias "send_sock sending to fd 4 Resource temporarily unavailable" que geralmente ficam escondidas. No ambiente DVD e no ambiente do novo servidor espec não é necessário instalar nenhum pacote, pois todos já estão instalados. 1. APRESENTAÇÃO DO CENÁRIO NLA = 280X:XYY0:1:/48 SLA=NLA:1::/64 site 1 H código matricula: (101) 11 12 XX YY - 1 Router Advertisement Sub-TLA = 280X:XYY0:/29 eth0.1 280X:XYY0:100:1::/64 DIFERENÇAS NO ROTEIRO EM RELAÇÃO A IMAGEM DO DVD eth0.1 GE SLA= NLA:2::/64 eth0 H Os comandos dentro de blocos com borda de linha simples devem ser executados em qualquer ambiente. Os comandos dentro de blocos com borda de linhas múltiplas só devem ser executados no ambiente do servidor espec. Os comandos dentro de blocos com borda de linhas em negrito devem ser executados apenas no ambiente do DVD. INICIALIZAÇÃO DO AMBIENTE DO DVD No ambiente DVD é necessário digitar os seguintes comandos no terminal do ambiente host antes de iniciar a prática: sudo /etc/init.d/conftap.sh sudo iptables -F sudo services sshd restart sudo iptables -t nat -A POSTROUTING -j MASQUERADE GP eth0.3 site externo eth0.2 site 2 Este roteiro foi desenvolvido para ser executado primariamente no servidor espec. Os alunos que utilizam a imagem do DVD também podem fazê-lo, mas com algumas pequenas diferenças no início da prática. Ao executar os comandos, observe a seguinte notação: eth0 (ISP) eth0.2 Router Advertisement O cenário desta prática está ilustrado pela figura. O LACNIC, autoridade regional de registro de cuida da América latina e do Caribe, recebeu do IANA a responsabilidade de administrar todos os endereços com prefixo 2800::/12. Suponha que o LACNIC outorgou a um ISP (Internet Service Provider) o Sub-TLA de prefixo 280X:XYY0:/29. OBS. Os números XXYY devem ser extraídos dos quatro últimos números do seu código de matrícula, e.g. (101) 11 12 XX YY - 1. O ISP é responsável para distribuição de endereços para as organizações que representam usuários finais. O IETF recomenda que a unidade mínima de alocação para organizações seja um endereço /48 (isto é, um NLA inteiro). Dessa forma, suponha que o ISP delegou para a empresa o NLA de prefixo 280X:XYY0:1:/48. Um NLA é composto de 16 bits para identificar um Site (SLA) e 64 bits para identificar a interface de um host. A organização tem liberdade para criar múltiplos sites, bastando para isso criar prefixos SLA::/64 distintos. No cenário proposto, a organização criou dois sites, respectivamente com os SLAs NLA:1::/64 e NLA:2::/64. Para esta prática serão utilizadas três máquinas virtuais, representando o gateway da empresa (GE), o gateway do provedor (GP) e um host (H). O host será utilizado para Edgard Jamhour, 02/01/2012 14:43 testar o funcionamento do processo de auto-configuração do IPv6, pois seu endereço deverá ser alterado automaticamente quando ele for movido do site 1 para o site 2. O roteador da empresa emite mensagens de "Router Advertisement" para os hosts localizados em cada um dos sites. Essa mensagem contém o prefixo do site, e o host ao recebê-la cria automaticamente um endereço IP adicionando seu MAC (expandido com os bytes FF:FE para completar 64 bits) ao prefixo do site. 2. COMANDOS IPV6 Configuração de endereços: ifconfig eth0 inet6 add 2800::1/64 ifconfig eth0 inet6 del 2800::1/64 Mostrar apenas endereços e rotas IPv6: ip -6 addr show dev eth0 route -n -A inet6 Configurar rotas estáticas: route -A inet6 add 2100::/16 gw 2800::1 dev eth0 route -A inet6 del 2100::/16 gw 2800::1 dev eth0 Utilitários IPv6: ping6, traceroute6, tracepath6 Daemon para router advertisement: radvd Os principais comandos utilizados para configuração de redes IPv6 no linux estão listados na figura acima. Os comandos ifconfig, route e ip do linux trazem suporte para configuração tanto de IPv4 quanto de IPv6. Já os comandos ping, traceroute e tracepath tem novas versões para o IPv6, com as respectivas denominações: ping6, traceroute6, tracepath6. Para adicionar ou remover um endereço IPv6 de uma interface, basta digitar: ifconfig DEVICE inet6 add ENDERECO_IPv6/MASCARA ifconfig DEVICE inet6 del ENDERECO_IPv6/MASCARA É possível adicionar endereços IPv6 usando o comando ip ao invés de ifconfig. Essa abordagem será usada no roteiro prático de mecanismos de transição. O comando ifconfig mostra todos os endereços (IPv4 e IPv6) associados a uma interface. Para visualizar apenas os endereços IPv6 utilizase: ip -6 addr show dev DEVICE De forma similar, para ver apenas as rotas IPv6 da tabela de roteamento, é necessário usar parâmetro inet6, conforme ilustrado a seguir: route -n -A inet6 A criação ou remoção de rotas IPv6 também utiliza o comando route com a inclusão do parâmetro inet6: route -A inet6 add PREFIXO gw GATEWAY dev DEVICE route -A inet6 del PREFIXO gw GATEWAY dev DEVICE Um roteador IPv6 precisa ser capaz de enviar mensagens de router advertisement a fim de suportar o processo de auto-configuração dos hosts. Essa função não está codificada ao nível de kernel, mas como um daemon da camada de aplicação. Esse daemon precisa ser instalado e denomina-se radvd. Este daemon já está instalado nas imagens UML da nova espec e do DVD. 3. CONFIGURAÇÃO DO ROTEADOR DA EMPRESA O script de configuração do roteador da empresa ipv6-E.sh é mostrado a seguir: #!/bin/bash -x #Cria Interfaces vconfig add eth0 1 vconfig add eth0 2 ifconfig eth0.1 down hw ether 00:00:00:00:00:01 ifconfig eth0.2 down hw ether 00:00:00:00:00:02 service network restart #Definicao dos Prefixos nla=2801:3140:1 site1=$nla:1 site2=$nla:2 siteE=2801:3140:100:1 #Endereços do Gateway da Empresa gE0=FE80:1::1 gE1=$site1::1 gE2=$site2::1 #Endereços dos Gateways do ISP gP0=FE80:1::2 Edgard Jamhour, 02/01/2012 14:43 #!/bin/bash -x #Habilita Roteamento sysctl -w net.ipv6.conf.all.forwarding=1 #Cria Interfaces vconfig add eth0 3 ifconfig eth0.3 down hw ether 00:00:00:00:00:03 service network restart #Configura Endereços e Rotas ifconfig eth0 inet6 add $gE0/64 up ifconfig eth0.1 inet6 add $gE1/64 up ifconfig eth0.2 inet6 add $gE2/64 up route -A inet6 add ::/0 gw $gP0 dev eth0 #Definicao dos Prefixos nla=2801:3140:1 siteE=2801:3140:100:1 O aluno deverá mudar os números 1:314 pelo código correspondente do seu número de matrícula. Observe que o script altera os endereços MAC das interfaces de VLAN. Isso é necessário, pois as VLANs são criadas com o mesmo MAC da interface real eth0. Como os endereços IPv6 são auto-configurados a partir do MAC, ocorre duplicação de endereço. Na Espec: Copie o pacote com os scripts para o seu diretório home e crie uma máquina virtual para representar o roteador da empresa: #Endereços do Gateway da Empresa gE0=FE80:1::1 #Enderecos do Gateway do ISP gP0=FE80:1::2 gP3=$siteE::1 #Habilita Roteamento sysctl -w net.ipv6.conf.all.forwarding=1 #Configura Endereços e Rotas ifconfig eth0 inet6 add $gP0/64 up ifconfig eth0.3 inet6 add $gP3/64 up route -A inet6 add $nla::/48 gw $gE0 dev eth0 wget espec.ppgia.pucpr/jam_pacotes/ipv6.tar.gz tar -xzf ipv6.tar.gz linux32.redes RE Na VM GE: Configure um endereço IPv4 na interface eth0 e efetue a cópia do pacote. Cuidado para substituir os números 13.14 pelo seu código de matrícula (o script supõe a matricula (101) 11 12 13 14 -1). Na Espec: Crie uma máquina virtual para representar o roteador do ISP ifconfig eth0 20.13.14.1/8 scp login@ 20.0.0.1:ipv6/ipv6-E.sh . Na VM GP: Configure um endereço IPv4 na interface eth0 e efetue o download do pacote. Cuidado para substituir os números 13.14 pelo seu código de matrícula (o script supõe a matricula (101) 11 12 13 14 -1). Observe que login é rss no DVD (senha pucpos), ou o mesmo login e senha que você usou para acessar o servidor espec. Na VM GE: Edite o script ip6-E.sh, substituindo os números 1:314 pelo seu código de matrícula. vi ipv6-E.sh <ENTER><INS> <ESC>:wq<ENTER> ./ipv6-E.sh ...alteração do linux32.redes RP ifconfig eth0 20.13.14.2/8 scp login@ 20.0.0.1:ipv6/ipv6-P.sh . Na VM GP: Edite o script ipv6-P.sh, substituindo os números 1:314 pelo seu código de matrícula. prefixo vi ipv6-P.sh <ESC> <INS> ... alteração <ESC>:wq<ENTER> ./ipv6-P.sh 4. CONFIGURAÇÃO DO ROTEADOR DO PROVEDOR 5) PREPARAÇÃO DO COMPUTADOR H O script de configuração do roteador do provedor ipv6-P.sh é mostrado a seguir: Na Espec: Crie uma máquina virtual para representar o host H: Edgard Jamhour, 02/01/2012 14:43 linux32.redes H AdvRouteLifetime 90; }; 6) CONFIGURAÇÃO DO ROUTER ADVERTISEMENT NO ROTEADOR DA EMPRESA A função de router advertisement é implementada pelo daemon radvd. Para ativar esse daemon é necessário configurar o arquivo /etc/radvd.conf, com a configuração do anúncio de cada interface. Os principais parâmetros do arquivo são os seguintes: interface name { MaxRtrAdvInterval seconds; AdvSendAdvert on/off; prefix prefix/length { AdvOnLink on/off; AdvAutonomous on/off; AdvRouterAddr on/off; }; route prefix/length { AdvRouteLifetime seconds|infinity } }; MaxRtrAdvInterval: Intervalo máximo de envio de anúncios não solicitados (valor default 600s). AdvSendAdvert: O valor "on" habilita o envio dos anúncios de prefixo pela interface. prefix: Prefixo anunciado pela interface AdvOnLink: O valor "on" indica para o host criar uma rota local para o prefixo recebido. AdvAutonomous: O valor "on" faz com que o host adicione seu MAC ao prefixo para criar um endereço auto-configurado. AdvRouterAddr: O valor "on" indica que o IP do roteador é anunciado, ao invés de apenas o prefixo. Esta opção é necessária para suportar a mobilidade. AdvRouteLifetime: Define o tempo de vida da rota anunciada. O valor default é 3*MaxRtrAdvInterval Neste cenário, o arquivo /etc/radvd.conf será configurado com os seguintes parâmetros: interface eth0.1 { AdvSendAdvert on; prefix 2801:3140:1:1::1/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; route ::/0 { }; interface eth0.2 { AdvSendAdvert on; prefix 2801:3140:1:2::1/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; route ::/0 { AdvRouteLifetime 90; }; }; Na VM GE: Edite o arquivo radvd.conf conforme a figura, alterando o prefixo de acordo com o seu cenário, e ative o deamon. scp [email protected]:ipv6/radvd.conf . vi radvd.conf <ENTER><INS> alterar prefixos ... <ESC> :wq radvd -C radvd.conf Observe que a opção -C faz você usar como radvd.conf o arquivo local, ao invés do arquivo no /etc. 7) TESTES Na VM GE: Salve as rotas do roteador GE e verifique se o roteador GE está enviando mensagens de router advertisement: route -n -A inet6 > rotashge.txt radvdump<ENTER> ..... aguardar o aparecimento do resumo das mensagens. Voltar para o prompt digitando <CRTL+C> Na VM H: Coloque o host H no site 1, e verifique a autoconfiguração do endereço. vconfig add eth0 1 ifconfig eth0.1 up ifconfig eth0.1 > hsite1.txt route -n -A inet6 > rotashsite1.txt Na VM H: Verifique se o host H consegue pingar a interface de GP no site externo. ping6 280X:XYY0:100:1::1 Edgard Jamhour, 02/01/2012 14:43 Na VM H: Coloque o host H no site 2, e verifique a autoconfiguração do endereço. ifconfig eth0.1 down vconfig add eth0 2 ifconfig eth0.2 up ifconfig eth0.2 > hsite2.txt route -n -A inet6 > rotashsite2.txt Na VM H: Verifique se o host H consegue pingar a interface de GP no site externo. ping6 280X:XYY0:100:1::1 8. RELATÓRIO A SER ENTREGUE NO EUREKA Crie um arquivo texto "RelatorioPraticaIPv6.txt" com um resumo dos resultados obtidos nessa prática. As informações que você deve incluir foram salvas em arquivos.txt durante o passo 7 do roteiro. Transfira esses arquivos para sua conta home na espec, e edite um único arquivo texto com essas informações. Lembrando, o comando para transferir arquivos da VM para espec é: scp arquivo_origem [email protected]:. Observe que seu_login é rss no ambiente DVD (senha pucpos). No ambiente ESPEC o login e a senha são os mesmos que você usou para se logar no servidor remotamente. O conteúdo do relatório deve conter as seguintes informações: a) As rotas do gateway da empresa (arquivo rotashge.txt) criado no passo 7. b) O ip do host H no site 1 (arquivo hsite1.txt) criado no passo 7. c) As rotas criadas para o host H no site 1 (arquivo rotashsite1.txt) criado no passo 7. d) O ip do host H no site 2 (arquivo hsite2.txt) criado no passo 7. e) As rotas criadas para o host H no site 2 (arquivo rotashsite1.txt) criado no passo 7. Não se esqueça de digitar halt para encerrar as máquinas virtuais