Você está na página 1de 409

Roteiros para o laboratrio

Host 1 CPE1 Traduo N:1 IPv6 para IPv4

IPv4 + IPv6

CPE 2

Rede IPv6

Internet IPv6

Host 2

Traduo 1:1 IPv4-IPv6 Stateless Mapeamento de portas parc. stateful

Internet IPv6

ndice
Endereamento
Exerccios 3 6 16 25 32 45 55 69 88 108 132 143 152 166 171 177 183 198 207 216 217 251 281 285 294

NeighborDiscoveryProtocol
Experincia1NeighborSolicitationeNeighborAdvertisement Experincia2RouterSolicitationeRouterAdvertisement Experincia3RouterSolicitationeRouterAdvertisement Experincia4Detecodeendereosduplicados

AutoconfiguraodeEndereosStateless
Experincia1Quagga:RouterAdvertisement Experincia2Radvd:RouterAdvertisement

DHCPv6
Experincia1DHCPv6Stateful:Solicit,Advertise,RequesteReply Experincia2DHCPv6Stateless:InformationRequesteReply Experincia3DHCPv6PrefixDelegation

PathMTUDiscovery
Experincia1ICMPv6:PacketTooBig

Servios
Experincia1DNS:ConsultasDNS Experincia2DNS:ConfigurandoumServidorAutoritativo Experincia3ServidoresHTTP:FuncionamentoBsico Experincia4ServidoresHTTP:ConfiguraoIPv6noApache Experincia5ServidoresHTTP:ConfiguraoIPv6doNginx Experincia6Proxy:ForwardProxyemredeIPv6 Experincia7ProxyReverso:ConfiguraodeProxyWeb Experincia8Samba:ConfigurandoSamba

Segurana
Experincia1AtaqueDoSaoNeighborDiscovery Experincia2FirewallStateful Experincia3IPsec:MododeTransporte Experincia3.1IPsec:MododeTransporteDetalhamentodecomandos Experincia4IPsec:MododeTnel Experincia5IPsec:Configuraoautomticaatravsdechaves prcompartilhadas

IPv6.brLaboratrioIPv6NIC.brhttp://ipv6.brrev.2012.05.2501

Transio
Experincia1Tnel6over4 Experincia2TnelGRE Experincia3DualStackLite(DSLite):ImplantaodoDSlite Experincia4DualStackLite(DSLite):Adiaodenovosclientes narededoISP Experincia5DualStackLite(DSLite):AdiodatcnicaA+P redeDSLite Experincia6Relay6to4 Experincia76rd:ConfiguraonorelayenumCPE(/64) Experincia86rd:ConfiguraonumCPE(/56) Experincia9NAT64eDNS64 317 328 339 350 358 367 377 388 398

IPv6.brLaboratrioIPv6NIC.brhttp://ipv6.brrev.2012.05.2501

ExercciosdeEndereamentoIPv6
1)Indicaraquetipopertencecadaumdosseguintesendereos: Endereo 2001:db8:cafe:f0ca:faca:2:3 2804:1:2:b0ca:2c0:17ff:fe00:d1ca fe80::dad0:baba:ca00:a7a2 fe80::2c0:17ff:fe00:d1ca 2002:c8A0:79c::b010:de:c0c0 ::1 fd00:ada:2345:b0ba::1 ff0e::beba:d012:3:4 ff05::baba:bebe:baba 2)Comprimiraomximoosseguintesendereos: 2001:0db8:0000:1200:0fe0:0000:0000:0003 2001:0db8::ca5a:0000:2000 2001:0db8:face:b00c:0000:0000:0100:00ab 3)Descomprimiraomximoosseguinteendereos: 2001:db8:0:ca1::1:abcd 2001:db8:4::2 2001:db8:200::bdb:110 4)UtilizandoopadroEUI64,crieendereosIPv6apartirdoprefixo2001:db8:ba1a:d0ce::/64 baseadosnosseguintesendereosMAC: 00:e0:4c:70:89:8d 5c:1d:e0:8c:e7:e7 07:00:27:00:e8:8b Tipo

IPv6.brExerccioEndereamentoIPv6NIC.brhttp://ipv6.brrev.2012.07.1602

5)Dividaoprefixo2001:db8::/32nametadeparaquesejamgeradosdoissubprefixos. ______________________________________________________________________________ ______________________________________________________________________________ 6)Dividaoprefixo2001:db8:c000::/34nosseguintestamanhos: /35 ______________________________________________________________________________ ______________________________________________________________________________ /36 ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ 7)Dividaoprefixo2001:db8:a000::/35noseguintetamanho: /37 ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________ ______________________________________________________________________________

8)Vocprecisasubdividiroprefixo2001:db8::/32paraatenderadiversassubredesemsua organizao.Paracadacaso,digaqualoprefixomaiscurtoqueatendesuanecessidade,o nmerodesubredesgeradaseonmeroderedes/64possveisemcadasubrede.Diga tambmqualoprefixomaiscurtopossvelsemcortarcaracteres(indode4em4bits),o nmerodesubredesgeradaseonmeroderedes/64possveisemcadasubrede.

necessidade 2redes 56redes 1500redes 30000redes

prefixo

no.subredes

redes/64

prefixo

no.subredes

redes/64

/33

2^31

/36

16

2^28

IPv6.brExerccioEndereamentoIPv6NIC.brhttp://ipv6.brrev.2012.07.1602

9)Apartirdoprefixo2001:0db8::/32,atribuirosprefixossredesecomputadoresda organizaoilustradanafiguraaseguir:

Descrio

Endereo/Prefixo

Descrio

EndereoPrefixo

Infraestruturarot. GestoeMonit. Rede1(R1) Rede2(R2) Rede3(R3) Rede4(R4) Rede5(R5)

/48 /48 /48 /48 /48 /56 /56

Rede7(R7) RededoHost1 RededoHost2 RededoHost3 Host1 Host2 Host3

/56 /64 /64 /64 /64 /64 /64

Rede6(R6)
Referncias

/56

Vives,Alvaro.PracticeIPv6Addressing.IPv6Workshop,Bogot,2010,Consulintel. http://www.6deploy.org/workshops/20100927_bogota_colombia/DIA13PRACTICADireccionesv0.1.pdf

IPv6.brExerccioEndereamentoIPv6NIC.brhttp://ipv6.brrev.2012.07.1602

IPV6NeighborDiscoveryProtocol
Experincia1NeighborSolicitationeNeighborAdvertisement Objetivo
Esta experincia tem como objetivo apresentar o funcionamento do mecanismo de resoluo de endereos do protocolo Neighbor Discovery IPv6, atravs do estudo das mensagensdeNeighborSolicitationeNeighborAdvertisement. Para o presente exerccio ser utilizada a topologia descrita no arquivo: FuncionalidadeNeighborDiscoveryE1.imn.

IntroduoTerica
A resoluo de endereos um procedimento realizado pelos ns de uma rede para descobrir endereos fsicos dos dispositivos vizinhos presentes no mesmoenlacequesua interfacederede. O procedimento iniciado quando um dispositivo tenta enviar um pacote cujo o endereo fsico de destino desconhecido. Nele, o n solicitanteirenviarumamensagem Neighbor Solicitation para todos os ns do enlace com endereo de destino IPv6 marcado como Multicast SolicitedNode (FF02::1:FFXX:XXXX) e o endereo a ser resolvido marcado no campo Target do cabealho ICMPv6. Alm desses dados, o protocolo opcional Source LinkLayer Address tambm enviado com intuito de fornecer o seu endereo fsico ao destinoe,assim,evitarnovastrocasdemensagens. O n de destino, dono do IPv6 requisitado, ao receber esse pacote cria uma mensagem Neighbor Advertisement e a envia como resposta diretamente ao n requisitante. O endereo de destino IPv6 dessa mensagem ser marcado com oendereodelink localdo n requisitante e o seu endereo fsico ser utilizado para preencher ocampodeProtocolo opcionalTargetLinkLayerAddress. Com a chegada dessa informao ao n, o neighbor cache atualizado, com o status de alcanceeacomunicaopodesercomeada.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

RoteiroExperimental
1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br preciso, antes de comear a experincia, instalar alguns softwares para auxiliar no aprendizado (casocontrriovparaopasso2). Sigaopassoaseguirpararealizarainstalao: a. Para fazer algumas verificaes durante o experimento ser necessrio a utilizao do programa Wireshark que realiza a verificao dos pacotes que so enviados na rede. Na mquina virtual, utilize um Terminal para rodar o comando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes dainstalaosersolicitadaasenhadousuriocore.Digitecorepara prosseguircomainstalao. 2. Inicie o CORE e abra o arquivo FuncionalidadeNeighborDiscoveryE1.imn localizado nodiretriododesktopFuncionalidades/NeighborDiscovery,damquina virtualdoNIC.br.Aseguintetopologiainicialderededeveaparecerdeveaparecer:

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

3. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulaorealizandoumdosseguintespassos: i. aperteoboto ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra o terminaldoumaPonta,atravsdoduploclique. c. VerifiquequeaconfiguraodoumaPontaatravsdoseguintecomando:
# i p a d d r s h o w

Oresultadodeveser:

*Obs: A partir desse comando possvel observar os endereos das interfaces. d. VerifiquequeaconfiguraodooutraPontaatravsdomesmocomando. Oresultadodeveser:

*Obs: A partir desse comando possvel observar os endereos das interfaces.


IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

4. TesteaconectividadeIPv6deumnoaooutro. a. AbraoterminaldoumaPonta,atravsdoduploclique. b. Utilizeoseguintecomandoparainiciaracapturadepacotesdoroteador:


# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ n e i g h d i s c _ e 1 . p c a p

Oresultadodeveser:

*Obs: No feche esse terminal atofinaldoexperimento,umavez que,isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia. c. NoterminaldooutraPonta,utilizeoseguintecomando:
# p i n g 6 c 4 2 0 0 1 : d b 8 : : 1 0

Oresultadodeveser:

*Obs: o endereo de destino deve ser o doumaPonta.Obtidopelocomando ipaddranteriormente.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

d. No terminal do umaPonta, encerre a captura de pacotes atravs da sequnciaCtrl+C. Oresultadodeveser:

*Obs: Aquantidadedepacotes podevariardeacordocom otempoesperado paradarocomandoCtrl+C. 5. Encerreasimulaocomumadasseguintesaes: i. ii. aperteoboto utilizeomenuExperiment>Stop.

6. A verificao dos pacotes capturados ser realizada atravs do programa Wireshark. Para inicilo execute o seguinte comando em um terminal da mquina virtual:
$ w i r e s h a r k

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

10

a. Abraoarquivo/tmp/captura_neighdisc_e1.pcapcomomenuFile>Open: b. ProcurepelospacotesdeNeighborSolicitationeNeighborAdvertisement. Analiseosevejaseosdadoscontidosnospacotesconferemcomoquefoi passadonateoria.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

11

NeighborSolicitation:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo (33:33:ff:00:00:10), sendo que o prefixo 33:33 indica que a mensagem um multicast na camada Ethernet.Osufixo ff:00:00:10indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet): a fonte o MAC address da interface do dispositivoqueenviou asolicitao(00:00:00:aa:00:01). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual o prximo cabealho (de extenso do IPv6), no caso,ovalor58(0x3a)refereseumamensagemICMPv6. Source (IPv6): a fonte o endereoIPdainterfacediretamenteligadaaoenlaceem quesefazarequisio(2001:db8::11). Destination(IPv6):odestinooendereomulticastSolicitedNode(ff02::1:ff00:10). Type(ICMPv6):indicaqueamensagemdotipo135(NeighborSolicitation). ICMPv6Option(ICMPv6):indicaasopesdopacoteICMPv6: SourceLinkLayerAddress Type: indica o tipo de dado da mensagem ICMPv6. Em nosso caso, eladotipoSourcelinklayeraddress . Linklayer address : indica o MAC address da interface de origem da mensagem.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

12

NeighborAdvertisement:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): MAC address do n requisitante que foi obtido atravs da mensagemdeNeighborSolicitationenviadaanteriormente(00:00:00:aa:00:01). Source (Ethernet): aorigem oMACaddress dainterfacedodispositivoumaPonta queenviouaresposta(00:00:00:aa:00:00). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual o prximo cabealho (de extenso do IPv6), no caso,ovalor58(0x3a)refereseumamensagemICMPv6. Destination (IPv6): diferentemente da mensagem Neighbor Solicitation, a Neighbor Advertisement possui como destino o endereo IPv6 global do n requisitante (2001:db8::11). Source (IPv6): a origem o endereo IP da interface diretamente ligada ao enlace emquearequisiofoirecebida(2001:db8::10). Type(ICMPv6):indicaqueamensagemdotipo136(NeighborAdvertisement). Flags(ICMPv6):umamensagemdotipoNeighborAdvertisementpossui3flags: A primeira indica se quem est enviando um roteador. No nosso caso,ela estmarcadacom0. Asegundaindicaseamensagem umarespostaaum NeighborSolicitation.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

13

Nonossocaso,elaestsetadaem1. A terceiraindicaseainformaocarregadanamensagem umaatualizao deendereodealgumndarede.Nonossocaso,elaestsetadaem1. Target Address (ICMPv6): indica o endereoIPsobreoqualas flags informam.No nosso caso, o prprio endereo da interface do dispositivo umaPonta (2001:db8::10). ICMPv6Option(ICMPv6):indicaasopesdopacoteICMPv6: TargetLinkLayerAddress Type: indica o tipo de dado da mensagem ICMPv6. Em nosso caso, eladotipoTargetlinklayeraddress . Linklayer address : indica o MAC address da interface do dispositivo umaPontadamensagem.

Exerccios
1)QualocampodamensagemNeighborSolicitationqueidentificaodestinoprocurado? ___________________________________________________________________________ 2)QualocampoquetransmiteainformaodoMACaddressdodestino? ___________________________________________________________________________ 3)PorqueenviadooendereoMACaddressdaorigem? ___________________________________________________________________________ 4)Faaumdesenhoesquemticoquerepresentaafuncionalidadededescobertade endereosdecamada2.

5)Crieumanovatopologiaatravsdaadiodedoiselementos,umswitcheumPC.A partirdisso,capturenumasinterfacedemquinaduasmensagensNeighborSolicitations distintas.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

14

15

IPV6NeighborDiscoveryProtocol
Experincia2e3RouterSolicitationeRouterAdvertisement Objetivo
Esta experincia possui como objetivo apresentar o funcionamento do mecanismo de descobertaderoteadores.Paraisso,elafoidivididaemduaspartes. A primeira focada no envio da mensagem Router Solicitation com resposta Router Advertisement. E a segunda, mostra o anuncio do roteador para a rede com o uso da mensagemRouterAdvertisement. Opresenteexerccioutilizaastopologiasdescritasnosseguintesarquivos: FuncionalidadeNeighborDiscoveryE2.imn FuncionalidadeNeighborDiscoveryE3.imn.

IntroduoTerica
A descoberta de roteadores um procedimento realizado pelos ns da rede quando configuram seu endereo link local, ou seja, no momento que se conectam ou se reconectamemumarede,paradescobrircaractersticasdoenlaceerotasdecomunicao. O mecanismo comea com o envio da mensagem Router Solicitation direcionado a todos os roteadores no enlace, utilizando o endereo de destino AllRouter (FF02::2) multicast Group. Alm de procurar por roteadores, essa mensagem j contm o endereo fsico do prpriodispositivodeformaaevitarnovastrocasdepacotes. O roteador, aoreceberoRouterSolicitation,geraumarespostaRouterAdvertisementque enviada diretamente ao n solicitante atravs de seu endereo de link local. Porm, possvel que essa resposta seja enviada em multicast All Node, realizando o envio do RouterAdvertisementparatodososns. ORouterAdversimentserveparainformaraonsobreaexistnciadoroteador. De tempos em tempos os roteadores tambm enviam RouterAdvertisements parainformar quecontinuamoperandocorretamente.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

16

RoteiroExperimental
Experincia2RouterSolicitation
1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br preciso, antes de comear a experincia, instalar alguns softwares para auxiliar no aprendizado (casocontrriovparaopasso2). Sigaopassoaseguirpararealizarainstalao: a. Para fazer algumas verificaes durante o experimento ser necessrio a utilizao do programa Wireshark que realiza a verificao dos pacotes que so enviados na rede. Na mquina virtual, utilize um Terminal para rodar o comando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes da instalao ser solicitada a senha do usurio core. Digite core paraprosseguircomainstalao. 2. Inicie o CORE e abra o arquivo FuncionalidadeNeighborDiscoveryE2.imn localizado no diretrio dodesktopFuncionalidades/NeighborDiscovery,damquina virtualdoNIC.br.Aseguintetopologiainicialderededeveaparecer:

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

17

3. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulaoutilizandoumadasseguintesmaneiras: i. aperteoboto ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra o terminaldocliente,atravsdeduploclique. c. Verifiqueaconfiguraodoclienteatravsdoseguintecomando:
# i p a d d r s h o w

Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdas interfaces. d. Verifiqueaconfiguraodoroteadorcomomesmocomando. Oresultadodeveser:

*Obs: A partir desse comando possvel observar os endereos das interfaces.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

18

4. TestedoenviodamensagemRouterSolicitation: a. Abraoterminaldoroteador,atravsdoduploclique. b. Utilizeoseguintecomandoparainiciaracapturadepacotesdocliente:


# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ n e i g h d i s c _ e 2 . p c a p

Oresultadodeveser:

*Obs: No feche esse terminal atofinaldoexperimento,umavez que,isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia. c. Abraoterminaldocliente,atravsdoduploclique. d. No terminal utilize a seguinte sequencia de comandos, para forar envio de routersolicitation:
# i p l i n k s e t e t h 0 d o w n # i p a d d r a d d 2 0 0 1 : d b 8 : : 1 0 / 6 4 d e v e t h 0 # i p l i n k s e t e t h 0 u p

Oresultadodeveser:

*Obs: Note que esses comandos esto reiniciando erestaurandoainterface eth0,paraocasionaroenviodamensagemRouterSolicitation.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

19

e. Verifiqueaconfiguraodainterfaceeth0sehouvealgumamudana.Utilize ocomando:
# i p a d d r s h o w

Oresultadodeveser:

*Obs:Nodevehavernenhumaalteraonasinterfacescomparadocom seuestadoanterior,vistonopasso3. f. Verifiquearotaaprendidapelafuncionalidadededescobertaderoteadores. Utilizeocomando:


# i p 6 r o u t e

Oresultadodeveser:

e. No terminal do roteador, encerre a captura de pacotes atravs dasequncia Ctrl+C. Oresultadodeveser:

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

20

*Obs: Aquantidadedepacotes podevariardeacordocom otempoesperado paradarocomandoCtrl+C. 5. Encerreasimulaocomumdosseguintescomandos: i. ii. aperteoboto utilizeomenuExperiment>Stop.

6. A verificao dos pacotes capturados ser realizada atravs do programa Wireshark. Para inicilo execute o seguinte comando em um terminal da mquina virtual:
$ w i r e s h a r k

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

21

a. Abraoarquivo/tmp/captura_neighdisc_e2.pcapcomomenuFile>Open: b. Procure pelos pacotes RouterSolicitationeRouterAdvertisement.Analiseos evejaqueosdadoscontidosnopacoteconferecomospassadosnateoria.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

22

RouterSolicitation:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo(33:33:00:00:00:02).Oprefixo33:33 indica que a mensagem um multicast na camada Ethernet. O sufixo ff:00:00:02 indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet): a origem o MAC address da interface do dispositivo cliente queenviouamensagem(00:00:00:aa:00:00). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual o prximo cabealho (de extenso do IPv6), no caso,ovalor58(0x3a)refereseumamensagemICMPv6. Source (IPv6): oendereoipv6delink localdainterfacequeoriginouamensagem (fe80::200:ff:feaa:0). Destination(IPv6):odestinooendereoipv6MulticastAllRouters(ff02::2). Type(ICMPv6):indicaqueamensagemdotipo133(RouterSolicitation). ICMPv6Option(ICMPv6):indicaasopesdopacoteICMPv6: SourceLinkLayerAddress Type: indica o tipo de dado da mensagem ICMPv6. Em nosso caso, eladotipoSourcelinklayeraddress . Linklayer address : indica o MAC address doendereode origem da mensagem.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

23

RouterAdvertisement:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo(33:33:00:00:00:01).Oprefixo33:33 indica que a mensagem um multicast na camada Ethernet. O sufixo ff:00:00:01 indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet):aorigem oMACaddress dainterfacedoroteadorqueenvioua mensagem(00:00:00:aa:00:01). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual o prximo cabealho (de extenso do IPv6), no caso,ovalor58(0x3a)refereseumamensagemICMPv6. Source (IPv6): o ip de link local da interface que originou a resposta, que neste casooroteador(fe80::200:ff:feaa:1). Destination(IPv6):odestinooendereoMulticastAllnodes(ff02::1). Type(ICMPv6):indicaqueamensagemdotipo134(RouterAdvertisement). ICMPv6Option(ICMPv6):indicaasopesdopacoteICMPv6: SourceLinkLayerAddress Type: indica o tipo de dado da mensagem ICMPv6. Em nosso caso, eladotipoSourcelinklayeraddress . Linklayer address : indica o MAC address doendereode origem da mensagem,quenestecasooroteador.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

24

Experincia3RouterAdvertisement
1. Inicie o CORE e abra o arquivo FuncionalidadeNeighborDiscoveryE3.imn localizado no diretrio dodesktopFuncionalidades/NeighborDiscovery,damquina virtualdoNIC.br.Aseguintetopologiainicialderededeveaparecerdeveaparecer:

2. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulaocomumdosseguintescomandos: i. aperteoboto ii. utilizeomenuExperiment>Start. b. EspereatqueoCOREtermineainicializaodasimulaoeabrao terminaldocliente,atravsdoduploclique. c. Verifiquequeaconfiguraodoclienteatravsdoseguintecomando:


# i p a d d r s h o w

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

25

Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdas interfaces. d. Verifiquequeaconfiguraodoroteadoratravsdomesmocomando. Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdas interfaces. 3. EditandoasconfiguraesdoQuagga,paraenviaramensagemRouter Advertisement. a. Abraoterminaldoroteador,atravsdoduploclique. b. Utilizeoseguintecomandoparavisualizaroarquivodeconfiguraodo quagga,chamadoQuagga.conf:


# c a t / u s r / l o c a l / e t c / q u a g g a / Q u a g g a . c o n f

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

26

Oresultadodeveser:

c. Editeessearquivodeconfigurao(Quagga.conf),adicionandoas seguinteslinhasdentrodoescopodainterface(ouseja,entreaslinhas interfaceeth0e!:


n o i p v 6 n d s u p p r e s s r a i p v 6 n d r a i n t e r v a l 5

Oresultadodeveser:

*Obs:umeditordetextopresentenamquinavirtualquepodeserutilizado onano.Parauslodigitenoterminal:
# n a n o / u s r / l o c a l / e t c / q u a g g a / Q u a g g a . c o n f

Nonano,asequnciautilizadaparasalvaroarquivoCTRLOeparasair CTRLX. 4. TestedasnovasconfiguraesdoQuagga. a. Abraoterminaldocliente,atravsdoduploclique. b. Utilizeoseguintecomandoparainiciaracapturadeenviadospacotespelo roteador:


# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ n e i g h d i s c _ e 3 . p c a p

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

27

Oresultadodeveser:

*Obs:Nofecheesseterminalatofinaldoexperimento,umavezque,isso ocasionarnotrminodaexecuodocomandotcpdumpeprejudicaro andamentodaexperincia. c. Abraoterminaldoroteador,atravsdoduploclique. d. Utilizeoseguintecomandoparainiciaroquaggacomasnovas configuraes:


# . / b o o t . s h

Oresultadodeveser:

g. Esperealgunssegundoseabraumnovoterminaldocliente.Verifiquearota aprendidapelafuncionalidadededescobertaderoteadores.Utilizeo comando:


# i p 6 r o u t e

Oresultadodeveser:

e. Noterminaldocliente,encerreacapturadepacotesatravsdasequncia Ctrl+C.
IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

28

Oresultadodeveser:

*Obs:Aquantidadedepacotespodevariardeacordocomotempoesperado paradarocomandoCtrl+C. 5. Encerreasimulaoutilizandoumdosseguintescomandos: a. aperteoboto b. utilizeomenuExperiment>Stop. 6. A verificao dos pacotes capturados ser realizada atravs do programa Wireshark. Para inicilo execute o seguinte comando em um terminal da mquina virtual:
$ w i r e s h a r k

a. Abraoarquivo/tmp/captura_neighdisc_e3.pcapcomomenuFile>Open: b. Procure pelo pacote Router Advertisement. Analiseo e veja se os dados contidosnopacoteconferemcomoquefoipassadonateoria.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

29

RouterAdvertisement:

*Obsofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo MAC (33:33:00:00:00:01).Oprefixo 33:33 indica que a mensagem um multicast na camada Ethernet. O sufixo ff:00:00:01indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet):aorigem oMACaddress dainterfacedoroteadorqueenvioua mensagem(00:00:00:aa:00:01). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual o prximo cabealho (de extenso do IPv6), no caso,ovalor58(0x3a)refereseumamensagemICMPv6. Source (IPv6): a origem o endereo IP de link local da interface que originou a mensagem,quenestecasooroteador(fe80::200:ff:feaa:1). Destination(IPv6):odestinooendereoMulticastAllNodes(ff02::1). Type(ICMPv6):indicaqueamensagemdotipo134(RouterAdvertisement). ICMPv6Option(ICMPv6):indicaasopesdopacoteICMPv6: SourceLinkLayerAddress Type: indica o tipo de dado da mensagem ICMPv6. Em nosso caso, eladotipoSourcelinklayeraddress . Linklayer address : indica o MACaddress dainterfaceapartirdaqual a mensagem de Router Advertisement foi enviada, neste caso, 00:00:00:aa:00:01.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

30

31

IPV6NeighborDiscoveryProtocol
Experincia4Detecodeendereosduplicados Objetivo
Esta experincia possui o objetivo de apresentar o funcionamento do mecanismo de deteco de endereos duplicados, atravs do estudo das mensagens de Neighbor Solicitation,NeighborAdvertisementeReply . Para a realizao do presente exercicio ser utilizada a topologia descrita no arquivo: FuncionalidadeNeighborDiscoveryE4.imn.

IntroduoTerica
Adetecodeendereos duplicados um procedimentorealizadopelos ns paraverificara unicidade de seus endereos unicast no enlace, antes de se atribuir a uma interface. Independente da maneiraquesefoiobtidooendereo,sejamanualmente,autoconfigurao stateless ou autoconfigurao stateful, endereos duplicados no devem ser aceitos em redesIPv6. O mecanismo consiste no envio de uma mensagem Neighbor Solicitation pelo dispositivo que est tentando adicionar o endereo interface.Essamensagem ,ento,transmitidaa todos os ns do enlace (destino Multicast All Nodes) procurando pela existncia de um n utilizando o mesmo endereo. Para isso, ele carrega o campo source do IPv6 vazio e o targetdoICMPv6comoendereorequisitado. Caso se receba umamensagem NeighborAdvertisement,oprocessodeconfiguraoser interrompido e o endereo no poder ser utilizado. Nessa situao, o conflito s solucionadomanualmente,comadiodeumnovoendereoemumdosdoisdispositivos. Caso tempo de espera de1segundo(valorquepodeseralteradoparadiferentes links)seja ultrapassado e no seja recebida nenhuma mensagem, o dispositivo poder ento finalizar suaconfiguraodeinterface.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

32

RoteiroExperimental
1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br preciso, antes de comear a experincia, instalar alguns softwares para auxiliar no aprendizado (casocontrriovparaopasso2). Sigaopassoaseguirpararealizarainstalao: a. Para fazer algumas verificaes durante o experimento ser necessrio a utilizao do programa Wireshark que realiza a verificao dos pacotes que trafegam na rede. Na mquina virtual, utilize um Terminal para rodar o comando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes dainstalaosersolicitadaasenhadousuriocore.Digitecorepara prosseguircomainstalao. 2. Inicie o CORE e abra o arquivo FuncionalidadeNeighborDiscoveryE4.imn localizado no diretrio dodesktopFuncionalidades/NeighborDiscovery,damquina virtualdoNIC.br.Aseguintetopologiainicialdeveaparecer:

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

33

3. Verifiqueaconfiguraodosnsdatopologia: a. Inicieasimulaorealizandoumdosseguintespassos: i. aperteoboto ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra o terminaldoservidororiginal,comumduploclique. c. Verifiqueaconfiguraodooriginalatravsdoseguintecomando:
# i p a d d r

Oresultadodeveser:

*Obs: A partir desse comando possvel observar os endereos das interfaces. d. Verifiqueaconfiguraodoservidorcopiacomomesmocomando. Oresultadodeveser:

*Obs: A partir desse comando possvel observar os endereos das interfaces.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

34

e. Verifiqueaconfiguraodamquinaclientecomomesmocomando. Oresultadodeveser:

*Obs: A partir desse comando possvel observar os endereos das interfaces. 4. Para analisar o comportamento do procolo com a duplio de IPs, o endereo da mquinaoriginalsercopiadoparaamquinacopia: a. Abraoterminaldamquinaoriginal b. Utilize o seguinte comando para iniciar a captura de pacotes enviados para essedispositivo:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ n e i g h d i s c _ e 4 1 . p c a p

Oresultadodeveser:

*Obs: No feche esse terminal atofinaldoexperimento,umavez que,isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia. c. Abraoterminaldamquinacopia d. E, em seguida, digite os seguintes comandos para trocar o endereo IPv6 pelomesmodamquinaoriginal:
# i p a d d r d e l 2 0 0 1 : d b 8 : : 1 1 / 6 4 d e v e t h 0 # i p a d d r a d d 2 0 0 1 : d b 8 : : 1 0 / 6 4 d e v e t h 0

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

35

Oresultadodeveser:

e. Verifiqueanovaconfiguraocriada,atravsdocomando:
# i p a d d r

Oresultadodeveser:

*Obs:Observequeoendereocopiadojaparecenasconfiguraes, contudo,issonoindicaqueodispositivootenhaaceitadoelenasua interface.Adianteveremosseelefoiounoadicionado. f. Em seguida utilize o seguinte comando para iniciar a captura de pacotes enviadosparaesseip:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ n e i g h d i s c _ e 4 2 . p c a p

Oresultadodeveser:

*Obs: No feche esse terminal atofinaldoexperimento,umavez que,isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

36

5. Testeaconectividadeipv6paraoendereoduplicado. a. Abraumterminaldamquinacliente b. UtilizeoseguintecomandoparaenviarpacotesaoendereoIPduplicado:


# p i n g 6 c 4 2 0 0 1 : d b 8 : : 1 0

Oresultadodeveser:

*Obs: Note que alguma mquina respondeu ao comando de ping. Adiante veremosqualdasduasfoi. c. No terminal do servidor original, encerre a captura de pacotes atravs da sequnciaCtrl+C. Oresultadodeveser:

*Obs: Aquantidadedepacotes podevariardeacordocom otempoesperado paradarocomandoCtrl+C. d. No terminal do servidor copia, encerre a captura de pacotes utilizando a sequnciaCtrl+C.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

37

Oresultadodeveser:

*Obs: Aquantidadedepacotes podevariardeacordocom otempoesperado paradarocomandoCtrl+C. 6. Encerreasimulaocomumdosseguintescomandos: a. aperteoboto b. utilizeomenuExperiment>Stop. 7. Para verificar os pacotes capturados,serutilizadooprogramaWireshark,quepode serabertocomaexecuodoseguintecomandonamquinavirtual:
$ w i r e s h a r k

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

38

a. Abra o arquivo da captura de pacotes da mquina original de nome /tmp/captura_neighdisc_e41.pcapcomomenuFile>Open b. Procure pelos pacotes de Neighbor Solicitation (com Source ::) , Neighbor Advertisement (resposta ao Neighbor Solicitation anterior) e Ping Reply . Analiseos e veja se os dados contidos nos pacotes conferem com oquefoi passadonateoria.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

39

NeighborSolicitation:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo (33:33:ff:00:00:10), sendo que o prefixo 33:33 indica queamensagem um multicastnacamadaEthernete,osufixo ff:00:00:10indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet): a origem o MAC address da interface do dispositivo que enviouamensagem(00:00:00:aa:00:01). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual o prximo cabealho (de extenso do IPv6), no caso,ovalor58(0x3a)refereseumamensagemICMPv6. Source(IPv6):aorigemnoespecificada,endereo::. Destination(IPv6):odestinooendereomulticastSolicitedNode(ff02::1:ff00:10). Type(ICMPv6):indicaqueamensagemdotipo135(NeighborSolicitation). Target(ICMPv6):essecampodocontmoendereoIPv6procurado(2001:db8::10).

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

40

NeighborAdvertisement:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination(Ethernet):odestinooendereoMAC(33:33:00:00:00:01),sendoque o prefixo 33:33 indica que a mensagem um multicast na camada Ethernet e o sufixo 00:00:00:01 indica os ltimos 32 bits do endereo multicast IPv6 da mensagem. Source (Ethernet): a fonte o MAC address da interface do dispositivoqueenviou aresposta(00:00:00:aa:00:00). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual o prximo cabealho (de extenso do IPv6), no caso,ovalor58(0x3a)refereseumamensagemICMPv6. Source (IPv6): a origem o endereo IP da interface que enviou a mensagem de NeighborAdvertisement(2001:db8::10),emrespostaaoNeighborSolicitation. Destination(IPv6):odestinooendereomulticastAllNode(ff02::1). Type(ICMPv6):indicaqueamensagemdotipo136(NeighborAdvertisement). Flags(ICMPv6):umamensagemdotipoNeighborAdvertisementpossui3flags: A primeira indica se quem est enviando um roteador.Em nossocaso,ela estmarcadacom0. Asegundaindicaseamensagem umarespostaaum NeighborSolicitation. Contudo, elanodeveserativadaem respostas multicast,comonapresente situao. A terceiraindicaseainformaocarregadanamensagem umaatualizao deendereodealgumndarede.Nonossocaso,estsetadaem1.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

41

Target Address(ICMPv6):indicaoendereoIPsobreoqualas flags informam.Em nosso caso, o prprio endereo do dispositivo que gera a mensagem Neighbor Advertisement(mquinaoriginal)(2001:db8::10). ICMPv6Option(ICMPv6):indicaasopesdopacoteICMPv6: TargetLinkLayerAddress Type: indica o tipo de dado da mensagem ICMPv6. Em nosso caso, eladotipoTargetlinklayeraddress . Linklayer address : indica o MAC address da interface do dispositivo original(00:00:00:aa:00:00). Reply:

Observequeodispositivooriginalrespondeutodasasmensagenspingrequest. c. Abra o arquivo da captura de pacotes da mquina copia de nome /tmp/captura_neighdisc_e42.pcapcomomenuFile>Open d. Procureporalgumpacoteenviadodiretamenteaocopia.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

42

Observe que a interface do endereo copiado no capturou nenhum pacote direcionado ao ip copiado. As mensagens capturadas sero simplesmente direcionadosaolinklocaloumulticast.

IPv6.brLaboratrioNeighborDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

43

44

IPv6AutoconfiguraodeEndereosStateless
Objetivo
Esta experincia possui como objetivo apresentar o funcionamento da autoconfigurao stateless de endereos IPv6 atravs da configurao de mensagens Router Advertisement enviadas pelo pelo Quagga, uma plataforma de roteamento para servidores UNIX, e pelo RADVD, um daemon para sistema operacional Linux responsvel por implementar o envio dessetipodemensagem. Para a realizao do presente exercicio ser utilizada a topologia descrita no arquivo: Auto_confE1.imneAuto_confE2.imn.

IntroduoTerica
Autoconfigurao Stateless, atravs de mensagem Router Advertisement, um procedimento utilizado por roteadores para transmitir as informaes necessrias autoconfigurao de outrosnsdarede. Essas caractersticas podem tanto ser requisitadas pelos dispositivos, com a mensagem Router Solicitation, quanto serem enviadas periodicamente pelos roteadores. Independente do modo, aps o recebimento da mensagem Router Advertisement, iniciase o procedimento DuplicateAddressDetectionparaevitaracriaodeendereosrepetidosnoenlace. Este protocolo denominado stateless, pois, o dispositivo que fornece informaes de configurao no mantm o registro do estadoecaracteristicas dondestinatrio, enquantoo ndestinoseencarregadesuaprpriaconfigurao.

RoteiroExperimental
Experincia1QuaggaRouterAdvertisement
1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br preciso, antes de comear a experincia, instalar alguns softwares para auxiliar no aprendizado (caso contrriovparaopasso2).Sigaopassoaseguirpararealizarainstalao:

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.0301

45

a. Para fazer algumas verificaes durante o experimento ser necessrio a utilizao do programa Wireshark, que melhora a visualizao de pacotes transmitidos na rede. Na mquina virtual, utilize um Terminal para rodar o comando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao. 2. Inicie o CORE e abra o arquivo Auto_ConfE1.imn localizado nodiretriododesktop Funcionalidades/AutoStateless, da mquina virtual do NIC.br. A seguinte topologia inicialderededeveaparecerdeveaparecer:

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.0301

46

3. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulaorealizandoumdosseguintespassos: i. aperteoboto ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra o terminal doclienteatravsdoduploclique. c. Observeaconfiguraodoclientecomoseguintecomando:
# i p a d d r

Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces. d. Observeaconfiguraodoroteadorcomomesmocomando. Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces.

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.0301

47

4. Edite as configuraes do Quagga, para enviar mensagens Router Advertisement contendoinformaesdeconfiguraoparaocliente. a. Abraoterminaldoclientecomumduploclique. b. Utilizeoseguintecomandoparainiciaracapturadepacotesdoroteador:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ a u t o _ c o n f _ e 1 . p c a p

Oresultadodeveser:

*Obs: No feche esse terminal at o final do experimento, uma vez que, isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia. c. Abraoterminaldoroteadorcomumduploclique. d. SubstituaocontedodoarquivoQuagga.conflocalizadonapasta /usr/local/etc/quaggapeloseguinte:
i n t e r f a c e e t h 0 i p v 6 a d d r e s s 2 0 0 1 : d b 8 : 1 : : 1 / 6 4 n o i p v 6 n d s u p p r e s s r a i p v 6 n d r a i n t e r v a l 5 i p v 6 n d p r e f i x 2 0 0 1 : d b 8 : 1 : : / 6 4 !

*Obs:NaversoatualdoquaggainstaladonoCORE,nopossivelenviaro DNSviaRouterAdvertisement. Maisinformaessobreessaconfiguraopodemserencontradasem: http://www.nongnu.org/quagga/docs/docsinfo.html#SEC140

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.0301

48

Oresultadodeveser:

*Obs:umeditordetextopresentenamquinavirtualquepodeserutilizadoo nano.Parauslodigitenoterminal:
# n a n o / u s r / l o c a l / e t c / q u a g g a / Q u a g g a . c o n f

Nonano,asequnciautilizadaparasalvaroarquivoCTRLOeparasair CTRLX. e. Em seguida, execute o script que reinicia as configuraes do quagga. Ele se encontranapastabasedoroteador(pastainicialquandoseabreoterminal):
# . / b o o t . s h

Oresultadodeveser:

5. TesteaconectividadeIPv6deumnaooutro. a. Abraoterminaldoclientecomumdeduploclique. b. Espere alguns segundos e digite o seguinte comando paraobservaroendereo adquirido:
# i p a d d r

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.0301

49

Oresultadodeveser:

*Obs:Noteaexistnciadoendereodeescopoglobalnainterfaceeth0. c. Emseguida,abraoterminaldoroteadorcomumduploclique. d. Inicie o envio de pacotes para o novo ip, para testar a conectividade atravs do seguintecomando:
# p i n g 6 c 4 2 0 0 1 : d b 8 : 1 : 0 : 2 0 0 : f f : f e a a : 1

Oresultadodeveser:

*Obs:oipdeveserodocliente,obtidopelocomandoanterior. e. No terminal do cliente, encerre a captura de pacotes atravs da sequncia Ctrl+C.

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.0301

50

Oresultadodeveser:

*Obs: A quantidade de pacotes pode variar de acordo com o tempo esperado paradarocomandoCtrl+C. 6. Encerreasimulaocomumadasseguintesaes: a. aperteoboto b. utilizeomenuExperiment>Stop 7. A verificao dos pacotes capturados ser realizada atravs do programa Wireshark. Parainiciloexecuteoseguintecomandoemumterminaldamquinavirtual:
$ w i r e s h a r k

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.0301

51

a. Abraoarquivo/tmp/captura_auto_conf_e1.pcapcomomenuFile>Open: b. Procure por um pacote Router Advertisementquecontenhaoprotocoloopcional Prefix Information. Analiseo e veja que os dados contidos no pacote conferem comoquefoipassadonateoria.

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.0301

52

RouterAdvertisement:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo MAC (33:33:00:00:00:01) sendo que o prefixo 33:33 indica que a mensagem um multicast na camada Ethernet e, que o sufixo00:00:00:01indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet): a origem o MAC Address da interface do roteador que enviou a mensagem(00:00:00:aa:00:00). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho(deextensodoIPv6),nocaso, ovalor58(0x3a)refereseumamensagemICMPv6. Source (IPv6): a origem o endereo IP de link local da interface que envia a mensagem(fe80::200:ff:feaa:0). Destination(IPv6):odestinooendereoMulticastAllNodes (ff02::1). Type(ICMPv6):indicaqueamensagemdotipo134(RouterAdvertisement). ICMPv6Option(ICMPv6):indicaasopesdopacoteICMPv6: PrefixInformation Type:contmovalor3queidentificaoPrefixInformation. Autonomous AddressConfiguration Flag (A): indicaseoprefixodeveser
IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.0301

53

utilizadoparaautoconfiguraostateless(1). Preferred Lifetime: marca o tempo, em segundos, que o endereo preferencial, ou seja, um endereoquepodeserutilizadoindistintamente. Ovalor(0xffffffff)indicainfinito. Valid Lifetime: marca o tempo, em segundos, de expirao do endereo gerado.Ovalor(0xffffffff)indicainfinito. Prefix :contmoprefixoderedeaserutilizado(2001:db8:1::). Prefixlength:contmotamanhodoprefixodarede. SourceLinkLayerAddress Type:indicaotipodedadodamensagem ICMPv6.Em nossocaso,ela dotipoSourcelinklayeraddress Linklayer address : indica o MAC address do endereo de origem da mensagem.

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.0301

54

RoteiroExperimental
Experincia2RadvdRouterAdvertisement Experincia
1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br preciso, antes de comear a experincia, instalar alguns softwares para auxiliar no aprendizado (caso contrriovparaopasso2).Sigaopassoaseguirpararealizarainstalao: a. Para fazer algumas verificaes durante o experimento ser necessrio a utilizao do programa Wireshark, que melhora a visualizao de pacotes transmitidos na rede. Na mquina virtual, utilize um Terminal para rodar o comando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao. b. O radvd, que realiza o envio do tamanho do valor de MTU a ser configurado. Parainstallouseocomando:
$ s u d o a p t g e t i n s t a l l r a d v d

Caso haja algum problema no pacote oferecido, podese baixalo no endereo: http://packages.ubuntu.com/hardy/radvd(acessadoem2012). c. O ndisc6, que permite a descoberta do valor MTU configurado no link. Para installouseocomando:
$ s u d o a p t g e t i n s t a l l n d i s c 6

Caso haja algum problema no pacote oferecido, podese baixalo no endereo: https://launchpad.net/ubuntu/maverick/+package/ndisc6(acessadoem2012). d. O rdnssd, que permite a captura de dados sobre odns em um ncliente. Para installouseocomando:
$ s u d o a p t g e t i n s t a l l r d n s s d

Caso haja algum problema no pacote oferecido, podese baixalo no endereo: http://packages.debian.org/squeeze/rdnssd(acessadoem2012).

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

55

2. Inicieaconfiguraodasimulao. a. Numterminaldamquinavirtualdigiteoseguintecomando:
$ / h o m e / c o r e / s i m u l a c a o f u n c B a s i c . s h s t a r t

Casonecessrio,digitecorecomosenhaparaprosseguircomaconfigurao. Oresultadodeveser:

3. Inicie o CORE e abra o arquivo AutoConfE2.imn localizado no diretrio do desktop Funcionalidades/AutoStateless, da mquina virtual do NIC.br. A seguinte topologia inicialderededeveaparecer:

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

56

4. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulaorealizandoumdosseguintespassos: i. aperteoboto ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra o terminal doclientecomumduploclique. c. Observeaconfiguraodoclientecomoseguintecomando:
# i p a d d r

Oresultadodeveser:

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

57

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces. d. Observe a configurao do roteador utilizando o mesmocomando.Oresultado deveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces. e. Observe a configurao do ServidorDNS utilizando o mesmo comando. O resultadodeveser:

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

58

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces. 5. InicieoservioDNSnoServidorDNS. a. AbraoterminaldoServidorDNScomumduploclique. b. UtilizeoseguintecomandoparainiciaroservioDNS:


# d n s m a s q i e t h 0

Oresultadodeveser:

6. ConfigureoclienteparacapturarasconfiguraesdoDNS. a. Abraoterminaldoclienteatravsdoduploclique. b. Utilize o seguinte comando para iniciar o programa que coleta informaes de DNS.
# / e t c / i n i t . d / r d n s s d s t a r t

Oresultadodeveser:

7. Edite as configuraes do RADVD, para enviar a mensagem Router Advertisement contendoinformesdeconfiguraoparaocliente. a. No terminal do cliente, utilize o seguinte comando para iniciar a captura de pacotesdoroteador:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ a u t o _ c o n f _ e 2 . p c a p
IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

59

Oresultadodeveser:

*Obs: No feche esse terminal at o final do experimento, uma vez que, isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia. b. Abraoterminaldoroteadorcomumduploclique. c. Crie um arquivo dentro da pasta base do roteador sem premisso de escrita paraoutrosusurioscomosseguintescomandos:
# t o u c h r a d v d . c o n f # c h m o d o w r a d v d . c o n f

Oresultadodeveser:

d.

Editeoarquivocriadoparaqueelecontenhaasseguinteslinhas:

i n t e r f a c e e t h 0 { A d v S e n d A d v e r t o n A d v L i n k M T U 1 4 0 0 p r e f i x 2 0 0 1 : d b 8 : 1 : : / 6 4 { A d v O n L i n k o n A d v A u t o n o m o u s o n } r o u t e : : / 0 { } R D N S S 2 0 0 1 : d b 8 : 1 : : 1 1 { } }
IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

60

*Obs:Maisinformaessobreessaconfiguraopodemserencontradasem: http://linux.die.net/man/5/radvd.conf(Acessadoem26/04/2012) Oresultadodeveser:

*Obs:umeditordetextopresentenamquinavirtualquepodeserutilizadoo nano.Parauslodigitenoterminal:
# n a n o r a d v d . c o n f

Nonano,asequnciautilizadaparasalvaroarquivoCTRLOeparasair CTRLX.

e. Depois,inicieoprogramaradvdcomessasconfiguraesatravsdocomando:
# r a d v d C r a d v d . c o n f

Oresultadodeveser:

8. Verifiqueasconfiguraesenviadaspeloroteadoraosoutrosnsdarede: a. Abraoutroterminaldoclienteatravsdeduploclique. b. Digiteoseguintecomandoparaobservarascaractersticasdoenlace:

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

61

# r d i s c 6 e t h 0

Oresultadodeveser:

*Obs:Noteosdadosenviadospeloroteadoraocliente.

9. TesteaconectividadeIPv6entreoclienteeoServidorDNS. a. Abraoterminaldoclienteatravsdoduploclique. b. Verifiquesuaconfiguraoatravsdocomando:


# i p a d d r

Oresultadodeveser:

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

62

*Obs:NoteoendereoobtidoviaautoconfiguraoStateless. c. TesteoservioDNSatravsdocomando:
# d i g i p v 6 . b r

Oresultadodeveser:

*Obs:NotequeoservidorDNSrespondeuarequisiodocliente. d. Verifiqueasrotasutilizadasatravsdocomando:
# r o u t e A i n e t 6 n

Oresultadodeveser:

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

63

e. AbraoterminaldoServidorDNScomumduploclique. f. TesteaconectividadecomoclientedoservidorDNSutilizandoocomando:
# p i n g 6 c 4 2 0 0 1 : d b 8 : 1 : 0 : 2 0 0 : f f : f e a a : 0

Oresultadodeveser:

*Obs:Notequeoendereoipobtidocomunicvelnarede. g. No terminal do cliente, encerre a captura de pacotes atravs da sequncia Ctrl+C.

Oresultadodeveser:

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

64

*Obs: A quantidade de pacotes pode variar de acordo com o tempo esperado paradarocomandoCtrl+C. 10. Encerreasimulaocomumadasseguintesaes: a. aperteoboto b. utilizeomenuExperiment>Stop. 11. A verificao dos pacotes capturados ser realizada atravs do programa Wireshark. Parainiciloexecuteoseguintecomandoemumterminaldamquinavirtual:
$ w i r e s h a r k

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

65

a. Abraoarquivo/tmp/captura_auto_conf_e2.pcapcomomenuFile>Open: b. Procure um pacote do tipo Router Advertisement que contenha o protocolo opcional Prefix Information. Analiseo e veja que os dados contidos nos pacotes conferemcomoquefoipassadonateoria.

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

66

RouterAdvertisement:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo MAC (33:33:00:00:00:01), sendo queo prefixo 33:33 indica que a mensagem um multicast na camada Ethernet e o sufixo 00:00:00:01indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet): a origem o endereo MAC da interface do roteador (00:00:00:aa:00:02). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho(deextensodoIPv6),nocaso, ovalor58(0x3a)refereseumamensagemICMPv6. Source (IPv6): a origem o endereo IP de link local da interface que enviou a mensagem(fe80::200:ff:feaa:2). Destination(IPv6):odestinooendereoMulticastAllnodes (ff02::1). Type(ICMPv6):indicaqueamensagemdotipo134(RouterAdvertisement). ICMPv6Option(ICMPv6):indicaasopesdopacoteICMPv6: PrefixInformation Type: indica o tipo dedadodamensagem ICMPv6.Nonossocaso,ela dotipoPrefixinformation,3 Autonomous AddressConfiguration Flag (A): indicaseoprefixodeveser
IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

67

utilizadoparaautoconfiguraostateless(1). Preferred Lifetime: marca o tempo, em segundos, que o endereo preferencial, ou seja, um endereoquepodeserutilizadoindistintamente. Ovalor(0xffffffff)indicainfinito. Valid Lifetime: marca o tempo, em segundos, de expirao do endereo gerado.Ovalor(0xffffffff)indicainfinito. Prefix :contmoprefixoderedeaserutilizado(2001:db8:1::). PrefixLength:contmotamanhobitsdoPrefixoinformado SourceLinkLayerAddress Type: indica o tipo dedadodamensagem ICMPv6.Nonossocaso,ela dotipoSourcelinklayeraddress,1 Linklayer address : indica o MAC address da interface que originou a mensagem. RouteInformation Type: indica o tipo dedadodamensagem ICMPv6.Nonossocaso,ela dotipoRouteInformation,24. Prefix :indicaumprefixoquepodeseralcanavelporesseroteador(::0). Length:indicaotamanhodesseprefixo(24). RecursiveDNSServer Type: indica o tipo dedadodamensagem ICMPv6.Nonossocaso,ela dotipoRecursiveDNSServer,25 Recursive DNS Sever: indica o endereo IPv6 do servidor DNS configurado(2001:db8:1::11) MTU Type: indica o tipo dedadodamensagem ICMPv6.Nonossocaso,ela dotipoMTU,5 MTU:indicaotamanhomximoaserutilizadonaqueleenlace(1400).

IPv6.brLaboratrioAutoconfiguraoStatelessNIC.brhttp://ipv6.brrev.2012.05.2501

68

IPV6DHCPv6
Experincia1DHCPv6FullSolicit,Advertise,RequesteReply Objetivo
Esta experincia tem como objetivo apresentar o funcionamento do DHCPv6 stateful, ou seja, queenviadadosdeconfiguraesopcionais,DNS,eoendereoIPv6. Para a realizao do presente exercicio ser utilizada a topologia descrita no arquivo: DHCPv6E1.imn.

IntroduoTerica
O Dynamic Host Configuration Protocol (DHCP) um protocolo de autoconfigurao stateful, utilizado para distribuir endereos IP e informaes de rede dinamicamente. Contudo, suas implementaes IPv6 possuem significativas diferenas e particularidades com relao ao IPv4, o que torna estas implementaes incompatveis entre si. Nessa experincia, apenas o DHCPv6operandocomostatefulserobservado. A arquitetura clienteservidor utilizada como base do funcionamento desse protocolo. Em cada rede, deve haver um servidor capaz de decidir sobre a configurao de cada uma das interfaces de redepresentes.Napratica,acomunicaoentreoservidorDHCPeas mquinas clientesedcomatrocadequatromensagens: Solicit enviada pelo cliente, com endereo Multicast Agent DHCP (ff02::1:2), para a redecomointuitodeencontraroServidorDHCP Advertise enviada pelo Servidor DHCP, diretamente ao endereo de link local do cliente,paraindicarqueelepodefornecerasinformaesdeconfiguraonecessrias Request enviada pelo cliente diretamente aoServidorDHCPpararequisitaros dados deconfigurao Reply enviada pelo Servidor DHCP ao endereo de link local do cliente como respostamensagemRequest. Existe uma configurao para o cliente, chamada rapid commit, que permite a troca de informaes com apenas duas mensagens. Contudo, ela s aconselhavel quando a rede possuiapenasumservidorou,quandoexistemmuitosendereosaseremresolvidos. Caso existam roteadores na rede, algumas particularidades no mecanismo DHCPv6
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

69

acontecem, a comear pelo envio, a partir dos roteadores, de informaes sobre as caracteristicas do servio atravs das mensagens do tipo Router Advertisement. Nelas, so ativadas duas opes: AdvManagedFlag, que define a permisso dorecebimentodoendereo IPv6, por meio do servidor DHCPv6, e o AdvOtherConfigFlag, que habilita o recebimento de outrasconfiguraesvindasservidorDHCPv6. H duas maneiras para se retirar ainflunciados roteadores sobreofuncionamentodoDHCP, uma realizada no lado do clienteeououtranoroteador.Noladodocliente,precisoselecionar a opo de no aceitar Router Advertisement. J o roteador precisa ser configurado para no enviaramensagemRouterAdvertisement. A outra particularidade, que ocorre com presena deroteadores narede,acontececasoalgum roteador esteja localizado entre o cliente e o servidor. Nela, o roteador fica tambm encarregado de traduzir as mensagens multicast enviadas pelo cliente para encontrar o servidorDHCP.

RoteiroExperimental
1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br preciso, antes de comear a experincia, instalar alguns softwares para auxiliar no aprendizado (caso contrriovparaopasso2).Sigaopassoaseguirpararealizarasinstalaes: a. Para fazer algumas verificaes durante o experimento ser necessrio a instalao do programa Wireshark que facilita a visualizao dos pacotes enviadosnarede.Namquinavirtual,utilizeumTerminalpararodarocomando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao. b. O dhcpd, que o servio reponsvel pelas tarefas de servidor do DHCP. Para installo, baixe a ltima verso do pacote tar.gz no site http://www.isc.org/software/dhcp (acessado em 10/04/2012) e utilize os seguintescomandosemumTerminal:
$ c d < p a s t a o n d e o a r q u i v o f o i b a i x a d o > $ t a r x f d h c p 4 . 2 . 3 P 2 . t a r . g z $ c d d h c p 4 . 2 . 3 P 2 / $ . / c o n f i g u r e $ m a k e $ s u d o m a k e i n s t a l l

*Obs: Lembresedeutilizaros numeros corretos deversoparaextrairopacote


IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

70

e acessar a pasta com os arquivos de instalao. Depois do comando s u d o ser solicitada a senha do usurio core. Digite core para prosseguir com a instalao. c. O dibblerclient, que realiza as funes de cliente DHCP.Parainstallo,baixe a ltima verso (Acima da 0.8.2) do cdigo fonte no site http://klub.com.pl/dhcpv6/ (acessado em 10/04/2012) e utilize os seguintes comandosemumTerminal:
$ c d < p a s t a o n d e o a r q u i v o f o i b a i x a d o > c. $ t a r x f d i b b l e r 0 . 8 . 2 . t a r . g z

d. e. f. g.

$ c d d i b b l e r 0 . 8 . 2 / $ . / c o n f i g u r e $ m a k e $ s u d o m a k e i n s t a l l

*Obs: Lembresedeutilizaros nmeros corretos deversoparaextrairopacote e acessar a pasta com os arquivos de instalao. Depois do comando s u d o ser solicitada a senha do usurio core. Digite core para prosseguir com a instalao. 2. Inicieaconfiguraodesimulao: a. Numterminaldamquinavirtualdigiteoseguintecomando:
$ / h o m e / c o r e / s i m u l a c a o f u n c B a s i c . s h s t a r t

Casonecessrio,digitecoreparaprosseguircomaconfigurao. Oresultadodeveser:

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

71

3. Inicie o CORE e abra o arquivo DHCPv6E1.imn localizado no diretrio do desktop Funcionalidades/DHCPv6, da mquina virtual do NIC.br. A seguinte topologia deve aparecer:

4. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulaorealizandoumdosseguintespassos: i. cliquenoboto ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine de iniciar a simulao e abra o terminal da mquinacliente,comumduplocliquesobreela. c. Observeaconfiguraoderededoclienteatravsdoseguintecomando:
# i p a d d r

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

72

Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces. d. ObserveaconfiguraodoServidorDHCPv6comomesmocomando. Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

73

e. ObserveaconfiguraodoServidorDNScomomesmocomando. Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces. 5. InicieoservioDNSnoServidorDNS. a. AbraoterminaldoServidorDNS,comumduploclique. b. UtilizeoseguintecomandoparainiciaroservioDNS:


# d n s m a s q i e t h 0

Oresultadodeveser:

6. ConfigureodhcpnoServidorparaenviarasconfiguraesaocliente. a. AbraoterminaldoServidorDHCPv6 b. Crie dois arquivos com os seguintes nomes: dhcpd.conf e dhcp.leases. Para fazerissodigiteoscomandos:
# t o u c h d h c p d . c o n f # t o u c h d h c p d . l e a s e s

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

74

Oresultadodeveser:

c. Editeoarquivodhcpd.conf.Eledeverconteraslinhas:
d e f a u l t l e a s e t i m e 6 0 0 m a x l e a s e t i m e 7 2 0 0 s u b n e t 6 2 0 0 1 : d b 8 : 0 : 1 : : / 6 4 { r a n g e 6 2 0 0 1 : d b 8 : 0 : 1 : : 1 2 9 2 0 0 1 : d b 8 : 0 : 1 : : 2 5 4 o p t i o n d h c p 6 . n a m e s e r v e r s 2 0 0 1 : d b 8 : 0 : 1 : : 1 0 }

*Obs: O campo nameservers contm o endereo da mquina que funcionar como servidor DNS. E, o campo range6 contm afaixadeendereos dentrodo prefixo de subrede configurado que ser distribuida entre os dispositivos clientes. Oresultadodeveser:

*Obs: um editor de texto presente na mquina virtual que pode ser utilizado o nano.Parauslodigitenoterminal:
# n a n o d h c p d . c o n f

No nano, a sequncia utilizada para salvar o arquivo CTRLO e para sair CTRLX. d. Inicieoprogramadodhcpatravsdocomando:
# d h c p d 6 c f d h c p d . c o n f l f d h c p d . l e a s e s

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

75

Oresultadodeveser:

7. Configureodibblerclientnoclienteparareceberasconfiguraesdoservidor. e. Abraoterminaldamquinacliente. f. Dentro da pasta /etc/dibbler, crie um arquivo chamado client.conf com o comando:
# t o u c h / e t c / d i b b l e r / c l i e n t . c o n f

Oresultadodeveser:

g. Incluanessearquivooseguintetexto:
i f a c e e t h 0 { i a o p t i o n d n s s e r v e r }

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

76

Oresultadodeveser:

*Obs: Para essa simulao, a pasta de configuraes do dibbler foi virtualizada para a mquina cliente, porm, normalmente, esse programa instalado com uma configurao padro tambm localizada em /etc/dibbler/client.conf. A nica ressalva necessria que o modo stateless no pode ser acionado quando so feitas requisies de endereo para servidores DHCP. Logo, a seguinte linha do arquivo deve continuar comentada (adio do caracter #) ou, deveserapagada: #s t a t e l e s s

8. EfetueatrocademensagensDHCPnoServidorDHCP. a. Abraoterminaldocliente b. Utilize o seguinte comando para iniciar a captura de pacotes em sua interface interface:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ d h c p v 6 _ e 1 . p c a p

Oresultadodeveser:

*Obs: No feche esse terminal at o final do experimento, uma vez que, isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

77

c. Abraoutroterminaldamquinacliente d. Inicieoprogramadibblerclient:
# d i b b l e r c l i e n t s t a r t

Oresultadodeveser:

e. Espere alguns segundos e utilize o seguinte comando para verificar que endereoIPv6deescopoglobalfoiadquirido:
# i p a d d r

Oresultadodeveser:

*Obs:Noteoendereoipv6adquiridoviaDHCPv6. f. Paravisualizarodnsobtidoviadhcp,digiteocomando:
# c a t / e t c / r e s o l v . c o n f

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

78

Oresultadodeveser:

*Obs:ObserveoendereoIPv6doDNSrecebidoviaDHCPv6.

9. TesteaconectividadeIPv6entreosnsdarede: a. NoterminaldoServidorDNS,utilizeoseguintecomando:
# p i n g 6 c 4 2 0 0 1 : d b 8 : 0 : 1 : : 2 5 4

Oresultadodeveser:

*Obs: O endereo IPv6 deve ser o mesmo que o adquirido via DHCPv6, mostradonopasso8. b. Noterminaldocliente,testeoservioDNScomocomando:
# d i g i p v 6 . b r

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

79

Oresultadodeveser:

*Obs:ObservequeoservidorDNSrespondeuarequisiodocliente.

c. No terminal do cliente, encerre a captura de pacotes atravs da sequncia Ctrl+C. Oresultadodeveser:

*Obs: A quantidade de pacotes pode variar de acordo com o tempo esperado paradarocomandoCtrl+C. 10. Encerreasimulaocomumadasseguintesaes: a. aperteoboto b. utilizeomenuExperiment>Stop.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

80

11. A verificao dos pacotes capturados ser realizada atravs do programa Wireshark. Parainiciloexecuteoseguintecomandoemumterminaldamquinavirtual:
$ w i r e s h a r k

a. Abraoarquivo/tmp/captura_dhcpv6_e1.pcapcomomenuFile>Open b. ProcurepelospacotesSolicit,Advertise,RequesteReply .Analiseosevejaque osdadoscontidosnospacotesconferemcomoquefoipassadonateoria.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

81

Solicit:

*Obs:ofiltrodhcpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino oendereo(33:33:00:01:00:02)sendoqueoprefixo 33:33 indica que a mensagem um multicast na camada Ethernet e o sufixo 00:01:00:02indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet): a origem o MAC address da interface da mquina que enviou a solicitao(00:00:00:aa:00:00). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho,nocaso,ovalor0x11referese umamensagemUDP. Source (IPv6): a origem o endereo IP de link local da interface diretamente conectadaaoenlaceaoqualsefezasolicitao(fe80::200:ff:feaa:0). Destination(IPv6):odestinooendereoMulticastAgentDHCP(ff02::1:2). Source port (UDP): indica a porta que se encontra oserviodhcpv6clientcujoovalor 546. Destination port (UDP): indica a porta que se encontra o servio dhcpv6server no servidor.Seuvalor547. Messagetype(DHCPv6):indicaatravsdovalor1queotipodamensagemSolicit
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

82

Client Identifier (DHCPv6): contm dados daidentificaonicadoclientebaseadano endereofisico. Identity Association for Nontemporary Address (DHCPv6): serve para requisitar o endereoIPv6paraoservidor. OptionRequest(DHCPv6): Requested Option Code: indica a informao que o dispositivo est solicitando aoservidorDHCP,nocaso,DNSRecursiveNameServercomovalor23

Advertise:

*Obs:ofiltrodhcpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo MAC da interface da mquina solicitante(00:00:00:aa:00:00). Source (Ethernet): a origem o MAC address da interface da mquina que enviou a resposta(00:00:00:aa:00:01). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho,nocaso,ovalor0x11referese umamensagemUDP.
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

83

Source (IPv6): a origem o endereo IP de link local da interface do dispositivo que enviouamensagem,ouseja,doServidorDHCP6(fe80::200:ff:feaa:1). Destination (IPv6): o destino o endereo unicast de link local da mquina solicitante (fe80::200:ff:feaa:0). Source port(UDP):indicaaportaqueseencontraoserviodhcpv6servercujoovalor 547. Destination port (UDP): indica a porta que se encontra o servio dhcpv6client cujo o valor546. Message type (DHCPv6): indica atravs do valor 2 que o tipo da mensagem Advertise Identity Association for nontemporary address (DHCPv6): serve para carregar o endereoIPv6paraocliente. IA Address: contm o endereo e as caracteristicas que o cliente deve utilizar (2001:db8:0:1::254). ClientIdentifier(DHCPv6):contm dados daidentificaonicadoclientebaseadaem seuendereofisico. Server Identifier (DHCPv6): contm dados da identificao nica do servidorbaseada emseuendereofisico. DNSrecursivenameserver(DHCPv6): DNS servers address: indica o endereo ipv6 do servidor DNS requisitado (2001:db8:0:1::10)

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

84

Request:

*Obs:ofiltrodhcpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino oendereo(33:33:00:01:00:02)sendoqueoprefixo 33:33 indica que a mensagem um multicast na camada Ethernet e o sufixo 00:01:00:02indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet): a origem o MAC address da interface da mquina cliente (00:00:00:aa:00:00). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho,nocaso,ovalor0x11referese umamensagemUDP. Source (IPv6): a origem o endereo IP de link local da interface do dispositivo que enviouamensagem,ouseja,docliente(fe80::200:ff:feaa:0). Destination(IPv6):odestinooendereoMulticastAgentDHCP(ff02::1:2). Source port (UDP): indica a porta que se encontra oserviodhcpv6clientcujoovalor 546. Destination port (UDP): indica a porta que seencontraoserviodhcpv6servercujoo valor547. Messagetype(DHCPv6):indicaatravsdovalor3queotipodamensagemRequest

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

85

ClientIdentifier(DHCPv6):contm dados daidentificaonicadoclientebaseadaem seuendereofisico. Identity Association for nontemporary address (DHCPv6): serve para confirmar o endereoIPv6recebido. IA Address: contm o endereo e as caracteristicas que o cliente ir utilizar (2001:db8:0:1::254). OptionRequest(DHCPv6): Requested Option Code: indica quais informaes esto sendo solicitadas ao servidorDHCP.Nocaso,oDNSrecursivenameservercomovalor23 Server Identifier (DHCPv6): contm dados da identificao nica do servidorbaseada emseuendereofisico. Reply:

*Obs:ofiltrodhcpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo MAC da interface da mquina cliente (00:00:00:aa:00:00). Source (Ethernet): a origem o MAC address da mquina que est enviando a resposta(00:00:00:aa:00:01). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd).
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

86

Next Header (IPv6): indica qual oprximocabealho,nocaso,ovalor0x11referese umamensagemUDP. Source (IPv6): a origem o endereo IP de link local da interface do dispositivo que enviouamensagem,ouseja,doServidorDHCPv6(fe80::200:ff:feaa:1). Destination (IPv6): o destino o endereo IPv6 unicast de link local do cliente (fe80::200:ff:feaa:0). Source port(UDP):indicaaportaqueseencontraoserviodhcpv6servercujoovalor 547. Destination port (UDP): indica a porta que se encontra o servio dhcpv6client cujo o valor546. Messagetype(DHCPv6):indicaatravsdovalor7queotipodamensagemReply Identity Association for nontemporary address (DHCPv6): serve para confirmar o endereoIPv6fornecido. IA Address: contm o endereo e as caracteristicas que o cliente ir utilizar (2001:db8:0:1::254). ClientIdentifier(DHCPv6):contm dados daidentificaonicadoclientebaseadaem seuendereofisico. Server Identifier (DHCPv6): contm dados da identificao nica do servidorbaseada emseuendereofisico. DNSrecursivenameserver(DHCPv6): DNSserversaddress:indicaoendereoIPv6doservidorDNSrequisitado (2001:db8:0:1::10)

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

87

IPV6DHCPv6
Experincia2DHCPv6statelessInformationRequesteReply Objetivo
Esta experincia possui como objetivo apresentar o funcionamento do DHCPv6 em modo stateless, ou seja, o modo em que o servidor DHCPv6 envia apenas dados de configuraes opcionais, como as referentes ao DNS, sendo o endereo IPv6 fornecido via Router Advertisement. Para a realizao do presente exercicio ser utilizada a topologia descrita no arquivo: DHCPv6E2.imn.

IntroduoTerica
O DHCPv6 possui dois modos de operao, um stateless em que o servidor DHCP fornece apenas informaes de DNS (Domain Name Server) para seus clientes e, outro, stateful no qual fica encarregado tambm da distribuio de endereos IPv6 narede.Estesegundomodo foi abordado na primeira experincia sobre DHCPv6. A presente experincia foca unicamente nomododeconfiguraostateless . Duas etapas so necessrias para a realizao do experimento, sendo a primeira constituida pela configurao do roteador da rede, uma vez que este influencia diretamente o comportamentodosevidorDHCP. Tal configuraotem comointuitofazercom queas mensagem RouterAdvertisement,queso enviadas pelo roteador, tanto periodicamente como em resposta requisies do tipo Router Solicitation, contenham informaes sobre o prefixo de rede, bem como, sobre a necessidade dacapturadeoutrascaractersticasdaredecomservidorDHCP.

J a segunda, consiste na altero do comportamento do servidor DHCP com o acionamento de duas opes: AdvManagedFlag, que configura se o cliente possui ou no permisso para receber endereo IPv6 do servidor DHCPv6 e, o AdvOtherConfigFlag, que configura se o clientepodereceberoutrasconfiguraesapartirdoservidorDHCPv6. Com a concluso dessas etapas, ser observada a tranferncia das mensagens entre o servidor DHCPv6 e uma mquina cliente que precise configurar sua interface de rede. A comunicao iniciada com o envio, pelo cliente, da mensagem InformationRequest, que
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

88

utiliza o endereo de multicast de link local, para requisitar a qualquer servidor DHCP as caracteristicas da rede. Em resposta, os servidores enviam diretamente ao cliente uma mensagemReply comtaiscaractersticas.

RoteiroExperimental
1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br preciso, antes de comear a experincia, instalar alguns softwares para auxiliar no aprendizado (caso contrriovparaopasso2).Sigaopassoaseguirpararealizarasinstalaes: a. Para fazer algumas verificaes durante o experimento ser necessrio a utilizao do programa Wireshark que melhora a visualizao de pacotes que transmitidos na rede. Na mquina virtual, utilize um Terminal para rodar o comando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao. b. O dhcpd que o servio reponsvel pelas tarefas de servidor DHCP. Para installo, baixe a ltima verso do pacote tar.gz no site http://www.isc.org/software/dhcp (acessado em 10/04/2012) e utilize os seguintescomandosemumTerminal:
$ c d < p a s t a o n d e o a r q u i v o f o i b a i x a d o > $ t a r x f d h c p 4 . 2 . 3 P 2 . t a r . g z $ c d d h c p 4 . 2 . 3 P 2 / $ . / c o n f i g u r e $ m a k e $ s u d o m a k e i n s t a l l

*Obs: Lembresedeutilizaros numeros corretos deversoparaextrairopacote eacessarapastacomosarquivosdeinstalao. Depois do comando s u d o sersolicitadaasenhadousuriocore.Digitecore paraprosseguircomainstalao.

c. O dibblerclient, que realiza as funes de cliente DHCP.Parainstallo,baixe a ltima verso (Acima da 0.8.2) do cdigo fonte no site
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

89

http://klub.com.pl/dhcpv6/ (acessado em 10/04/2012) e utilize os seguintes comandosemumTerminal:


$ c d < p a s t a o n d e o a r q u i v o f o i b a i x a d o > c. $ t a r x f d i b b l e r 0 . 8 . 2 . t a r . g z

d. e. f. g.

$ c d d i b b l e r 0 . 8 . 2 / $ . / c o n f i g u r e $ m a k e $ s u d o m a k e i n s t a l l

*Obs: Lembresedeutilizaros nmeros corretos deversoparaextrairopacote e acessar a pasta com os arquivos de instalao. Depois do comando s u d o ser solicitada a senha do usurio core. Digite core para prosseguir com a instalao. 2. Agora,utilizeoseguintecomandoparainiciaraconfiguraodasimulao:
$ / h o m e / c o r e / s i m u l a c a o f u n c B a s i c . s h s t a r t

Casonecessrio,digitecoreparaprosseguircomaconfigurao. Oresultadodeveser:

3. Inicie o CORE e abra o arquivo DHCPv6E2.imn localizado no diretrio do desktop Funcionalidades/DHCPv6, da mquina virtual do NIC.br. A seguinte topologia deve
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

90

aparecer:

5. Verifiqueaconfiguraodosnsdatopologia: a. Inicieasimulaorealizandoumdosseguintespassos: i. aperteoboto ou ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra o terminal doclientecomumduploclique. c. Observeaconfiguraodoclientecomoseguintecomando:
# i p a d d r

Oresultadodeveser:

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

91

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces. d. ObserveaconfiguraodoServidorDHCPv6utilizandoomesmocomando. Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces.

e. VerifiqueaconfiguraodoServidorDNSutilizandoocomando.
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

92

Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces. f. Por fim, utilize o mesmo comando para verificar a configurao de rede do roteador. Oresultadodeveser:

*Obs:Apartirdessecomandopossvelobservarosendereosdasinterfaces. 6. InicieoservioDNSnoServidorDNS: a. AbraoterminaldoServidorDNScomumduploclique. b. UtilizeoseguintecomandoparainiciaroservioDNS:


# d n s m a s q i e t h 0

Oresultadodeveser:
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

93

7. Edite as configuraes doQuagganoroteador,paraqueeleenvieamensagem Router Advertisementcontendoascaractersticasdaredeparaocliente: a. Abraoterminaldoclientecomumduploclique. b. Utilizeoseguintecomandoparainiciaracapturadepacotes:


# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ d h c p v 6 _ e 2 . p c a p

Oresultadodeveser:

*Obs: No feche esse terminal at o final do experimento, uma vez que, isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia. c. Abraoterminaldoroteadorcomumduploclique. d. Substitua pelo seguinte o contedo do arquivo Quagga.conf que est localizado dentrodapasta/usr/local/etc/quagga:
i n t e r f a c e e t h 0 n o i p v 6 n d s u p p r e s s r a i p v 6 n d r a i n t e r v a l 5 i p v 6 n d p r e f i x 2 0 0 1 : d b 8 : 0 : 1 : : / 6 4 n o i p v 6 n d m a n a g e d c o n f i g f l a g i p v 6 n d o t h e r c o n f i g f l a g i p v 6 a d d r e s s 2 0 0 1 : d b 8 : 0 : 1 : : 1 2 / 6 4 !

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

94

Oresultadodeveser:

*Obs: um editor de texto presente na mquina virtual que pode ser utilizado o nano.Parauslodigitenoterminal:
# n a n o / u s r / l o c a l / e t c / q u a g g a / Q u a g g a . c o n f

No nano, a sequncia utilizada para salvar o arquivo CTRLO e para sair CTRLX. e. Em seguida, acione o script que reinicia as configuraes do quagga. Ele que seencontranapastabasedoroteador:
# . / b o o t . s h

Oresultadodeveser:

8. VerifiqueoendereoIPv6adquiridoetesteaconectividade. a. Abraoutroterminaldoclientecomumduploclique. b. Esperealgunssegundoseverifiqueoendereoipv6adquirido,comocomando:


# i p a d d r

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

95

Oresultadodeveser:

*Obs:NoteoendereoIPv6adquiridoviaRouterAdvertisement. c. TesteoservioDNSatravsdocomando:
# d i g i p v 6 . b r

Oresultadodeveser:

*Obs:NotequenofoiadquiridoendereodoservidorDNS. d. AbraoterminaldoServidorDNScomumduploclique. e. OutilizeoseguintecomandoparatestaraconectividadeIPv6:


# p i n g 6 c 4 2 0 0 1 : d b 8 : 0 : 1 : 2 0 0 : f f : f e a a : 0

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

96

Oresultadodeveser:

*Obs:UtilizeoendereoIPv6adquiridoviaDHCPnopasso8b. 9. ConfigureodhcpdnoServidorDHCPv6paraenviarasinformaesaosclientes: a. AbraoterminaldoServidorDHCPv6comumduploclique. b. Crieosseguintesarquivos:


# t o u c h d h c p d . c o n f # t o u c h d h c p d . l e a s e s

Oresultadodeveser:

c. Adicioneoseguintecontedonoarquivodhcpd.conf:
s u b n e t 6 2 0 0 1 : d b 8 : 0 : 1 : : / 6 4 { o p t i o n d h c p 6 . n a m e s e r v e r s 2 0 0 1 : d b 8 : 0 : 1 : : 1 0 }

*Obs: o nameserver o endereo da mquina que funcionar como DNS server.

Oresultadodeveser:
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

97

d. Inicieoserviodhcpdcomocomando:
# d h c p d 6 c f d h c p d . c o n f l f d h c p d . l e a s e s

Oresultadodeveser:

10. ConfigureodibblerclientnoclienteparareceberasinformaesdoServidorDHCPv6. a. Abraoterminaldoclientecomumduploclique. b. Crie um arquivo chamado client.conf, dentro da pasta /etc/dibbler com o comando:
# t o u c h / e t c / d i b b l e r / c l i e n t . c o n f

Oresultadodeveser:

c. Adicioneasseguintesconfiguraesnessearquivo:
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

98

i f a c e e t h 0 { s t a t e l e s s o p t i o n d n s s e r v e r }

Oresultadodeveser:

*Obs: Na experincia a pasta /etc/dibbler/ foi mapeada pela plataforma CORE, porm na mquina real essa pasta contm um arquivo com uma configurao padrododibblerclient. Anicaressalvaqueprecisaserfeitaadequenose pode acionar o modo stateless quando se faz requisio de endereo para servidor DHCP. Assim a seguinte linha do arquivo precisa estar comentada (adiodocaracter#): #i a

11. ObserveatrocademensagensDHCPentreamquinaServidorDHCPeacliente. h. Abraoutroterminaldoclientecomumduploclique. i. Inicieoprogramadibblerclient:


# d i b b l e r c l i e n t s t a r t

Oresultadodeveser:

12. Verifiqueodnsadquiridoetesteaconectividade.
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

99

a. Paravisualizarodnsobtidoviadhcp,digiteocomando:
# c a t / e t c / r e s o l v . c o n f

Oresultadodeveser:

*Obs:ObserveoendereodoservidorDNSadquiridoviaDHCPv6. b. TesteoservioDNSatravsdocomando:
# d i g i p v 6 . b r

Oresultadodeveser:

*Obs:NotequeoservidordeDNSagorarespondearequisio. c. No terminal do cliente, encerre a captura de pacotes digitando a sequncia Ctrl+C.

Oresultadodeveser:
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

100

*Obs: A quantidade de pacotes pode variar de acordo com o tempo esperado paradarocomandoCtrl+C. 13. Encerreasimulaocomumadasseguintesaes: a. aperteoboto ou b. utilizeomenuExperiment>Stop. 14. A verificao dos pacotes capturados ser realizada atravs do programa Wireshark. Parainiciloexecuteoseguintecomandoemumterminaldamquinavirtual:
$ w i r e s h a r k

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

101

a. Abraoarquivo/tmp/captura_dhcpv6_e2.pcapcomomenuFile>Open b. Procure por um pacote Router Advertisement que contenha a opo ICMPv6 Prefix Information. Analiseo e veja que seus dados conferem com o que foi apresentadonateoria.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

102

RouterAdvertisement:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo MAC (33:33:00:aa:00:01) sendo que o prefixo 33:33 indica que a mensagem um multicast na camada Ethernet e, o sufixo 00:aa:00:01indicaosltimos32bitsdoendereomulticastIPv6dessamensagem. Source (Ethernet): a origem o endereo MAC do roteador que enviou a mensagem (00:00:00:aa:00:03). Type(Ethernet):indicaqueamensagemutilizaIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho(deextensodoIPv6),nocaso, ovalor58(0x3a)refereseumamensagemICMPv6. Source (IPv6): a origem o endereo IP de link local da interface que originou a mensagem,nestecaso,doroteador(fe80::200:ff:feaa:3). Destination(IPv6):odestinooendereoMulticastAllnodes (ff02::1). Type(ICMPv6):indicaqueamensagemdotipo134(RouterAdvertisement). ICMPv6Option(ICMPv6):indicaasopesdopacoteICMPv6: PrefixInformation Type: indica o tipo dedadodamensagem ICMPv6.Nonossocaso,ela dotipoPrefixinformation Autonomous AddressConfiguration Flag (A): indicaseoprefixodeveser
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

103

utilizadoparaautoconfiguraostateless(1). Preferred Lifetime: marca o tempo, em segundos, que o endereo preferencial, ou seja, um endereoquepodeserutilizadoindistintamente. Ovalor(0xffffffff)indicainfinito. Valid Lifetime: marca o tempo, em segundos, de expirao do endereo gerado.Ovalor(0xffffffff)indicainfinito. Prefix :contmoprefixoderedeaserutilizado(2 0 0 1 : d b 8 : 0 : 1 : : ) . Prefixlength:contmotamanhodoprefixodarede(64). SourceLinkLayerAddress Type: indica o tipo dedadodamensagem ICMPv6.Nonossocaso,ela dotipoSourcelinklayeraddress Linklayeraddress :indicaoendereoMACdainterfacedoroteador.

c. Procure por pacotes do tipo InformationRequest e Reply . Analiseos evejaque seusdadosconferemcomoquefoiapresentadonateoria. InformationRequest:

*Obs:ofiltrodhcpv6podeserusadoparaajudarafiltrarasmensagens.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

104

Camposimportantes: Destination (Ethernet): o destino o endereo MAC (33:33:00:01:00:02) sendo que o prefixo 33:33 indica que a mensagem um multicast na camada Ethernet e, que o sufixo00:01:00:02indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet): a origem o endereo MAC da interface de rede do cliente (00:00:00:aa:00:00). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho,nocaso,ovalor0x11referese umamensagemUDP. Source (IPv6): a origem o endereo IP de link local da interface de rede requisitante (fe80::200:ff:feaa:0). Destination(IPv6):odestinooendereoMulticastAgentDHCP(ff02::1:2). Sourceport(UDP):indicaaportaemqueseencontraoserviodhcpv6client(546). Destination port (UDP): indica a porta em que se encontra o servio dhcpv6server (547). Message type (DHCPv6): indica atravs do valor 11 que o tipo da mensagem InformationRequest Client Identifier (DHCPv6): contm a identificao nica do cliente baseada em seu endereofisico. OptionRequest(DHCPv6) Requested Option Code: indica a informao que o dispositivo est solicitando aoservidorDHCP,nocaso,DNSrecursivenameserver(23)

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

105

Reply:

Camposimportantes: Destination (Ethernet): o destino o endereo MAC da interface da mquina cliente (00:00:00:aa:00:00). Source (Ethernet): a origem o endereo MAC da interface do servidor DHCPv6que enviouaresposta(00:00:00:aa:00:01). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho,nocaso,ovalor0x11referese umamensagemUDP. Source (IPv6): a origem o endereo IP de link local da interface do servidor que originouamensagem,nestecaso,oservidorDHCPv6(fe80::200:ff:feaa:1). Destination (IPv6): o destino o endereo unicast de link local do cliente requisitante (fe80::200:ff:feaa:0). Sourceport(UDP):indicaaportaemqueseencontraoserviodhcpv6server(547). Destinationport(UDP):indicaaportaqueseencontraoserviodhcpv6client(546). Messagetype(DHCPv6):indicaatravsdovalor7queotipodamensagemReply Client Identifier(DHCPv6): contm dados daidentificaonicadoclientebaseadaem seuendereofisico.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

106

Server Identifier(DHCPv6): contm dados da identificao nica do servidor baseada emseuendereofisico. DNSrecursivenameserver(DHCPv6) DNS servers address: indica o endereo IPv6 do servidor DNS requisitado (2001:db8:0:1::10).

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.2501

107

IPV6DHCPv6
Experincia3DHCPv6PrefixDelegation Objetivo
Esta experincia tem como objetivo apresentar o funcionamento do servio de delegao de prefixos do DHCPv6 a roteadores. Estes, ento, se encarregaram de administrar o prefixo recebido para assim realizar o servio de Autoconfigurao Stateless(via Router Advertisement)deseusclientes. Para a realizao do presente exercicio ser utilizada a topologia descrita no arquivo: DHCPv6E3.imn.

IntroduoTerica
O Dynamic Host Configuration Protocol (DHCP) um protocolo de autoconfigurao stateful, utilizado para distribuir endereos IP e informaes de rede dinamicamente. Contudo, suas implementaes IPv6 possuem significativas diferenas e particularidades com relao ao IPv4,oquetornaestasimplementaesincompatveisentresi. Uma funcionalidade, que foi desenvolvida para o DHCPv6 e no existe no DHCPv4,oprefix delegation, que serve para distribuir prefixos de rede. Seu mecanismo opera atravs de servidores DHCPv6 (podendo ser um roteador de delegao) e roteadores de requisio. Um roteador de requisio inicia o procedimento com uma requisio de prefixo enviadapararede com destino a todos os servidores DHCPv6.Os servidores quejestoprconfigurados com um pool de prefixos, respondem a este pedidofeitopeloroteadorenviandoum prefixoIPv6.Ao receber esta resposta, o roteador fica encarregado de dividir o prefixo e redistribuilo por suas interfaces. Os novos prefixos possuirootamanho/64paraqueaoserem distribuidos aos host viarouteradvertisementoprocedimentodeautoconfiguraostatelesssejarealizado. Esta funcionalidade utilizada em situaes que o servidor DHCPv6 no possui nenhum conhecimento sobre a topologia de rede a qual o roteador requisitante est conectado e, tambm, desconhece outras informaes alm da indentidade do roteador requisitante para escolheroprefixo.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

108

RoteiroExperimental
1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br preciso, antes de comear a experincia, instalar alguns softwares para auxiliar no aprendizado (caso contrriovparaopasso2).Sigaopassoaseguirpararealizarasinstalaes: a. Para fazer algumas verificaes durante o experimento ser necessrio a instalao do programa Wireshark que facilita a visualizao dos pacotes enviadosnarede.Namquinavirtual,utilizeumTerminalpararodarocomando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao. b. O dhcpd, que o servio reponsvel pelas tarefas de servidor do DHCP. Para installo, baixe a ltima verso do pacote tar.gz no site http://www.isc.org/software/dhcp (acessado em 10/04/2012) e utilize os seguintescomandosemumTerminal:
$ c d < p a s t a o n d e o a r q u i v o f o i b a i x a d o > $ t a r x f d h c p 4 . 2 . 3 P 2 . t a r . g z $ c d d h c p 4 . 2 . 3 P 2 / $ . / c o n f i g u r e $ m a k e $ s u d o m a k e i n s t a l l

*Obs: Lembresedeutilizaros nmeros corretos deversoparaextrairopacote e acessar a pasta com os arquivos de instalao. Depois do comando s u d o ser solicitada a senha do usurio core. Digite core para prosseguir com a instalao. c. O dibblerclient, que realiza as funes de cliente DHCP.Parainstallo,baixe a ltima verso (0.8.2 ou superior) do cdigo fonte no site http://klub.com.pl/dhcpv6/ (acessado em 10/04/2012) e utilize os seguintes comandosemumTerminal:
$ c d < p a s t a o n d e o a r q u i v o f o i b a i x a d o > $ t a r x f d i b b l e r 0 . 8 . 2 . t a r . g z $ c d d i b b l e r 0 . 8 . 2 / $ . / c o n f i g u r e $ m a k e $ s u d o m a k e i n s t a l l

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

109

*Obs: Lembresedeutilizaros nmeros corretos deversoparaextrairopacote e acessar a pasta com os arquivos de instalao. Depois do comando s u d o ser solicitada a senha do usurio core. Digite core para prosseguir com a instalao. d. O radvd, que realiza o envio do tamanho do valor de MTU a ser configurado. Parainstallouseocomando:
$ s u d o a p t g e t i n s t a l l r a d v d

Caso haja algum problema no pacote oferecido, podese baixalo no endereo: http://packages.ubuntu.com/hardy/radvd(acessadoem2012). 2. Inicie o CORE e abra o arquivo DHCPv6E3.imn localizado no diretrio do desktop Funcionalidades/DHCPv6, da mquina virtual do NIC.br. A seguinte topologia deve aparecer:

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

110

3. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulaorealizandoumdosseguintespassos: i. cliquenoboto ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine de iniciar a simulao e abra o terminal da mquinaServidorDHCPv6,comumduplocliquesobreela. c. Observe a configurao de rede do ServidorDHCPv6 atravs do seguinte comando:
# i p a d d r s h o w

Oresultadodeveser:

*Obs:Apartirdestecomandopossvelobservarosendereosdasinterfaces.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

111

d. ObserveaconfiguraodoRoteadorcomomesmocomando. Oresultadodeveser:

*Obs:Apartirdestecomandopossvelobservarosendereosdasinterfaces. e. ObserveaconfiguraodoCliente1comomesmocomando. Oresultadodeveser:

*Obs:Apartirdestecomandopossvelobservarosendereosdasinterfaces.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

112

f.

ObserveaconfiguraodoCliente2comomesmocomando. Oresultadodeveser:

*Obs:Apartirdestecomandopossvelobservarosendereosdasinterfaces. 4. ConfigureodhcpdnoServidorparaenviarprefixoaoroteador. a. AbraoterminaldoServidorDHCPv6 b. Crie dois arquivos com os seguintes nomes: dhcpd.conf e dhcp.leases. Para fazerissodigiteoscomandos:
# t o u c h d h c p d . c o n f # t o u c h d h c p d . l e a s e s

Oresultadodeveser:

c. Editeoarquivodhcpd.conf.Eledevercontersomenteaslinhas:
s u b n e t 6 2 0 0 1 : d b 8 : c a f e : 1 : : / 6 4 { p r e f i x 6 2 0 0 1 : d b 8 : c a f e : 1 0 0 : : 2 0 0 1 : d b 8 : c a f e : f 0 0 : : / 5 6 }

*Obs: O campo prefix6 contm uma faixa de prefixos de endereos ipv6 que devem ser distribudos entre os roteadores requisitantes,com odevidotamanho deprefixos.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

113

Oresultadodeveser:

*Obs: um editor de texto presente na mquina virtual que pode ser utilizado o nano.Parauslodigitenoterminal:
# n a n o d h c p d . c o n f

No nano, a sequncia utilizada para salvar o arquivo CTRLO e para sair CTRLX. d. Inicieoprogramadodhcpatravsdocomando:
# d h c p d 6 c f d h c p d . c o n f l f d h c p d . l e a s e s

Oresultadodeveser:

4. ConfigureodibblerclientnoroteadorparareceberoprefixoIPv6doservidor. a. AbraoterminaldamquinaRoteador. b. Utilize o seguinte comando para iniciar a captura de pacotes em sua interface interface:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ d h c p v 6 _ e 3 1 . p c a p

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

114

Oresultadodeveser:

*Obs: No feche este terminal at o final do experimento, uma vez que, isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia. c. AbraumnovoterminalnamquinaRoteador. d. Dentro da pasta /etc/dibbler, crie um arquivo chamado client.conf com o comando:
# t o u c h / e t c / d i b b l e r / c l i e n t . c o n f

Oresultadodeveser:

e. Editeestearquivodeixandoocomoseguintetexto:
i f a c e e t h 0 { p d }

Oresultadodeveser:

*Obs: A configurao pd significa que o cliente ir requisitar o servio de delegaodeprefixosaoservidor(alcanadopelainterfaceeth0).

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

115

f.

Inicieoprogramadibblerclientatravsdocomando:
# d i b b l e r c l i e n t s t a r t

Oresultadodeveser:

g. Espere alguns segundos e reabra o terminal do roteador, que contem o programa tcpdump funcionando, e encerre a captura de pacotes atravs da sequnciaCtrl+C. Oresultadodeveser:

*Obs: A quantidade de pacotes pode variar de acordo com o tempo esperado paradarocomandoCtrl+C. A partir deste momento o roteador recebeu um prefixo /56 para administrar. Ele irentodividiresteprefixoentretodasassuasinterfacescomtamanhos/64. 5. Analise o envio de prefixos aos clientes. Com estes prefixos os clientes entopodero autoconfigurarsuasinterfaces. a. AbraoterminaldoCliente1. b. Utilize o seguinte comando para iniciar a captura de pacotes em sua interface interface:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ d h c p v 6 _ e 3 2 . p c a p

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

116

Oresultadodeveser:

*Obs: No feche este terminal at o final do experimento, uma vez que, isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia. c. AbraoterminaldamquinaRoteador. d. Observe o conteudo do arquivo radvd.conf localizado dentro da pasta /etc/dibbler.Utilizeocomando:
# c a t / e t c / d i b b l e r / r a d v d . c o n f

Oresultadodeveser:

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

117

*Obs: Este arquivo gerado automticamente ao receber o prefixo do Servidor /56,paraministrarprefixoscomtamanhos/64entresuasinterfaceshabilitadas. e. Inicie o programa radvd utilizando o arquivodeconfiguraogeradopelodibbler, atravsdocomando:
# r a d v d C / e t c / d i b b l e r / r a d v d . c o n f

Oresultadodeveser:

f.

Espere alguns segundos e reabra o terminal do Cliente1, que contem o programa tcpdump funcionando, e encerre a captura de pacotes atravs da sequnciaCtrl+C. Oresultadodeveser:

*Obs: A quantidade de pacotes pode variar de acordo com o tempo esperado paradarocomandoCtrl+C. 6. Verifique os endereos IPv6 adquiridos pelas interfaces dos clientes e teste a sua conectividade. a. AbraoterminaldoCliente1. b. ObserveaconfiguraoderededoCliente1atravsdoseguintecomando:
# i p a d d r s h o w

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

118

Oresultadodeveser:

*Obs: Note que o Cliente1 montou um endereo IPv6 global baseadonoprefixo 2001:db8:cafe:f03::/64. Isso aconteceu por ele estar conectado diretamente a interfaceeth1doroteador. c. ObserveaconfiguraodoCliente2comomesmocomando. Oresultadodeveser:

*Obs: Note que o Cliente2 montou um endereo IPv6 global baseadonoprefixo 2001:db8:cafe:f04::/64. Isso aconteceu por ele estar conectado diretamente a interfaceeth2doroteador.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

119

d. ObserveaconfiguraodoRoteadorcomomesmocomando. Oresultadodeveser:

*Obs: Note que as interfaces apesar de delegarem prefixos, no configuram automticamenteendereosIPv6globais. e. ObserveasrotasdoRoteadoratravsdoseguintecomando:
# i p 6 r o u t e

Oresultadodeveser:

*Obs:Notequeaomesmotempoqueoroteadordelegaprefixos,elejconfigura rotasparaeles. f. AbraoterminaldoCliente1paratestaraconectividadeIPv6.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

120

g. Inicieumacomunicaoping6comoCliente2atravsdoseguintecomando:
# p i n g 6 c 4 2 0 0 1 : d b 8 : c a f e : f 0 4 : 2 0 0 : f f : f e a a : 5

Oresultadodeveser:

*Obs: O endereo IPv6 deve ser o mesmo do Cliente2 adquirido via Router Advertisement,mostradoanteriormente. 7. Encerreasimulaocomumadasseguintesaes: a. aperteoboto b. utilizeomenuExperiment>Stop.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

121

Observeatrocademensagensocorrida,queseranalisadaposteriormente:

8. A verificao dos pacotes capturados ser realizada atravs do programa Wireshark. Parainiciloexecuteoseguintecomandoemumterminaldamquinavirtual:
$ w i r e s h a r k

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

122

a. Abraoarquivo/tmp/captura_dhcpv6_e31.pcapcomomenuFile>Open b. ProcurepelospacotesSolicit,Advertise,RequesteReply .Analiseosevejaque osdadoscontidosnospacotesconferemcomoquefoipassadonateoria.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

123

1Solicit:

*Obs:ofiltrodhcpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino oendereo(33:33:00:01:00:02)sendoqueoprefixo 33:33 indica que a mensagem um multicast na camada Ethernet e o sufixo 00:01:00:02indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet): a origem o MAC address da interface da mquina que enviou a solicitao(00:00:00:aa:00:01). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho,nocaso,ovalor0x11referese umamensagemUDP. Source (IPv6): a origem o endereo IP de link local da interface diretamente conectadaaoenlaceaoqualsefezasolicitao(fe80::200:ff:feaa:1). Destination(IPv6):odestinooendereoMulticastAgentDHCP(ff02::1:2). Source port (UDP): indica a porta que se encontra oserviodhcpv6clientcujoovalor
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

124

546. Destination port (UDP): indica a porta que se encontra o servio dhcpv6server no servidor.Seuvalor547. Messagetype(DHCPv6):indicaatravsdovalor1queotipodamensagemSolicit Client Identifier (DHCPv6): contm dados daidentificaonicadoclientebaseadano endereofisico. Identity AssociationforPrefixDelegation(DHCPv6):servepararequisitarum prefixo IPv6paraoservidor. 2Advertise:

*Obs:ofiltrodhcpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo MAC da interface da mquina solicitante(00:00:00:aa:00:01). Source (Ethernet): a origem o MAC address da interface da mquina que enviou a
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

125

resposta(00:00:00:aa:00:00). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho,nocaso,ovalor0x11referese umamensagemUDP. Source (IPv6): a origem o endereo IP de link local da interface do dispositivo que enviouamensagem,ouseja,doServidorDHCP6(fe80::200:ff:feaa:0). Destination (IPv6): o destino o endereo unicast de link local da mquina solicitante (fe80::200:ff:feaa:1). Source port(UDP):indicaaportaqueseencontraoserviodhcpv6servercujoovalor 547. Destination port (UDP): indica a porta que se encontra o servio dhcpv6client cujo o valor546. Message type (DHCPv6): indica atravs do valor 2 que o tipo da mensagem Advertise Identity Association for prefix delegation (DHCPv6): serve para carregar o prefixo IPv6esuascaracteristicasparaocliente. IA Prefix: contm o prefixo e suas caracteristicas, que o cliente ir utilizar em suaautoconfigurao(2001:db8:cafe:f00::/56). ClientIdentifier(DHCPv6):contm dados daidentificaonicadoclientebaseadaem seuendereofisico. Server Identifier (DHCPv6): contm dados da identificao nica do servidorbaseada emseuendereofisico.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

126

3Request:

*Obs:ofiltrodhcpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino oendereo(33:33:00:01:00:02)sendoqueoprefixo 33:33 indica que a mensagem um multicast na camada Ethernet e o sufixo 00:01:00:02indicaosltimos32bitsdoendereomulticastIPv6damensagem. Source (Ethernet): a origem o MAC address da interface da mquina cliente (00:00:00:aa:00:01). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho,nocaso,ovalor0x11referese umamensagemUDP. Source (IPv6): a origem o endereo IP de link local da interface do dispositivo que enviouamensagem,ouseja,docliente(fe80::200:ff:feaa:1). Destination(IPv6):odestinooendereoMulticastAgentDHCP(ff02::1:2). Source port (UDP): indica a porta que se encontra oserviodhcpv6clientcujoovalor 546. Destination port (UDP): indica a porta que seencontraoserviodhcpv6servercujoo
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

127

valor547. Messagetype(DHCPv6):indicaatravsdovalor3queotipodamensagemRequest ClientIdentifier(DHCPv6):contm dados daidentificaonicadoclientebaseadaem seuendereofisico. Identity Association for prefix delegation (DHCPv6): serve para confirmar o prefixo IPv6esuascaracteristicasrecebidas. IA Prefix: contm o prefixo e suas caracteristicas, que o cliente ir utilizar em suaautoconfigurao(2001:db8:cafe:f00::/56). Server Identifier (DHCPv6): contm dados da identificao nica do servidorbaseada emseuendereofisico. 4Reply:

*Obs:ofiltrodhcpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo MAC da interface da mquina cliente (00:00:00:aa:00:01). Source (Ethernet): a origem o MAC address da mquina que est enviando a resposta(00:00:00:aa:00:00). Type(Ethernet):indicaqueamensagemutilizaoprotocoloIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho,nocaso,ovalor0x11referese
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

128

umamensagemUDP. Source (IPv6): a origem o endereo IP de link local da interface do dispositivo que enviouamensagem,ouseja,doServidorDHCPv6(fe80::200:ff:feaa:0). Destination (IPv6): o destino o endereo IPv6 unicast de link local do cliente (fe80::200:ff:feaa:1). Source port(UDP):indicaaportaqueseencontraoserviodhcpv6servercujoovalor 547. Destination port (UDP): indica a porta que se encontra o servio dhcpv6client cujo o valor546. Messagetype(DHCPv6):indicaatravsdovalor7queotipodamensagemReply Identity Association for prefix delegation (DHCPv6): serve para confirmar o prefixo IPv6esuascaracteristicasfornecidas. IA Prefix: contm o prefixo e suas caracteristicas, que o cliente ir utilizar em suaautoconfigurao(2001:db8:cafe:f00::/56). ClientIdentifier(DHCPv6):contm dados daidentificaonicadoclientebaseadaem seuendereofisico. Server Identifier (DHCPv6): contm dados da identificao nica do servidorbaseada emseuendereofisico. c. Abraoarquivo/tmp/captura_dhcpv6_e32.pcapcomomenuFile>Open d. Procure por um pacote Router Advertisement que contenha a opo ICMPv6 Prefix Information. Analiseo e veja que seus dados conferem com o que foi apresentadonateoria.

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

129

5RouterAdvertisement:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. Camposimportantes: Destination (Ethernet): o destino o endereo MAC (33:33:00:00:00:01) sendo que o prefixo 33:33 indica que a mensagem um multicast na camada Ethernet e, o sufixo 00:aa:00:01indicaosltimos32bitsdoendereomulticastIPv6destamensagem. Source (Ethernet): a origem o endereo MAC do roteador que enviou a mensagem (00:00:00:aa:00:02). Type(Ethernet):indicaqueamensagemutilizaIPv6(x86dd). Next Header (IPv6): indica qual oprximocabealho(deextensodoIPv6),nocaso, ovalor58(0x3a)refereseumamensagemICMPv6. Source (IPv6): a origem o endereo IP de link local da interface que originou a mensagem,nestecaso,doroteador(fe80::200:ff:feaa:2). Destination(IPv6):odestinooendereoMulticastAllnodes (ff02::1). Type(ICMPv6):indicaqueamensagemdotipo134(RouterAdvertisement). ICMPv6Option(ICMPv6):indicaasopesdopacoteICMPv6: PrefixInformation
IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

130

Type: indica o tipo dedadodamensagem ICMPv6.Nonossocaso,ela dotipoPrefixinformation Autonomous AddressConfiguration Flag (A): indicaseoprefixodeveser utilizadoparaautoconfiguraostateless(1). Preferred Lifetime: marca o tempo, em segundos, que o endereo preferencial, ou seja, um endereoquepodeserutilizadoindistintamente. Ovalor(0xffffffff)indicainfinito. Valid Lifetime: marca o tempo, em segundos, de expirao do endereo gerado.Ovalor(0xffffffff)indicainfinito. Prefix :contmoprefixoderedeaserutilizado(2 0 0 1 : d b 8 : c a f e : f 0 3 : : ) . Prefixlength:contmotamanhodoprefixodarede(64). SourceLinkLayerAddress Type: indica o tipo dedadodamensagem ICMPv6.Nonossocaso,ela dotipoSourcelinklayeraddress Linklayer address : indica o endereo MAC da interface do roteador (00:00:00:aa:00:02).

IPv6.brLaboratrioDHCPv6NIC.brhttp://ipv6.brrev.2012.05.0301

131

IPV6PathMTUDiscovery
Objetivo
O objetivo desta experincia mostrar o funcionamento do mecanismo de Path MTU (Maximum Transmit Unit) Discovery do IPv6. Nela sero utilizadas duas redes ligadas por um roteador e configuradas com diferentes valores de MTU para mostrar como se d a fragmentaodepacotesquandoessesvaloresdiferemnocaminhodacomunicao. Paraissoserutilizadaatopologiadescritanoarquivo:PathMTUE1.imn.

IntroduoTerica
Em umarededecomputadores,cadaenlacepossuiumalimitaodotamanhomximodos pacotes ser trafegados. Essa limitao chamada de MTU,tem deserconfiguradaem cada um dos ns da rede e, em geral, dependente do meio fsico do enlace. Caso pacotes maiores do que esse limiar tenham de ser transmitidos, estes devem ser fragmentados e remontadosquandochegaremaosseusdestinos. Na transmisso de um pacote IPv4, cada roteador ao longo do caminho pode fragmentar pacotes caso estes sejam maiores do que o MTU do prximo enlace. Dependendo do desenho da rede, um pacote IPv4 pode ser fragmentado mais de uma vez durante seu trajeto. Ainda assim, independentemente da quantidade de fragmentaes, ele s reagrupadoemseudestinofinal. J no IPv6, a fragmentao dos pacotes realizada apenas na origem.Esteprocedimento no realizado(e nem permitido) em roteadores intermedirios com intuito de reduzir o overheadcausadopeloclculodoscabealhosalterados. Assim surgiu o protocolo Path MTU Discovery [RFC 1981] utilizado no incio do processo de fragmentao para determinar, de forma dinmica, qualotamanhomximopermitidoao pacote. Ao realizar uma tranmisso de dados, ele identifica os MTUs de cada enlace no caminhoatodestino. Para funcionar, tal protocolo deve ser suportado por todos os ns do caminho. No entanto, implementaes minimalistas de IPv6 podem omitir esse suporte ao utilizar 1280 Bytes comotamanhomximodepacote. Ao ser iniciado, o processo de Path MTU Discovery (PMTUD)assumequeoMTUdetodo o caminho igual ao MTU do primeiro salto. Caso o tamanho dos pacotes enviados seja maior do que o suportado por algum roteador ao longo do caminho, este ir descartlo e enviar uma mensagem ICMPv6 Packet Too Big contendo tanto a mensagem de erro
IPv6.brLaboratrioPathMTUDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

132

quanto o valor do MTU do enlace seguinte. Aps o recebimentodessamensagem,onde origempassaalimitarotamanhodospacotesdeacordocomoMTUindicado. Esse procedimento termina quandootamanhodopacoteforigualouinferioraomenorMTU do caminho, sendo que as iteraes de troca de mensagens e reduo do tamanho dos pacotes podem ocorrer diversas vezes at que se encontre o menor MTU. Caso o pacote seja enviado a um grupo multicast, o tamanho utilizado ser o do menor PMTU de todo o conjuntodedestinos. De certo ponto de vista, o PMTUD pode parecer imperfeito dado que o roteamento dos pacotes dinmico e que cada pacote pode ser entregue atravs de uma rota diferente. Contudo, essas mudanas nosotofrequentes e,casoovalordoMTUdiminuadevidoa uma mudana de rota, a origem receber a mensagem de erro e reduzir o valor do Path MTU.

RoteiroExperimental
Experincia1ICMPv6:PacketTooBig

1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br preciso, antes de comear a experincia, instalar alguns softwares para auxiliar no aprendizado (casocontrriovparaopasso2). Sigaopassoaseguirpararealizarainstalao: a. Para fazer algumas verificaes durante o experimento ser necessria a instalao do programa Wireshark que facilita a visualizao dos pacotes enviados na rede. Para isso, na mquina virtual, utilize um Terminal para rodarocomando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes dainstalaosersolicitadaasenhadousuriocore.Digitecorepara prosseguircomainstalao.

IPv6.brLaboratrioPathMTUDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

133

2. Inicie o CORE e abra o arquivo PathMTUE1.imn localizado no diretrio do desktop Funcionalidades/PathMTU, da mquina virtual do NIC.br. A seguinte topologiainicialdeveaparecer:

3. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulaorealizandoumdosseguintespassos: i. aperteoboto ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra o terminaldamquinaumaPonta,comumduploclique. c. Verifiquequesuaconfiguraoatravsdoseguintecomando:
# i p a d d r

IPv6.brLaboratrioPathMTUDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

134

Oresultadodeveser:

*Obs: A partir desse comando possvel observar os endereos das interfaces,incluindooMTU. d. Verifiqueaconfiguraodoroteadoratravsdomesmocomando. Oresultadodeveser:

*Obs: A partir desse comando possvel observar os endereos das interfaces,incluindooMTU.

e. VerifiqueaconfiguraodoservidoroutraPontaatravsdomesmocomando.

IPv6.brLaboratrioPathMTUDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

135

Oresultadodeveser:

*Obs: A partir desse comando possvel observar os endereos das interfaces, incluindooMTU. 4. ConfigureoMTUdoenlacenoqualodispositivooutraPontaseencontra. a. Abraoterminaldoroteador. b. DigiteoseguintecomandoparamudaroMTUdainterface:
# i p l i n k s e t e t h 1 m t u 1 4 0 0

Oresultadodeveser:

c. Observeaalteraoatravsdocomando:
# i p a d d r

IPv6.brLaboratrioPathMTUDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

136

Oresultadodeveser:

*Obs:ObservequehouveumaalteraonotamanhodoMTUnainterface eth1. d. AbraoterminaldodispositivooutraPonta. e. DigiteoseguintecomandoparamudaroMTUdainterface:


# i p l i n k s e t e t h 0 m t u 1 4 0 0

Oresultadodeveser:

f.

Observeaalteraoatravsdocomando:
# i p a d d r

IPv6.brLaboratrioPathMTUDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

137

Oresultadodeveser:

*Obs:NotequehouveumaalteraonotamanhodoMTUnainterfaceeth0. 5. Verifique a conectividade ipv6 entre as pontas com tamanho de pacote superior ao MTUconfigurado. a. AbraoterminaldodispositivoumaPonta b. Utilizeoseguintecomandoparainiciaracapturadepacotes:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ p a t h _ M T U _ e 1 . p c a p

Oresultadodeveser:

*Obs: No feche esse terminal atofinaldoexperimento,umavez que,isso ocasionar no trmino da execuo do comando tcpdump e prejudicar o andamentodaexperincia. c. AbraumoutroterminaldodispositivoumaPonta d. Outilizeoseguintecomandoparatestaraconectividadeipv6:
# p i n g 6 s 1 5 0 0 M w a n t c 4 2 0 0 1 : d b 8 : 2 : : 1 0

IPv6.brLaboratrioPathMTUDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

138

Oresultadodeveser:

*Obs: Notequeessecomandoconfiguraos pacotes enviados paraconterem 1500 bytes de tamanho(com a opo s 1500) e a interface para permitir a fragmentaodepacotes (com aopoM want).Oresultadomostraquea partir do primeiro pacote descartado o PMTU configurado corretamente para o limite de 1400 bytes e os pacotes passam a transitar corretamente pelarede. e. No primeiro terminal da mquina umaPonta, encerre a captura de pacotes atravsdasequnciaCtrl+C. Oresultadodeveser:

*Obs: Aquantidadedepacotes podevariardeacordocom otempoesperado paradarocomandoCtrl+C. 6. Encerreasimulaocomumadasseguintesaes: a. aperteoboto b. utilizeomenuExperiment>Stop. 7. A verificao dos pacotes capturados ser realizada atravs do programa Wireshark. Para inicilo execute o seguinte comando em um terminal da mquina virtual:
$ w i r e s h a r k

IPv6.brLaboratrioPathMTUDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

139

a. Abraoarquivo/tmp/captura_path_MTU_e1.pcapcomomenuFile>Open b. Procure pelo pacote icmpv6Toobig.Analiseoeconfirmequeelecontm o valor do MTU que o roteador aceita trafegar em seulink paraassim informar odispositivocomodeveserfeitoafragmentao.

IPv6.brLaboratrioPathMTUDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

140

TooBig:

*Obs:ofiltroicmpv6podeserusadoparaajudarafiltrarasmensagens. A partir dessa mensagem possivel observar que o pacote no pode ser enviado em seu tamanho normal e necessita de fragmentao. Logo essa mensagem informa a origem da comunicao o tamanho limite que precisa ser utilizado para sertransmitidoatseudestino.

IPv6.brLaboratrioPathMTUDiscoveryNIC.brhttp://ipv6.brrev.2012.05.0301

141

142

IPv6ServiosIPv6DNS
Objetivo
O principal objetivo desse laboratrio apresentar o funcionamento do servio de DNS (Domain Name System ) em uma rede IPv6 utilizando o software BIND. Para isso, o laboratrio ser dividido em dois exerccios. O primeiro apresentar dois aspectos: a capacidade dos servidores DNS em armazenar tanto registros do tipo A, para endereos IPv4, quanto registros AAAA (quadA), para endereos IPv6 e o fato das respostas s consultas DNS serem independentes do protocolo de rede utilizado, ou seja, um servidor capaz responder tanto consultas AAAAquantoAmesmoquepossuaconexoapenas IPv4 ouapenasIPv6. No segundo experimento, ser trabalhada a configurao de um servidor DNS autoritativo para responder a requisies por registros do tipo AAAA e resoluo de endereamento reverso IPv6, destacando alguns pontos relacionados a utilizao deste servio em uma redeemPilhaDupla,ouseja,comconectividadeIPv4eIPv6. Para a realizao destes exerccios sero utilizadas as topologias descritas nos arquivos servicosdns1.imneservicosdns2.imn.

IntroduoTerica
OprotocoloDomainNameSystem (DNS)umaimensabasededados distribudaem uma estrutura hierrquica, utilizada para a traduo de nomes de domnios em endereos IP e viceversa. Os dados associados aos nomes dedomnioestocontidos em ResourceRecords ouRRs (Registro de Recursos). Atualmente existe uma grande variedade de tipos de RRs, sendo osmaiscomuns: SOAIndicaondecomeaaautoridadesobreumazona NSIndicaumservidordenomesparaumazona AMapeamentodenomeaendereo(IPv4) AAAAMapeamentodenomeaendereo(IPv6) MXIndicaummailexchangerparaumnome(servidordeemail) CNAMEMapeiaumnomealternativo(apelido) PTRMapeamentodeendereoanome.

O funcionamento do servio de DNS baseiase em umaarquiteturacliente/servidor,ondeo cliente realiza requisies por RRs aos Servidores Recursivos. Ao receber requisies,os Servidores Recursivos as encaminham para Servidores Autoritativos e conforme a
IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

143

resposta recebida, continuam a encaminhar as requisies para outros Servidores Autoritativos atobterem umarespostasatisfatria.DentrodaestruturahierrquicadoDNS, os Servidores Autoritativos respondem as requisies sobre as zonas ou domnios pelos quais possuem autoridade ou uma referncia caso conheam o caminho para a resposta, ouumanegaocasonoconheam. Para que o DNS trabalhe com a verso 6 do protocolo Internet, algumas mudanas foram definidasnaRFC3596. Um novo tipo de RR foi criado para armazenar os endereos IPv6 de 128 bits, o AAAA ou quadA. Sua funo a de traduzir nomes paraendereos IPv6,deforma equivalente a do registro do tipo AnoIPv4.Casoum dispositivopossuamais deum endereo IPv6, ele dever ter um registro quadA para cada. Os registros so representadoscomosesegue: Exemplo: www.ipv6.br.INA 200.160.4.22 www.ipv6.br. INAAAA2001:12ff:0:4::22

Para resoluo de reverso, foi adicionado ao registro PTR o domnio ip6.arpa, responsvel por traduzir endereos IPv6 em nomes. Em sua representao, o endereo escrito com o bit menos significativocolocadomais aesquerda,como possvelobservarnoexemploaseguir: Exemplo:
22.4.160.200.inaddr.arpaPTRwww.ipv6.br. 2.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.0.0.0.0.0.0.0.f.f.2.1.1.0.0.2.ip6.arpaPTRwww.ipv6.br.

Todos os outros tipos de registro DNS no sofreram alteraes em sua forma de configurao,apenasforamadaptadosparasuportaronovotamanhodosendereos.

RoteiroExperimental
Experincia1ConsultasDNS
1. Caso esteja utilizando a Mquina Virtual fornecida pelo NIC.br pule para o passo 2. Caso no esteja utilizando a Mquina Virtual fornecida pelo NIC.br instale o programa BIND, que umaimplementaodoprotocoloDNS, com versosuperior a9.8.Namquinavirtual,utilizeumTerminalpararodaroscomandos:
$ w g e t f t p : / / f t p . i s c . o r g / i s c / b i n d 9 / 9 . 8 . 1 P 1 / b i n d 9 . 8 . 1 P 1 . t a r . g z $ t a r x v z f b i n d 9 . 8 . 1 P 1 . t a r . g z $ c d x v z f b i n d 9 . 8 . 1 P 1 $ . / c o n f i g u r e $ m a k e $ s u d o m a k e i n s t a l l

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

144

ParaverificarqualaversomaisatualdoBINDacessewww.isc.org/products/BIND. 2. Agora, Inicie o CORE e abra o arquivo servicosdns1.imn localizado no diretrio /home/core/Desktop/servicos/DNS, da mquina virtual do NIC.br. A seguinte topologiadeveaparecer:

Nesta topologia temos, localizados na Internet, a representao de um servidor www_exemplo_com_br que responde pelo nome dedomniowww.exemplo.com.br e um servidor DNS, com nome servidorDNSautoritativo, que possui autoridade sobre este domnio. Temos tambm, localizados no ISP, um servidor DNS recursivo, servidorDNSrecursivo, que recebe requisies de resoluo de nomes, feitaspelamquinacliente,easencaminhaparaoservidorDNSautoritativo. 3. Verifiqueaconfiguraodosnsdatopologia: a. Inicieasimulaorealizandoumdosseguintespassos: i. cliquenoboto ou ii. utilizeomenuExperiment>Start. 4. Neste laboratrio, as configuraes sero realizadas apenas nos equipamentos do ISP e elas sero iniciadas pelo servidorDNSrecursivo. Crie o arquivo n a m e d . c o n f nodiretrio/ e t c / n a m e d / : a. Acesse o terminal da mquina servidorDNSrecursivo (duplo clique sobre ela)edigiteosseguintescomando:
IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

145

# n a n o / e t c / n a m e d / n a m e d . c o n f

b. Adicioneasseguinteslinhasnoarquivocriado:
o p t i o n s { a l l o w q u e r y { 1 9 2 . 0 . 2 . 0 / 2 4 } f o r w a r d o n l y f o r w a r d e r s { 2 0 3 . 0 . 1 1 3 . 2 } }

Aperte Ctrl+X para sair do nano e Y para confirmar a modificao do arquivo. Caso esteja utilizando a Mquina Virtual fornecida pelo NIC.br, o contedo destearquivopodeservistoem: /home/core/Desktop/servicos/DNS/named.conf1. Este arquivo contm as configuraes mnimas paraofuncionamentodeum servidor DNSrecursivo.Aopoallowqueryindicaafaixadeendereos IP que tm permisso para realizar consultas ao servidor a opo forward only indica que este servidor notem autoridadesobrenenhum domnio,ele apenas encaminha requisies para outros servidores, funcionando como um cache DNS por fim, na opo forwarders definida uma lista de endereos IP de servidores DNS para os quais as requisies devem ser encaminhadas. Observe que este servidor recursivo srecebeeencaminha requisiesviaIPv4. 5. O BIND possui ferramentas que verificam a sintaxe dos arquivos de configurao que podem auxiliar na resoluo de problemas relacionados ao funcionamento do DNS. Deste modo, antes de iniciar o processo do BIND, verifique se o arquivo n a m e d . c o n f foigeradocorretamente:
# n a m e d c h e c k c o n f p / e t c / n a m e d / n a m e d . c o n f

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

146

Oresultadodeveser:

6. Caso o passo anterior no tenha apresentado erros de execuo, inicie o processo doBINDatravsdoseguintecomando:
# n a m e d c / e t c / n a m e d / n a m e d . c o n f

Oresultadodeveser:

7. Abra o terminal da mquina cliente e configure o arquivo r e s o l v . c o n f , localizado no diretrio / e t c / , de forma que a mquina comee a utilizar o servidorDNSrecursivoparaarealizaodeconsultasDNS: a. Acesse o terminal da mquina cliente (duplo clique sobre ela) e digite o seguintecomando:
# n a n o / e t c / r e s o l v . c o n f

b. Adicioneoseguintecontedoaoarquivoresolv.conf:
n a m e s e r v e r 1 9 2 . 0 . 2 . 1 0 0

AperteCtrl+XparasairdonanoeYparaconfirmaramodificaodo arquivo. Note que essa regra configura apenas o endereo IPv4 do servidorDNSrecursivo. 8. Ainda na mquina cliente, realize uma consulta DNS ao registro AAAA do domnio www.exemplo.com.br,ouseja,aoendereoIPv6associadoaestedomnio.

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

147

a. Estaconsultapodeserfeitacomautilizaodocomandohost:
# h o s t t A A A A w w w . e x e m p l o . c o m . b r

Oresultadodeveser:

Mesmo com o servidorDNSrecursivo configurado para ser acessado apenas via IPv4, ele capaz deresponderrequisies deendereos IPv6. Isso demonstra que as informaes armazenadas no banco de dados do servidor DNS so independentes da verso do protocoloderedeutilizadona comunicao. b. FaaagoraumaconsultasemoparmetrotAAAA:

#h o s t w w w . e x e m p l o . c o m . b r

Oresultadodeveser:

PodeseobservarquearespostacontmtantooendereoIPv4quantoo endereoIPv6associadosaodomniopesquisado. 9. OprximopassohabilitaroservidorDNSrecursivoparaaceitarrequisiesvia IPv6. a. Para isso, abra um terminaldamquinaservidorDNSrecursivo(duploclique sobreela)edigiteosseguintescomandos:


# n a n o / e t c / n a m e d / n a m e d . c o n f

b. Adicione a linha l i s t e n o n v 6 { a n y } e adicione na opo a l l o w q u e r y a rede IPv6 do ISP. O arquivo n a m e d . c o n f deverficar daseguinteforma:
IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

148

o p t i o n s { a l l o w q u e r y { 1 9 2 . 0 . 2 . 0 / 2 4 2 0 0 1 : d b 8 : c a 5 a : : / 4 8 } f o r w a r d o n l y f o r w a r d e r s { 2 0 3 . 0 . 1 1 3 . 2 } l i s t e n o n v 6 { a n y } }

AperteCtrl+XparasairdonanoeYparaconfirmaramodificaodo arquivo. c. Antes de iniciar o processo do BIND, verifique se o arquivo n a m e d . c o n f foigeradocorretamente.Issopodeserfeitoatravsdoseguintecomendo:


# n a m e d c h e c k c o n f p / e t c / n a m e d / n a m e d . c o n f

Oresultadodeveser:

d. Caso o passo anterior no tenha apresentado erros de execuo, reinicie o processo do BIND para que a alterao seja aplicada. Para isso, digite os seguintescomandos:
# k i l l a l l n a m e d # n a m e d c / e t c / n a m e d / n a m e d . c o n f

Oresultadodeveser:

10. Abra o terminal da mquina cliente eediteoarquivor e s o l v . c o n f ,localizadono diretrio / e t c / , de forma que a mquina comee a utilizar tambm o endereo
IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

149

IPv6doservidorDNSrecursivoparaarealizaodeconsultasDNS: a. Acesse o terminal da mquina cliente (duplo clique sobre ela) e digite o seguintecomando:
# n a n o / e t c / r e s o l v . c o n f

b. Adicioneaocontedoexistentenoarquivor e s o l v . c o n f aseguintelinha:
n a m e s e r v e r 2 0 0 1 : d b 8 : c a 5 a : 1 : : 2

Aperte Ctrl+X para sair do nano e Y para confirmar a modificao do arquivo. 11. Ainda na mquina cliente, realize uma consulta DNS ao registro A do domnio www.exemplo.com.br, ou seja, ao endereo IPv4 associado a este domnio, porm forcequeaconsultasejafeitaviaIPv6 a. Utilizeocomandohostcomaopo6:
# h o s t t A 6 w w w . e x e m p l o . c o m . b r

Oresultadodeveser:

Assim como ocorreu nos teste do item 8, mesmo com a realizao da requisio via IPv6, o servidor DNS recursivo foi capaz de responder por endereosIPv4. b. possvel realizar uma srie de testes para verificar o funcionamento do servidor DNS. Algumas opes podem ser feitas com a utilizao dos comandos dig, ping e ping6 para verificar a conectividade, resoluo de endereoreverso,etc.Algunsexemplosso:
# h o s t 2 0 0 1 : d b 8 : c a f e : : 1 0 # p i n g w w w . e x e m p l o . c o m . b r # p i n g 6 w w w . e x e m p l o . c o m . b r # n s l o o k u p t y p e = A N Y e x e m p l o . c o m . b r

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

150

12. PareasimulaodoCORE: a. aperteoboto b. ouutilizeomenuExperiment>Stop.

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

151

Experincia2DNS:ConfigurandoumServidorAutoritativo
1. Para a realizao desta segunda experincia, tambm necessria ainstalaodo BIND,comodescritanoitem1doexerccioanterior.I 2. Agora, Inicie o CORE e abra o arquivo servicosdns2.imn localizado no diretrio /home/core/Desktop/servicos/DNS, da mquina virtual do NIC.br. A seguinte topologiadeveaparecer:

Nesta topologia temos,localizados naInternet,arepresentaodeum servidorDNS recursivo (servidorDNSrecursivoExterno), responsvel por receber requisies de nomes de seus clientes e reencaminhlas para servidores autoritativos, e de um cliente (clienteExterno) que serutilizadopararealizaras requisies DNS,testando assim as configuraes aplicadas. No ISP, encontramse dois servidores representando os servios de email e web, e um servidor DNS autoritativo (servidorDNSautoritativo) responsvel por responder requisies ao domnio exemplo.psi.br. 3. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulaorealizandoumdosseguintespassos:

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

152

i. cliquenoboto ii. utilizeomenuExperiment>Start. 4. Neste laboratrio, as configuraes sero realizadas apenas nos equipamentos do ISP. Inicialmente, analise os arquivos de configurao do BIND localizados no servidor DNS autoritativo do ISP. Este servidor j est configurado para responder requisiesporregistrostipoAedeendereamentoreversoIPv4. a. Para isso, acesse o terminal da mquina servidorDNSautoritativo (duplo clique sobre ela) e visualize o arquivo named.conf localizado no diretrio /etc/named/digitandooseguintecomando:
# c a t / e t c / n a m e d / n a m e d . c o n f

Oarquivonamed.confdeverconteraslinhas:
o p t i o n s { d i r e c t o r y " / e t c / n a m e d / " l i s t e n o n { a n y } a l l o w q u e r y { a n y } r e c u r s i o n n o } z o n e " . " { t y p e h i n t f i l e " n a m e d . r o o t " } z o n e " e x e m p l o . p s i . b r " { t y p e m a s t e r f i l e " e x e m p l o . p s i . b r . z o n e " } z o n e " 2 . 0 . 1 9 2 . i n a d d r . a r p a " { t y p e m a s t e r f i l e " 1 9 2 0 2 . d b " }

Este arquivo contem as configuraes bsicas necessrias para o funcionamento do servidorDSNautoritativo.Noprimeiroblocodecomandos, o options , temos as especificaes que controlam o comportamento global doservidor.Nesteexemplo, solistadas as seguintes opes:directory ,que indica em qual diretrio encontramse os arquivos utilizados pelo BIND listenon, lista os endereos IPv4 e Portas habilitadas para responderem as requisies DNS, neste exemplo est a configurao padro, responder em qualquer interface e na porta 53allowquery ,listadequais endereos IPtm permisso para realizar requisies, neste exemplo so aceitas requisies vindas de qualquer IP e recursion, indica seoservidorcapaz (yes)ouno
IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

153

(no)dereencaminharrequisiesaoutrosservidoresautoritativos. Abaixo das opes, temos alistadearquivos com as zonas conhecidas pelo servidor e dos arquivos com as respectivas informaes. A zona . representa a zona raiz da Internet e o arquivo named.root contem os endereos dos servidores raiz DNS (a.rootservers.net m.rootservers.net) onde o BIND ir buscar as informaes sobre os domnios de primeironvel (por exemplo: .br, .com, .net, .org....). A zona exemplo.psi.br indica o domnio sobre o qual o servidor DNS tem autoridade para responder requisies (type master) e a 2.0.192.inaddr.arpa indica qual a zona de endereamento reverso IPv4 o servidor responde. Agora, analise cada um dosarquivosrelacionadosaestasduaszonas. b. Primeiro analise o arquivo exemplo.psi.br.zone localizado no diretrio /etc/named/,paraisso,digiteoseguintecomando:
# c a t / e t c / n a m e d / e x e m p l o . p s i . b r . z o n e

Oarquivoexemplo.psi.br.zonedeverconteraslinhas:
R e c o m e n d a s e u t i l i z a r o v a l o r d o T T L i g u a l a 1 d i a ( 8 6 4 0 0 s e g u n d o s ) , m a s p a r a e f e i t o d e d e m o s t r a o u t i l i z a r e m o s u m v a l o r r e d u z i d o $ T T L 1 s e x e m p l o . p s i . b r . I N S O A n s . e x e m p l o . p s i . b r . r o o t . e x e m p l o . p s i . b r . ( 1 5 s e r i a l 2 8 8 0 0 r e f r e s h 7 2 0 0 r e t r y 6 0 4 8 0 0 e x p i r e 1 s t t l ) S e r v i d o r q u e r e s p o n d e p e l o d o m i n i o I N N S n s . e x e m p l o . p s i . b r . n s I N A 1 9 2 . 0 . 2 . 1 0 S e r v i d o r d e e m a i l e x e m p l o . p s i . b r . I N M X 1 0 m a i l . e x e m p l o . p s i . b r . m a i l I N A 1 9 2 . 0 . 2 . 2 2 0 P o l i t i c a d e S P F e x e m p l o . p s i . b r . I N T X T " v = s p f 1 m x i p 4 : 1 9 2 . 0 . 2 . 0 / 2 4 a l l " e x e m p l o . p s i . b r . I N S P F " v = s p f 1 m x i p 4 : 1 9 2 . 0 . 2 . 0 / 2 4 a l l " S e r v i d o r W e b e x e m p l o . p s i . b r . I N A 1 9 2 . 0 . 2 . 2 1 0 w w w I N C N A M E e x e m p l o . p s i . b r .

Este arquivo apresenta os registros e diretivas relacionados a zona exemplo.psi.br. A diretiva $TTL (Time To Live) indica o tempo que os registros devem
IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

154

permanecer nocachesem quesejam atualizados,podendoserexpressoem segundos, minutos, horas, dias ousemanas (em nossoexemploestsetado para um segundo, mas apenas para que os exerccios possam ser demonstrados.Arecomendaoquesejapelomenosumdia). c. Agora, analise o arquivo 19202.db localizado no diretrio /etc/named/. Para isso,digiteoseguintecomando:
# c a t / e t c / n a m e d / 1 9 2 0 2 . d b

Oarquivo19202.dbdeverconteraslinhas:
$ T T L 8 6 4 0 0 2 . 0 . 1 9 2 . i n a d d r . a r p a . I N S O A n s . e x e m p l o . p s i . b r . r o o t . e x e m p l o . p s i . b r . ( 1 5 s e r i a l 2 8 8 0 0 r e f r e s h 7 2 0 0 r e t r y 6 0 4 8 0 0 e x p i r e 8 6 4 0 0 t t l ) S e r v i d o r D N S q u e r e s p o n d e p o r e s t a z o n a r e v e r s o I N N S n s . e x e m p l o . p s i . b r . E n d e r e c o s r e v e r s o s 1 0 I N P T R n s . e x e m p l o . p s i . b r . 2 1 0 I N P T R w w w . e x e m p l o . p s i . b r . 2 2 0 I N P T R m a i l . e x e m p l o . p s i . b r .

Este arquivo apresenta os registros e diretivas relacionados a zona de endereamentoreversaIPv4. 5. Faa agora algumas consultas DNS para testar as configuraes do servidor DNS autoritativodaredeISP. a. Para isso, acesse a mquina clienteExterno (duplo clique sobreela)edigite oseguintecomando:
# h o s t w w w . e x e m p l o . p s i . b r

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

155

Oresultadodeveser:

Apartirdarespostaobtidapodeseobservarque: o nome www.exemplo.psi.br um alias (apelido) para o domnio exemplo.psi.br para o nome consultado h um endereo IPv4 associado, o 192.0.2.210 e que existe um servidor de email associado ao domnio exemplo.psi.br,omail.exemplo.psi.br. b. Outra consulta que podeserrealizadaaderesoluodeendereoreverso. AcesseamquinaclienteExternoedigiteoseguintecomando:
# h o s t 1 9 2 . 0 . 2 . 2 2 0

Oresultadodeveser:

O contedodas respostas baseadonas informaes contidas nos arquivos 19202.db e exemplo.psi.br.zone, existentes no servidorDNSrecursivo e analisadas nos itens 4b e 4c deste exerccio. Note que, apesar dos servidores do ISP terem endereos IPv6 em suas interfaces de rede, nenhuma consulta DNS feitaretornouum endereoIPv6comoresposta.Isto ocorreu porque no h essa informaocadastradanos arquivos dezonado ServidorDNSAutoritativodoISP. 6. Deste modo, o prximo passo configurar o Servidor Autoritativo para que ele seja capaz tanto de receber requisies via IPv6 quanto responder endereos IPv6 s consultasrealizadas.

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

156

a. Primeiro, acesse o terminal da mquina servidorDNSautoritativo (duplo clique sobre ela) e edite o arquivo named.conf localizado no diretrio /etc/named/digitandooseguintecomando:
# n a n o / e t c / n a m e d / n a m e d . c o n f

b. Adicione s opes a linha listenonv6 { any }, habilitando o servidor a receber consultas via IPv6. O campo options do arquivo named.conf ficar destaforma: ATENO: Apenas adicione alinhaindicada.Orestantedoarquivono deveseralterado!
o p t i o n s { d i r e c t o r y " / e t c / n a m e d / " l i s t e n o n { a n y } l i s t e n o n v 6 { a n y } a l l o w q u e r y { a n y } r e c u r s i o n n o }

Aperte Ctrl+X para sair do nano e Y para confirmar a modificao do arquivo. c. Antes de reiniciar o processo doBIND,verifiqueseoarquivon a m e d . c o n f foigeradocorretamente.Issopodeserfeitoatravsdoseguintecomendo:
# n a m e d c h e c k c o n f p / e t c / n a m e d / n a m e d . c o n f

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

157

Oresultadodeveser:

d. Edite tambm o arquivo exemplo.psi.br.zone localizado no diretrio /etc/named/, adicionando os endereos IPv6 aos nomes e registros j configurados e alterando os parmetros das polticas de SPF. Para isso, digiteoseguintecomando:
# n a n o / e t c / n a m e d / e x e m p l o . p s i . b r . z o n e

Oarquivoexemplo.psi.br.zonedeverconteraslinhas: ATENO: As linhas que devem ser adicionadas ou alteradas esto destacadasabaixo!
R e c o m e n d a s e u t i l i z a r o v a l o r d o T T L i g u a l a 1 d i a ( 8 6 4 0 0 s e g u n d o s ) , m a s p a r a e f e i t o d e d e m o s t r a o u t i l i z a r e m o s u m v a l o r r e d u z i d o $ T T L 1 s e x e m p l o . p s i . b r . I N S O A n s . e x e m p l o . p s i . b r . r o o t . e x e m p l o . p s i . b r . ( 1 5 s e r i a l 2 8 8 0 0 r e f r e s h 7 2 0 0 r e t r y 6 0 4 8 0 0 e x p i r e 1 s t t l ) S e r v i d o r q u e r e s p o n d e p e l o d o m i n i o I N N S n s . e x e m p l o . p s i . b r . n s I N A 1 9 2 . 0 . 2 . 1 0 n s I N A A A A 2 0 0 1 : d b 8 : c a 5 a : 1 : : 1 0

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

158

S e r v i d o r d e e m a i l e x e m p l o . p s i . b r . I N M X 1 0 m a i l . e x e m p l o . p s i . b r . m a i l I N A 1 9 2 . 0 . 2 . 2 2 0 m a i l I N A A A A 2 0 0 1 : d b 8 : c a 5 a : 2 : : 2 2 0 P o l i t i c a d e S P F e x e m p l o . p s i . b r . I N T X T " v = s p f 1 m x p t r i p 4 : 1 9 2 . 0 . 2 . 0 / 2 4 \ i p 6 : 2 0 0 1 : d b 8 : c a 5 a : : / 4 8 a l l " e x e m p l o . p s i . b r . I N S P F " v = s p f 1 m x p t r i p 4 : 1 9 2 . 0 . 2 . 0 / 2 4 \ i p 6 : 2 0 0 1 : d b 8 : c a 5 a : : / 4 8 a l l " S e r v i d o r W e b e x e m p l o . p s i . b r . I N A 1 9 2 . 0 . 2 . 2 1 0 e x e m p l o . p s i . b r . I N A A A A 2 0 0 1 : d b 8 : c a 5 a : 2 : : 2 1 0 w w w I N C N A M E e x e m p l o . p s i . b r .

Aperte Ctrl+X para sair do nano e Y para confirmar a modificao do arquivo. Caso esteja utilizando a Mquina Virtual fornecida pelo NIC.br, o contedo destearquivopodeservistoem: /home/core/Desktop/servicos/DNS/exemplo.psi.br.zone. Observe que alm de adicionar os registros AAAA aos nomes de domnios previamente cadastrados, tambm foram adicionados parmetros s polticasdeSPF. e. Para verificar se no existem erros no arquivo de zona gerado, digite o seguintecomandonoterminaldoservidorDNSautoritativo:
# n a m e d c h e c k z o n e e x e m p l o . p s i . b r / e t c / n a m e d / e x e m p l o . p s i . b r . z o n e

Oresultadodeveser:

f.

Caso os passos anteriores no tenham apresentado erros de execuo, reinicie o processo do BIND para que as alteraes sejam aplicadas. Para isso,digiteosseguintescomandos:
# k i l l a l l n a m e d # n a m e d c / e t c / n a m e d / n a m e d . c o n f

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.brrev.2012.06.0201

159

Oresultadodeveser:

g. Para verificar se as alteraes foram realizadas corretamente, acesse a mquina clienteExterno (duplo clique sobre ela) e realize algumas requisiesDNS.Paraisso,utilizeocomandohostdigitandooseguinte:
# h o s t w w w . e x e m p l o . p s i . b r

Oresultadodeveser:

Alm das informaes obtidas no item 5a, tambm temos agora um endereoIPv6associadoaonomewww.exemplo.psi.br. h. Repitaostestesparaosoutrosendereosecompareosresultados.Utilize, porexemplo,ocomandonslookupparaobterumarespostamaiscompleta digitandooseguinte:
# n s l o o k u p t y p e = A N Y e x e m p l o . p s i . b r

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.br rev.2012.06.0201 160

Oresultadodeveser:

7. Para finalizar o exerccio, configure o Servidor Autoritativo para responder a requisiesdeendereamentoreversoIPv6. a. Para isso, acesse a mquina servidorDNSautoritativo (duplo clique sobre ela) e crie o arquivo 2001db8ca5a.db dentro do diretrio /etc/named/, digitandooseguintecomando:
# n a n o / e t c / n a m e d / 2 0 0 1 d b 8 c a 5 a . d b

Adicioneaslinhasabaixoaoarquivo2001db8ca5a.db:
$ T T L 8 6 4 0 0 a . 5 . a . c . 8 . b . d . 0 . 1 . 0 . 0 . 2 . i p 6 . a r p a . I N S O A n s . e x e m p l o . p s i . b r . \ r o o t . e x e m p l o . p s i . b r . ( 1 5 s e r i a l 2 8 8 0 0 r e f r e s h 7 2 0 0 r e t r y 6 0 4 8 0 0 e x p i r e 8 6 4 0 0 t t l ) S e r v i d o r D N S q u e r e s p o n d e p o r e s t a z o n a r e v e r s o I N N S n s . e x e m p l o . p s i . b r . E n d e r e c o s r e v e r s o s $ O R I G I N a . 5 . a . c . 8 . b . d . 0 . 1 . 0 . 0 . 2 . i p 6 . a r p a . 0 . 1 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 1 . 0 . 0 . 0 I N P T R n s . e x e m p l o . p s i . b r . 0 . 1 . 2 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 2 . 0 . 0 . 0 I N P T R w w w . e x e m p l o . p s i . b r . 0 . 2 . 2 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 0 . 2 . 0 . 0 . 0 I N P T R m a i l . e x e m p l o . p s i . b r .

AperteCtrl+XparasairdonanoeYparaconfirmaramodificaodo arquivo.
IPv6.brLaboratrioDNSNIC.brhttp://ipv6.br rev.2012.06.0201 161

CasoestejautilizandoaMquinaVirtualfornecidapeloNIC.br,ocontedo destearquivopodeservistoem: /home/core/Desktop/servicos/DNS/2001db8ca5a.db. Este arquivo apresenta os registros e diretivas relacionados a zona de endereamento reversa IPv6. Ele possui as mesmas funcionalidade e caractersticasdoarquivo19202.dbanalisadonoitem4c. b. Paraverificarsenoexistemerrosnoarquivodezonagerado,digiteo seguintecomandonoterminaldoservidorDNSautoritativo:
# n a m e d c h e c k z o n e a . 5 . a . c . 8 . b . d . 0 . 1 . 0 . 0 . 2 . i p 6 . a r p a / e t c / n a m e d / 2 0 0 1 d b 8 c a 5 a . d b

Oresultadodeveser:

c. Agora,cadastreessazonanoarquivonamed.conf,localizadonodiretrio /etc/named/.Paraisso,digiteoseguintecomandonoterminaldamquina servidorDNSautoritativo:


# n a n o / e t c / n a m e d / n a m e d . c o n f

d. Adicioneaofinaldoarquivoasseguinteslinha:
z o n e " a . 5 . a . c . 8 . b . d . 0 . 1 . 0 . 0 . 2 . i p 6 . a r p a " { t y p e m a s t e r f i l e " 2 0 0 1 d b 8 c a 5 a . d b " }

AperteCtrl+XparasairdonanoeYparaconfirmaramodificaodo arquivo. CasoestejautilizandoaMquinaVirtualfornecidapeloNIC.br,ocontedo destearquivopodeservistoem: /home/core/Desktop/servicos/DNS/named.conf2. e. Antes de reiniciar o processo doBIND,verifiqueseoarquivon a m e d . c o n f foigeradocorretamente.Issopodeserfeitoatravsdoseguintecomendo:
# n a m e d c h e c k c o n f p / e t c / n a m e d / n a m e d . c o n f

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.br rev.2012.06.0201 162

Oresultadodeveser:

f.

Caso os passos anteriores no tenham apresentado erros de execuo, reinicie o processo do BIND para que as alteraes sejam aplicadas. Para isso,digiteosseguintescomandos:
# k i l l a l l n a m e d # n a m e d c / e t c / n a m e d / n a m e d . c o n f

Oresultadodeveser:

g. Para verificar se as alteraes foram realizadas corretamente, acesse a mquina clienteExterno (duplo clique sobre ela) e realize algumas requisiesDNS.Paraisso,utilizeocomandohostdigitandooseguinte:
# h o s t 2 0 0 1 : d b 8 : c a 5 a : 2 : : 2 2 0

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.br rev.2012.06.0201 163

Oresultadodeveser:

h. Repitaostestesparaosoutrosendereosecompareosresultados.Utilize, porexemplo,ocomandonslookupparaobterumarespostamaiscompleta digitandooseguinte:


# n s l o o k u p 2 0 0 1 : d b 8 : c a 5 a : 2 : : 2 2 0

Oresultadodeveconternomnimoasinformaesabaixo:

8. Para encerrar, possvel realizar uma srie de testes de conectividade atravs do nome de uma mquina. Algumas opes podem ser feitas com a utilizao dos comandospingouping6,tracerouteoutraceroute6emtr.Algunsexemplosso:
# p i n g w w w . e x e m p l o . p s i . b r # p i n g 6 w w w . e x e m p l o . p s i . b r # m t r e x e m p l o . p s i . b r # t r a c e r o u t e 6 m a i l . e x e m p l o . p s i . b r

9. PareasimulaodoCORE: c. aperteoboto d. ouutilizeomenuExperiment>Stop.

IPv6.brLaboratrioDNSNIC.brhttp://ipv6.br rev.2012.06.0201 164

165

IPV6ServiosIPv6ServidoresHTTP
Objetivo
O objetivo desse laboratrio apresentar o funcionamento em IPv6 dos servidores HTTP, Apache2 e Nginx, dois dos mais populares na Web. Para isso, ele est dividido em trs experincias: na primeira mostrado o funcionamento bsico em IPv6 do Apache2 na segunda, so abordadas algumas das diferenas entre as configuraes IPv4 e IPv6 do servidor Apache2 e na ltima, so apresentadas as mudanas necessrias para que o servidorNginxfuncioneviaIPv6. Para a realizao do presente exercicio ser utilizada a topologia descrita nos arquivos: servicoshttp1.imn,servicoshttp2.imneservicoshttp3.imn.

IntroduoTerica
Atualmente a Internet vive um momento de transio do IPv4 para o IPv6 devido escassez de endereos nesta primeira verso do protocolo. Alm das mudanas relacionadas s interfaces fsicas dos dispositivos na rede, so necessrias alteraes na maneira em que os servios so providos, uma vez que precisam ser adaptados parasuportaros novos formatos de endereos e especificidades dos protocolos de comunicao. Neste sentido, apesar de existirem outras tcnicas, o ideal a utilizao de pilha dupla nos equipamentos para possibilitaraexecuodeambososprotocolosemparalelo. No presente laboratrio dois dos mais populares servidores Web sero utilizados para exemplificar algumas das alteraes necessrias na configuraodonovoprotocolonestetipo de servidor. O primeiro exemplo ser o Apache2 queoservidorHTTPmais utilizadonaWeb e que suporta por padro o IPv6 desde sua verso 2.0. E, o segundo, ser o Nginx que tem aumentado a participao entre os servidores de grande porte e que recebeu suporte ao IPv6 em sua verso 08.22. Ao contrrio do que acontece no Apache, o suporte IPv6 no habilitadoporpadronesteservidor,porm,suaconfiguraobastanterpida. Apesar da configurao bsica de habilitao do suporte a IPv6 ser, na maioria dos casos, bastantesimples,necessrioseatentaraconfiguraes mais complexas.Nos casos em que o servidor possui VirtualServers atrelados a endereos IPv4 especficos, necessrio que a configurao seja modificada para que eles fiquem tambm atrelados aos endereos IPv6das interfaces de rede da mquina. Um exemplo desse tipo de caso ser mostrado na segunda experinciadesselaboratrio.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

166

RoteiroExperimental
Experincia3FuncionamentoBsico
1. CasoestejautilizandoamquinavirtualfornecidapeloNIC.br,puleparaopasso2: a. O apache2um servidorHTTPbastanteutilizadonaWeb.Parainstallo,basta rodaroseguintecomandonoTerminal:
$ s u d o a p t g e t i n s t a l l a p a c h e 2

2. Inicie o CORE e abra o arquivo servicoshttp1.imn localizado no diretrio /home/core/Desktop/servicos/http, da mquina virtual do NIC.br. A seguinte topologia deveaparecer:

3. Anliseatopologia,observandoosendereos,ecomeceoexperimento: a. Inicieasimulaorealizandoumdosseguintespassos:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

167

i. aperteoboto ou ii. utilizeomenuExperiment>Start. 4. Inicieoapache2noservidor: a. Abraumterminaldoservidorcomumduploclique. b. UtilizeoseguintecomandoparainiciaroservidorHTTPapache2:


# / e t c / i n i t . d / a p a c h e 2 s t a r t

Oresultadodeveser:

*OBS: os erros mostrados acontecem porque os nomes de domnio e do servidor no foram configurados para a mquina, porm, eles no afetam o funcionamentodoservioparaaexperincia. 5. Verifique que o servio apache2 est ativo e escutando na porta 80 das interfaces de rededamquinaservidor: a. Abraoterminaldoservidorcomumduploclique. b. Utilizeoseguintecomandoparaverificarqueoprocessoapache2estativo:
# p s a u x

Oresultadodeveserparecidocomatelaseguinte:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

168

c. Utilize o seguinte comando para verificar que oservioapache2estescutando aporta80detodasassuasinterfacesderede:


# n e t s t a t a n t u p

Oresultadodeveser:

*Obs: A string:::80indicaautilizaodaporta80doendereoIPv6[::/128]que utilizado em programao para mostrar que o servio no est atrelado a nenhum dos endereos IPv6 do dispositivo, ou seja, queelepodeseracessado emqualquerumdosendereosdasinterfacesderededamquina. 6. VerifiqueofuncionamentodoservidorHTTPapartirdocliente: a. Abraumterminaldoclientecomumduploclique. b. RealizeumarequisioHTTPGETaoservidor:
# w g e t h t t p : / / [ 2 0 0 1 : d b 8 : : 1 0 ] /

Oresultadodeveser:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

169

c. Vejaqueoarquivofoibaixadocorretamente:
# c a t i n d e x . h t m l

d. Abraumterminaldoservidoreverifiqueoslogsgeradospeloapache:
# c a t / v a r / l o g / a p a c h e 2 / a c c e s s . l o g

*Obs: Note que o endereo registrado pelo servidor Apache um endereo IPv6.Issoimportantepois,casooservidorutilizescripts ououtras ferramentas de anlise de logs, essas ferramentas devero ser capazes de analisar o formatodosendereosIPv6. 7. Encerreasimulaodoexperimento: a. Execute o seguinte comando em um terminal do servidor para parar a execuodoservioapache2:
# / e t c / i n i t . d / a p a c h e 2 s t o p

b. PareasimulodoCORE: i. aperteoboto ou ii. utilizeomenuExperiment>Stop.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

170

Expeincia4ConfiguraoIPv6noApache
1. Essa segunda experincia apresenta algumas especificidades da configurao de servidoresApacheemredesIPv6. Para realizla, tambm necessria a instalao do pacote apache2 como indicado noitem1.a.daexperinciaanterior. 2. Inicie o CORE e abra o arquivo servicoshttp2.imn localizadonodiretriododesktop Servios,damquinavirtualdoNIC.br.Aseguintetopologiadeveaparecer:

3. Verifiqueaconfiguraodosnsdatopologia: a. Inicieasimulaoexecutandoumdosseguintespassos: i. aperteoboto ,ou ii. utilizeomenuExperiment>Start. 4. VerifiquequeoservidorapacheestativoapenasviaIPv4: a. Abraumterminaldoclientecomumduploclique.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

171

b. AcesseoservidorHTTPjconfiguradonamquinaservidor:
# w g e t 1 0 . 0 . 0 . 1 0

Oresultadodeveser:

*Obs:Notequeoarquivoindex.htmlfoiacessadocorretamente. c. AgorautilizeoendereoIPv6:
# w g e t h t t p : / / [ 2 0 0 1 : d b 8 : : 1 0 ] /

Oresultadodeveser:

*Obs:Notequeoacessofoirecusado. d. Verifique agora a configurao do apache no servidor. Abra um terminal dessa comumduploclique. e. Utilizeoseguintecomandoparaverificarosserviosativosnamquina:
# n e t s t a t a n t u p

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

172

Oresultadodeveser:

*Obs:Notequeaporta80doservidorsestabertaparaoendereoIPv4. 5. Nos passos a seguir o servidor ser configurado para escutar tambm a porta 80 de suainterfaceIPv6: a. No terminal do servidor, abra o arquivo / e t c / a p a c h e 2 / p o r t s . c o n f . Um editor de texto que pode ser utilizado o nano. Para utilizlo, digite o seguinte comandonoterminal:
# n a n o / e t c / a p a c h e 2 / p o r t s . c o n f

b. Localizeasseguinteslinhasnoarquivo:
N a m e V i r t u a l H o s t 1 0 . 0 . 0 . 1 0 : 8 0 L i s t e n 1 0 . 0 . 0 . 1 0 : 8 0

Note que elas configuram o servidor apache para escutar apenas na interface IPv4. Por padro, o apache configurado para escutar todas as interfaces de rede da mquina que est instalado com as linhas (no altere o arquivo para incluirestaslinhas):
N a m e V i r t u a l H o s t * : 8 0 L i s t e n 8 0

Porm, a especificao de endereos IP bastante comum em servidores de produo com mais de um site configurado. Nesses casos,paraqueositeseja visto tambm em IPv6, os novos endereos tem de ser adicionados na configurao.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

173

c. LogoabaixodaconfiguraodoendereoIPv4,adicioneaslinhas:
N a m e V i r t u a l H o s t [ 2 0 0 1 : d b 8 : : 1 0 ] : 8 0 L i s t e n [ 2 0 0 1 : d b 8 : : 1 0 ] : 8 0

*Obs:NotequeoendereoIPv6deveestarentrecolchetes. Utilize o comando Ctrl+X seguindo de Y e enter para sair e salvar as modificaesdoarquivo. d. Abra o arquivo / e t c / a p a c h e 2 / s i t e s a v a i l a b l e / d e f a u l t para alterar tambm a configurao do VirtualHost. Isso pode ser feito com a utilizao do editordetextonano:

# n a n o / e t c / a p a c h e 2 / s i t e s a v a i l a b l e / d e f a u l t

Alterealinha:
< V i r t u a l H o s t 1 0 . 0 . 0 . 1 0 : 8 0 >

Paraaseguinte:
< V i r t u a l H o s t 1 0 . 0 . 0 . 1 0 : 8 0 [ 2 0 0 1 : d b 8 : : 1 0 ] : 8 0 >

Salveoarquivoefecheoeditordetexto. e. Reinicieoservioapache2com cdigoaseguirparaqueelefaausodas novas configuraes:


# / e t c / i n i t . d / a p a c h e 2 r e s t a r t

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

174

Oresultadodeveser:

*OBS: os erros mostrados acontecem porque os nomes de domnio e do servidor no foram configurados para a mquina, porm, eles no afetam o funcionamentodoservioparaaexperincia. f. Rode novamente o comandonetstat,comomostradoaseguir,paraverificarque o servidor apache2 est escutando a porta 80 tanto de seu endereo IPv4 quantoIPv6:
# n e t s t a t a n t u p

Oresultadodeveser:

g. Para confirmar o funcionamento do servidor HTTP, abra um terminaldocliente eutilizeosseguintescomandos:


# w g e t h t t p : / / 1 0 . 0 . 0 . 1 0 / # w g e t h t t p : / / [ 2 0 0 1 : d b 8 : : 1 0 ] /

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

175

Oresultadodeveser:

6. Encerreasimulaodoexperimento: a. Execute o seguinte comando em um terminal do servidor para parar a execuodoservioapache2:


# / e t c / i n i t . d / a p a c h e 2 s t o p

b. PareasimulaodoCORE: i. aperteoboto ou ii. utilizeomenuExperiment>Stop.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

176

Experincia5ConfiguraoIPv6doNginx
1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br preciso, siga o passoaseguir: a. O nginx um servidor HTTP de alta performance bastante utilizado na Web. Parainstallo,bastarodaroseguintecomandonoTerminal:
$ s u d o a p t g e t i n s t a l l n g i n x

2. Inicie o CORE e abra o arquivo servicoshttp3.imn localizadonodiretriododesktop Servios,damquinavirtualdoNIC.br.Aseguintetopologiadeveaparecer:

3. Verifiqueaconfiguraodosnsdatopologia: a. Inicieasimulaorealizandoumdosseguintespassos: i. aperteoboto ou ii. utilizeomenuExperiment>Start.


IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

177

4. InicieoNginxnoservidor: a. Abraumterminaldoservidorcomumduploclique. b. UtilizeoseguintecomandoparainiciaroservidorHTTPNginx:


# / e t c / i n i t . d / n g i n x s t a r t

Oresultadodeveser:

5. Verifique que o servio nginx est ativo e que, ao contrrio do Apache2, ele escuta apenasporta80doendereoIPv4damquinaservidor: a. Abraoterminaldoservidorcomumduploclique. b. Utilize o seguinte comando para verificar que alguns processos do nginx esto ativos:
# p s a u x

Oresultadodeveser:

c. Utilize o seguinte comando para verificar que o sevio Nginx est ouvindo a porta80apenasdeseuendereoIPv4:
# n e t s t a t a n t u p

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

178

Oresultadodeveser:

6. ConfigureoservidorNginxparafuncionartambmemIPv6: a. Ainda no terminal do servidor, modifique o arquivo de configuraes / e t c / n g i n x / s i t e s a v a i l a b l e / d e f a u l t . Para isso o editor de texto nanopodeserutilizado:
# n a n o / e t c / n g i n x / s i t e s a v a i l a b l e / d e f a u l t

b. Nesse arquivo localize as linhas 21 e 22, a seguir mostradas,edescomenteas (removaocaracter#doiniciodalinha):


# l i s t e n 8 0 # # l i s t e n f o r i p v 4 t h i s l i n e i s d e f a u l t a n d i m p l i e d # l i s t e n [ : : ] : 8 0 d e f a u l t i p v 6 o n l y = o n # # l i s t e n f o r i p v 6

c. Utilize o comando Ctrl+X seguindo de Y e enter para sair e salvar as modificaesdoarquivo. d. Renicieoservidorcomoseguintecomando:
# / e t c / i n i t . d / n g i n x r e s t a r t

Oresultadodeveser:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

179

e. Verifique que agora o servio nginx escuta tambm a porta 80 das interfaces IPv6doservidor:
# n e t s t a t a n t u p

Oresutadodeveser:

*Obs: A string:::80indicaautilizaodaporta80doendereoIPv6[::/128]que utilizado em programao para mostrar que o servio no est atrelado a nenhum dos endereos IPv6 do dispositivo, ou seja, queelepodeseracessado emqualquerumdosendereosdasinterfacesderededamquina. 7. VerifiqueofuncionamentodoservidorHTTPapartirdocliente: a. Abraumterminaldoclientecomumduploclique. b. Realize requisies HTTP GET ao servidor em ambos os endereos do servidor:
# w g e t h t t p : / / [ 2 0 0 1 : d b 8 : : 1 0 ] / # w g e t 1 0 . 0 . 0 . 1 0

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

180

Oresultadodeveser:

c. Vejaqueosarquivosforambaixadocorretamente:
# c a t i n d e x . h t m l # c a t i n d e x . h t m l . 1

*Obs: Verifique que os arquivos so iguais j que apenas um VirtualServer foi configuradonoNginx.
IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

181

d. AbraumterminaldoservidoreverifiqueoslogsgeradospeloNginx:
# c a t / v a r / l o g / n g i n x / a c c e s s . l o g

*Obs: Note que, assim como no Apache, o Nginx registraendereos tantoIPv6 quanto IPv4 no arquivo de logs. Isso importante pois, caso o servidor utilize scripts ou outras ferramentas deanlisedelogs,essas ferramentas deveroser capazesdeanalisartambmoformatodosendereosIPv6. 8. Encerreasimulaodoexperimento: a. Noterminaldoservidorexecuteoseguintecomando:
# / e t c / i n i t . d / n g i n x s t o p

Oresultadodeveser:

b. pareasimulodoCORE i. aperteoboto ou ii. utilizeomenuExperiment>Stop.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.07.1801

182

IPV6ServiosIPv6Proxy
Objetivo
Esta esperincia tem o objetivo de mostrar a configurao bsica de um proxy configurado parapermitiroacessoInternetIPv4porumaredeunicamenteIPv6. Para a realizao do presente exercicio ser utilizada a topologia descrita no arquivo: servicosproxy1.imn.

IntroduoTerica
Atualmente a Internet vive um momento de transio do IPv4 para o IPv6 devido escassez de endereos nesta primeira verso do protocolo. Alm das mudanas relacionadas s interfaces fsicas dos dispositivos na rede, so necessrias alteraes na maneira em que os servios so providos, uma vez que precisam ser adaptados parasuportaros novos formatos de endereos e especificidades dos protocolos de comunicao. Neste sentido, apesar de existirem outras tcnicas, o ideal a utilizao de pilha dupla nos equipamentos para possibilitaraexecuodeambososprotocolosemparalelo. Um servidor proxy um tipo de servio muito utilizado na Internet e, algumas de suas principaisfunesso: Manterdispositivosannimos,principalmenteporquestesdesegurana MelhorarodesempenhodeaplicaesWebcomautilizaodecaches Filtraracessocontedosouservios,principalmenteemredescorporativas ManterregistrodautilizaodaInternetporumaredeinterna Verificaraexistnciademalwareantesderetornarumcontedorequisitado. Com a troca dos protocolos de Internet, servidores proxy podem tambm ser utilizados como mecanismo de transio, que permitem o acessoWebapartirdeumaredeIPv6paraum Web siteIPv4ouviceversa. No presente labortrio o proxy de cdigo aberto squid ser configurado como proxy diretode umaredelocalparaexemplificartalfuncionalidade.Afiguraabaixoesquematizaessasituao:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

183

Osquidfoiescolhidoparaestelaboratrioporserum dos servidores proxy mais utilizados para plataforma Linux. Ele suporta IPv6 desde sua verso 2.6 com a utilizao de um patch especfico e por padro desde a 3.1. Outros servidores como o Apache, o Nginx ou o MS ISAServer tambm podem ser utilizados de maneira semelhante porm para cada um deles existeumaconfiguraodiferenteparaoperarcomIPv6.

RoteiroExperimental
Experincia6ForwardProxyemredeIPv6
1. Caso no esteja utilizando a mquina virtual fornecida pelo NIC.br, siga os passos a seguir: a. O squid3 um servidor HTTP bastante utilizado na Web. Para installo, basta rodaroseguintecomandonoTerminal:
$ s u d o a p t g e t i n s t a l l s q u i d 3

b. O apache2um servidorHTTPbastanteutilizadonaWeb.Parainstallo,basta rodaroseguintecomandonoTerminal:


$ s u d o a p t g e t i n s t a l l a p a c h e 2

2. Inicie o CORE e abra o arquivo servicosproxy1.imn localizado no diretrio do desktop servicos/proxy/, da mquina virtual do NIC.br. A seguinte topologia deve aparecer:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

184

Essa topologia representa uma situao em que a rede local de um cliente possui apenas IPv6 e, para acessar contedo Web disponvel em endereos IPv4, utiliza um proxy. Nela, o roteamento de pacotes foi configurado com a utilizaoderotas esttica e, a mquina proxy alm de suas funes bsicas, funciona tambm como um roteadordaredelocalparasimplificaratopologia. 3. Verifiqueaconfiguraodosnsdatopologia: a. Inicieasimulaorealizandoumdosseguintespassos: i. aperteoboto ou ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra o terminal doclientecomumduploclique. c. Verifique, com ocomandoabaixo,aconfiguraodainterfacederededocliente enotequeelenoestconfiguradocomendereoIPv4:
# i p a d d r

Oresultadodeveser:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

185

*Obs: Esse comando possibilita a verificao dos endereos das interfaces de rededamquina. d. Observeaconfiguraodoproxyutilizandoomesmocomando. Oresultadodeveser:

e. Em ambos os servidores, servidorV4 e servidorV6, utilize o comando abaixo para verificar se eles esto executando o servidores Web (Apache2) corretamente:
# n e t s t a t a n t u p

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

186

Osresutadosdevemsersemelhantes:

4. Inicieosquid3noproxy: a. Abraumterminaldoproxycomumduploclique. b. Utilize o seguinte comando para acessar as configuraes do sistema squid3 queserutilizadocomoproxyWebnesseservidor:
# c a t / e t c / s q u i d 3 / s q u i d . c o n f

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

187

Oresultadodeveser:

*OBS: Note que, com o comando h t t p _ a c c e s s a l l o w l o c a l n e t , o servio permitir acesso da rede local que foi definida pela mascara 2001:db8:1::/64 na linha a c l l o c a l n e t s r c 2 0 0 1 : d b 8 : 1 : : / 6 4 . Ainda, nalinhah t t p _ p o r t 3 1 2 8 osquid3configuradoparaescutaraporta3128. c. Utilizeocomandoaseguirparainiciaroserviosquid:
# / e t c / i n i t . d / s q u i d 3 s t a r t

Oresultadodeveser:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

188

d. Confirmequeoservioestescutandoaporta3128comoseguintecomando:
# n e t s t a t a n t u p

Oresultadodevesersimilar:

*OBS: Note que a porta UDP 3130 foi configurada para o servio ICP (Internet Cache Protocol) til em casos de comunicao entre servidores proxy. E, as outras portas UDP, so escolhidas aleatriamente por padro. Na prtica, elas soutilizadascomosmdulosICP,HTCPeDNSdosquid. 5. Configure o cliente para utilizar o proxy para acessarpginas Webdisponveis apenas emIPv4. a. Abraoterminaldoclientecomumduploclique. b. Utilize o seguinte comando para verificar que o apenas o servidorV6 est acessvel:
# w g e t 1 0 . 0 . 3 . 1 0 # w g e t h t t p : / / [ 2 0 0 1 : d b 8 : 4 : : 1 0 ] /

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

189

Oresultadodeveser:

c. Configure as variveis de ambiente de forma a que o proxy seja utilizado para acessarpginasWeb.Paratanto,utilizeoscomandos:
# e x p o r t h t t p _ p r o x y = " h t t p : / / [ 2 0 0 1 : d b 8 : 1 : : 1 0 ] : 3 1 2 8 / " # e x p o r t n o _ p r o x y = l o c a l h o s t , 1 2 7 . 0 . 0 . 1

OResultadodeveser:

*OBS: essa configurao de proxy utilizada apenas pelaaplicaowget.Para configurar outros browsers com servidores proxy, verifique documentao especfica. 6. Verifiqueofuncionamentodasoluo: a. Noterminaldoclienteacessenovamenteambososservidoresweb:
# w g e t 1 0 . 0 . 3 . 1 0 # w g e t h t t p : / / [ 2 0 0 1 : d b 8 : 4 : : 1 0 ] /

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

190

Oresultadodeveser:

Verifique que em ambos os casos as pginas utilizaram oproxy paraacessaro servio. b. Como normalmente a verificao do endereo de um site feita somente no momento da requisio, no trivial configurar o cliente para utilizar o proxy apenas para acessar sites disponveis unicamente em IPv4. Porm, endereos especficos podem ser diretamente acessados via IPv6 se adicionados na varivel de ambienten o _ p r o x y oucom autilizaodoparmetro n o p r o x y na chamada do comando w g e t . Os comandos abaixo exemplificam a configuraodoacessodiretoparaoservidorV6:
# w g e t n o p r o x y h t t p : / / [ 2 0 0 1 : d b 8 : 4 : : 1 0 ] / # e x p o r t n o _ p r o x y = l o c a l h o s t , 1 2 7 . 0 . 0 . 1 , 2 0 0 1 : d b 8 : 4 : : 1 0 # w g e t h t t p : / / [ 2 0 0 1 : d b 8 : 4 : : 1 0 ] /

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

191

Oresultadodeveser:

7. Verifique agora que o inverso tambm valido, a partir de uma rede IPv4 podese acessarumservidorWebqueestejaconfiguradoapenasemIPv6: a. Abra um terminal do proxy, com um duplo clique,eadicioneum endereoIPv4 nainterfacederedeeth0:
# i p a d d r a d d 1 9 2 . 1 6 8 . 0 . 1 0 / 2 4 d e v e t h 0 # i p a d d r

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

192

Oresultadodeveser:

b. Configure o servidor squid3 para aceitar requisies da nova rede IPv4 estabelecida. Para isso, utilize o editor de texto nano para modificar o arquivo / e t c / s q u i d 3 / s q u i d . c o n f :
# n a n o / e t c / s q u i d 3 / s q u i d . c o n f

Nesse arquivo altere a linha a c l l o c a l n e t s r c 2 0 0 1 : d b 8 : 1 : : / 6 4 para queelafiqueassim:


a c l l o c a l n e t s r c 2 0 0 1 : d b 8 : 1 : : / 6 4 1 9 2 . 1 6 8 . 0 . 0 / 2 4

SaveefecheoarquivocomumCtrl+xseguidodeYeenter.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

193

Oarquivodeveficarassim:

c. Reinicieoservio:
# / e t c / i n i t . d / s q u i d 3 r e s t a r t

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

194

Oresultadodeveserparecidocom:

d. Noterminaldocliente,adicionenainterfacederedeeth1umendereoIPv4:
# i p a d d r a d d 1 9 2 . 1 6 8 . 0 . 2 0 / 2 4 d e v e t h 1 # i p r o u t e a d d d e f a u l t v i a 1 9 2 . 1 6 8 . 0 . 1 0 # i p a d d r

Oresultadodeveser:

e. ConfigureoproxyparautilizararedeIPv4:
# e x p o r t h t t p _ p r o x y = " h t t p : / / 1 9 2 . 1 6 8 . 0 . 1 0 : 3 1 2 8 / "

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

195

Oresultadodeveser:

f.

Verifique que ambos os servidores,servidorV4eservidorV6,continuam sendo acessveisviaproxy:


# w g e t 1 0 . 0 . 3 . 1 0 # w g e t h t t p : / / [ 2 0 0 1 : d b 8 : 4 : : 1 0 ] /

Oresultadodeveser:

Note que em ambos os casos o acesso feito com a utilizao do servio de proxyqueseencontranaporta3128doendereoIPv4192.168.0.10. 8. Encerreasimulaodoexperimento: a. Execute o seguinte comando em um terminal do proxy para parar a execuo doserviosquid3:
# / e t c / i n i t . d / s q u i d 3 s t o p

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

196

b. PareasimulodoCORE: i. aperteoboto ou ii. utilizeomenuExperiment>Stop.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

197

IPV6ServiosIPv6ProxyReverso
Objetivo
Esta esperincia tem o objetivo de mostrar a configurao bsica de um proxy reverso configurado para permitir o acesso um Web site alocado em uma rede puramente IPv6 partirdaInternet. Para a realizao do presente exerccio ser utilizada a topologia descrita no arquivo: servicosreverseproxy1.imn.

IntroduoTerica
Atualmente a Internet vive um momento de transio do IPv4 para o IPv6 devido escassez de endereos nessa primeira verso do protocolo. Alm das mudanas relacionadas s interfaces fsicas dos dispositivos na rede, so necessrias alteraes na maneira em que os servios so providos, uma vez que precisam ser adaptados parasuportaros novos formatos de endereos e especificidades dos protocolos de comunicao. Neste sentido, apesar de existirem outras tcnicas, o ideal a utilizao de pilha dupla nos equipamentos para possibilitaraexecuodeambososprotocolosemparalelo. Um servidor proxy um tipo de servio muito utilizado na Internet e, algumas de suas principaisfunesso: Manterdispositivosannimos,principalmenteporquestesdesegurana MelhorarodesempenhodeaplicaesWebcomautilizaodecaches Filtraracessocontedosouservios,principalmenteemredescorporativas ManterregistrodautilizaodaInternetporumaredeinterna Verificaraexistnciademalwareantesderetornarumcontedorequisitado. Com a troca dos protocolos de Internet, servidores proxy podem tambm ser utilizados como mecanismo de transio, que permitem o acessoWebapartirdeumaredeIPv6paraum Web siteIPv4ouviceversa. No presente labortrio, o proxy de cdigo aberto squid ser configurado como proxy reverso de uma rede comercial deum servidorWebparaexemplificarcomotalfuncionalidadepodeser aplicadaemumserviodecache.Afiguraabaixoesquematizaessasituao:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

198

O squid foi escolhido para esse laboratrio por ser um dos servidores proxy mais utilizados para plataforma Linux. Ele suporta IPv6 desde sua verso 2.6 com a utilizao de um patch especfico e por padro desde a 3.1. Outros servidores como o Apache, o Nginx ou o MS ISAServer tambm podem ser utilizados de maneira semelhante porm para cada um deles existeumaconfiguraodiferenteparaoperarcomIPv6.

RoteiroExperimental
Experincia7ConfiguraodeproxyWeb
1. CasoestejautilizandoamquinavirtualfornecidapeloNIC.br,puleparaopasso2: a. O squid3 um servidor HTTP bastante utilizado na Web. Para installo, basta rodaroseguintecomandonoTerminal:
$ s u d o a p t g e t i n s t a l l s q u i d 3

*Obs: Depois do comando s u d o ser solicitada a senha do usurio. Caso estejautilizandoamquinafornecida,asenhacore. b. O apache2um servidorHTTPbastanteutilizadonaWeb.Parainstallo,basta rodaroseguintecomandonoTerminal:
$ s u d o a p t g e t i n s t a l l a p a c h e 2 *Obs: Depois do comando s u d o ser solicitada a senha do usurio. Caso

estejautilizandoamquinafornecida,asenhacore. 2. Inicie o CORE e abra o arquivo servicosreverseproxy.imn localizadonodiretriodo desktop /home/core/Desktop/servicos/proxyreverso, da mquina virtual do NIC.br. A seguintetopologiadeveaparecer:
IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

199

Essa topologia representa uma situao em queum proxy reversocolocadonaborda de uma rede IPv6 para funcionar como cache transparente de um servidor Web e, tambm, para traduzir requisies IPv4 feitas ao servidor Web. O roteamento de pacotes foi configurado com a utilizao de rotas esttica e, a mquina proxyalm de suas funes bsicas, funciona tambm como um roteador da rede local para simplificaratopologia. 3. Verifiqueaconfiguraodosnsdatopologia: a. Inicieasimulaorealizandoumdosseguintespassos: i. aperteoboto ou ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra o terminal doclientecomumduploclique. c. Verifique, com o comando abaixo, a configurao da interface de rede do servidorWebenotequeelenoestconfiguradocomendereoIPv4:
# i p a d d r s h o w

Oresultadodeveser:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

200

*Obs: Esse comando possibilita a verificao dos endereos das interfaces de rededamquina. d. Observeaconfiguraodoproxyutilizandoomesmocomando. Oresultadodeveser:

e. No terminal do servidorWeb utilize o comando abaixo para verificar que o servidorWeb(Apache2)estsendoexecutado:


# n e t s t a t a n t u p

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

201

Oresultadodevesersemelhantes:

4. Inicieosquid3noproxy: a. Abraumterminaldoproxycomumduploclique. b. Utilize o seguinte comando para acessar as configuraes do sistema squid3 queserutilizadocomoproxyWebnesseservidor:
# c a t / e t c / s q u i d 3 / s q u i d . c o n f

Notequeoarquivopossuioseguintecontedo:
h t t p _ p o r t 8 0 a c c e l d e f a u l t s i t e = [ 2 0 0 1 : d b 8 : 0 : : 1 0 ] f o r w a r d e d _ f o r o n r e f r e s h _ p a t t e r n ^ f t p : 1 4 4 0 2 0 % 1 0 0 8 0 r e f r e s h _ p a t t e r n ^ g o p h e r : 1 4 4 0 0 % 1 4 4 0 r e f r e s h _ p a t t e r n . 0 2 0 % 4 3 2 0 c a c h e _ p e e r 2 0 0 1 : d b 8 : 0 : : 1 0 p a r e n t 8 0 0 n o q u e r y o r i g i n s e r v e r n a m e = m y A c c e l a c l o u r _ s i t e s d s t 2 0 0 1 : d b 8 : : 1 0 h t t p _ a c c e s s a l l o w o u r _ s i t e s c a c h e _ p e e r _ a c c e s s m y A c c e l a l l o w o u r _ s i t e s c a c h e _ p e e r _ a c c e s s m y A c c e l d e n y a l l a c l m a n a g e r p r o t o c a c h e _ o b j e c t a c l l o c a l h o s t s r c 1 2 7 . 0 . 0 . 1 / 3 2 : : 1 a c l t o _ l o c a l h o s t d s t 1 2 7 . 0 . 0 . 0 / 8 0 . 0 . 0 . 0 / 3 2 : : 1 a c l S S L _ p o r t s p o r t 4 4 3 a c l S a f e _ p o r t s p o r t 2 1 # f t p a c l S a f e _ p o r t s p o r t 7 0 # g o p h e r a c l S a f e _ p o r t s p o r t 8 0 # h t t p a c l S a f e _ p o r t s p o r t 4 4 3 # h t t p s a c l S a f e _ p o r t s p o r t 2 1 0 # w a i s a c l S a f e _ p o r t s p o r t 1 0 2 5 6 5 5 3 5 # u n r e g i s t e r e d p o r t s a c l S a f e _ p o r t s p o r t 2 8 0 # h t t p m g m t a c l S a f e _ p o r t s p o r t 4 8 8 # g s s h t t p
IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

202

a c l S a f e _ p o r t s p o r t 5 9 1 # f i l e m a k e r a c l S a f e _ p o r t s p o r t 7 7 7 # m u l t i l i n g h t t p a c l C O N N E C T m e t h o d C O N N E C T h t t p _ a c c e s s a l l o w m a n a g e r a l l h t t p _ a c c e s s a l l o w m a n a g e r h t t p _ a c c e s s d e n y ! S a f e _ p o r t s h t t p _ a c c e s s d e n y C O N N E C T ! S S L _ p o r t s h t t p _ a c c e s s d e n y a l l a c c e s s _ l o g / v a r / l o g / s q u i d 3 / a c c e s s . l o g s q u i d c o r e d u m p _ d i r / v a r / s p o o l / s q u i d 3

Verifiqueocontedodealgumaslinhasdessearquivo:

h t t p _ p o r t 8 0 a c c e l d e f a u l t s i t e = [ 2 0 0 1 : d b 8 : 0 : : 1 0 ] f o r w a r d e d _ f o r o n

Para que o squid funcione como um proxy transparente, ele deve escutar requisies na porta 80 como um servidor Web. Para isso duas linhas so adicionadas. A primeira linha informa a configurao de dominio padro que o proxy deve reconhecer. No caso, o endereo IPv6 do servidorWeb foi configurado pois o cenrio no implementa nenhum servidor DNS. J segunda linha indica que o endereo do requisitante deveserrepassadoaoservidorWeb paraqueesteconsigamanterumregistrocorretodosacessos.

c a c h e _ p e e r 2 0 0 1 : d b 8 : 0 : : 1 0 p a r e n t 8 0 0 n o q u e r y o r i g i n s e r v e r n a m e = m y A c c e l

Essa linha configura o endereo do servidorWeb no cache do squid. Caso existam mais servidores Web na rede local, eles devem ser configurados de formasemelhantenosquid.

a c l o u r _ s i t e s d s t 2 0 0 1 : d b 8 : : 1 0 h t t p _ a c c e s s a l l o w o u r _ s i t e s c a c h e _ p e e r _ a c c e s s m y A c c e l a l l o w o u r _ s i t e s c a c h e _ p e e r _ a c c e s s m y A c c e l d e n y a l l

Com esse grupo de comando o squid pr configurado para aceitar apenas os registros cadastrados, comoo u r _ s i t e s .Nocaso,foiutilizadodiretamenteos endereos IP doservidorWeb,porm normalmenteonomedoWebsitepoderia serutilizadodiretamentecomasubstituiodaopod s t pord s t d o m a i n .
IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

203

O restante dos comandos faz parte da configurao padro indicada para servidoressquid. c. Utilizeocomandoaseguirparainiciaroserviosquid:
# / e t c / i n i t . d / s q u i d 3 s t a r t

Oresultadodeveser:

d. Confirmequeoservioestescutandoaporta80comoseguintecomando:
# n e t s t a t a n t u p

Oresultadodevesersimilar:

*OBS: Note que as portas UDP, so escolhidas aleatriamente por padro. Na prtica,elassoutilizadascomosmdulosICP,HTCPeDNSdosquid3. 5. Verifiqueofuncionamentodasoluo: a. Abra, com um duploclique, o terminal do cliente acesse o servidorWeb via proxytantoemIPv4quantoemIPv6:
# w g e t 1 0 . 0 . 2 . 1 0 # w g e t h t t p : / / [ 2 0 0 1 : d b 8 : 2 : : 1 0 ] /

Oresultadodeveser:
IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

204

*Obs: Normalmente, o acesso ao site Web utilizaria o nome de domnio e, o endereo acessado dependeria do registro no DNS. Nesse caso, tal registro deveriaapontarparaoendereodoproxyaoinvsdoendereoIPdoWebsite. b. No terminal do proxy, acesse o arquivo de log do squid3 e verifique que o acessoaoservidorWebfoirealizadoporele:
# c a t / v a r / l o g / s q u i d 3 / a c c e s s . l o g

Oresultadodevesersimilar:

*Obs: Note que esse arquivo apresenta as requisioes feitas pelo cliente (1 0 . 0 . 0 . 2 0 , 2 0 0 1 : d b 8 : 1 : : 2 0 ) para o servidor (2 0 0 1 : d b 8 : : 1 0 ) atravs do proxy. c. Abra, com um duplo clique, o terminal do servidorWeb e verifique que apenas um acesso foi realizado, j que o segundo foi respondido diretamente pelo cache:
IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

205

# c a t / v a r / l o g / a p a c h e 2 / a c c e s s . l o g

Oresultadodevesersimilar:

*Obs: a primeira requisio enviada para o cliente pode ser visualizada nalinha comaexpressoGET/HTTP/1.1. 6. Encerreasimulaodoexperimento: a. Execute o seguinte comando num terminal do proxy para parar a execuodo serviosquid3:
# / e t c / i n i t . d / s q u i d 3 s t o p

b. PareasimulodoCORE: i. aperteoboto ou ii. utilizeomenuExperiment>Stop.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

206

IPV6ServiosIPv6Samba
Objetivo
Esta experincia tem o objetivo de mostrar a configurao bsica de um servio samba com compartilhamentoarquivos,utilizandocomobaseoprotocoloIPv6. Para a realizao do presente exercicio ser utilizada a topologia descrita no arquivo: servicossamba1.imn.

IntroduoTerica
Samba um software livre que permite compartilhar e gerenciar recursos de um servidor por dispositivos dotados de diferentes sistemas operacionais. Dentre os recursos disponibilizados, o sistema de arquivos e o sistema de impressoras so os mais utilizados. Sua arquitetura clienteservidor e a comunicao segue os protocolos SMB (Server Message Block ) e CIFS (CommonInternetFileSystem ). Este experimento visa configurar um servidor samba que disponibilize o acesso a uma pasta compartilhada um cliente, utilizando comunicao apenas em IPv6. Desdeaverso3.2.0do samba existe suporte aoIPv6tantonas ferramentas deservidorcomonas decliente.Contudo, os endereos precisam ser configurados corretamente para que no haja problemas na comunicao.

RoteiroExperimental
Experincia8Samba
1. CasoestejautilizandoamquinavirtualfornecidapeloNIC.br,puleparaopasso2: a. O smbd um servidor que provm servios SMB/CIFS aos clientes. Para installo,bastarodaroseguintecomandonoTerminal:
$ s u d o a p t g e t i n s t a l l s a m b a

b. O cifsutils um pacote que contm o sistema de arquivos CIFS. Para installo,bastarodaroseguintecomandonoTerminal:


$ s u d o a p t g e t i n s t a l l c i f s u t i l s

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

207

2. Inicie o CORE e abra o arquivo servicossamba1.imn localizado no diretrio /home/core/Desktop/servicos/samba, damquinavirtualdoNIC.br.Aseguintetopologia deveaparecer:

3. Analiseatopologia,observandoosendereos,ecomeceoexperimento: a. Inicieasimulaoutilizandoumdosseguintespassos: i. aperteoboto ou ii. utilizeomenuExperiment>Start. 4. Prepareoambientenoservidorpararodaroserviosambaadequadamente. a. Abraoterminaldoservidor_sambacomumduploclique. b. Crie um usurio de nome teste com a senha tt para permitir o acesso de clientesmquinaservidora.Utilizeocomando:
# u s e r a d d g u s e r s p t t t e s t e

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

208

Oresultadodeveser:

b. Crieapastaqueseracessadapelocliente,comonomeexemplo,nocaminho /home/core/samba,atravsdoseguintecomando:
# m k d i r / h o m e / c o r e / s a m b a / e x e m p l o

Oresultadodeveser:

c. Crie, dentro dessa pasta, um arquivo chamado sambateste.txt, utlizando o seguintecomando:


# t o u c h / h o m e / c o r e / s a m b a / e x e m p l o / s a m b a t e s t e . t x t

Oresultadodeveser:

d. Mude as permisses de acessodapastaedoarquivocriadoparapermitirqueo usurio criado consiga acessalas sem nenhum problema. Utilize o comando:
# c h o w n R t e s t e : u s e r s / h o m e / c o r e / s a m b a / e x e m p l o

Oresultadodeveser:

5. Configure o servidor samba compartilhar uma pasta na rede com acesso habilitado apenasparaousuriocriado.
IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

209

a. Configure o servidor samba para aceitar requisies via rede IPv6. Para isso, utilize o editor de texto nano para modificar o arquivo / e t c / s a m b a / s m b . c o n f :
# n a n o / e t c / s a m b a / s m b . c o n f

Escrevaasseguinteslinhasnoarquivo:
[ g l o b a l ] w o r k g r o u p = N I C n e t b i o s n a m e = C E P T R O s e c u r i t y = u s e r i n t e r f a c e s = 2 0 0 1 : d b 8 : c a f e : 1 : : / 6 4 h o s t s a l l o w = 2 0 0 1 : d b 8 : c a f e : 1 : : 2 0 l o a d p r i n t e r s = n o l o g f i l e = / v a r / l o g / s a m b a . % m m a x l o g s i z e = 5 0 [ d a d o s ] p a t h = / h o m e / c o r e / s a m b a / e x e m p l o r e a d o n l y = y e s v a l i d u s e r s = t e s t e

Oresultadodeveser:

*Obs:nessearquivohduas configuraes utilizandoendereos IPv6.Ocampo i n t e r f a c e s indica quais sero as interfaces de rede que aceitaro conexes de clientes e, o campo h o s t sa l l o w , lista os endereos com permisso de acessoaoservio.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

210

b. Para validar e gerar uma verso otimizada das configuraes, utilizase o comando:
# t e s t p a r m

Oresultadodeveser:

c. Digite o seguinte comando para que usurio teste criado anteriormente seja adicionadotambmsconfiguraesdosamba(utilizeamesmasenhatt):
# s m b p a s s w d a t e s t e

Oresultadodeveser:

d. Inicieoserviodoservidorsambacomoseguintecomando:
# s m b d

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

211

Oresultadodeveser:

e. Verifiqueseoservioestarodandocomocomando:
# p s a u x

Oresultadodeveserparecidocom:

*Obs: Note que as linhas cotendoapalavrasmbd,provam queoserviosamba estativo. 6. Configureoclienteparaseconectaraoserviosambaestabelecido: a. Abraumterminaldoclientecomumduploclique. b. Inicie o servio s m b c l i e n t para acessar a mquina servidora com o comando:
# s m b c l i e n t / / 2 0 0 1 : d b 8 : c a f e : 1 : : 1 0 / d a d o s U t e s t e * Obs:Quandoasenhadousuriotesteforsolicitada,digitett.

Oresultadodeveser:

*Obs:Paraconhecermaiscomandonesseterminaldosambadigitehelp.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

212

c. Verifique que o arquivo s a m b a t e s t e . t x t criado anteriormente na mquina servidor_sambapodeseracessado:


s m b : \ > l s

Oresultadodeveser:

Digiteocomandoe x i t ouCtrl+Dparasairdoterminalsamba. d. Outra maneira que pode ser utilizadaparaacessaroservidor_sambaatravs de um mapeamento fixo de um drive de rede. Para issocrieumapastamntno clientecomocomando:
# m k d i r m n t

Oresultadodeveser:

e. Digiteocomandoparamontaromapeamentofixo:
# m o u n t . c i f s / / 2 0 0 1 : d b 8 : c a f e : 1 : : 1 0 / d a d o s o u s e r = t e s t e , p a s s w o r d = t t . / m n t /

Oresultadodeveser:

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

213

f.

Entrenapastamnteobserveocontedodelacomoscomandos:
# c d m n t / # l s

Oresultadodeveser:

g. No terminal do servidor_samba utilize o comando abaixo para verificar que a conexoentreasduasmquinasfoiestabelecidaatravsdosamba:


# n e t s t a t a n t u p

Oresultadodeveser:

*Obs: Observe a conexo no endereo IPv6 do servidor (2001:db8:cafe:1::10) na porta do samba (445). A porta utilizada pelo cliente pode ser diferente de 48842. 7. Encerreasimulaodoexperimento: a. Abraumterminaldoclientecomumduploclique. b. Desmonteomapeamentoentreaspastascomocomando:
# u m o u n t m n t /

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

214

Oresultadodeveser:

c. Noterminaldoservidor_samba,removaoclientedosambacomocomando:
# s m b p a s s w d x t e s t e

Oresultadodeveser:

d. Removatambmoclientedamquinavirtualcomocomando:
# u s e r d e l t e s t e

Oresultadodeveser:

e. Finalizeasimulaocomumdosdoiscomandos: i. ii. aperteoboto utilizeomenuExperiment>Stop.

IPv6.brLaboratrioServiosNIC.brhttp://ipv6.brrev.2012.06.0101

215

IPv6 Laboratrio de Ataques DoS ao Neighbor Discovery


Objetivo
Esse laboratrio tem o objetivo mostrar o funcionamento deataqueDoS(DenialofService) aoprotocoloNeighborDiscoveryProtocol(NDP). Paraopresenteexerccioseroutilizadasastopologiasdescritanosarquivos: segurancadosna.imn

IntroduoTerica
NDP um protocolo desenvolvido com a finalidade de gerir dois processos que trabalham comorelacionamentoentrensvizinhosemumarede. O primeiro deles o processo de autoconfigurao das interfaces dos dispositivos pertencentesaumarede.Paraissonecessrioarealizaode3tarefas: Parameter Discovery , que atuanadescobertadeinformaes sobreoenlace,como MTUouhoplimit. Address Autoconfiguration, que trabalha com autoconfigurao de um endereo em umainterfacedecerton. Duplicate Address Detection, que opera em um n com o propsito dedescobrirse oendereoquesedesejaconfigurar,jestsendoutilizadoporumoutron. O segundo, o detransmissodepacotes porum naum determinadodestino.Paraisso, necessrioarealizaode6tarefas: Router Discovery , que trabalha com a descoberta de roteadores pertencentes ao enlace. Prefix Discovery , que implementa a descoberta de prefixos de redes, necessria para a deciso das rotas de transmisso de pacotes, ou seja, para decidir se eles devem ser enviados a um roteador especfico ou direto para outro dispositivo do mesmoenlace. Address Resolution, que serve para descobrir o endereo fsico dos equipamentos atravsdeseusendereosIPv6. Neighbor Unreachability Detection, que permite aos ns descobrir se um vizinho alcanavel. Redirect, que permite ao roteador informar um n uma rota melhor ser utilizada quandoesteenviapacotesadeterminadodestino. Nexthop Determination, um algoritmo para mapear um endereo IP de destino em umendereoIPdeumdispositivovizinhoparaondeotrfegodevesertransmitido.
IPv6.brLaboratrioIPSECNIC.brhttp://ipv6.brrev.2012.06.0101

216

RoteiroExperimental
Experincia1DoScomNA(NeighborAdvertisement)
1. Sevocestiverutilizandoamquinavirtualfornecidapuleparaopasso3.Parafazer algumas verificaes durante o experimento, tambm, ser necessria a utilizao do programa Wireshark que auxilia numa melhor visualizao de pacotes transmitidosnarede.Namquinavirtual,utilizeumTerminalpararodarocomando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao. 2. Para fazer o ataque ser necessrio utilizar as ferramentas THCIPv6, disponveis em: http://www.thc.org/thcipv6/ Descompacte o pacote e execute os comandos abaixo, na pasta descompactada, parainstalar.Asenhaquandosolicitadacore.
$ s u d o m a k e $ s u d o m a k e i n s t a l l

3. Para fazer a deteco de ataques necessrio instalaroNDPMON,disponvelem: http://ndpmon.sourceforge.net/download.html Descompacte o pacote e execute os comandos abaixo, na pasta descompactada, parainstalar.Asenhaquandosolicitadacore.
$ s u d o a p t g e t i n s t a l l a u t o c o n f $ s u d o a p t g e t i n s t a l l l i b x m l 2 d e v $ s u d o a u t o c o n f $ s u d o . / c o n f i g u r e $ s u d o m a k e $ s u d o m a k e i n s t a l l

4. Inicie o CORE e abra o arquivo segurancadosna.imn localizado no diretrio do desktop Segurana/DoS, da mquina virtual fornecida pelo NIC.br. A seguinte topologiaderededeveaparecer:

IPv6.brLaboratrioIPSECNIC.brhttp://ipv6.brrev.2012.06.0101

217

Seu objetivo representarumaredelocalondeum ataquedeDoSbaseadonoenvio de falsos de NA (Neighbor Advertisement) possa ser simulado. Nessa situao, a mquina atacante responde a todos as requisies NS (Neighbor Solicitation) informando ser a dona do endereo IP em questo. Este comportamento impede que novas mquinas que tenham se conectado na rede e enviado pacotes NS consigam utilizar qualquer endereo IP e por consequncia, faz com que esses novosdispositivosfiquemsemacessoInternet. 5. Verifiqueaconfiguraodosnsdatopologia: a. Inicieasimulao: i. aperteoboto ou ii. utilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra o terminal do servidor1, atravs de um duploclique, e utilize o seguinte comandoparaverificarsuasconfiguraesdasinterfacesderede:
# i p a d d r s h o w

IPv6.brLaboratrioIPSECNIC.brhttp://ipv6.brrev.2012.06.0101

218

Oresultadodeveser:

c. Abra o terminal do atacante atravs de um duploclique e utilize o mesmo comandoparavisualizarasconfiguraesdasinterfacesderede. Oresultadodeveser:

d. Abra o terminal do servidor2 atravs de um duploclique e utilize o mesmo comandoparavisualizarasconfiguraesdasinterfacesderede. Oresultadodeveser:

IPv6.brLaboratrioIPSECNIC.brhttp://ipv6.brrev.2012.06.0101

219

6. Abra o terminal do servidor1, atravs de um duploclique, e execute um ping6para oservidor2:


$ p i n g 6 c 4 I e t h 0 f e 8 0 : : 2 0 0 : f f : f e a a : 1

Oresultadodeveser:

7. Abra um terminal do atacante. Utilize o seguinte comando para iniciar umacaptura depacotesnainterfaceeth0:
$ t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ n a . p c a p

Oresultadodeveser:

Essajaneladeterminaldevesermantidaaberta. 8. Abra um novo terminal no atacante sem interromper a captura que est em execuonooutroterminal.Executeoprogramadosnewip6:
$ d o s n e w i p 6 e t h 0

9. No terminal do servidor1 desative e ative a interface eth0, para que ela realize o processodeobtenodeendereoIPv6delinklocal.
$ i p l i n k s e t e t h 0 d o w n $ i p l i n k s e t e t h 0 u p $ i p a d d r s h o w

IPv6.brLaboratrioIPSECNIC.brhttp://ipv6.brrev.2012.06.0101

220

Oresultadonoterminaldoatacanterodandoodosnewip6deveser:

O resultado no terminal servidor1, deve mostrar a falha em obter um IPv6 de link localconformeafigura:

10. Para confirmar que no foi possvel obter o endereo de link local, repita no servidor1oping6docomeodaexperincia:
$ p i n g 6 c 4 I e t h 0 f e 8 0 : : 2 0 0 : f f : f e a a : 1

Oresultadodeveser:

11. PareacapturadepacotesnoprimeiroterminaldoatacanteusandoCtrl+C. 12. Encerreasimulao: a. aperteoboto ou b. utilizeomenuExperiment>Stop. 13. Para verificar os pacotes capturados, utilize o programa Wireshark. Uma maneira atravsdeumterminalnamquinavirtualcomocomando:
$ w i r e s h a r k

IPv6.brLaboratrioIPSECNIC.brhttp://ipv6.brrev.2012.06.0101

221

Esse programa tem como principais funcionalidades a captura e anlisedepacotes transmitidos por uma interface de rede. Atravs de seu uso, possvel melhor visualizar os pacotes que trafegam pela rede. Verifique o arquivo de captura previamenteobtido.

IPv6.brLaboratrioIPSECNIC.brhttp://ipv6.brrev.2012.06.0101

222

a. Abraoarquivo/ t m p / c a p t u r a _ n a . p c a p comomenuFile>Open:

b. Analise os pacotes que chegaram e saram da eth0 do atacante e noteque um pacote de Neighbor Solicitation foi enviado pelo servidor1 recebido pelo atacante que, na sequncia, enviou pacotes forjados de Neighbor Advertisement para informar ele que j est utilizando o endereo IP (fe80::200:ff:feaa:0), mesmo que o endereo de sua interface seja (fe80::200:ff:feaa:2)comovistonoitem4.c. c. Este comportamento irregular gera um ataque de DoS (Denial of Service) pois impede que qualquer novo dispositivo consiga ativar sua interface de comunicao. 14. Este ataque poderia ser evitado com a utilizao do SeND (Secure Neighbor Discovery ), conforme detalhado na apostila terica, mas no foi possvel encontrar uma implementao funcional para Linux. Assim sendo, o prximo passo consiste em executar uma ferramenta que detecte comportamentos estranhos gerandoolog destes pacotes, auxiliando na deteco de ataques e na identificao da mquina atacante. 15. VolteajaneladoCORE: a. Inicieasimulao: i. aperteoboto ou ii. utilizeomenuExperiment>Start.
IPv6.brLaboratrioIPSECNIC.brhttp://ipv6.brrev.2012.06.0101

223

b. Espere at que o CORE termine a inicializao da simulao e abra o terminalumterminalnoatacante.Executeoprogramadosnewip6:


$ d o s n e w i p 6 e t h 0

16. Abraoterminaldoservidor2eexecuteoprogramaNDPMON.
$ n d p m o n i e t h 0

Oresultadodeveser:

17. Abra o terminal do servidor1 e desative eativeainterfaceeth0,paraqueelarealize oprocessodeobtenodeendereoIPv6delinklocal.


$ i p l i n k s e t e t h 0 d o w n $ i p l i n k s e t e t h 0 u p $ i p a d d r s h o w

Oresultadonoterminaldoatacanterodandoodosnewip6deveser:

IPv6.brLaboratrioIPSECNIC.brhttp://ipv6.brrev.2012.06.0101

224

O resultado no terminal do servidor2 deve indicar que ocorreu um ataque de negao de servio no processo de deteco de endereoduplicado(NewEthernet DAD DoS Warning:daddos)indicandooendereoIPv6atacado,conformeafigura abaixo:

18. O NDPMON pode ser configurado para enviar emails no caso de deteco de ataques permitindo uma rpida ao dos administradores de rede para mitigar os problemas causados. O software tambm faz o log dos eventos ocorridos, sendo esteaprimeirafontedeinformaonatentativadeencontraroatacante. 19. Encerreoexperimentoparandoasimulao: c. aperteoboto ou d. utilizeomenuExperiment>Stop.

IPv6.brLaboratrioIPSECNIC.brhttp://ipv6.brrev.2012.06.0101

225

226

IPv6Laboratriodefirewall
Objetivo
EstelaboratriotemcomoobjetivoguiaraconfiguraodedoistiposdefirewallIPv6: 1. Firewallparaservidore 2. Firewallparamquinasnomeiodocaminho(roteador). Verificaremos que, ao contrrio do IPv4, necessrio responder e permitir a passagem de pacotes ICMPv6, (Internet Control MessageProtocolversion6),necessrios paraocorreto funcionamentoderedesIPv6. Para o presente exerccio ser utilizada a topologia descrita no arquivo: segurancafirewall.imn.

IntroduoTerica
O ICMPv6 um tipo demensagem quetevecomobaseoprotocoloICMPv4,desenvolvido parautilizaoem conjuntocom oIPv6comopartesubstancialdesuaarquitetura.Ousodo protocoloobrigatrioemtodososnsdaredequeutilizamIPv6. A nova verso de ICMP tambm executa funes que eram exercidas por outros protocolos no IPv4. Essa mudana possui como principal objetivo reduzir a quantidade de protocolos utilizados e, assim, aumentar a coerncia e diminuir o tamanho de suas implementaes. Asseguintesfuncionalidadessoagregadas: ARP (Address Resolution Protocol), cujo o objetivo mapear endereos da camadadeenlaceparaacamadaIP. RARP (Reverse Address Resolution Protocol), que realiza o inverso do ARP, mapeandoosendereosIPparaacamadadeenlace. IGMP (Internet Group Management Protocol), que gerencia membros de grupos multicast. Ou seja, no IPv6 no existem os protocolos ARP, RARP e IGMP, pois, todas as suas funes foram integradas ao ICMPv6. importante notar que o ARP e RARP, no IPv4, podem ser descritos como protocolos que operam entre as camadas 2 e 3 do modelo ISO/OSI (Open Systems Interconnection) e no dependem de pacotes IP. J o ICMPv6 umprotocolodecamadaderedequeencapsuladoemumpacoteIP. Isso implica que firewalls operando na camada de rede podem, com o IPv6, bloquear funes extremamente bsicas como a descoberta de vizinhana e a autoconfigurao de
IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

227

endereos. Portanto, este laboratrio tem a funo de ensinar boas prticas para a configurao de firewalls IPv6, evitando que configuraes incorretas atrapalhem o funcionamento do IPv6. Para tanto, so seguidas as recomendaes da RFC 4890 RecommendationsforFilteringICMPv6MessagesinFirewalls .

RoteiroExperimental
Experincia2FirewallStateful

1. Inicie o CORE e abra o arquivo segurancafirewall.imn localizado nodiretrio do desktop Segurana/Firewall, da mquina virtual fornecida pelo NIC.br. A seguinte topologiadeveaparecer:

O objetivo datopologiarepresentaraestruturamnimanecessriaparasimularum sistema de firewall. Essa experincia utiliza uma rede interna composta por roteador e servidor e est dividida em duas partes: a configurao de firewall em um servidor ou desktop seguido da configurao de um firewall no meio do caminho. A rede foi configurada com rotas estticas que permitem conexes entre todas as mquinas. Apesar de o roteador transportar apenas pacotes IPv6, a mquina
IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

228

poderia utilizar pilha dupla sem nenhum tipo de modificao na configurao do experimento.

2. Verifiqueaconfiguraodosnsdatopologia: a. Inicieasimulao: i. aperteoboto ou ii. utilizeomenuExperiment>Start. b. Abra o terminal do roteadorMeio, atravs de um duploclique, e utilize o seguintecomandoparaverificarsuasconfiguraesdasinterfacesderede:
# i p a d d r s h o w

Oresultadodeveser:

c. Abra o terminal do servidor atravs de um duploclique e utilize o seguinte comandoparaverificarasconfiguraesdesuasinterfacesderede:


# i p a d d r s h o w

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

229

Oresultadodeveser:

d. Abra o terminal da mquinaexternocom um duplocliqueeutilizeoseguinte comandoparaverificarasconfiguraesdasinterfacesderede:


# i p a d d r s h o w

Oresultadodeveser:

3. Abra o terminal do servidor com um duploclique e utilize oseguintecomandopara verificaraconectividade:


# p i n g 6 c 4 2 0 0 1 : d b 8 : d 1 c a : : 1

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

230

Oresultadodeveser:

4. Configureofirewallnoservidor. a. Abra o terminal do servidor com um duploclique e verifique o contedo do arquivofirewall.shcomoseguintecomando:


# l e s s f i r e w a l l . s h

Ocontedodoarquivooseguinte:

# ! / b i n / s h P A T H = / s b i n : / b i n : / u s r / s b i n : / u s r / b i n # c a m i n h o d o i p t a b l e s i p t a b l e s = " / s b i n / i p 6 t a b l e s " # M e u s I P s # I P s d e s t i n o ( t o d o s o s I P s l o c a i s ) i p s _ d e s t i n o = " 2 0 0 1 : d b 8 : d 0 c a : : 1 " s t a r t ( ) { e c h o " I n i c i a n d o o f i l t r o d e p a c o t e s : i p 6 t a b l e s . . . " # A p o l i t i c a p a d r a o e h r e c u s a r t o d o s o s p a c o t e s e c h o " C o n f i g u r a n d o a p o l i t i c a p a d r a o p a r a r e c u s a r t o d o s o s p a c o t e s " $ i p t a b l e s F $ i p t a b l e s P I N P U T D R O P $ i p t a b l e s P O U T P U T A C C E P T $ i p t a b l e s P F O R W A R D D R O P # P e r m i t i r t r a f e g o i l i m i t a d o p a r a o l o c a l h o s t e c h o " P e r m i t i n d o t r a f e g o i l i m i t a d o p a r a o l o c a l h o s t " $ i p t a b l e s A I N P U T i l o j A C C E P T # $ i p t a b l e s A O U T P U T o l o j A C C E P T IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

231

# D e s a b i l i t a R H 0 e c h o " D e s a b i l i t a R H 0 " $ i p t a b l e s A I N P U T m r t r t t y p e 0 j D R O P # I P s d e d o c u m e n t a c a o # e c h o " D e s c a r t a d o c u m e n t a c a o " # $ i p t a b l e s A I N P U T s 2 0 0 1 : 0 d b 8 : : / 3 2 j D R O P # S t a t e f u l f i r e w a l l e c h o " P e r m i t i n d o p a c o t e s d e s a i d a e r e t o r n o p a r a t o d a s a s c o n e x o e s j a e s t a b e l e c i d a s " $ i p t a b l e s A I N P U T m s t a t e s t a t e R E L A T E D , E S T A B L I S H E D j A C C E P T # $ i p t a b l e s A O U T P U T m s t a t e s t a t e N E W , R E L A T E D , E S T A B L I S H E D j A C C E P T # D a I n t e r n e t p a r a o I P U n i c a s t G l o b a l d o h o s t f o r i p i n $ i p s _ d e s t i n o d o # T r a f e g o S S H e c h o n " s s h " $ i p t a b l e s A I N P U T p t c p s 2 0 0 0 : : / 3 s p o r t 5 1 3 : 6 5 5 3 5 d $ i p d p o r t 2 2 \ j A C C E P T # P e r m i t i n d o T r a c e r o u t e e c h o n " t r a c e r o u t e " $ i p t a b l e s A I N P U T p u d p m u d p s 2 0 0 0 : : / 3 d $ i p d p o r t 3 3 4 3 4 : 3 3 5 2 3 \ m s t a t e s t a t e N E W j R E J E C T r e j e c t w i t h i c m p 6 p o r t u n r e a c h a b l e e c h o n " i c m p i n " # E C H O R E Q U E S T S E R E S P O N S E S ( T y p e 1 2 8 e 1 2 9 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e e c h o r e q u e s t d $ i p m l i m i t \ l i m i t 1 0 / s j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e e c h o r e p l y d $ i p m l i m i t \ l i m i t 1 0 / s j A C C E P T # D E S T I N A T I O N U N R E A C H A B L E ( T y p e 1 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e d e s t i n a t i o n u n r e a c h a b l e d $ i p \ j A C C E P T # P A C K E T T O O B I G ( T y p e 2 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e p a c k e t t o o b i g d $ i p j A C C E P T # T I M E E X C E E D E D ( T y p e 3 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e t t l z e r o d u r i n g t r a n s i t d $ i p \ j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e t t l z e r o d u r i n g r e a s s e m b l y d $ i p \ j A C C E P T # P A R A M E T E R P R O B L E M ( T y p e 4 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e u n k n o w n o p t i o n d $ i p j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e u n k n o w n h e a d e r t y p e d $ i p j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e b a d h e a d e r d $ i p j A C C E P T # N A ( T y p e 1 3 6 ) # # M o d i f i q u e a l i n h a a b a i x o 1 d e 3 # # IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

232

$ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 6 d $ i p j D R O P d o n e

# p a r a L i n k l o c a l # E C H O R E Q U E S T S E R E S P O N S E S ( T y p e 1 2 8 e 1 2 9 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e e c h o r e q u e s t d f e 8 0 : : / 6 4 j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e e c h o r e p l y d f e 8 0 : : / 6 4 j A C C E P T # D E S T I N A T I O N U N R E A C H A B L E ( T y p e 1 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e d e s t i n a t i o n u n r e a c h a b l e \ d f e 8 0 : : / 6 4 j A C C E P T # P A C K E T T O O B I G ( T y p e 2 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e p a c k e t t o o b i g d f e 8 0 : : / 6 4 j A C C E P T # T I M E E X C E E D E D ( T y p e 3 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e t t l z e r o d u r i n g t r a n s i t \ d f e 8 0 : : / 6 4 j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e t t l z e r o d u r i n g r e a s s e m b l y \ d f e 8 0 : : / 6 4 j A C C E P T # P A R A M E T E R P R O B L E M ( T y p e 4 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e u n k n o w n o p t i o n d f e 8 0 : : / 6 4 j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e u n k n o w n h e a d e r t y p e d f e 8 0 : : / 6 4 \ j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e b a d h e a d e r d f e 8 0 : : / 6 4 j A C C E P T # N E I G H B O R D I S C O V E R Y # R A ( T y p e 1 3 4 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 4 d f e 8 0 : : / 6 4 j A C C E P T # N A ( T y p e 1 3 6 ) # # M o d i f i q u e a l i n h a a b a i x o 2 d e 3 # # $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 6 d f e 8 0 : : / 6 4 j D R O P

# D a I n t e r n e t o u L i n k L o c a l p a r a S o l i c i t e d N o d e # N E I G H B O R D I S C O V E R Y # N S ( T y p e 1 3 5 ) # # M o d i f i q u e a l i n h a a b a i x o 3 d e 3 # # $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 5 d f f 0 2 : : 1 : f f 0 0 : 0 / 1 0 4 j D R O P # D e L i n k L o c a l p a r a m u l t i c a s t # N E I G H B O R D I S C O V E R Y # R A ( T y p e 1 3 4 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 4 s f e 8 0 : : / 6 4 d f f 0 2 : : 1 j A C C E P T e c h o . # D e s c a r t a n d o t u d o m a i s IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

233

e c h o " D e s c a r t a n d o t o d o s o s d e m a i s p a c o t e s . . . " $ i p t a b l e s A I N P U T j D R O P } s t o p ( ) { e c h o " P a r a n d o o f i l t r o d e p a c o t e s : i p 6 t a b l e s . . . " $ i p t a b l e s P I N P U T A C C E P T $ i p t a b l e s F I N P U T $ i p t a b l e s P O U T P U T A C C E P T $ i p t a b l e s F O U T P U T $ i p t a b l e s P F O R W A R D A C C E P T $ i p t a b l e s F F O R W A R D e c h o " T o d a s a s r e g r a s e c a d e i a s e s t a o l i m p a s . " e c h o " T o m e c u i d a d o . . . I s s o e h p e r i g o s o ! ! " e c h o " E x e c u t e : * * $ 0 s t a r t * * a s s i m q u e p o s s i v e l . " } s t a t u s ( ) { $ i p t a b l e s l i s t v } c a s e " $ 1 " i n s t a r t ) s t a r t s t o p ) s t o p t r y | t e s t ) s t a r t s l e e p 1 0 s t o p r e s t a r t | r e l o a d | f o r c e r e l o a d ) s t o p s l e e p 2 s t a r t s t a t u s ) s t a t u s * ) e c h o " U s o : $ 0 { s t a r t | s t o p | r e s t a r t | s t a t u s | t r y } " > & 2 e x i t 1 e s a c e x i t 0

Esse script foi escrito com base na RFC 4890. Note que os trs trechos destacados em negrito so regras que rejeitam (DROP) o recebimento de
IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

234

mensagens ICMPv6 relacionadas a Neighbor Solicitation e Neighbor Advertisement. Nos passos seguintes, ser verificado o funcionamento do firewallquandoessasmessagenssobloqueadas. b. No mesmo terminal, execute o arquivo de configurao de firewall utilizado docomando:
# . / f i r e w a l l . s h s t a r t

Oresultadodeveser:

c. Verifique a conectividade entre a mquina servidor e a externo. Ainda no terminaldoservidor,executeosseguintescomandos:


# i p 6 n e i g h b o r f l u s h d e v e t h 0 # p i n g 6 c 4 2 0 0 1 : d b 8 : d 1 c a : : 1

Oresultadodeveser:

Observe que no h mais conectividade entre o servidor e o externo. A seguir,serverificadaacausadisso. d. Aindanoservidor,executeocomando:


# i p 6 n e i g h b o r s h o w

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

235

Oresultadodeveser:

Apesar de o servidor estar diretamente conectado ao roteador, no foi possvel estabelecer uma comunicao via IPv6, pois o servidor bloqueou as mensagens ICMPv6 de Neighbor Advertisement que informam os endereos MAC das mquinas do enlace. Note que, ao contrrio da prtica usual de se bloquear mensagens ICMP no IPv4, seu bloqueio em IPv6 impossibilita ofuncionamentodoprotocolo,dadoseupapelnomapementode endereosdascamadasderedeedeenlace. e. No mesmo terminal, execute o seguinte comando para editar o script do firewall:
# n a n o f i r e w a l l . s h

Oterminaldeveficarassim:

Edite o arquivo modificando as trs regras de modo que os trechos em negritomostradosnopasso4.asejamalteradosdeDROPparaACCEPT.

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

236

# N A ( T y p e 1 3 6 ) # # M o d i f i q u e a l i n h a a b a i x o 1 d e 3 # # $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 6 d $ i p j D R O P # N A ( T y p e 1 3 6 ) # # M o d i f i q u e a l i n h a a b a i x o 2 d e 3 # # $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 6 d f e 8 0 : : / 6 4 j D R O P # N S ( T y p e 1 3 5 ) # # M o d i f i q u e a l i n h a a b a i x o 3 d e 3 # # $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 5 d f f 0 2 : : 1 : f f 0 0 : 0 / 1 0 4 j D R O P

Aperte Ctrl+X para sair do nano e Y para confirmar a modificao do arquivo. f. Aseguir,executeosseguintescomandos:
# . / f i r e w a l l . s h s t o p # . / f i r e w a l l . s h s t a r t # p i n g 6 c 4 2 0 0 1 : d b 8 : d 1 c a : : 1 # i p 6 n e i g h b o r s h o w

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

237

Oresultadodeveser:

Note que o ping6 funcionou corretamente. Como exerccio adicional, estude as regras habilitadas no firewall e verifique que servidor est aptoareceber somente algumas mensagens relacionadas ao ICMPv6, traceroute6 e ssh. Referente sintaxe do script, busque informaes relacionadas ao ip6tables equantosregras,estudeaRFC4890. g. No terminal do externo,executeoseguintecomandoparaverificaroacesso aoserviosshdoservidor:
# s s h c o r e @ 2 0 0 1 : d b 8 : d 0 c a : : 1

Como o primeiro acesso da mquina externo servidor no servio ssh, ser solicitado a incluso da chave pblica RSA do servidor. Aceitea colocando a resposta yes no terminal. Quando solicitada, a senha de acessocore.

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

238

Oresultadodeveser:

h. Aps verificar a conectividade via ssh, encerre a sesso utilizando o comando:


# e x i t

5. ConfigureofirewallnoroteadorMeio. a. Abra o terminal do roteadorMeio atravs de um duploclique e verifique as regrasiniciaisdofirewall:


# i p 6 t a b l e s L

Oresultadodeveser:

Note que no h nenhum tipo de restrio, uma vez que as polticas de recebimento (INPUT), envio (OUTPUT) e encaminhamento (FORWARD) estoconfiguradasparaaceite(ACCEPT). b. Ainda nesse terminal , verifique o contedo do arquivo firewall.sh com o seguintecomando:

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

239

# c a t f i r e w a l l . s h

Ocontedodoarquivooseguinte:

# ! / b i n / s h P A T H = / s b i n : / b i n : / u s r / s b i n : / u s r / b i n # c a m i n h o d o i p t a b l e s i p t a b l e s = " / s b i n / i p 6 t a b l e s " # M e u s I P s # I P s d e s t i n o ( t o d o s o s I P s l o c a i s ) i p s _ d e s t i n o = " 2 0 0 1 : d b 8 : : 2 / 1 2 8 2 0 0 1 : d b 8 : : 4 / 1 2 8 " # I P s d e r e d e i n t e r n a i p s _ i n t e r n o = " 2 0 0 1 : d b 8 : d 0 c a : : / 4 8 2 0 0 1 : d b 8 : : 4 / 1 2 7 " s t a r t ( ) { e c h o " I n i c i a n d o o f i l t r o d e p a c o t e s : i p 6 t a b l e s . . . " # A p o l i t i c a p a d r a o e h r e c u s a r t o d o s o s p a c o t e s e c h o " C o n f i g u r a n d o a p o l i t i c a p a d r a o p a r a r e c u s a r t o d o s o s p a c o t e s " $ i p t a b l e s F $ i p t a b l e s P I N P U T D R O P $ i p t a b l e s P O U T P U T A C C E P T $ i p t a b l e s P F O R W A R D D R O P # P e r m i t i r t r a f e g o i l i m i t a d o p a r a o l o c a l h o s t e c h o " P e r m i t i n d o t r a f e g o i l i m i t a d o p a r a o l o c a l h o s t " $ i p t a b l e s A I N P U T i l o j A C C E P T # $ i p t a b l e s A O U T P U T o l o j A C C E P T # D e s a b i l i t a R H 0 e c h o " D e s a b i l i t a R H 0 " $ i p t a b l e s A I N P U T m r t r t t y p e 0 j D R O P $ i p t a b l e s A F O R W A R D m r t r t t y p e 0 j D R O P # I P s d e d o c u m e n t a c a o # e c h o " D e s c a r t a d o c u m e n t a c a o " # $ i p t a b l e s A I N P U T s 2 0 0 1 : 0 d b 8 : : / 3 2 j D R O P # $ i p t a b l e s A F O R W A R D s 2 0 0 1 : 0 d b 8 : : / 3 2 j D R O P # S t a t e f u l f i r e w a l l e c h o " P e r m i t i n d o p a c o t e s d e s a i d a e r e t o r n o p a r a t o d a s a s c o n e x o e s j a e s t a b e l e c i d a s " $ i p t a b l e s A I N P U T m s t a t e s t a t e R E L A T E D , E S T A B L I S H E D j A C C E P T # $ i p t a b l e s A O U T P U T m s t a t e s t a t e N E W , R E L A T E D , E S T A B L I S H E D j A C C E P T # D a I n t e r n e t p a r a o I P U n i c a s t G l o b a l d o h o s t f o r i p i n $ i p s _ d e s t i n o IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

240

d o # P e r m i t i n d o T r a c e r o u t e e c h o n " t r a c e r o u t e " $ i p t a b l e s A I N P U T p u d p m u d p s 2 0 0 0 : : / 3 d $ i p d p o r t 3 3 4 3 4 : 3 3 5 2 3 \ m s t a t e s t a t e N E W j R E J E C T r e j e c t w i t h i c m p 6 p o r t u n r e a c h a b l e e c h o n " i c m p i n " # E C H O R E Q U E S T S E R E S P O N S E S ( T y p e 1 2 8 e 1 2 9 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e e c h o r e q u e s t d $ i p m l i m i t \ l i m i t 1 0 / s j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e e c h o r e p l y d $ i p m l i m i t \ l i m i t 1 0 / s j A C C E P T # D E S T I N A T I O N U N R E A C H A B L E ( T y p e 1 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e d e s t i n a t i o n u n r e a c h a b l e d $ i p \ j A C C E P T # P A C K E T T O O B I G ( T y p e 2 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e p a c k e t t o o b i g d $ i p j A C C E P T # T I M E E X C E E D E D ( T y p e 3 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e t t l z e r o d u r i n g t r a n s i t d $ i p \ j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e t t l z e r o d u r i n g r e a s s e m b l y d $ i p \ j A C C E P T # P A R A M E T E R P R O B L E M ( T y p e 4 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e u n k n o w n o p t i o n d $ i p j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e u n k n o w n h e a d e r t y p e d $ i p j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e b a d h e a d e r d $ i p j A C C E P T # N A ( T y p e 1 3 6 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 6 d $ i p j A C C E P T d o n e # D a I n t e r n e t p a r a a r e d e i n t e r n a d o r o t e a d o r f o r i p i n $ i p s _ i n t e r n o d o # S t a t e f u l f i r e w a l l e c h o n " P e r m i t i n d o p a c o t e s d e s a i d a e r e t o r n o p a r a t o d a s a s c o n e x o e s j a " e c h o " e s t a b e l e c i d a s " $ i p t a b l e s A F O R W A R D m s t a t e s 2 0 0 0 : : / 3 d $ i p s t a t e R E L A T E D , E S T A B L I S H E D \ j A C C E P T $ i p t a b l e s A F O R W A R D m s t a t e s $ i p d 2 0 0 0 : : / 3 \ s t a t e N E W , R E L A T E D , E S T A B L I S H E D j A C C E P T # P e r m i t i n d o T r a c e r o u t e e c h o n " t r a c e r o u t e " $ i p t a b l e s A F O R W A R D p u d p m u d p s 2 0 0 0 : : / 3 d $ i p d p o r t 3 3 4 3 4 : 3 3 5 2 3 \ m s t a t e s t a t e N E W j A C C E P T

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

241

e c h o n " i c m p i n " # E C H O R E Q U E S T S E R E S P O N S E S ( T y p e 1 2 8 e 1 2 9 ) $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e e c h o r e q u e s t m l i m i t \ l i m i t 1 0 / s j A C C E P T $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e e c h o r e p l y d $ i p m l i m i t \ l i m i t 1 0 / s j A C C E P T # D E S T I N A T I O N U N R E A C H A B L E ( T y p e 1 ) $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e d e s t i n a t i o n u n r e a c h a b l e d $ i p \ j A C C E P T # P A C K E T T O O B I G ( T y p e 2 ) $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e p a c k e t t o o b i g d $ i p j A C C E P T # T I M E E X C E E D E D ( T y p e 3 ) $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e t t l z e r o d u r i n g t r a n s i t d $ i p \ j A C C E P T $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e t t l z e r o d u r i n g r e a s s e m b l y d $ i p \ j A C C E P T # P A R A M E T E R P R O B L E M ( T y p e 4 ) $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e u n k n o w n o p t i o n d $ i p j A C C E P T $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e u n k n o w n h e a d e r t y p e d $ i p \ j A C C E P T $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e b a d h e a d e r d $ i p j A C C E P T # N A ( T y p e 1 3 6 ) $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e 1 3 6 d $ i p j A C C E P T d o n e

# p a r a L i n k l o c a l # E C H O R E Q U E S T S E R E S P O N S E S ( T y p e 1 2 8 e 1 2 9 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e e c h o r e q u e s t d f e 8 0 : : / 6 4 j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e e c h o r e p l y d f e 8 0 : : / 6 4 j A C C E P T # D E S T I N A T I O N U N R E A C H A B L E ( T y p e 1 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e d e s t i n a t i o n u n r e a c h a b l e \ d f e 8 0 : : / 6 4 j A C C E P T # P A C K E T T O O B I G ( T y p e 2 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e p a c k e t t o o b i g d f e 8 0 : : / 6 4 j A C C E P T # T I M E E X C E E D E D ( T y p e 3 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e t t l z e r o d u r i n g t r a n s i t \ d f e 8 0 : : / 6 4 j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e t t l z e r o d u r i n g r e a s s e m b l y \ d f e 8 0 : : / 6 4 j A C C E P T # P A R A M E T E R P R O B L E M ( T y p e 4 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e u n k n o w n o p t i o n d f e 8 0 : : / 6 4 j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e u n k n o w n h e a d e r t y p e d f e 8 0 : : / 6 4 \ IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

242

j A C C E P T $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e b a d h e a d e r d f e 8 0 : : / 6 4 j A C C E P T # N E I G H B O R D I S C O V E R Y # R A ( T y p e 1 3 4 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 4 d f e 8 0 : : / 6 4 j A C C E P T # N S ( T y p e 1 3 5 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 5 d f e 8 0 : : / 6 4 j A C C E P T # N A ( T y p e 1 3 6 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 6 d f e 8 0 : : / 6 4 j A C C E P T

# D a I n t e r n e t o u L i n k L o c a l p a r a S o l i c i t e d N o d e # N E I G H B O R D I S C O V E R Y # N S ( T y p e 1 3 5 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 5 d f f 0 2 : : 1 : f f 0 0 : 0 / 1 0 4 j A C C E P T # D e L i n k L o c a l p a r a m u l t i c a s t # N E I G H B O R D I S C O V E R Y # R A ( T y p e 1 3 4 ) $ i p t a b l e s A I N P U T p i c m p v 6 i c m p v 6 t y p e 1 3 4 s f e 8 0 : : / 6 4 d f f 0 2 : : 1 j A C C E P T e c h o . # D e s c a r t a n d o t u d o m a i s e c h o " D e s c a r t a n d o t o d o s o s d e m a i s p a c o t e s . . . " $ i p t a b l e s A I N P U T j D R O P $ i p t a b l e s A F O R W A R D j D R O P } s t o p ( ) { e c h o " P a r a n d o o f i l t r o d e p a c o t e s : i p 6 t a b l e s . . . " $ i p t a b l e s P I N P U T A C C E P T $ i p t a b l e s F I N P U T $ i p t a b l e s P O U T P U T A C C E P T $ i p t a b l e s F O U T P U T $ i p t a b l e s P F O R W A R D A C C E P T $ i p t a b l e s F F O R W A R D e c h o " T o d a s a s r e g r a s e c a d e i a s e s t a o l i m p a s . " e c h o " T o m e c u i d a d o . . . I s s o e h p e r i g o s o ! ! " e c h o " E x e c u t e : * * $ 0 s t a r t * * a s s i m q u e p o s s i v e l . " } s t a t u s ( ) { $ i p t a b l e s l i s t v } c a s e " $ 1 " i n s t a r t ) s t a r t IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.brrev.2012.07.1201

243

s t o p ) s t o p t r y | t e s t ) s t a r t s l e e p 1 0 s t o p r e s t a r t | r e l o a d | f o r c e r e l o a d ) s t o p s l e e p 2 s t a r t s t a t u s ) s t a t u s * ) e c h o " U s o : $ 0 { s t a r t | s t o p | r e s t a r t | s t a t u s | t r y } " > & 2 e x i t 1 e s a c e x i t 0

Esse script tambm foi escrito com base na RFC 4890.Quandocomparado ao mostrado no passo 4.a, destacamse a adio de regras referentes ao ICMPv6 e a duplicao das regras referentes aos endereos IP globais atreladas ao encaminhamento (FORWARD) dos pacotes permitidos na rede interna, alm dos dois endereos IPv6 na varivel ips_destino ( 2001:db8:d0ca::e2001:db8:d1ca::). c. No mesmo terminal, execute o seguinte comando para editar o script do firewall:
# n a n o f i r e w a l l . s h

Insiraalinhadestacadaemnegritonaseguinteposiodoarquivo:
# D a I n t e r n e t p a r a a r e d e i n t e r n a d o r o t e a d o r f o r i p i n $ i p s _ i n t e r n o d o $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e p a c k e t t o o b i g d $ i p j D R O P # S t a t e f u l f i r e w a l l

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.br rev.2012.07.1201 244

Apsaedio,atelaesperada:

Aperte Ctrl+X para sair do nano e Y para confirmar a modificao do arquivo. d. Ainda no terminal do roteadorMeio, execute o arquivo de configurao do firewall:
# . / f i r e w a l l . s h s t a r t

Oresultadodeveser:

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.br rev.2012.07.1201 245

e. Noterminaldoservidor,executeosseguintescomandos:
# p i n g 6 c 4 2 0 0 1 : d b 8 : d 1 c a : : 1 # p i n g 6 c 4 2 0 0 1 : d b 8 : d 1 c a : : 1 s 1 4 0 0

Oresultadodeveser:

Note que h conectividade entre servidor e externo, como podemos verificar no resultado do primeiro ping. J o segundo ping foi mal sucedido pois inserimos no passo 5.c a regra de bloqueio do encaminhamento de pacotesICMPv6dotipopackettoobigdestinadosredeinterna. f. Noterminaldoexterno,executeoseguintecomando:
# s s h c o r e @ 2 0 0 1 : d b 8 : d 0 c a : : 1

Oresultadodeveser:

Verificandoas regras atribudas aoip6tables,podemos verificarqueoacesso porta 22 de servidor (2001:db8:d0ca::1) no est liberado. Nos prximos passos,editaremosofirewallnomeiodocaminhopararesolveraquesto.

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.br rev.2012.07.1201 246

g. NoterminaldoroteadorMeio,executeoseguintecomando:
# n a n o f i r e w a l l . s h

Editeoarquivoconformeoseguintetrechodoarquivo:
# D a I n t e r n e t p a r a a r e d e i n t e r n a d o r o t e a d o r $ i p t a b l e s A F O R W A R D p t c p s 2 0 0 1 : d b 8 : d 1 c a : : 1 d 2 0 0 1 : d b 8 : d 0 c a : : 1 d p o r t 2 2 \ j A C C E P T f o r i p i n $ i p s _ i n t e r n o d o $ i p t a b l e s A F O R W A R D p i c m p v 6 i c m p v 6 t y p e p a c k e t t o o b i g d $ i p j D R O P # S t a t e f u l f i r e w a l l

Apsaedio,atelaesperada:

Aperte Ctrl+X para sair do nano e Y para confirmar a modificao do arquivo. h. Aindanoterminaldoroteador,executeosseguintescomandos:
# . / f i r e w a l l . s h s t o p # . / f i r e w a l l . s h s t a r t

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.br rev.2012.07.1201 247

Oresultadodeveser:

i.

Noterminaldeexterno,executeoseguintecomandonovamente:
# s s h c o r e @ 2 0 0 1 : d b 8 : d 0 c a : : 1

Lembrandoqueasenhadeacessocore. Oresultadodeveserparecidocom:

j.

Aps verificar a conectividade via ssh, encerre a sesso atravs do comando:


# e x i t

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.br rev.2012.07.1201 248

6. Encerreasimulao: a. aperteoboto ou b. utilizeomenuExperiment>Stop.

IPv6.brLaboratrioFirewallNIC.brhttp://ipv6.br rev.2012.07.1201 249

250

IPv6LaboratriodeIPsec
Objetivo
Esse laboratrio tem o objetivo de demonstraraconfiguraodeumaredeparaautilizao deIPsec.Paraistoeledivididoemtrspartes: 1. IPsecemmododetransporte 2. IPsecemmodotnel 3. ConfiguraoautomticaatravsdoRacoon Paraopresenteexerccioseroutilizadasastopologiasdescritanosarquivos: segurancaipsectransporte.imn segurancaipsectunel.imn segurancaipsecracoon.imn

IntroduoTerica
Quando o protocolo IPv4 foi concebido, definiuse que os dados enviados em um determinado pacote IP no receberiam qualquer tipo de ofuscamento ou criptografia na camada de internet. Caso esta proteo fosse necessria, a responsabilidade seria da camada de aplicao. Outro ponto, tambm no previsto na concepo do protocoloIP,foi a verificao da autenticidade do pacote, o que impossibilitava que a mquina de destino validasse o endereo de origem do pacote (isto , verificasse se o IP de origem apresentado no pacote era realmente o IP de origem do mesmo). Por causa disso, era possvelalteraroufalsificaresteendereoIPdeorigemsemqueistofossedescoberto. O IPsec foicriadoparasuprirestadeficincia.Eleumasuitedeprotocolos deextensodo protocolo IP e oferece servios de segurana para prover autenticidade, integridade e confidencialidade aos pacotes IP. Os servios so providos na camada de rede e portanto tambm oferecem proteo s camadas superiores. A sua arquitetura foi originalmente especificadanaRFC2401em1998eposteriormenteatualizadapelaRFC4301em2005. H dois modos de operao no IPsec: o Modo de TransporteeoModoTnel.Oprimeiro usado para protegeraconexoentreapenas duas mquinas,enquantoqueosegundopode ser implementado entre roteadores de borda em redes diferentes, protegendo assim todoo trfego entre estas duas redes. O IPsec possui dois protocolos: o AH (Authentication Header Cabealho de Autenticao), que prov autenticao dos pacotes, e o ESP (Encapsulated Security Payload Dados Encapsulados com Segurana), que prov criptografia. No Linux, as configuraes do IPsec so feitas via o comando s e t k e y , que manipula dois bancos de dados: o SAD (Security Association Database) e o SPD (Security Policy
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

251

Database). O SAD contm as SAs da mquina (Security Associations), que so configuraes de segurana da conexo entre essa mquina e outra. No IPsec, existem dois processos de segurana: autenticao e criptografia. Uma nica SA s pode definir a configurao deum dos dois processos,nuncaambos.Porisso,casoacomunicaoentre duas mquinas precise ter tantoautenticaoquantocriptografia,deverconfigurarseSAs separadas para cada processo. importante ressaltar tambm que cada SA configura a comunicao em apenas um sentido daconexo,pois umaSAdefineamquinadeorigem e a de destino dos pacotes. Por isso, para configurar tanto a autenticao quanto a criptografia numa conexo entre duas mquinas, e isso nos dois sentidos, necessrio criar duas SAs para cadaprocesso,num totaldequatro(notarqueaconfiguraodeveser feita nas duas mquinas,logoseroquatroSAs numamquinaequatronaoutra).Observe que ainda assim possvel criar apenas umaSA(sejadeautenticaooudecriptografia)e desta maneiraconfigurarumaconexoseguraapenas num sentidodetransmisso.Porm, como o usual autenticar e criptografar a comunicao nos dois sentidos, as SAs costumam ser geradas aos pares. O segundo banco de dados (SPD), por outro lado, contm as polticas de segurana da mquina, que definem se as configuraes sero executadas na comunicao entre as mquinas, juntamente com mais alguns detalhes de comoistofeito. A manipulao destes bancos de dados feita atravs do comando s e t k e y , atravs de seus subcomandos. Estes subcomandos podem ser executados de duas maneiras: 1) inserindo em tempo de execuo, um a um, ou 2) carregados a partir de um arquivo de configurao (com a extenso .conf). Por default, o s e t k e y carrega o arquivo de configurao /etc/ipsectools.conf na inicializao do sistema. Este arquivo se apresenta totalmente comentado (portanto vazio) logo aps a instalao do ipsectools, o que significa que oIPsec nocomearaoperarautomaticamenteaps suainstalao.Seeste arquivo permanecer totalmente comentado, cada vez que o sistema for reinicializado o IPsec perder qualquer configurao que tenha sido aplicada na ltima sessodosistema. Portanto, para que uma determinada configurao do IPsec precise ser permanente e continue vlida mesmo aps a reinicializao do sistema, as configuraes devem ser escritas neste arquivo ipsectools.conf. Caso a configurao seja experimental, ou no deva ser utilizada mais que uma vez, recomendase criar outro arquivo .conf, escrever nele as configuraes do IPsec e carreglas com o s e t k e y , ou ento executar os subcomandosdos e t k e y emtempodeexecuo. Embora a configurao manual do IPsec seja vivel para um pequeno nmero de ns, conforme a rede aumenta, tornase trabalhoso (e propenso a erros) gerar e administrar as chaves de autenticao/criptografia de todas as duplas de ns. Para contornar esta situao, foram criadas formas de configurao automtica do IPsec. No Linux, o daemon que cumpre este papel o Racoon. Para configurlo e utilizlo, o usuriodeverprimeiro criar as polticas de segurana da mquina manualmente. Porm, no ser necessrio gerar as SAs entreos ns:tantoas SAs quantosuas chaves deautenticaoecriptografia correspondentes sero geradas pelo Racoon. Para que o Racoon faa isso, o usurio dever configurlo atravs do seu arquivo .conf, que descreve a forma como o Racoon criar e trocar as chaves deseguranaentreos ns.Omtodomais simples ecomum do Racoon fazer isso atravs das chaves prcompartilhadas. Ele cria uma conexo
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

252

segura temporria entre os ns para uso exclusivo do Racoon, e ento troca as chaves entre os ns de maneira criptografada. Para abrirestaconexosegura,oRacoonverificar em cada n se ele possui a chave prcompartilhada do seu par para comunicarse com ele e trocar as chaves do IPsec. Estas chaves prcompartilhadas (que ao contrrio das chaves doIPsec noprecisaroterum formatoespecfico)deverosercolocadas em cada n previamente pelo usurio, junto com o arquivo de configurao .conf do Raccon. Embora num primeiromomentooprocessoaparentesertotalmentemanual,umavez queo arquivo de configurao do Racoon e as chaves prcompartilhadas sejam colocados em todos os ns e o Racoon seja inicializado, o processo de gerenciamento e substituio peridica das chaves do IPsec se tornar totalmente automtico, sob o comando do Racoon.

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

253

RoteiroExperimental
Experincia3IPsecemMododeTransporte
1. Se voc estiver utilizando a mquina virtual fornecida,vparaopasso4.Parafazer algumas verificaes durante o experimento ser necessria a utilizao do programa Wireshark, que capturaos pacotes enviados atravs darede.Namquina virtual,utilizeumTerminalpararodarocomando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes da instalao ser solicitada a senha do usurio core, que tambm ser core.Digiteasenhaparaprosseguircomainstalao. 2. Caso as ferramentas de IPsec no estejam instaladas em sua mquina, execute o comandoabaixo.Asenhadamquinavirtual,quandosolicitada,core.
$ s u d o a p t g e t i n s t a l l i p s e c t o o l s

3. Para fazer o envio de pacotes forjados ser necessrio utilizar as ferramentas THCIPv6,disponveisem: http://www.thc.org/thcipv6/ Descompacte o pacote e execute os comandos abaixo, na pasta descompactada, parainstalar.Asenha,quandosolicitada,sercore.
$ s u d o m a k e $ s u d o m a k e i n s t a l l

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

254

4. Inicie o CORE e abra o arquivo segurancaipsectransporte.imn localizado no diretriododesktopSegurana/IPsec.Aseguintetopologiaderededeveaparecer:

O objetivo dessa topologia de rede demonstrarqueaimplementaodoIPsec em modo de transporte independe da topologia de rede, isto , que o IPsec consegue autenticar e criptografar pacotes que so roteados por diversos ns at chegar ao destino.Nesteexemplo,implementaremos oIPsec entreohost1eohost2.Noteque hdoisroteadoresintermediandoacomunicaoentreoshosts. Primeiro enviaremos pacotes de ping sem o IPsec estar configurado. A seguir, configuraremos uma conexo com somente autenticao entre os dois hosts. Depois disso, configuraremos uma conexo com autenticao e criptografia, capturando pacotes a cada alterao da configurao. Ao final, analisaremos os pacotescapturadosnastrssituaes.

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

255

5. Inicieasimulao: a. aperteoboto ouutilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao. A tela deve ficar como a imagem abaixo. Ento, abra um terminal para o roteador1, um para o host1 e um para o host2, atravs do duploclique no smbolodecada umdostrsns.

6. FaaacapturadepacotestransmitidosentreoshostssemaconfiguraodoIPsec a. V para o terminal do roteador1 e utilize o seguinte comando para iniciar a capturadepacotesdoroteador:
$ t c p d u m p i e t h 1 s 0 w / t m p / c a p t u r a _ s e m _ i p s e c . p c a p

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

256

Oresultadodeveser:

b. Vparaoterminaldohost1eexecuteumping6paraohost2:
$ p i n g 6 c 4 2 0 0 1 : d b 8 : f a d a : : 2

Oresultadodeveser:

c. No terminal doroteador1,encerreacapturadepacotes atravs dasequncia Ctrl+C. O resultado deve ser similar ao abaixo, j que o nmero de pacotes capturadospodevariar:

7. V para o terminal do host1 e gere a chave de autenticao AH executando o comando abaixo. Este comandogerarachaveAH,criaroarquivoc h a v e a h h 1 e armazenarneleachavegerada.
$ d d i f = / d e v / r a n d o m c o u n t = 1 6 b s = 1 | x x d p s > c h a v e a h h 1

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

257

Ocomandoimprimiratelaabaixo:

8. Gere a chave de criptografia ESP para o mesmo host, executando o comando abaixo no terminal. Este comando gerar a chave ESP, criar o arquivo c h a v e e s p h 1 earmazenarneleachavegerada.
$ d d i f = / d e v / r a n d o m c o u n t = 2 4 b s = 1 | x x d p s > c h a v e e s p h 1

Ocomandoimprimiratelaabaixo:

Aps a execuo dos comandos acima, imprima na tela o contedo do arquivo c h a v e a h h 1 atravs do comando abaixo e anote o valor apresentado. Execute o comando novamente caso precise anotar a chave de novo. Caso o arquivo seja deletado, execute novamente o comando do passo 7 para gerar uma nova chave (lembrando de trocla nos dois arquivos de configurao do IPsec, isto , tanto no arquivo .conf do host1, que iremos comear a escrever agora, quanto no arquivo dohost2,queescreveremosdepois).Anoteovalorapresentado:
$ c a t c h a v e a h h 1

Este comando imprimir uma tela parecida com a tela abaixo. Note a extenso da chave AH, e os caracteres hexadecimais que a compem. A chavegeradaem sua mquina deve conter a mesma quantidade de caracteres, mas ser diferente da chavequeaparecenaimagemabaixo:

9. V para o terminal do host2 e gere a chave de autenticao AH executando o comandoabaixo:


$ d d i f = / d e v / r a n d o m c o u n t = 1 6 b s = 1 | x x d p s > c h a v e a h h 2

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

258

10. Gere a chave de criptografia ESP para o mesmo host, executando o comando abaixonoterminal:
$ d d i f = / d e v / r a n d o m c o u n t = 2 4 b s = 1 | x x d p s > c h a v e e s p h 2

Aps a execuo do comando acima, execute o comando abaixo para imprimir na telaocontedodoarquivoc h a v e a h h 2 .Anoteovalorapresentado:
$ c a t c h a v e a h h 2

11. EscrevaoarquivodeconfiguraodoIPsecparaohost1. a. Vparaoterminaldohost1.Crieumarquivo.confcomocomandoabaixo:


$ n a n o i p s e c h 1 . c o n f

Com este comando, ser aberta a tela doeditordetextos n a n o ,apresentada aseguir:

Se este arquivo i p s e c h 1 . c o n f j existisse, o seu contedo seria exibido. Porm, como ele no existe, o n a n o abrir uma tela vazia para o novo arquivo. Aps escrever o contedo desejado, deveremos salvar as alteraes, o que far com que o n a n o termine de criar o arquivo
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

259

i p s e c h 1 . c o n f esalveneleocontedodigitado.

b. Primeiramente,digiteasseguinteslinhasnateladon a n o :
# ! / u s r / s b i n / s e t k e y f f l u s h s p d f l u s h

A primeira linha define o s e t k e y como o interpretador dos comandos quese seguiro. J o comando f l u s h limpa todas as entradas existentes no SAD (Security Association Database), enquanto que o s p d f l u s h limpa todas as entradasdoSPD(SecurityPolicyDatabase). c. Insira no arquivo duas linhas de comando de criao de SA, uma linha para cada uma das duas SAs de autenticao do host1. Lembrese que as SAs so unidirecionais, isto , cada SA definida para apenas um sentido da comunicao entre dois pontos de rede, o que torna necessrio criar duas SAs para cada comunicao bidirecionalmente segura. As SAs definem tambm qual o protocolo a ser usado (nos nossos exemplos, ou AH ou ESP), um ndice nico maior que 255 (o ndice tambm pode serescritoem hexadecimal, usando o prefixo 0x), o algoritmo usado na criao da chave (os grupos de algoritmos possveis so diferentes para autenticao e para criptografia) e a chave AH da mquina com o IP de origem. A estrutura do comandoquecriaumaSAapresentadaabaixo:
a d d [ i p _ o r i g e m ] [ i p _ d e s t i n o ] [ p r o t o c o l o ] [ n d i c e ] [ a l g o r i t m o ] [ c h a v e ]

Nesta experincia, haver apenas a autenticao entre os hosts 1 e 2, portanto ser necessrio definir apenas duas SAs: uma para a autenticao dos pacotes enviados desta mquina para o host2 e outra para a autenticao dos pacotes enviados do host2 para esta mquina. Os parmetrosusadossero: [ip_origem]:2 0 0 1 : d b 8 : b e e f : : 2 [ip_destino]:2 0 0 1 : d b 8 : f a d a : : 2 [protocolo]:a h [ndice]:0 x 3 0 0 (ovalorfoiescolhidoaleatoriamente) [algoritmo]: A h m a c m d 5 [chave]: a chave AH presente no arquivo c h a v e a h h 1 , gerado anteriormente. Como este valor hexadecimal, necessrio colocar o prefixo0xantesdovalor.

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

260

Portanto,ocomandoassumiraseguinteforma:
a d d 2 0 0 1 : d b 8 : b e e f : : 2 2 0 0 1 : d b 8 : f a d a : : 2 a h 0 x 3 0 0 A h m a c m d 5 0 x [ c h a v e a h h 1 ]

A linha de comando para gerar a segunda SA, no sentido oposto de comunicao, ser praticamente igual linha anterior, porm com as seguintes diferenas: 1) os IPs sero trocados de posio (o IP f a d a : : 2 ser a origem e o IP b e e f : : 2 ser o destino), 2) o ndice ter que ser diferente (por exemplo, 0 x 3 0 1 ) e 3) a chave AH ser igualmente diferente (neste exemplo, a chave ser o contedo do arquivo c h a v e a h h 2 ). No esquecer de colocar o prefixo 0x antes da chave. O comando assumir a seguinteforma:
a d d 2 0 0 1 : d b 8 : f a d a : : 2 2 0 0 1 : d b 8 : b e e f : : 2 a h 0 x 3 0 1 A h m a c m d 5 0 x [ c h a v e a h h 2 ]

No n a n o , escreva as duas linhas acima aps alinhaquecontm ocomando


s p d f l u s h .

d. A seguir, definiremos as polticas de segurana desta mquina. Neste exemplo,usaremososeguinteformatosimplificadoparaapoltica:


s p d a d d [ i p s _ o r i g e m ] [ i p s _ d e s t i n o ] [ p r o t o c o l o _ c a m a d a _ s u p e r i o r ] [ p o l t i c a ]

As polticas tambm so unidirecionais e precisam ser definidas aos pares se desejarmos uma seguranaIPsec nos dois sentidos decomunicao.Os dois primeiros parmetros so iguais aos das SAs, porm aqui eles podem definir tanto um nico IP quanto um intervalo de IPs (por exemplo, podese definir como IPs de origem um prefixo como 2001:db8::/64). O terceiro parmetro, [ p r o t o c o l o _ c a m a d a _ s u p e r i o r ] , define em quais protocolos das camadas superiores do TCP/IP o IPsec ser aplicado (no nosso caso usaremos a n y , o que significa que estapolticaseraplicadaaos pacotes de todos os protocolos cabveis). O ltimo parmetro [ p o l t i c a ] define o que ser feito com os pacotes enviados de [ i p s _ o r i g e m ] para [ i p s _ d e s t i n o ] e que possuem o protocolo definido em [ p r o t o c o l o _ c a m a d a _ s u p e r i o r ] . O campo comea com o parmetro P, depois define a direo da comunicao (as opes so o u t , i n e f w d , que significa forward), a seguir define as opes de tratamento dos pacotes,que so d i s c a r d ,n o n e ei p s e c (usaremos esta ltima) e por ltimo define a regra pela qual os pacotes sero processados. No nosso exemplo, a regra ser a h / t r a n s p o r t / / r e q u i r e . Para maiores informaes sobre as opes disponveis, consulte o manual do comando s e t k e y , digitando o comando
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

261

abaixonumdosterminaisdestasimulao:
$ m a n s e t k e y

Assim,osparmetrosusadosparaaprimeirapolticasero:
[ i p s _ o r i g e m ] : 2 0 0 1 : d b 8 : b e e f : : 2 [ i p s _ d e s t i n o ] : 2 0 0 1 : d b 8 : f a d a : : 2 [ p r o t o c o l o _ c a m a d a _ s u p e r i o r ] : a n y [ p o l t i c a ] : P i n i p s e c a h / t r a n s p o r t / / r e q u i r e

Portanto,ocomandoassumiraseguinteforma:
s p d a d d 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 a n y P o u t i p s e c a h / t r a n s p o r t / / r e q u i r e

A linha de comando para gerar a segunda poltica, no sentido oposto de comunicao, ser praticamente igual linha anterior, porm com as seguintes diferenas: 1) os IPs sero trocados de posio (o IP f a d a : : 2 ser a origem e o IP b e e f : : 2 serodestino)e2)ocampo[ p o l t i c a ] ter osentidoo u t nolugardei n .Ocomandoassumiraseguinteforma:
s p d a d d 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 a n y P i n i p s e c a h / t r a n s p o r t / / r e q u i r e

No n a n o , escreva as duas linhas acima aps a segunda linha de comando a d d .Atelafinaldon a n o deverserigualimagemabaixo:

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

262

ATENO: trocar a parte [ c h a v e a h h 1 ] e a parte [ c h a v e a h h 2 ] pelas chaves reais, que esto armazenadas nos arquivos c h a v e a h h 1 e c h a v e a h h 2 !

e. Salve o arquivo e saia do n a n o , pressionando primeiro CTRL + O, depois ENTEReemseguidaCTRL+X. f. Imprimaocontedodoarquivo:


$ c a t i p s e c h 1 . c o n f

Ocontedoapresentadonateladeveserigualimagemabaixo:

12. EscrevaoarquivodeconfiguraodoIPsecparaohost2. a. Vparaoterminaldohost2.Crieumarquivo.confcomocomandoabaixo:


$ n a n o i p s e c h 2 . c o n f

Comestecomando,serabertaateladoeditordetextosn a n o . b. Digiteasseguinteslinhasnateladon a n o :
# ! / u s r / s b i n / s e t k e y f f l u s h s p d f l u s h

c. Insira no arquivo duas linhas de comando de criao de SA, uma linha para cada uma das duas SAs de autenticao do host2, seguindo o modelo abaixo:
a d d [ i p _ o r i g e m ] [ i p _ d e s t i n o ] [ p r o t o c o l o ] [ n d i c e ] [ a l g o r i t m o ] [ c h a v e ]

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

263

Observando os parmetros acima, perceba como as SAs do host2 sero exatamente iguais s SAs do host1. De fato, a SA de sada de pacotes do host1 exatamente igual SA de entrada de pacotes do host2, e a de entrada de pacotes do host1 igual de sada de pacotes dohost2.Porm, como a ordem de declarao das SAs no importa e as SAs no deixam explcito seosentidodeentradaoudesada,bastacopiaras SAs dohost1 para o arquivo .conf do host2. Assim, as duas linhas de comando de criaodeSAssoapresentadasabaixo:
a d d 2 0 0 1 : d b 8 : b e e f : : 2 2 0 0 1 : d b 8 : f a d a : : 2 a h 0 x 3 0 0 A h m a c m d 5 0 x [ c h a v e a h h 1 ] a d d 2 0 0 1 : d b 8 : f a d a : : 2 2 0 0 1 : d b 8 : b e e f : : 2 a h 0 x 3 0 1 A h m a c m d 5 0 x [ c h a v e a h h 2 ]

Escrevaestasduaslinhasabaixodocomandos p d f l u s h . d. Insira no arquivo duas linhas de comando de criao de poltica de segurana, uma linha para cada uma das duas polticas de autenticao do host2,seguindoomodeloabaixo:
s p d a d d [ i p s _ o r i g e m ] [ i p s _ d e s t i n o ] [ p r o t o c o l o _ c a m a d a _ s u p e r i o r ] [ p o l t i c a ]

Observe que, ao contrrio das SAs, as polticas de segurana dizem explicitamente se o sentido de comunicao de sada (o u t ) ou de entrada (i n ). Taldeclaraoestdentrodoparmetro[ p o l t i c a ] .Observetambm que, com exceo deste detalhe, as duas polticas do host2 sero iguais s duas polticas do host1. A diferena estar exatamente neste sentido de comunicao, que deve ser trocado nas duas polticas do host2. Portanto, para definir as polticas do host2 neste exemplo, basta copiar as polticas do host1 e inverter o sentido de comunicao (mudar para o u t onde for i n e mudar para i n onde for o u t ). Assim, as duas linhas de comando decriao depolticassoapresentadasabaixo:
s p d a d d 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 a n y P i n i p s e c a h / t r a n s p o r t / / r e q u i r e s p d a d d 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 a n y P o u t i p s e c a h / t r a n s p o r t / / r e q u i r e

No n a n o , escreva as duas linhas acima aps a segunda linha de comando a d d .Atelafinaldon a n o deverserigualimagemabaixo:

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

264

ATENO: trocar a parte [ c h a v e a h h 1 ] e a parte [ c h a v e a h h 2 ] pelas chaves reais, que esto armazenadas nos arquivos c h a v e a h h 1 e c h a v e a h h 2 ! e. Salve o arquivo e saia do n a n o , pressionando primeiro CTRL + O, depois ENTEReemseguidaCTRL+X. f. Imprimaocontedodoarquivo:
$ c a t i p s e c h 2 . c o n f

Preste ateno para as diferenas entre este arquivo e o arquivo i p s e c h 1 . c o n f . As nicas diferenas soosentidodecomunicaoi n / o u t explicitado nas polticas de comunicao. Isto significa que o processo de escrita dos dois arquivos .conf se limita a escrever apenas um deles, copiloparaaoutramquinaealteraroi n / o u t naspolticass p d a d d .

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

265

13. V para o terminal do host1ecarregueas configuraes doarquivoi p s e c h 1 . c o n f comocomandoabaixo:


$ s e t k e y f i p s e c h 1 . c o n f

Se o arquivo for carregado corretamente, nenhuma mensagem ser impressaaps a execuo do comando s e t k e y f . Caso surja alguma mensagem, o arquivo possuir algum erro de sintaxe. Neste caso, verifique novamente os comandos descritosnopasso11. Paraverificarseaschavesforamcarregadas,executeosseguintescomandos:
$ s e t k e y D

Este comando exibe as SAs que a mquina possui. Caso as SAs tenham sido corretamentecarregadas,aseguintetelaserimpressanoterminal:

Jocomandoabaixoexibeaspolticasdeseguranaimplementadas.
$ s e t k e y D P

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

266

Aseguintetelaserimpressanoterminal:

14. V paraoterminaldohost2ecarregueas configuraes doarquivo.conf.Supondo que voctenhanomeadoestearquivocomoi p s e c h 2 . c o n f ,ocomandoficarigual aoabaixo:


$ s e t k e y f i p s e c h 2 . c o n f

Paraverificarseaschavesforamcarregadas,executeosseguintescomandos:
$ s e t k e y D $ s e t k e y D P

15. Reenvie pacotes entre os dois roteadores para anlise do cabealho. Com as configuraesdoIPsecemexecuo,repitaoprocedimentodecapturadepacotes. a. Noterminaldoroteador1:
$ t c p d u m p i e t h 1 s 0 w / t m p / c a p t u r a _ c o m _ a h . p c a p

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

267

b. Noterminaldohost1:
$ p i n g 6 c 4 2 0 0 1 : d b 8 : f a d a : : 2

c. Noterminaldoroteador1,encerreacapturadepacotespressionandoCtrl+C.

Agora implementaremos a criptografia entre os dois terminais, em adio autenticaoj implementada. Para isso, alteraremos os arquivos .conf j gerados e os recarregaremos. Emseguida,faremosumaterceiracapturadepacotes,paraanliseposterior. 16. ImprimaeanoteaschavesESPgeradasanteriormenteparaoshosts1e2: a. V para o terminal do host1 e imprima a chave ESParmazenadanoarquivo c h a v e e s p h 1 :
$ c a t c h a v e e s p h 1

Umatelasimilarabaixodeverserimpressa:

Anote o valorapresentado.Percebacomoovalorconsideravelmentemaior que o valor da chave AH. Contudo, o valortambm hexadecimal,edever teroprefixo0xdentrodoarquivo.conf.

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101 268

b. V para o terminal do host2 e imprima a chave ESParmazenadanoarquivo c h a v e e s p h 2 :


$ c a t c h a v e e s p h 2

Anoteovalorapresentadonatela. 17. Altere o arquivo de configurao i p s e c h 1 . c o n f para incluir a configurao da criptografia: a. V para o terminal do host1 e abra o arquivo de configurao i p s e c h 1 . c o n f :
$ n a n o i p s e c h 1 . c o n f

b. Criaremos agoraas SAs correspondentes aoprocessodecriptografiaparao host1.Aps osegundocomandoa d d jpresentenoarquivo,insiramais duas linhas de comando a d d , que definiro mais um par de SAs. Parareferncia, reapresentamosaestruturadocomando a d d ,quecriaumaSA:
a d d [ i p _ o r i g e m ] [ i p _ d e s t i n o ] [ p r o t o c o l o ] [ n d i c e ] [ a l g o r i t m o ] [ c h a v e ]

Osparmetrosusadossero: [ip_origem]:2001:db8:beef::2 [ip_destino]:2001:db8:fada::2 [protocolo]:e s p [ndice]:0 x 3 0 2 (precisaserdiferentedosjexistentes,0x300e0x301) [algoritmo]: E 3 d e s c b c [chave]: chave ESP presente no arquivo c h a v e e s p h 1 , gerado anteriormente. Este valortambm hexadecima,logonecessriocolocaro prefixo0xantesdachave. Portanto,ocomandoassumiraseguinteforma:
a d d 2 0 0 1 : d b 8 : b e e f : : 2 2 0 0 1 : d b 8 : f a d a : : 2 e s p 0 x 3 0 2 E 3 d e s c b c 0 x [ c h a v e e s p h 1 ]

A linha de comando para gerar a segunda SA, no sentido oposto de comunicao, ser praticamente igual linha anterior, porm com as seguintes diferenas: 1) os IPs sero trocados de posio (o IP f a d a : : 2 ser a origem e o IP b e e f : : 2 ser o destino), 2) o ndice ter que ser diferente (por exemplo, 0 x 3 0 3 ) e 3) a chave ESP ser igualmente diferente
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101 269

(neste exemplo, a chave ser o contedo do arquivo c h a v e e s p h 2 ). O comandoassumiraseguinteforma:


a d d 2 0 0 1 : d b 8 : f a d a : : 2 2 0 0 1 : d b 8 : b e e f : : 2 e s p 0 x 3 0 3 E 3 d e s c b c 0 x [ c h a v e e s p h 2 ]

Oarquivoi p s e c h 1 . c o n f apresentar,nestemomento,oseguintecontedo nateladon a n o :

c. A seguir, atualizaremos as polticas de seguranadestamquinaparaincluir a criptografia. Ao contrrio dos comandos a d d , que definem apenas umaSA cada, os comandos s p d a d d podem definir mais de um protocolo de segurana como parte da poltica,numanicalinhadecomando.Lembrando aestruturadocomandos p d a d d :
s p d a d d [ i p s _ o r i g e m ] [ i p s _ d e s t i n o ] [ p r o t o c o l o _ c a m a d a _ s u p e r i o r ] [ p o l t i c a ]

A poltica definida aps o parmetro [ p r o t o c o l o _ c a m a d a _ s u p e r i o r ] , e apresentaaseguinteformanoarquivo:


P i n i p s e c a h / t r a n s p o r t / / r e q u i r e

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101 270

Para incluir um segundo protocolo de segurana, basta definir o protocolo adicional antes do primeiro, o que far com que o parmetro [ p o l t i c a ] assumaaseguinteforma:
P i n i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e

Observao: a ordem em que os protocolos esp e ah so declarados importante e deve ser respeitada, isto , o protocolo esp deve ser declarado primeiroeemseguidaoprotocoloahdeclarado. Logo,ocomandos p d a d d atualizadoassumiraseguinteforma:
s p d a d d 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 a n y P o u t i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e

Altere o segundo comando s p d a d d incluindo o mesmo trecho discutido acima.Ocomandoassumiraseguinteforma:


s p d a d d 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 a n y P i n i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e

Oarquivoi p s e c h 1 . c o n f apresentaraseguintetelafinalnon a n o :

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101 271

d. Salve o arquivo e saia do n a n o , pressionando primeiro CTRL + O, depois ENTEReemseguidaCTRL+X. e. Imprimaocontedodoarquivo:


$ c a t i p s e c h 1 . c o n f

O contedo apresentado na tela deve ser similar imagem abaixo (as chavesserodiferentes,poisserogeradasporvoc):

18. AtualizeoarquivodeconfiguraodoIPsecparaohost2paraincluiracriptografia. a. V para o terminal do host2 e abra o arquivo de configurao i p s e c h 2 . c o n f :


$ n a n o i p s e c h 2 . c o n f

b. Aps o segundocomandoa d d jpresentenoarquivo,insiramais duas linhas de comando a d d , que definiro o novo par de SAs para a criptografia. Lembrando que o par deSAs idnticoparaos dois hosts,copieas SAs de criptografiaapresentadasnopasso17(queseroreapresentadasabaixo):
a d d 2 0 0 1 : d b 8 : b e e f : : 2 2 0 0 1 : d b 8 : f a d a : : 2 e s p 0 x 3 0 2 E 3 d e s c b c 0 x [ c h a v e e s p h 1 ] a d d 2 0 0 1 : d b 8 : f a d a : : 2 2 0 0 1 : d b 8 : b e e f : : 2 e s p 0 x 3 0 3 E 3 d e s c b c 0 x [ c h a v e e s p h 2 ]

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101 272

c. A seguir, atualizaremos as polticas de seguranadestamquinaparaincluir a criptografia. Altere os comandos s p d a d d para incluir o texto e s p / t r a n s p o r t / / r e q u i r e antes do texto a h / t r a n s p o r t / / r e q u i r e . Da mesma maneira, troque o parmetro o u t por i n no primeiro comando e troque o parmetroi n poro u t nosegundo.Os comandos ficaroconformeo cdigoabaixo(asdiferenasestoemnegrito):
s p d a d d 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 a n y P i n i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e s p d a d d 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 a n y P o u t i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e

d. Salve o arquivo e saia do n a n o , pressionando primeiro CTRL + O, depois ENTEReemseguidaCTRL+X. e. Imprimaocontedodoarquivo:


$ c a t i p s e c h 2 . c o n f

O contedo apresentado na tela deve ser similar imagem abaixo (as chavesserodiferentes,poisserogeradasporvoc):

Perceba mais uma vez que a nicadiferenaentreocontedodoi p s e c h 2 . c o n f e o contedo do i p s e c h 1 . c o n f a inverso da direo de comunicao nas polticasdesegurana(ondeerao u t tornasei n eondeerai n tornaseo u t ).

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101 273

19. V para o terminal do host1 e recarregue as configuraes do arquivo i p s e c h 1 . c o n f comocomandoabaixo:


$ s e t k e y f i p s e c h 1 . c o n f

Paraverificarseaschavesforamcarregadas,executeosseguintescomandos:
$ s e t k e y D

Aseguintetelaserexibida:

Executetambmoseguintecomando:
$ s e t k e y D P

274 IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101

Aseguintetelaserexibida:

20. V para o terminal do host2 e recarregue as configuraes do arquivo i p s e c h 2 . c o n f comocomandoabaixo:


$ s e t k e y f i p s e c h 2 . c o n f

Paraverificarseaschavesforamcarregadas,executeosseguintescomandos:
$ s e t k e y D $ s e t k e y D P

Umatelasimilarsexibidasnopassoanteriortambmserexibidaapsestes comandos. 21. Reenviepacotesentreosdoisroteadoresparaanlisedocabealho. Com as configuraes do IPsec em execuo, repita o procedimento de capturadepacotes. a. Noterminaldoroteador1:
$ t c p d u m p i e t h 1 s 0 w / t m p / c a p t u r a _ c o m _ a h _ e s p . p c a p

275 IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101

b. Noterminaldohost1:
$ p i n g 6 c 4 2 0 0 1 : d b 8 : f a d a : : 2

c. Noterminaldoroteador1,encerreacapturadepacotespressionandoCtrl+C.

22. Encerreasimulao: a. aperteoboto ou b. utilizeomenuExperiment>Stop. 23. Analisaremosagoraospacotescapturadosnastrssituaes: TopologiasemIPsec Topologiacomsomenteautenticao Topologiacomautenticaoecriptografia

276 IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101

Paraverificarospacotescapturados,utilizaremosoprogramaWireshark. a. Inicie o programa Wireshark. Uma maneira de fazlo atravs de um terminalnamquinavirtual,comocomando:


$ w i r e s h a r k

Este programa tem como principais funcionalidades a captura e anlise de pacotes transmitidos por uma interface de rede. Atravs de seu uso, possvel visualizar melhor os pacotes que trafegam pela rede. Verifique o arquivodecapturapreviamenteobtido.

277 IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101

b. Abraoarquivo/ t m p / c a p t u r a _ s e m _ i p s e c . p c a p comomenuFile>Open:

c. Analise um pacote ICMPv6 de Echo (ping) reply de2 0 0 1 : d b 8 : b e e f : : 2 para 2 0 0 1 : d b 8 : f a d a : : 2 . Note que possvel analisartodoocontedodopacote, inclusive o contedo do campo data. Caso o pacote Echo (ping) request fosse falsificado, com o dono se fazendo passar pelo dispositivo 2 0 0 1 : d b 8 : b e e f : : 2 ,arespostaseriaenviadamesmoassim.

278 IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.br rev.2012.07.1101

d. Abraoarquivo/ t m p / c a p t u r a _ c o m _ a h . p c a p comomenuFile>Open:

e. Analise um pacote de 2 0 0 1 : d b 8 : b e e f : : 2 para 2 0 0 1 : d b 8 : f a d a : : 2 . Note o cabealho de extenso AH (Authentication Header) que aparece no final do cabealho IP (Internet Protocol Version 6). Embora o contedo do pacote esteja visvel para qualquer um que conseguir capturlo (seja o destinatrio do pacote, seja um sniffer no meio da rede), odestinatriosrespondero pacote se o remetente possuir a chave de autenticao. Isso significa que embora os dados no sejam confidenciais, eles so confiveis e ntegros (garantese que a origem do pacote no foi forjada e que o pacote no foi modificado). Autilizaodesomenteautenticaosejustificaem casos onde o contedo no necessita ser protegido, mas precisogarantirqueopacote foi enviado por um dispositivo autorizado. Utilizar somente autenticao tambm uma tcnica utilizada por dispositivos com capacidade de processamento limitada que no teriam capazes de processar pacotes criptografados em tempo hbil, uma vez que os algoritmos de criptografia necessitamdebastanteprocessamento.

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

279

f. Abraoarquivo/ t m p / c a p t u r a _ c o m _ a h _ e s p . p c a p comomenuFile>Open:

g. Note que no possvel analisar todo o contedo do pacote, que est criptografado no ESP na camada de aplicao.Inclusive,impossvelsaber que o pacote em questo um pacote de Echo (ping) reply. Neste exemplo sabese o tipo do pacote apenas porque foramos a gerao dos mesmos atravs do ping. Outro ponto interessante que para acamadadeaplicao (programas) a criptografia dos pacotes transparente e no afeta o funcionamento destas, pois elas recebem e enviam pacotes sem qualquer criptografia ou autenticao, uma vez que estas so geradas e removidas pela camada IP. Note tambm a existncia do cabealho de autenticao AH, que impede que um pacote falsificado seja tratado e respondido pelo destino, que conhece a chave do dispositivo verdadeiro. Portanto, os dados destepacotesoconfidenciais,confiveisentegros.

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

280

Experincia3.1IPsec:MododeTransporteDetalhamentodecomandos
1. Configuraomanualporentradadiretadecomandos Para configurar o IPsec no Linux, utilizase o comando s e t k e y . Conforme j mencionado, o comando s e t k e y pode executar rotinas de manipulao dos bancos de dados tanto por entrada direta dos comandos quanto a partir de um arquivo de configurao (nome_do_arquivo.conf). A seguir, seguese uma explicao de como realizaraconfiguraoporentradadiretadecomandos. Paraativaros e t k e y nestemodo,usaseocomandocomoformatoabaixo:
$ s e t k e y c

Executarestecomandogeraaseguintetela:

Ao executlo, o terminal abre uma sesso prpria do s e t k e y para entrada dos comandos relacionados ao IPsec, isto , uma sesso onde apenas comandos do s e t k e y sero vlidos (note que a linha aps o comando s e t k e y c no comea com o smbolo #, que indicaria que ainda estaramos numa sesso do terminaldo Linux). Aps abrir esta sesso, digitase um comando desejado, adicionase o caractere e ento pressionase ENTER. Para cada comando que se deseja executar, devese repetir o processo. Aps digitar o ltimo comando e apertar ENTER, o usurio poder finalizar a sesso pressionando as teclas CTRL+D.Aps isso,oscomandosdigitadosseroexecutados. Embora seja trabalhoso (e propenso a erros) fazer a configurao manualcompleta do IPsec atravs da entrada direta de comandos, este mtodo til quando desejamos apenas limpar as configuraes do IPsec. Para fazlo, digitase as seguinteslinhas,pressionandoENTERnofinaldecadaumadelas:
f l u s h s p d f l u s h

Ento pressionase CTRL+Dparafinalizarasessoeoterminalvoltaparaasesso doshell,queapresentaosmbolo#:

ATENO: as alteraes do IPsec executadas por entrada direta de comandos


IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

281

afetam somente a sesso atual do sistema operacional. Uma vez que o SO seja reinicializado, estas configuraes sero perdidas e o sistema carregar as configuraes escritas no arquivo de configurao /etc/ipsectools.conf. Casoeste arquivo esteja em branco, no exista ou esteja totalmente comentado, nenhuma configuraonovasercarregadaeoIPsecnoseraplicadoanenhumpacote. 2. Configuraes permanentes:inicializando,suspendendoealterandoemtempo deexecuo Conforme j foi explicado, para aplicar uma configurao permanente no IPsec, necessrio colocar as configuraes dentro do arquivo /etc/ipsectools.conf. Para abrirestearquivoparaescritaealterao,executeocomandoabaixo:
$ s u d o n a n o / e t c / i p s e c t o o l s . c o n f

OBS: at o momento, no utilizamos o prefixo s u d o em nenhum comando de configurao do IPsec porque dentro do Core os terminais so abertos com o usurio r o o t , o qual possui privilgios de alterao e execuo de qualquer arquivo protegido. Todos os arquivos .conf que esto presentes dentro da pasta / e t c e suas subpastas so arquivos protegidos. Logo, caso voc esteja configurando o IPsec em sua mquina real, no esquea de colocar o prefixo s u d o em todos os comandos relacionados ao IPsec, seja o s e t k e y , seja o prprio n a n o na hora de alterarumarquivoprotegidodosistema(comoo/etc/ipsectools.conf). Todos os detalhes de configurao do IPsec que foram discutidos na experincia 1 valem para este arquivo. Aps alterlo, as configuraes no sero automaticamente carregadas, sendo necessrio reinicializar o sistema primeiro. Porm, haver situaes onde o sistema no poder ser desligado e as alteraes tero que serfeitas eaplicadas dentrodamesmasessodoSO.Paratrabalharcom estas situaes, o usurio dever utilizar o script de inicializao do IPsec presente dentro da pasta / e t c / i n i t . d / . Atravs deste script, possvel inicializar, reinicializaresuspenderoIPsecdentrodeumamesmasessodoLinux. Considerando novamente a situao onde o usurio acabou de escrever as configuraes do IPsec no arquivo /etc/ipsectools.conf e deseja apliclas imediatamente sem reinicializar o sistema operacional, devese utilizar o comando abaixo:
$ s u d o / e t c / i n i t . d / s e t k e y r e s t a r t

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

282

Estecomandoexibiraseguintetela:

Uma outra situao que poder ocorrer a necessidade de suspender as configuraes do IPsec temporariamente e reestabeleclas depois, isto,desfazer as configuraes sem que elas sejam perdidas permanentemente. Para fazer isto, executeocomandoabaixo:
$ s u d o / e t c / i n i t . d / s e t k e y s t o p

Aseguintetelaserexibida:

Caso se deseje reestabelecer as configuraes do IPsec, execute o comando abaixo:


$ s u d o / e t c / i n i t . d / s e t k e y s t o p

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

283

Aseguintetelaserexibida:

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

284

Experincia4IPsec:MododeTnel
1. No CORE, abraoarquivosegurancaipsectunel.imn .Aseguintetopologiainicial derededeveaparecerdeveaparecer:

Comparando com a topologia do experimento anterior, foram adicionados o roteador3 e o dispositivo atacante para simular a Internet, alm de um dispositivo clienteparacadaroteadordatopologiaoriginal. 2. Inicieasimulao: a. aperteoboto ouutilizeomenuExperiment>Start. a. EspereatqueoCOREtermineainicializaodasimulao. b. Abra o terminal docliente1,atravs deduploclique.Verifiqueaconectividade entreocliente1eocliente2atravsdoseguintecomando:
$ p i n g 6 c 4 2 0 0 1 : d b 8 : b e b e : : 1 0
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

285

Oresultadodeveser:

Este resultado mostra que a conexo entre o cliente1 e o cliente2 est funcionandocorretamente. c. Abra um console no sistema operacional que est executando o Core e execute o Wireshark como root, a senha quando solicitada core. Isto necessrio pois as interfaces da simulao do core somente so visveis parasuperusers.:
$ s u d o w i r e s h a r k

Voc deve visualizar as seguintes janelas neste processo, clique em OK e ignoreasjanelasdeavisoqueaparecerem:

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

286

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

287

d. Abraacapturanainterfacen4.eth0(cliente1)conformeafigura:

e. Deixe o Wireshark aberto capturando pacotes e abra o terminal deatacante, atravs do duploclique. Agora utilize a ferramenta thcping6 para mandar pacotes para o dispositivo2001:db8:bebe::10,mandeum pacotecom oIPde origem correto(2001:db8:faca::10)eum segundopacoteinformandocomoIP deorigemoIPdocliente1(2001:db8:baba::10):
$ p i n g 6 c 4 2 0 0 1 : d b 8 : b e b e : : 1 0 $ t h c p i n g 6 d 6 4 e t h 0 2 0 0 1 : d b 8 : f a c a : : 1 0 2 0 0 1 : d b 8 : b e b e : : 1 0 $ t h c p i n g 6 d 6 4 e t h 0 2 0 0 1 : d b 8 : b a b a : : 1 0 2 0 0 1 : d b 8 : b e b e : : 1 0

Obs: O primeiro ping necessrio para que o programa thcping6 funcione corretamentenoCORE.

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

288

Oresultadodeveser:

f. Volte ao Wireshark e procure por um pacote ICMP (echo) reply com origem 2001:db8:bebe::10 e destino 2001:db8:baba::10. Podese observar que o cliente1 recebeu um pacote ICMP (echo) reply sem fazer o ICMP (echo) request. Esta a resposta ao ICMP request feito pelo dispositivo atacante com o IP forjado do cliente1. Este tipo de pacote forjado pode ser usado em diversos tipos deataque,comomaninthemiddle,smurf,DenialofServicee outros. g. Para resolver esta falha de segurana ser implementado um tnel IPsec entre o roteador1 e o roteador2 fazendo com que todotrfegoentreas redes 2001:db8:baba:: e 2001:db8:bebe:: trafegue criptografado pela Internet e somente seja aceito na rede destino se possuir cabealho de autenticao IPsecvlido. Para configurar o tnel IPsec abra o terminal de roteador1 atravs do duploclique e verifique o contedo do arquivo ipsec.conf com o seguinte comando:
# c a t i p s e c . c o n f

Ocontedodoarquivooseguinte:
# ! / u s r / s b i n / s e t k e y f # F l u s h t h e S A D a n d S P D f l u s h s p d f l u s h # E S P S A s d o i n g e n c r y p t i o n u s i n g 1 9 2 b i t l o n g k e y s ( 1 6 8 + 2 4 # p a r i t y ) a n d a u t h e n t i c a t i o n u s i n g 1 2 8 b i t l o n g k e y s a d d 2 0 0 1 : d b 8 : b e e f : : 1 2 0 0 1 : d b 8 : c a f e : : 2 e s p 0 x 2 0 1 m t u n n e l E 3 d e s c b c 0 x 7 a e a c a 3 f 8 7 d 0 6 0 a 1 2 f 4 a 4 4 8 7 d 5 a 5 c 3 3 5 5 9 2 0 f a e 6 9 a 9 6 c 8 3 1 A h m a c m d 5 0 x c 0 2 9 1 f f 0 1 4 d c c d d 0 3 8 7 4 d 9 e 8 e 4 c d f 3 e 6 a d d 2 0 0 1 : d b 8 : c a f e : : 2 2 0 0 1 : d b 8 : b e e f : : 1 e s p 0 x 3 0 1 m t u n n e l E 3 d e s c b c 0 x f 6 d d b 5 5 5 a c f d 9 d 7 7 b 0 3 e a 3 8 4 3 f 2 6 5 3 2 5 5 a f e 8 e b 5 5 7 3 9 6 5 d f A h m a c m d 5 0 x 9 6 3 5 8 c 9 0 7 8 3 b b f a 3 d 7 b 1 9 6 c e a b e 0 5 3 6 b

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

289

# S e c u r i t y p o l i c i e s s p d a d d 2 0 0 1 : d b 8 : b a b a : : 0 / 6 4 2 0 0 1 : d b 8 : b e b e : : 0 / 6 4 a n y P o u t i p s e c e s p / t u n n e l / 2 0 0 1 : d b 8 : b e e f : : 1 2 0 0 1 : d b 8 : c a f e : : 2 / r e q u i r e s p d a d d 2 0 0 1 : d b 8 : b e b e : : 0 / 6 4 2 0 0 1 : d b 8 : b a b a : : 0 / 6 4 a n y P i n i p s e c e s p / t u n n e l / 2 0 0 1 : d b 8 : c a f e : : 2 2 0 0 1 : d b 8 : b e e f : : 1 / r e q u i r e

Note que as chaves deste exemplo no devem ser utilizadas em aplicaes reais.Paragerarsuasprpriaschavesexecuteoscomandos:
$ d d i f = / d e v / r a n d o m c o u n t = 1 6 b s = 1 | x x d p s $ d d i f = / d e v / r a n d o m c o u n t = 2 4 b s = 1 | x x d p s

i.

Recarregue as configuraes do IPsec para que os dados inseridos no arquivodeconfiguraosejamexecutados:


$ s e t k e y f i p s e c . c o n f

j.

Para verificar se as chaves foram carregadas, execute os seguintes comandos:


$ s e t k e y D $ s e t k e y D P

k. Abraoterminaldoroteador2,atravsdoduploclique. l. Verifiqueocontedodoarquivoipsec.confcomoseguintecomando:

# ! / u s r / s b i n / s e t k e y f # F l u s h t h e S A D a n d S P D f l u s h s p d f l u s h # E S P S A s d o i n g e n c r y p t i o n u s i n g 1 9 2 b i t l o n g k e y s ( 1 6 8 + 2 4 # p a r i t y ) a n d a u t h e n t i c a t i o n u s i n g 1 2 8 b i t l o n g k e y s a d d 2 0 0 1 : d b 8 : b e e f : : 1 2 0 0 1 : d b 8 : c a f e : : 2 e s p 0 x 2 0 1 m t u n n e l E 3 d e s c b c 0 x 7 a e a c a 3 f 8 7 d 0 6 0 a 1 2 f 4 a 4 4 8 7 d 5 a 5 c 3 3 5 5 9 2 0 f a e 6 9 a 9 6 c 8 3 1 A h m a c m d 5 0 x c 0 2 9 1 f f 0 1 4 d c c d d 0 3 8 7 4 d 9 e 8 e 4 c d f 3 e 6 a d d 2 0 0 1 : d b 8 : c a f e : : 2 2 0 0 1 : d b 8 : b e e f : : 1 e s p 0 x 3 0 1 m t u n n e l E 3 d e s c b c 0 x f 6 d d b 5 5 5 a c f d 9 d 7 7 b 0 3 e a 3 8 4 3 f 2 6 5 3 2 5 5 a f e 8 e b 5 5 7 3 9 6 5 d f A h m a c m d 5 0 x 9 6 3 5 8 c 9 0 7 8 3 b b f a 3 d 7 b 1 9 6 c e a b e 0 5 3 6 b # S e c u r i t y p o l i c i e s

290

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

s p d a d d 2 0 0 1 : d b 8 : b a b a : : 0 / 6 4 2 0 0 1 : d b 8 : b e b e : : 0 / 6 4 a n y P i n i p s e c e s p / t u n n e l / 2 0 0 1 : d b 8 : b e e f : : 1 2 0 0 1 : d b 8 : c a f e : : 2 / r e q u i r e s p d a d d 2 0 0 1 : d b 8 : b e b e : : 0 / 6 4 2 0 0 1 : d b 8 : b a b a : : 0 / 6 4 a n y P o u t i p s e c e s p / t u n n e l / 2 0 0 1 : d b 8 : c a f e : : 2 2 0 0 1 : d b 8 : b e e f : : 1 / r e q u i r e

m. Recarregue as configuraes do IPsec para que os dados inseridos no arquivodeconfiguraosejamexecutados:


$ s e t k e y f i p s e c . c o n f

n. Para verificar se as chaves foram carregadas, execute os seguintes comandos:


$ s e t k e y D $ s e t k e y D P

o. Volte aoWireshark ealtereainterfaceanalisadaparaaeth0doroteador3que estconectadoaoroteador1(n2.eth0). p. Abraoconsoledocliente1eenvieumping6paraocliente2:


# p i n g 6 c 4 2 0 0 1 : d b 8 : b e b e : : 1 0

Oresultadoserumpingcomfuncionamentocorreto,conformeafigura:

q. NoWiresharkprocurepacotesdotipoICMP(echo)requestoureply. r. Note que no possvel encontrar este tipo de pacotes apesar de o ping ter funcionado corretamente, isto ocorre pois o tnel estabelecido entre o roteador1 e o roteador2 est encriptando os pacotes ICMP (echo) request e reply. Para confirmar isto procure por pacotes com protocolo ESP. possvel notar a existncia de 4 pacotes do roteador1 para o roteador2 e 4 pacotes do roteador2 para o roteador1. Esta exatamente a quantidade de

291
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

pacotes ping que foi gerada na conversa entre ocliente1eocliente2ecomo o trfego de rede nesta simulao controlado, podese concluir que estes pacotes realmente soos pacotes ping.Analiseum dos pacotes epossvel notarqueos IPs deorigem edestinosoos IPs dos roteadores.Acapturado Wiresharksersimilarafigura:

s. Configure o Wireshark para capturar pacotes recebidos nocliente1(n4.eth0). Gere um novo pacote ping falsificado noconsoledoatacante,natentativade que opacotederespostachegueaocliente1originadopelocliente2.Paraisto utilizeocomando:
$ p i n g 6 c 4 2 0 0 1 : d b 8 : b e b e : : 1 0 $ t h c p i n g 6 d 6 4 e t h 0 2 0 0 1 : d b 8 : b a b a : : 1 0 2 0 0 1 : d b 8 : b e b e : : 1 0

Obs: O primeiro ping necessrio para que o programa thcping6 funcione corretamentenoCORE. t. Procure no Wireshark um pacote ICMP (ping) reply originrio do cliente2. Nopossvelencontrarestepacote,poiselenochegouaocliente1.

292
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

u. Configure agora o Wireshark para analisar a eth0 do roteador2 (n3.eth0) e faa repita oenviodopacoteforjado.Procureopacoteforjado.possivelver que ele recebido pelo roteador2, mas um pacote de ICMP (ping) reply no passaporestainterface.

v. Configure agora o Wireshark para analisar a eth1 do roteador2 (n3.eth1) e repita o envio do pacote forjado. Note que o pacote ICMP (ping) request chega a interfaceeth0doroteador2,mas noredirecionadoparaainterface eth1 como acontecia quando o IPsec no estava configurado. Isto ocorre pois o roteador recebe um pacote vindo da rede 2001:db8:baba:: sem estar autenticado e criptografado. Neste caso o comportamento do roteador descartar o pacote, impedindo o ataque queutilizaafalsificaodoendereo deorigem.

293
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

Experincia5IPsec:Configuraoautomticaatravsdechaves
1. Se voc estiver utilizando a mquina virtual fornecida, v para o passo 2. Caso se verifique que o IPSec ou o Racoon no estejam instalados na sua mquina virtual, executeocomandoabaixo:
$ s u d o a p t g e t i n s t a l l i p s e c t o o l s r a c o o n

2. No CORE, abra o arquivo segurancaipsecracoon.imn . A seguinte topologia inicialderededeveaparecer:

3. Inicieasimulao: a. aperteoboto ouutilizeomenuExperiment>Start. b. Espere at que o CORE termine a inicializao da simulao e abra um

294
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

terminal do roteador1, um dohost1eum dohost2,atravs doduplocliqueno smbolodecadaumdostrsns. c. Embora o IPSec e o Racoon j tenham sido instalados na mquina virtual, nenhum dos dois est configurado quando a simulao inicializada. Isso dever ser feito individualmente para cada um dos ns da simulao no CORE. Devido ausncia de configurao inicial do IPSec entre os ns, a comunicao entre eles no est protegida e pode ocorrer livremente. Caso voc queiraverificaristo,vparaoterminaldohost1eexecuteum pingentre paraohost2comocomandoabaixo:
$ p i n g 6 c 4 2 0 0 1 : d b 8 : f a d a : : 2

Ateladoterminaldeverexibirmensagenscomoasdaimagemabaixo:

4. EscrevaoarquivodeconfiguraodoIPsecparaohost1. Conforme j mencionado, embora o Racoonfaaatrocadechaves deautenticao e de criptografia automaticamente, necessrio definir primeiro as polticas de segurana manualmente atravs do comando s e t k e y , da mesmamaneiracomofoi feito na experincia 1. A seguir, repetiremos estes passos de escrita do arquivo de configurao, porm de maneira mais suscinta. Qualquer dvida relacionada aos comandos que sero apresentados nestes prximos subitens podesersolucionada revisando a experincia 1, que explica em detalhes comoaconfiguraomanualdo IPsecfeita. a. Vparaoterminaldohost1.Crieumarquivo.confcomocomandoabaixo:
$ n a n o i p s e c h 1 . c o n f

295
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

Aseguintetelairsurgir:

b. Digite as linhas que executaro os comandos de reinicializao da configuraodoIPsec:


# ! / u s r / s b i n / s e t k e y f f l u s h s p d f l u s h

c. A seguir insira as linhas que definem as polticas de segurana desta mquina. Lembresequeumapolticapossuioseguinteformatosimplificado:
s p d a d d [ i p s _ o r i g e m ] [ i p s _ d e s t i n o ] [ p r o t o c o l o _ c a m a d a _ s u p e r i o r ] [ p o l t i c a ]

A configurao automtica atravs do Racoon funciona com o IPsec tanto em modo de transporte quanto em modo tnel. Nesta experincia, configuraremosoIPsecentreohost1eohost2emmododetransporte. Osparmetrosusadosparaaprimeirapolticasero:
[ i p s _ o r i g e m ] : 2 0 0 1 : d b 8 : b e e f : : 2 [ i p s _ d e s t i n o ] : 2 0 0 1 : d b 8 : f a d a : : 2 [ p r o t o c o l o _ c a m a d a _ s u p e r i o r ] : a n y [ p o l t i c a ] : P i n i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e

296
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

Portanto,ocomandoassumiraseguinteforma:
s p d a d d 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 a n y P o u t i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e

A linha de comando para gerar a segunda poltica, no sentido oposto de comunicao, ser praticamente igual linha anterior, porm com as seguintes diferenas: 1) os IPs sero trocados de posio (o IP fada::2 ser a origem e o IP beef::2 ser o destino) e 2) o campo poltica ter o sentidoi n nolugardeo u t .Ocomandoassumiraseguinteforma:
s p d a d d 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 a n y P i n i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e

Non a n o ,escrevaasduaslinhasacimaapsalinhaquecontmos p d f l u s h . Apsescrevertodasestaslinhas,ateladon a n o deverapresentaros seguintesdados:

d. Salve o arquivo e saia do n a n o , pressionando primeiro CTRL + O, depois ENTEReemseguidaCTRL+X. 5. EscrevaoarquivodeconfiguraodoIPsecparaohost2.

297
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

a. Vparaoterminaldohost2.Crieumarquivo.confcomocomandoabaixo:
$ n a n o i p s e c h 2 . c o n f

b. Digite as linhas que executaro os comandos de reinicializao da configuraodoIPsec:


# ! / u s r / s b i n / s e t k e y f f l u s h s p d f l u s h

c. A seguir insira as linhas que definem as polticas de segurana desta mquina. Osparmetrosusadosparaaprimeirapolticasero:
[ i p s _ o r i g e m ] : 2 0 0 1 : d b 8 : f a d a : : 2 [ i p s _ d e s t i n o ] : 2 0 0 1 : d b 8 : b e e f : : 2 [ p r o t o c o l o _ c a m a d a _ s u p e r i o r ] : a n y [ p o l t i c a ] : P i n i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e

Portanto,ocomandoassumiraseguinteforma:
s p d a d d 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 a n y P o u t i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e

A linha de comando para gerar a segunda poltica, no sentido oposto de comunicao, ser praticamente igual linha anterior, porm com as seguintes diferenas: 1) os IPs sero trocados de posio (o IP beef::2 ser a origem e o IP fada::2 ser o destino) e 2) o campo poltica ter o sentidooutnolugardein.Ocomandoassumiraseguinteforma:
s p d a d d 2 0 0 1 : d b 8 : b e e f : : 2 / 6 4 2 0 0 1 : d b 8 : f a d a : : 2 / 6 4 a n y P i n i p s e c e s p / t r a n s p o r t / / r e q u i r e a h / t r a n s p o r t / / r e q u i r e

298
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

Non a n o ,escrevaasduaslinhasacimaapsalinhaquecontmos p d f l u s h . Aps escrever todas estas linhas, a tela do n a n o dever apresentar os seguintesdados:

d. Salve o arquivo e saia do n a n o , pressionando primeiro CTRL + O, depois ENTEReemseguidaCTRL+X. 6. V para o terminal do host1 e carregue as configuraes do arquivoipsech1.conf comocomandoabaixo:
$ s e t k e y f i p s e c h 1 . c o n f

Paraverificarseaspolticasforamcarregadas,executeoseguintecomando:
$ s e t k e y D P

299
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

Atelaabaixodeverserexibida:

7. V paraoterminaldohost2ecarregueas configuraes doarquivo.conf.Supondo que voc tenha nomeado este arquivo como ipsech2.conf,ocomandoficarigual aoabaixo:
$ s e t k e y f i p s e c h 2 . c o n f

Paraverificarseaspolticasforamcarregadas,executeoseguintecomando:
$ s e t k e y D P

300
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

Atelaabaixodeverserexibida:

8. Enviepacotesentreosdoisroteadoresparaanlisedocabealho. Com as polticas de segurana do IPsec configuradas, repita o procedimento de capturadepacotes. a. Noterminaldoroteador1:
$ t c p d u m p i e t h 1 s 0 w / t m p / c a p t u r a _ c o m _ p o l i t i c a s . p c a p

b. Noterminaldohost1:
$ p i n g 6 c 4 2 0 0 1 : d b 8 : f a d a : : 2

Perceba que o resultado indica 4 packets transmitted (4 pacotes enviados) 301


IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

e 0 received (0 recebidos), o que significa que no houve respostaparaos quatro pings enviados. Isso est de acordo com a configurao do IPsec, pois as polticas de segurana j esto implementadas no host1 mas as chaves no foram criadas, o que impede a comunicao normal entre o par demquinashost1ehost2. c. Espere alguns segundos,vparaoterminaldoroteador1eencerreacaptura depacotespressionandoCtrl+C. O resultado deve ser similar ao abaixo, j que o nmero de pacotes capturadospodevariar:

Mais tarde verificaremos que os pacotes nunca saram do host1, pois ele est configurado para enviar (ou receber) os pacotes para (do) host2 somente se possuir as chaves de autenticao e criptografia do host2. Porm, conforme j mencionado, nem o host1 nem o host2 possuem SAs com chaves de segurana. Caso voc queira verificar a ausncia de SAs, digiteoseguintecomandonoterminaldohost1:
$ s e t k e y D

Estecomandorespondercomaseguintetela:

9. EscrevaoarquivodeconfiguraodoRacoonparaohost1: Assim como o s e t k e y , o Racoon tambm possuium arquivodeconfiguraoque carregado automaticamente na inicializaodosistema.Assim,casodesejssemos fazer uma configurao permanente na mquina, seria necessrio alterar o arquivo /etc/racoon/racoon.conf, colocando nele as configuraes necessrias. Para executlas, usariase ento o comando racoon f <nome_do_arquivo.conf> ou reinicializariaseoRacoonatravsdocomandoabaixo:
$ / e t c / i n i t . d / r a c o o n r e s t a r t

302
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

Porm, como ns faremos apenas uma configurao de teste, criaremos um novo arquivo .conf, o qual precisar ser carregado atravs do comando racoon. Apresentamos abaixo a estrutura mais simples possvel que este arquivo deve possuireaseguirdescreveremososparmetrosrelacionadosnaestrutura:
p a t h p r e _ s h a r e d _ k e y [ " x y z " ] r e m o t e [ x y z ] { e x c h a n g e _ m o d e [ x y z ] p r o p o s a l { e n c r y p t i o n _ a l g o r i t h m [ x y z ] h a s h _ a l g o r i t h m [ x y z ] a u t h e n t i c a t i o n _ m e t h o d [ x y z ] d h _ g r o u p [ x y z ] } } s a i n f o [ x y z ] { p f s _ g r o u p [ x y z ] l i f e t i m e t i m e [ x y z ] e n c r y p t i o n _ a l g o r i t h m [ x y z ] a u t h e n t i c a t i o n _ a l g o r i t h m [ x y z ] c o m p r e s s i o n _ a l g o r i t h m [ x y z ] }

A seguir, escreveremos nosso arquivo .conf. Cada parmetro e quais valores se aplicamparaanossaexperinciaserodescritosaseguir: a. Vparaoterminaldohost1.Crieumarquivo.confcomocomandoabaixo:
$ n a n o r a c o o n h 1 . c o n f

b. Primeiramente,digiteaseguintelinha:
p a t h p r e _ s h a r e d _ k e y " / e t c / r a c o o n / p s k 1 . t x t "

Esta linha define o diretrio e o nome do arquivo que contm as chaves prcompartilhadas. c. Puleduaslinhaseincluaoseguintecampo:
r e m o t e a n o n y m o u s { }

Dentro das chaves escreveremos os parmetros que o Racoon usar na primeira fase da criao de SAs, que o estabelecimento de uma conexo

303

IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

segura para uso particular do Racoon, onde ele ento trocar as chaves do IPsec com seu par na rede. possvel definir como feita essa troca de chaves individualmente paracadaparqueamquinapossuinarede,oupara um grupo limitado de mquinas dentro de uma faixa de IPs para fazer isto, trocados a palavra anonymous pelo endereo IP do par (ou por uma faixa de IPs). Porm, se deixarmos o parmetro remote como anonymous, as configuraes se aplicaro ao processo de troca de chaves de todos os paresdemquinasqueestiveremdefinidosnaspolticasdesegurana. d. Dentrodocamporemote,escrevaasseguinteslinhas:
e x c h a n g e _ m o d e m a i n p r o p o s a l { }

A primeira linha define a forma pela qual estabelecese aconexosegurada fase 1 do processo de troca de chaves. As opes somain,aggressive e base. As duas ltimas formas so alternativas mais rpidas e menos seguras de estabelecimento da conexo por isso, devem ser usadas somente em situaes especiais no descritas nestecurso.Asegundalinha inicia um segundo campo aninhado dentro do primeiro. Este campo (proposal) define detalhes tcnicos da fase 1 como o algoritmo de criptografia que usado nesta fase (no confundir com o algoritmo de criptografia usado pelo IPSec, que no ser necessariamente o mesmo) eo mtododeautenticao. e. Dentrodocampoproposal,escrevaasseguinteslinhas:
e n c r y p t i o n _ a l g o r i t h m 3 d e s h a s h _ a l g o r i t h m s h a 1 a u t h e n t i c a t i o n _ m e t h o d p r e _ s h a r e d _ k e y d h _ g r o u p m o d p 1 0 2 4

Dentre os quatro parmetros indicados, o terceiro possui um significado especial eprpriodoRacoon:defineomtododeautenticaodafase1,que no nosso exemplo ser pre_shared_key, ou seja, o mtodo no qual os pares de dispositivos possuem de antemo uma senha comum, prcompartilhada, j armazenada em disco em ambos os pares.Um outro mtodo importante a autenticao por certificado X.509 (parmetro rsasig) este mtodo centraliza em uma outra mquina a funo de autenticaodospares.EstamquinachamadaAutoridadeCertificadora. As outras linhas definem parmetros de criptografia e funes similares, executadas somente nesta fase 1datrocadechaves.Aprimeiralinhadefine o algoritmo decriptografianesteexemplo,usaremos oalgoritmo3des.Ja segunda linha define o algoritmo de hash usaremos o sha1. Finalmente, a quarta linha define o grupo usado para o algoritmo de DiffieHellman 304
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

usaremosomodp1024. Para mais opes de parmetros, acesse o manual(manpage)doarquivo racoon.conf (m a n r a c o o n ). O texto escrito no arquivo at agora deve ser igualaoapresentadoabaixo:
p a t h p r e _ s h a r e d _ k e y " / e t c / r a c o o n / p s k 1 . t x t " r e m o t e a n o n y m o u s { e x c h a n g e _ m o d e m a i n p r o p o s a l { e n c r y p t i o n _ a l g o r i t h m 3 d e s h a s h _ a l g o r i t h m s h a 1 a u t h e n t i c a t i o n _ m e t h o d p r e _ s h a r e d _ k e y d h _ g r o u p m o d p 1 0 2 4 } }

f. Depois da chave de encerramento do campo remote, insira as seguintes linhas:


s a i n f o a n o n y m o u s { p f s _ g r o u p m o d p 7 6 8 l i f e t i m e t i m e 2 4 h o u r e n c r y p t i o n _ a l g o r i t h m d e s , 3 d e s , b l o w f i s h , a e s a u t h e n t i c a t i o n _ a l g o r i t h m h m a c _ m d 5 , h m a c _ s h a 1 c o m p r e s s i o n _ a l g o r i t h m d e f l a t e }

Este campo define os parmetros da conexo segura final que ser estabelecida entre esta mquina e os seus pares indicados aps a palavra sainfo. Assim como no campo remote, se definirmos um IP (ou faixa de IPs) no lugar de anonymous,as configuraes seroaplicadas somentena SAentreestamquinaeoparcomesteIP(oufaixadeIPs). A primeiralinhadefineogrupousadoparaoalgoritmodeDiffieHellman.Note que no necessrio usar o mesmo grupo no parmetro dh_group, que estdentrodocampoproposalaquiusaremosomodp768. A segunda linha define o tempo de validade das chaves do IPsec que sero geradas pelo Racoon. Aps o perodo determinado neste parmetro (neste exemplo, 24 horas),oRacoontrocarautomaticamentetodas as chaves dos pares definidos no parmetro sainfo (caso o parmetro seja preenchidocom anonymous, as chaves de todos os pares desta mquina sero trocadas periodicamente). Esta uma das funes mais teis do Racoon, pois uma vez que ele seja corretamente configurado e inicializado, o administrador da rede no precisar mais cuidar da renovao das chaves do IPsec periodicamente, o que um procedimento de segurana muito importante a ser implementado. Este parmetro 305 lifetime pode ser retirado do arquivo
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

.conf se o usurio desejar, o que far com que as chaves implementadas no sejam renovadas automativamente e, uma vez criadas, sejam usadas indefinidamente.Contudo,recomendasefortementeusartalparmetro. A terceiraeaquartalinhadoexemploacimalistam oalgoritmodecriptografia e o de autenticao que podem ser usados por uma SA nesta mquina. ATENO! Os algoritmos que sero efetivamente utilizados no so definidos aqui, mas sim nas polticas de segurana, que foram escritas no arquivo de configurao do IPsec. Aqui, os algoritmos listados soapenas a lista de algoritmos que o Racoon reconhecer. Porisso,recomendaselistar todos os que a mquina capaz de usar (porm, observe que o kernel do Linux pode no reconhecer alguns algoritmos dentre todos os disponveis paraestasfunes). Para a quinta linha, por enquanto s h disponvel a opo deflate, a qual serusada. Aps digitar todas estas informaes no arquivo racoonh1.conf, seu contedoaparecernon a n o comoaimagemabaixo:

10. EscrevaoarquivodeconfiguraodoRacoonparaohost2. Este arquivo ser igual em quasetudoaoarquivodeconfiguraodohost1.Onico item que mudar ser o arquivo com as chaves prcompartilhadas do host2, que chamaremosdepsk2.txt.Assim: a. Vparaoterminaldohost2.Crieumarquivo.confcomocomandoabaixo:
$ n a n o r a c o o n h 2 . c o n f

306
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

b. Digiteaslinhasabaixo.Ocontedodeveserexatamenteigual.
p a t h p r e _ s h a r e d _ k e y " / e t c / r a c o o n / p s k 2 . t x t " r e m o t e a n o n y m o u s { e x c h a n g e _ m o d e m a i n p r o p o s a l { e n c r y p t i o n _ a l g o r i t h m 3 d e s h a s h _ a l g o r i t h m s h a 1 a u t h e n t i c a t i o n _ m e t h o d p r e _ s h a r e d _ k e y d h _ g r o u p m o d p 1 0 2 4 } } s a i n f o a n o n y m o u s { p f s _ g r o u p m o d p 7 6 8 l i f e t i m e t i m e 2 4 h o u r e n c r y p t i o n _ a l g o r i t h m d e s , 3 d e s , b l o w f i s h , a e s a u t h e n t i c a t i o n _ a l g o r i t h m h m a c _ m d 5 , h m a c _ s h a 1 c o m p r e s s i o n _ a l g o r i t h m d e f l a t e }

Observando o contedo acima, note que anicadiferena(em negrito)entre este arquivo e o arquivo racoonh1.conf o parmetro psk2.txt, que o nome do arquivo onde esto as chaves prcompartilhadas. Aps digitar todas estas informaes no arquivo racoonh2.conf, seu contedo aparecernon a n o comoaimagemabaixo:

307
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

11. Escrevaoarquivocomaschavesprcompartilhadasparaohost1. Este arquivo deve possuir uma linha para cada par com quem a mquina ir estabelecer uma conexo IPsec. Esta linha deverpossuirduas colunas separadas peloprimeiroespaoqueaparecernalinha,conformeoformatoindicadoabaixo:
[ I P _ d o _ o u t r o _ p a r ] [ s e n h a ]

AprimeiracolunadecadalinhapossuiroIPdoparcomquemamquinair estabelecer uma conexo IPsec. Aps o IP, devese colocar um espao, que indicar que tudooquevierem seguidaserasenhaprcompartilhada.Estasenha ser o contedo da segunda coluna. A senha poder incluir qualquer caractere, inclusive outros espaos. Observe que esta senha deve ser a mesma para os dois pares de mquinas, isto , no arquivo de chaves prcompartilhadas de cada par dever existir uma linha com o IP do outro par, um espao,eem seguidaamesma senhaparaasduasmquinas. ATENO! Para o Racoon funcionar corretamente, este arquivo precisa possuir uma permisso de acesso e leitura muito restrita: somente o dono do arquivo deve ter permisses para ler, alterar ou executar este arquivo. Istosedeveimportncia do mesmo, que pede medidas de proteo contra acessos externos, uma vez que, caso um agente externo malicioso ganhe acesso a estas chaves prcompartilhadas, toda a segurana IPsec na rede estar comprometidaepoder ser contornada. As instrues para alterar as permisses do arquivo sero dadas adiante. b. V para o terminal do host1. Crie o arquivo em questo com o seguinte comando:
$ n a n o / e t c / r a c o o n / p s k 1 . t x t

ATENO! O arquivo foi criado dentro da pasta /etc/racoon, ao contrrio dos arquivos anteriores que foram todos criados dentro da pasta do n da simulao (algo igual ou similar a /tmp/pycore.33649/ na sua mquina virtual). Isso foi feito porque as permisses de criao e alterao de arquivos da pasta /etc e suas subpastas so concedidas apenas ao superusurio do sistema (root). Criar o arquivo psk1.txt neste local uma primeira medida de segurana, a fim de evitar que usurios externos do computador consigam manipular o arquivo com as chaves prcompartilhadas. Note que os arquivos .conf para a configurao permanente do IPsec (ipsectools.conf) e do Racoon (racoon.conf) j esto dentro da pasta /etc. Ns criamos os arquivos .conf destas experincias fora da pasta /etc apenas porque estas configuraes sero temporrias.

308
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

c. Najanelaabertapelon a n o ,insiraaseguintelinha:
2 0 0 1 : d b 8 : f a d a : : 2 s e n h a d e t e s t e

d. Salve o arquivo e saia do n a n o , pressionando primeiro CTRL + O, depois ENTEReemseguidaCTRL+X. e. Executeocomandoparaverificarseoarquivofoisalvocorretamente:


$ c a t / e t c / r a c o o n / p s k 1 . t x t

Oresultadodeveser:

f. Executeoseguintecomandoparaalteraraspermissesdoarquivo:
$ c h m o d 6 0 0 / e t c / r a c o o n / p s k 1 . t x t

Este comando proibe a alterao, leitura e execuo do arquivo para qualquer um que no for o superuser,permitindoqueomesmoaltereeleiao arquivo. OBS: caso mais algum possua permisses com este arquivo, o Racoon no aceitar o mesmo como fonte de chaves prcompartilhadas e no finalizar a fase 1 do processo de troca de chaves, impedindo que o IPsecsejacorretamenteconfiguradonasmquinas! g. Verifique se o arquivo est com as permisses corretas, digitando o comandoabaixo:
$ l s l / e t c / r a c o o n / p s k 1 . t x t

Atelaabaixodeverserexibida:

Observe o comeo da segunda linha (que arespostadocomandols).Se a linha no comear com os caracteres rx nesta exata forma, o comando chmod acima no foi executado ou foi executado incorretamente (ou com um parmetro diferente de 600 ou com um arquivo diferente de psk1.txt).

309
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

12. Escrevaoarquivocomaschavesprcompartilhadasparaohost2. b. V para o terminal do host2. Crie o arquivo em questo com o seguinte comando:
$ n a n o / e t c / r a c o o n / p s k 2 . t x t

c. Najanelaabertapelon a n o ,insiraaseguintelinha:
2 0 0 1 : d b 8 : b e e f : : 2 s e n h a d e t e s t e

ATENO: a senha no arquivo psk2.txt DEVE SER A MESMA que estno arquivo psk1.txt do host1. A diferena est no IP indicado no arquivo (deve ser o IP do par da mquina em questo, portanto o par indicado no arquivo psk1.txt do host1 ser 2 0 0 1 : d b 8 : f a d a : : 2 , enquanto que o par indicado no arquivopsk1.txtdohost2ser2 0 0 1 : d b 8 : b e e f : : 2 ). d. Salve o arquivo e saia do n a n o , pressionando primeiro CTRL + O, depois ENTEReemseguidaCTRL+X. e. Executeocomandoparaverificarseoarquivofoisalvocorretamente:
$ c a t / e t c / r a c o o n / p s k 2 . t x t

Oresultadodeveser:

f. Executeoseguintecomandoparaalteraraspermissesdoarquivo:
$ c h m o d 6 0 0 / e t c / r a c o o n / p s k 2 . t x t

g. Verifique se o arquivo est com as permisses corretas, digitando o comandoabaixo:


$ l s l / e t c / r a c o o n / p s k 2 . t x t

310
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

13. InicializeoRacoonnohost1.Vparaoterminaldohost1edigite:
$ / e t c / i n i t . d / r a c o o n r e s t a r t

Arespostaabaixodeverserexibidaseoracoonfoiinicializadocorretamente:

14. Carregue as configuraes a partir do arquivo racoonh1.conf que acabamos de escrever:


$ r a c o o n f r a c o o n h 1 . c o n f

Observe que este comando s ir funcionar se as polticas de segurana do IPSec j tiverem sido manualmente inseridas na mquina,oquefoifeitonopasso6.Caso o comando tenha sido executado corretamente, no surgir nenhuma mensagem apsescreverocomandoedigitarENTER. 15. InicializeoRacoonnohost2.Vparaoterminaldohost2edigite:
$ / e t c / i n i t . d / r a c o o n r e s t a r t

Arespostaabaixodeverserexibidaseoracoonfoiinicializadocorretamente:

16. Carregue as configuraes a partir do arquivo racoonh2.conf que acabamos de escrever:


$ r a c o o n f r a c o o n h 2 . c o n f

17. Enviepacotesentreosdoisroteadoresparaanlisedocabealho. Com as configuraes do Racoon em execuo, repita o procedimento de captura depacotes. a. Noterminaldoroteador1:
$ t c p d u m p i e t h 1 s 0 w / t m p / c a p t u r a _ c o m _ r a c o o n . p c a p

311
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

b. Noterminaldohost1:
$ p i n g 6 c 8 2 0 0 1 : d b 8 : f a d a : : 2

Desta vez, enviamos 8 pings em vez do nmero usal de 4 pings para que voc perceba bem o fato de que os primeiros pacotes de ping foram perdidos. Isso acontece porque o processo de criao de chaves do IPsec atravs do Racoon inicializado somente quando ocorre uma tentativa de comunicao. Como o processo leva um certo tempo (veremos mais tarde, analisando a captura de pacotes, que vrias mensagens so trocadas pelo par de mquinas), os primeiros pacotes de ping so enviados sem que as chaves tenham sido trocadas, o que leva sua perda. Porm, logo que as chaves so criadas os pacotes passam a ser respondidos, o que normalmenteaconteceapartirdoterceiropacotedepingenviado. c. Espere alguns segundos,vparaoterminaldoroteador1eencerreacaptura depacotespressionandoCtrl+C. O resultado deve ser similar ao abaixo, j que o nmero de pacotes capturadospodevariar:

312
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

18. Encerreasimulao: Aperteoboto ouutilizeomenuExperiment>Stop. 19. Analisaremosagoraospacotescapturadosnasduassituaes: Topologiacomsomentepolticasdesegurana Topologiacomracoon Paraverificarospacotescapturados,utilizaremosoprogramaWireshark. a. Inicie o programa Wireshark. Uma maneira de fazlo atravs de um terminalnamquinavirtual,comocomando:
$ w i r e s h a r k

313
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

b. Abra o arquivo / t m p / c a p t u r a _ c o m _ p o l i t i c a s . p c a p com o menu File>Open.Aparecerumatelamuitosemelhanteaesta:

Conforme j mencionado anteriormente, ao fazer a captura de pacotes com as polticas de segurana implementadas mas sem as chaves AH ou ESP terem sido criadas, os pacotes que seriam mandados do host1 paraohost2 nunca saem do host1, pois o mesmo foi configurado para s enviar pacotes para o seu par IPSec sepossuiras chaves dopar(edamesmamaneira,ele ir rejeitar pacotes de um par IPSec se este par no tiver as suas chaves). Como o host1 no sabe as chaves do host2 pois ainda no foram configuradas, os pacotes nunca saem do host1. Isto pode ser verificado na captura pela ausncia de mensagens ICMPv6 ou de mensagens com cabealho IPv6 seguido de cabealho de criptografia (o ICMPv6 estaria escondidodentrodocabealhodecriptografiaESP).

314
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

c. Abra o arquivo / t m p / c a p t u r a _ c o m _ r a c o o n . p c a p com o menu File>Open. Aparecerumatelamuitosemelhanteaesta:

Nesta captura podese enxergar todas as trocas de pacotes ISAKMP antes das chaves de autenticao e criptografia serem trocadas entre o par de mquinas. Quando um primeiro envio de pacotes inicializado, o remetente envia pacotes ISAKMP do tipo Identity Protection, esperandopelaresposta do destinatrio para enviar cada um deles em sequncia. O primeiro tipo de pacote ISAKMP oSecurity Associationondeoremetentegeraum desafio Initiator Cookie e usando a senha prcompartilhada o destinatrio ir responder preenchendo o valor do Responder Cookie. Se o valor for igual ao esperado pelo remetente a chave prcompartilhada foi confirmada e o canal seguro estabelecido com as mensagens Identify Protection do tipo Key Exchange e Identification, terminando assim a fase 1 da troca automtica de chaves de segurana IPSec,queoestabelecimentodeuma conexo segura prpria do Racoon com a criao de uma SA prpria do Racoon. O processo automtico passa, ento, para a fase 2, que ageraoetroca automticas de chaves IPSec. Esta fase pode ser reconhecida pelas mensagens ISAKMPdotipoInformationaleQuick Mode.Umavez queas chaves so trocadas, oparcomeaacomunicarsecom aseguranaIPSec 315 plenamenteestabelecida.
IPv6.brLaboratrioIPsecNIC.brhttp://ipv6.brrev.2012.07.1101

316

IPv6Laboratriodetneis6over4
Objetivo
Os tneis 6over4 utilizam o protocolo 41, ou 6in4, para prover encapsulamento de pacotes IPv6 em pacotes IPv4, de modo a permitir o trfego de pacotes IPv6 atravs de uma rede quesuportaapenasIPv4. Esse laboratrio consiste na configurao manual de tneis 6over4 entre dois computadores, interligados por um roteador que transporta apenas IPv4, a fim de validar seufuncionamento. Paraopresenteexerccioserutilizadoatopologiadescritanoarquivo: tecnicastransicao6over4.imn.

IntroduoTerica
Tcnicas de tunelamento fazem o encapsulamento de pacotes IPv6 em pacotes IPv4, ou vice versa, permitindo que pacotes de um tipo, trafeguem por uma rede de outro tipo. O encapsulamento de pacotes IPv6 em pacotes IPv4 conhecido como6in4ouIPv6inIPv4 (RFC 4213). Ele consiste em colocaropacoteIPv6dentrodeum pacoteIPv4,diretamente, adequar os endereos de origem e destinoparaoIPv4ecolocarnocabealhootipo41(29 em hexadecimal). Por conta disso o encapsulamento 6in4 conhecido tambm como protocolo 41. Quando o destino receber o pacote com tipo 41eleirremoverocabealho IPv4 e tratar o pacote como IPv6. Esse tipo de tnel pode ser utilizado para contornar um equipamento ou enlace sem suporte a IPv6 numa rede, ou para criar tneis estticos entre duasredesIPv6atravsdaInternetIPv4. A figura seguinte exemplificavisualmentecomooprocessodeencapsulamentodeIPv6em IPv4acontece.

IPv6.brLaboratrio6over4NIC.brhttp://ipv6.brrev.2012.03.2901

317

A tcnica 6over4 (RFC 4213) utiliza um tnel estabelecido manualmente entre dois hosts para enviar o trfego IPv6. Todo o trfego IPv6 a ser enviado encapsulado em IPv4 atravsdo6in4,explicadoanteriormente.

RoteiroExperimental
Experincia1Tnel6over4

1. Para fazer algumas verificaes durante o experimento tambm ser necessria a utilizao do programa Wireshark que realiza a verificao dos pacotes que so enviadosnarede.Namquinavirtual,utilizeumTerminalpararodarocomando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao. 2. InicieoCOREeabraoarquivotecnicastransicao6over4.imn.Aseguintetopologia inicialderededeveaparecerdeveaparecer:

IPv6.brLaboratrio6over4NIC.brhttp://ipv6.brrev.2012.03.2901

318

O objetivo dessa topologia de rede representar o mnimo necessrio para que o tnel 6in4 seja entendido. O roteador entre os dois hosts transporta apenas IPv4. A rede foi configurada com rotas estticas de forma que todas as mquinas possam conectarseviaIPv4. 3. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulao: i. aperteoboto ou ii. utilizeomenuExperiment>Start. b. EspereatqueoCOREtermineainicializaodasimulaoeabrao terminaldoroteador,atravsdoduploclique. c. VerifiquequeoroteadornosuportaIPv6atravsdoseguintecomando:
# i p a d d r s h o w

IPv6.brLaboratrio6over4NIC.brhttp://ipv6.brrev.2012.03.2901

319

Oresultadodeveser:

PodeobservarsequenohendereosIPv6nasinterfaces,nemmesmo endereosdotipolinklocal,oqueindicaqueoroteadornosuportaoprotocolo. d. VerifiquetambmparaosnsumaPontaeoutraPonta. Oresultadodeveser:

VerifiquequeambososnspossuemendereosIPv4eIPv6.

IPv6.brLaboratrio6over4NIC.brhttp://ipv6.brrev.2012.03.2901

320

4. VerifiqueaconectividadeentreumaPontaeoutraPonta. a. AbraoterminaldeoutraPonta,atravsdoduploclique. b. Utilizeosseguintescomandosparaverificaraconectividade:


# p i n g c 4 1 9 2 . 0 . 2 . 2 # p i n g 6 c 4 2 0 0 1 : d b 8 : : b a 1 a

Oresultadodeveser:

ObservequehconectividadeIPv4,masaindanohconectividadeIPv6.O tnelasercriadoproveressaconectividade. 5. Configureotnel6in4entreumaPontaeoutraPonta. a. AbraoterminaldeumaPontaatravsdoduplocliqueeutilizeosseguintes comandosparaaconfigurao:


# i p t u n n e l a d d p a r a O u t r a m o d e s i t t t l 6 4 r e m o t e 1 9 2 . 0 . 2 . 1 3 0 l o c a l 1 9 2 . 0 . 2 . 2 # i p l i n k s e t d e v p a r a O u t r a u p # i p 6 r o u t e a d d 2 0 0 1 : d b 8 : : b 0 c a d e v p a r a O u t r a

IPv6.brLaboratrio6over4NIC.brhttp://ipv6.brrev.2012.03.2901

321

Oresultadodeveser:

b. AbraoterminaldeoutraPontaatravsdoduplocliqueeutilizeosseguintes comandosparaaconfigurao:
# i p t u n n e l a d d p a r a U m a m o d e s i t t t l 6 4 r e m o t e 1 9 2 . 0 . 2 . 2 l o c a l 1 9 2 . 0 . 2 . 1 3 0 # i p l i n k s e t d e v p a r a U m a u p # i p 6 r o u t e a d d 2 0 0 1 : d b 8 : : b a 1 a d e v p a r a U m a

Oresultadodeveser:

Observe queem cadaum dos ns otnelfoicriadoespecificandoseonome de interfaces de rede virtuais: paraUma e paraOutra, o tipodetnel:sit,que o nome utilizado pelo Linux para identificar o encapsulamento 6in4. Especificouse tambm os endereos de origem e destino IPv4. Alm disso foi criada uma rota esttica para a outra rede, que aponta para a interface virtual criada para o tnel. Podese ainda utilizar comandos como: i p a d d r s h o w e i p 6 r o u t e s h o w para verificar que a interface detnelfoicriada equeasrotasforamestabelecidas. 6. VerifiqueaconectividadeviaIPv6entreumaPontaeoutraPonta. a. Abraoterminaldoroteador,atravsdoduploclique. b. Utilizeoseguintecomandoparainiciaracapturadepacotesdoroteador:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ 6 o v e r 4 . p c a p

IPv6.brLaboratrio6over4NIC.brhttp://ipv6.brrev.2012.03.2901

322

Oresultadodeveser:

c. NoterminaldeoutraPonta,utilizenovamenteoseguintecomando:
# p i n g 6 c 4 2 0 0 1 : d b 8 : : b a 1 a

Oresultadodeveser:

d. Noterminaldoroteador,encerreacapturadepacotesatravsdasequncia Ctrl+C. Oresultadodeveser:

7. Encerreasimulao: a. aperteoboto ou b. utilizeomenuExperiment>Stop.

IPv6.brLaboratrio6over4NIC.brhttp://ipv6.brrev.2012.03.2901

323

8. Paraverificarospacotescapturados,utilizaremosoprogramaWireshark.Para abrilo,inicieoprogramawireshark.Umamaneiraatravsdeumterminalna mquinavirtualcomocomando:


$ w i r e s h a r k

Esseprogramatemcomoprincipaisfuncionalidadesacapturaeanlisedepacotes transmitidosporumainterfacederede.Atravsdeseuuso,possvelvisualizaros pacotesquetrafegampelarede.Verifiqueoarquivodecapturapreviamenteobtido.

IPv6.brLaboratrio6over4NIC.brhttp://ipv6.brrev.2012.03.2901

324

a. Abraoarquivo/ t m p / c a p t u r a _ 6 o v e r 4 . p c a p comomenuFile>Open:

b. Podeseutilizarofiltroicmpv6paravisualizarapenasospacotesque queremosobservar:

Note que as verses mais atuais do Wireshark so inteligentes o suficiente para mostrar os pacotes como do tipo ICMPv6, mesmo eles estando encapsuladosempacotesIPv4.

IPv6.brLaboratrio6over4NIC.brhttp://ipv6.brrev.2012.03.2901

325

Analise os pacotes echo request e echo reply vejaseos dados contidos nos pacotes conferem com a teoria, prestando ateno forma com que os pacotes IPv6 foram encapsulados em pacotes IPv4.

Camposimportantes: Type (camada Ethernet): indica que a mensagem utiliza o protocolo IPv4. Protocol (camada IPv4): indica que a mensagem encapsula o protocoloIPv6(protocolonmero416in4). Destination (camada IPv4): odestinooendereoIPv4deumaPonta (192.0.2.2). Source (camada IPv4): a fonte o endereo IPv4 de outraPonta (192.0.2.130). Destination (camada IPv6): odestinooendereoIPv6deumaPonta (2001:db8::ba1a). Source (camada IPv6): a fonte o endereo IPv6 de outraPonta (2001:db8::b0ca).

IPv6.brLaboratrio6over4NIC.brhttp://ipv6.brrev.2012.03.2901

326

327

IPv6LaboratriodetneisGRE
Objetivo
Os tneis GRE (Generic Routing Encapsulation) foram desenvolvidos para transportar diversos tipos de protocolos. Especificamente, neste experimento, sero encapsulados pacotes IPv6 em pacotes IPv4, usando GRE, demodoapermitirotrfegodepacotes IPv6 atravsumaredequesuportaapenasIPv4. Esse laboratrio consiste na configurao manual de tneis GREentredois computadores, interligados por um roteador que transporta apenas IPv4, a fim de validar seu funcionamento. Paraopresenteexerccioserutilizadoatopologiadescritanoarquivo: tecnicastransicaoGRE.imn.

IntroduoTerica
Tcnicas de tunelamento, no contexto da transio para IPv6, fazem o encapsulamento deste em IPv4, ou vice versa, permitindo que pacotes de um tipo, trafeguem por umarede de outro tipo. O tnel GRE (RFC 2784) um tnel esttico entre dois hosts originalmente desenvolvido com a finalidade de encapsular vrios tipos diferentes deprotocolos.Estetipo de encapsulamento suportado na maioria do sistemas operacionais e roteadores, e consiste em um link pontoaponto.Suaconfiguraomanual,demodoquepodegerarum esforoemsuamanutenoegerenciamentoproporcionalquantidadedetneis.

IPv6.brLaboratrioGRENIC.brhttp://ipv6.brrev.2012.03.2901

328

O funcionamento deste tipo de tnel muito simples: consiste em pegar os pacotes originais, adicionar o cabealhoGREeocabealhoIPv4,eenviaraoIPdedestino.Quando o pacote encapsulado chegar na outra ponta do tnel (IP de destino) removese dele os cabealhos IPv4 e GRE, restando apenas o pacote original, que encaminhado normalmenteaodestinatrio.

RoteiroExperimental
Experincia2TnelGRE
1. Parafazeralgumasverificaesduranteoexperimentotambmsernecessriaa utilizaodoprogramaWiresharkquerealizaaverificaodospacotesqueso enviadosnarede.Namquinavirtual,utilizeumTerminalpararodarocomando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antesdainstalaosersolicitadaasenhadousuriocore.Digitecorepara prosseguircomainstalao. 2. InicieoCOREeabraoarquivotecnicastransicaoGRE.imn.Aseguintetopologia inicialderededeveaparecerdeveaparecer:

Oobjetivodessatopologiaderederepresentaromnimonecessrioparaqueo tnelGREsejaentendido.Oroteadorentreasduaspontasdotneltransporta apenasIPv4.Aredefoiconfiguradacomrotasestticasdeformaquetodasas


IPv6.brLaboratrioGRENIC.brhttp://ipv6.brrev.2012.03.2901

329

mquinaspossamconectarseviaIPv4. 3. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulao: i. aperteoboto ou ii. utilizeomenuExperiment>Start. b. EspereatqueoCOREtermineainicializaodasimulaoeabrao terminaldoroteador,atravsdoduploclique. c. VerifiquequeoroteadornosuportaIPv6atravsdoseguintecomando:


# i p a d d r s h o w

Oresultadodeveser:

PodeobservarsequenohendereosIPv6nasinterfaces,nemmesmo endereosdotipolinklocal,oqueindicaqueoroteadornosuportaoprotocolo. d. VerifiquetambmparaosnsumaPontaeoutraPonta.

IPv6.brLaboratrioGRENIC.brhttp://ipv6.brrev.2012.03.2901

330

Oresultadodeveser:

VerifiquequeambososnspossuemendereosIPv4eIPv6. 4. VerifiqueaconectividadeentreumaPontaeoutraPonta. a. AbraoterminaldeoutraPonta,atravsdoduploclique. b. Utilizeosseguintescomandosparaverificaraconectividade:


# p i n g c 4 1 9 2 . 0 . 2 . 2 # p i n g 6 c 4 2 0 0 1 : d b 8 : : b a 1 a

IPv6.brLaboratrioGRENIC.brhttp://ipv6.brrev.2012.03.2901

331

Oresultadodeveser:

ObservequehconectividadeIPv4,masaindanohconectividadeIPv6.O tnelasercriadoproveressaconectividade. 5. ConfigureotnelGREentreumaPontaeoutraPonta. a. AbraoterminaldeumaPontaatravsdoduplocliqueeutilizeosseguintes comandosparaaconfigurao:


# i p t u n n e l a d d p a r a O u t r a m o d e g r e t t l 6 4 r e m o t e 1 9 2 . 0 . 2 . 1 3 0 l o c a l 1 9 2 . 0 . 2 . 2 # i p l i n k s e t d e v p a r a O u t r a u p # i p 6 r o u t e a d d 2 0 0 1 : d b 8 : : b 0 c a d e v p a r a O u t r a

Oresultadodeveser:

IPv6.brLaboratrioGRENIC.brhttp://ipv6.brrev.2012.03.2901

332

b. AbraoterminaldeoutraPontaatravsdoduplocliqueeutilizeosseguintes comandosparaaconfigurao:
# i p t u n n e l a d d p a r a U m a m o d e g r e t t l 6 4 r e m o t e 1 9 2 . 0 . 2 . 2 l o c a l 1 9 2 . 0 . 2 . 1 3 0 # i p l i n k s e t d e v p a r a U m a u p # i p 6 r o u t e a d d 2 0 0 1 : d b 8 : : b a 1 a d e v p a r a U m a

Oresultadodeveser:

Observe queem cadaum dos ns otnelfoicriadoespecificandoseonome de interfaces deredevirtuais:paraUmaeparaOutra,o tipodetnel:gre,que o nome utilizado pelo Linux para identificar o encapsulamento GRE. Especificouse tambm os endereos de origem e destino IPv4. Alm disso foi criada uma rota esttica para a outra rede, que aponta para a interface virtualcriadaparaotnel. 6. VerifiqueaconectividadeviaIPv6entreumaPontaeoutraPonta. a. Abraoterminaldoroteador,atravsdoduploclique. b. Utilizeoseguintecomandoparainiciaracapturadepacotesdoroteador:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ G R E . p c a p

Oresultadodeveser:

c. NoterminaldeoutraPonta,utilizenovamenteoseguintecomando:
# p i n g 6 c 4 2 0 0 1 : d b 8 : : b a 1 a

IPv6.brLaboratrioGRENIC.brhttp://ipv6.brrev.2012.03.2901

333

Oresultadodeveser:

d. Noterminaldoroteador,encerreacapturadepacotesatravsdasequncia Ctrl+C. Oresultadodeveser:

7. Encerreasimulao: a. aperteoboto ou b. utilizeomenuExperiment>Stop. 8. Paraverificarospacotescapturados,utilizaremosoprogramaWireshark.Para abrilo,inicieoprogramawireshark.Umamaneiraatravsdeumterminalna mquinavirtualcomocomando:


$ w i r e s h a r k

IPv6.brLaboratrioGRENIC.brhttp://ipv6.brrev.2012.03.2901

334

Esseprogramatemcomoprincipaisfuncionalidadesacapturaeanlisedepacotes transmitidosporumainterfacederede.Atravsdeseuuso,possvelmelhor visualizarospacotesquetrafegampelarede.Verifiqueoarquivodecaptura previamenteobtido. a. Abraoarquivo/ t m p / c a p t u r a _ G R E . p c a p comomenuFile>Open:

b. Coloqueofiltroicmpv6paravisualizarapenasospacotesquequeremos
IPv6.brLaboratrioGRENIC.brhttp://ipv6.brrev.2012.03.2901

335

observar:

Note que as verses mais atuais do Wireshark so inteligentes o suficiente para mostrar os pacotes como do tipo ICMPv6, mesmo eles estando encapsuladosempacotesIPv4,utilizandoGRE. Analise os pacotes echo request e echo reply vejaseos dados contidos nos pacotes conferem com a teoria, prestando ateno forma com que os pacotes IPv6 foram encapsulados em pacotes IPv4, usando GRE.

IPv6.brLaboratrioGRENIC.brhttp://ipv6.brrev.2012.03.2901

336

Camposimportantes: Type(camadaEthernet):indicaqueamensagemutilizaoprotocoloIPv4. Protocol (camada IPv4): indica que a mensagem encapsula o protocolo IPv6 (nmero47GRE). Destination(camadaIPv4):odestinooendereoIPv4deumaPonta(192.0.2.2). Source(camadaIPv4):afonteoendereoIPv4deoutraPonta(192.0.2.130). ProtocolType(camadaGRE):oprotocoloencapsuladooIPv6. Destination (camada IPv6): o destino o endereo IPv6 de umaPonta (2001:db8::ba1a). Source(camadaIPv6):afonteoendereoIPv6deoutraPonta(2001:db8::b0ca).

IPv6.brLaboratrioGRENIC.brhttp://ipv6.brrev.2012.03.2901

337

338

IPv6LaboratrioDualStackLite(DSLite)
Objetivo
O principal objetivo desse laboratrio o de apresentar algumas das principais caractersticas e funcionalidades da tcnica Dual Stack Lite (DSLite) a partir dasimulao darededeum ISPinicialmenteconfiguradaapenas com oprotocoloIPv6.Olaboratrioest dividido em 3 experincias, a primeira descreve como se implementaroDSlite,asegunda mostra o quo fcil expandilo para novos clientes e, a terceira, mostra a integrao da tcnicaA+P(AddressplusPort)sobrearedecomDSLite. Eleutilizarastopologiasdescritasnosarquivos:tecnicastransicaodsl1.imn, tecnicastransicaodsl2.imnetecnicastransicaodsl3.imn.

IntroduoTerica
O Dual Stack Lite (Pilha dupla simplificada),umatcnicapadronizadapelaRFC6333.Ela pode ser aplicada em situaes em que o provedor j oferece IPv6 nativo para seus usurios. Sua implementao necessita de um equipamento denominado AFTR (Address Family Transition Router), que implementa um CGN (Carrier Grade NAT), um NAT de grande porte, na rede do provedor. Entre o AFTR e o CPE Customer Premise Equipment) do usurio utilizase um tnel IPv4 sobre IPv6 para transportar o trfego IPv4. Nocontexto do DSLite, o CPE do usurio chamado de B4 (DSLite Basic Bridging BroadBand). Nas extremidades desses tneis so usados endereos da faixa 192.0.0.0/29, especialmente reservada para este fim. Para o CPE do usurio e os demais equipamentos da rede do usuriosoutilizados IPs daRFC1918,enohproblemasediferentes usurios utilizarem faixas de IPs repetidas, dado que o AFTR identifica os diferentes tneis com base no IPv6 deorigemdospacotesencapsulados. importantefrisaralgunspontos: O AFTR usa CGN, mas no fora o usurio a utilizar duplo NAT. Ou seja, AFTR realiza a funo de NAT, de forma concentrada, para cada um dos dispositivos de cadausurio. O DSLite utilizaendereos privados nafaixa192.0.0.0/29paraas extremidades dos tneis v4 sobre v6, evitando a utilizao desnecessria de endereos IPv4 na infraestruturadoprovedor.

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

339

AfiguraabaixoexemplificaofuncionamentodoDSLite:

RoteiroExperimental
Experincia2ImplantaodoDSLite
1. A principal meta dessa experinciaasimulaodaimplantaodatcnicaDSLite em uma rede de um ISP (Internet Service Provider). E, com isso, fazer com que o alunocomeceasefamiliarizarcomsuasfuncionalidades. 2. Caso voc estejautilizandoamquinavirtualfornecidapeloNic.brpuleparaopasso 4. Caso contrrio, o programa AFTR deve ser instalado com a execuo dos seguintespassos: b. Acesse a URL a seguir para baixar a ltima verso do AFTR: http://www.isc.org/software/aftr (acessado 02/05/2012). Nesse site, voc devebaixaroarquivo.tar.gzquecontmocdigofontedoprograma. c. Movaoarquivobaixadoparaapasta/home/coredaVM. d. AbraoTerminaleutilizeosseguintescomandosparafazerainstalo:
$ t a r x f a f t r 1 . 1 . t a r . g z $ c d a f t r 1 . 1 $ c h m o d + x c o n f i g u r e $ . / c o n f i g u r e $ m a k e $ s u d o l n s a f t r / u s r / b i n / a f t r

lembresedetrocaronmerodaverso(nocaso1.1)paraaversobaixada.

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

340

e. para testar o funcionamento, digite o comando abaixonoterminaleverifique seasadaequivalentemensagemmostrada:


$ a f t r v

3. Caso no esteja utilizando a Mquina Virtual fornecida pelo NIC.br, o programa Wireshark que utilizado para se obter uma melhor visualizao das informaes dos pacotes trafegados em uma rede tambm deve ser instalado. Para tanto, abra umTerminaldaVMeexecuteocomando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao. 4. Com as instalaes do AFTR concludas, inicie o CORE e abra o arquivo tecnicastransicaodsl1.imn.Aseguintetopologiadeveaparecer:

Essa topologia ilustra a situao em que um determinado ISP possui uma rede unicamente IPv6 funcional e deseja implementar a tcnica DSLite para que seus clientespassemateracessoInternetIPv4. Na situao inicial da simulao a redefoiconfiguradacom rotas estticas deforma que todas as mquinas pudessem se conectar via IPv6. Porm, na prtica, o provedor pode utilizar quais quer outras tcnicas para distribuir IPv6 para sua
IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

341

infraestruturaeclientes. 5. Verifiqueaconectividadedamquinacliente: b. Inicieasimulao: i. aperteoboto ou ii. utilizeomenuExperiment>Start. c. Espere at que o CORE termine a inicializao da simulao e abra o terminal da mquina cliente atravs de um duploclique sobre a mquina cliente1. d. Utilize o comando ping6 para testar a conectividade com a mquina server1naInternet:
# p i n g 6 2 0 1 2 : : 2

Oresultadodeveser:

PressioneCtrl+Cparapararasrequisies. 6. A partir desse passo ser iniciada a implantao da tcnica de transioDSLitena rede simulada. O servidor de borda do ISP ser configurado como um roteador AFTRdemodoarealizaratarefadeNATv4sobrearedeIPv6doservidor.Enquanto isso, o CPE ser configurado comoum B4. Issonecessrioparasepossafechar um tnel que encapsule os pacotes IPv4 na rede IPv6 do ISP. A figura a seguir exemplificaessasituao:

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

342

7. A configurao ser iniciada pelo CPE. Ainda com o CORE executando a simulao, acesse o terminal da mquina 'cpe1' (duplo clique sobre ela) e rode os seguintescomandos:
# m o d p r o b e i p 6 _ t u n n e l # i p 6 t u n n e l a d d d s l t u n m o d e i p i p 6 r e m o t e 2 0 0 1 : d b 8 : 0 : 2 0 0 0 : : l o c a l 2 0 0 1 : d b 8 : 0 : a : : 2 d e v e t h 1 # i p a d d r a d d 1 9 2 . 0 . 0 . 2 p e e r 1 9 2 . 0 . 0 . 1 d e v d s l t u n # i p l i n k s e t d e v d s l t u n u p # i p r o u t e a d d d e f a u l t d e v d s l t u n

Oterminaldeveficarassim:

Essa sequncia de comandos cria uma nova interface de rede virtual chamada dsltun que encapsula todos os pacotes IPv4 vindos da rede local do cliente em pacotes IPv6 e os envia para o endereo 2001:db8:0:2000:: que ser configurado pontadesadatnelnamquinaAFTR. Para testar, abra o terminal da mquina aftr e inicie uma captura dos pacotes que chegamemsuainterfaceeth1.Paraisso,utilizeocomandoaseguir:
# t c p d u m p v v i p 6 i e t h 1 s 0 w / t m p / c a p t u r a _ d s l . p c a p

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

343

Com o tcpdump escutando a interface eth1, acesse o terminaldamquina'cliente1' erealizeumpingv4paraamquinaserver1naInternet:


# p i n g 2 0 3 . 0 . 1 1 3 . 2

Ateladevesersimilarseguinte:

Volte ao terminal do aftr e pare a execuo do tcpdump com a sequncia Ctrl+C. Para analisar os pacotes capturados, utilize o programa Wireshark previamente instalado.Paraabrilo,inicieumterminalnamquinavirtualeutilizeocomando:
$ s u d o w i r e s h a r k

Clique no boto OK em ambas as janelas de aviso que aparecerem no canto superioresquerdodatela.Essaatelainicial:

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

344

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

345

Paraanalisaroarquivodecapturacriado,abraoarquivo/tmp/captura_dsl.pcapcom omenuFile>Open:

Verifique os pacotes capturados e note que pela interface capturada passam pacotes ICMPv4 da origem 10.0.0.2 para o destino 203.0.113.2 encapsulados com cabealhosIPv6. VolteaoCOREepareaexecuodopingpressionandoCtrl+Cnajaneladoterminal da mquina 'cliente1'.Observequequedefatohouve100%deperdadepacotes em razodapontadesadadotnelaindanotersidoconfigurada:

8. Com o tnel 4in6 funcionando por parte do CPE, o passo seguinte consiste na configuraodamquinaAFTRquefecharotnelerealizarafunodeNAT. Abraoterminaldamquinaaftresigaospassos:

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

346

b. No terminal dessa mesma mquina, utilize o comando n a n o a f t r s c r i p t para cria um arquivo chamado aftrscript. Com o editor de texto nano aberto, copie o contedo contedo abaixo e cole com autilizao do atalho Shift+Insert. Mas, caso esteja utilizando a Mquina Virtual fornecida, basta copiar o arquivo previamente criado para a pasta base do aftr com a utilizao do comando c p / h o m e / c o r e / D e s k t o p / t r a n s i c a o / D S L i t e / a f t r s c r i p t .

# ! / b i n / s h a f t r _ s t a r t ( ) { s e t x i p l i n k s e t t u n 0 u p i p a d d r a d d 1 9 2 . 0 . 0 . 1 p e e r 1 9 2 . 0 . 0 . 2 d e v t u n 0 i p r o u t e a d d 2 0 3 . 0 . 1 1 3 . 1 3 1 / 3 2 d e v t u n 0 i p 6 a d d r a d d f e 8 0 : : 1 d e v t u n 0 i p 6 r o u t e a d d 2 0 0 1 : d b 8 : 0 : 2 0 0 0 : : / 6 4 d e v t u n 0 a r p i e t h 0 s 2 0 3 . 0 . 1 1 3 . 1 3 1 0 a : 0 b : 0 c : 0 d : 0 e : f 0 p u b } a f t r _ s t o p ( ) { s e t x i p l i n k s e t t u n 0 d o w n } c a s e " $ 1 " i n s t a r t ) a f t r _ s t a r t s t o p ) a f t r _ s t o p * ) e c h o " U s a g e : $ 0 s t a r t | s t o p " e x i t 1 e s a c e x i t 0

Depois de criado o arquivo, aperte Ctrl+X para sair do nano e Y para confirmaracriaodoarquivo. Aps criado o arquivo, utilizeocomandochmod+x aftrscriptparahabilitara execuodoarquivo. Nessearquivoimportanteobservarque: os endereos 192.0.0.1 e 192.0.0.2 so especificamente designados pela RFC 6333 para a configurao das interfaces de tnel nas implementaesdoDSLite 203.0.113.131oendereopblicoutilizadoparaarealizaodoNAT na rede interna do ISP. E, deve ser diferentedoendereoutilizadona interfacefsicadoservidorAFTR
IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

347

2001:db8:0:2000:: um endereo arbitrariamente escolhido para fechar o tnel no servidor AFTR. Esse endereo no pode ser utilizado nas interfaces de rede do servidor ou por qualquer outro equipamentonarede. c. Crie um arquivo chamado aftr.conf com o contedo a seguir. Caso esteja utilizando a VM fornecida, basta copiar o arquivo previamente criado para a pasta base do aftr com a utilizao do comando c p / h o m e / c o r e / D e s k t o p / t r a n s i c a o / D S L i t e / a f t r . c o n f 1 . / a f t r . c o n f noterminaldessamesmamquina.
d e f a u l t t u n n e l m s s o n d e f m t u 1 4 5 0 a d d r e s s e n d p o i n t 2 0 0 1 : d b 8 : 0 : 2 0 0 0 : : a d d r e s s i c m p 2 0 3 . 0 . 1 1 3 . 1 3 1 p o o l 2 0 3 . 0 . 1 1 3 . 1 3 1 a c l 6 : : 0 / 0

Novamente: 203.0.113.131oendereopblicoutilizadoparaarealizaodoNAT na rede interna do ISP. E, deve ser diferentedoendereoutilizadona interfacefsicadoservidorAFTR 2001:db8:0:2000:: um endereo arbitrariamente escolhido para fechar o tnel no servidor AFTR. Esse endereo no pode ser utilizado nas interfaces de rede do servidor ou por qualquer outro equipamentonarede. d. Inicieoservioaftr:
# a f t r

Asadadeveser:

9. Com isso, implantao da tcnicadeestfinalizada.Paratestarseufuncionamento, utilize o comando ping 203.0.113.2 a partir da mquina cliente 'cliente1' para verificarqueelapossuiconectividadeIPv4comaInternet:

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

348

Se desejar, utilize o Wireshark para analisar os diversos equipamentos da rede simulada para verificar como o pacote ping encapsulado e desencapsulado em seutrajeto. Ao finalizar os testes, acesse a mquina aftr e utilize o comando killall aftr para mataroprocessoaftrquefoiiniciado.E,pareasimulaoclicandonoboto .

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

349

Experincia4AdiodenovosclientesnarededoISP
1. O objetivo dessa segunda experincia observar o comportamento do sistema AFTR com a adio de novos clientes rede do ISP e, com isso, mostrar que a soluopodeserexpandidasemmuitasdificuldades. 2. Nela, considerase que o aluno j tenha realizado a experincia inicial da tcnica DSLite. O arquivo tecnicastransicaodsl2.imn ser utilizado e est prconfiguradocomotneldaexperinciaanterior. Aoabriroarquivo,aseguintetopologiadeveaparecer:

Paratestla,cliquenoboto item9daprimeiraexperincia.

parainiciarasimulaoesigaasinstruesdo

3. Oprimeiropassoadicionarumnovoclienteessarede. a. Volte ao modo de edio da rede,pareaexecuodasimulaoclicandono boto , selecione a opo

b. Clique no boto networklayer virtual nodes

router para adicionar um novos roteadores, clique na rea de desenhoparaadicionarumtopologia c. Clique novamente no boto networklayer virtual nodes, selecione a opo PC ecliquenareadedesenhoparaadicionlo para ligar os equipamentos da seguinte

d. Utilize a ferramenta link tool forma:

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

350

Importante: para que os comandos que sero passados funcionem da forma correta, crie inicialmente o link entre os roteadores 'cpe2' e 'isp1' para queoCOREutilizeonomeeth0nessainterfaceroteador'cpe2'. 4. Aseguirdeveseconfiguraressanovasubrede: a. Utilize a ferramentaselectiontool paraabrirajaneladeconfiguraes do roteador 'isp1' com um duplo clique sobre ele. Nessa janela, edite a interface eth2 de forma que o campo IPv4 address fique vazio e o campo IPv6addresscontenhaoendereo2001:db8:0:b::1/64:

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

351

b. Ainda nessajanela,cliquenobotoservios (Services...)paraconfiguraras novas rotas desse roteador. Na janela que abrir clique no boto de configuraoderotasestticascomoindicadonafigura: Obs: Numa implementao mais realista da rede de um ISP, as configuraes de rotas poderiam ser feitas de forma automtica com a utilizao de protocolos como RIP ou OSPF, porm, nessa experinciaelasseroconfiguradascomrotasestticas.

Adicione a seguinte linha arquivo e confirme (boto Apply) a configurao emtodasasjanelas:

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

352

/ s b i n / i p r o u t e a d d 2 0 0 1 : d b 8 : 0 : c 2 : : / 6 4 v i a 2 0 0 1 : d b 8 : 0 : b : : 2

c. Noroteador'cpe2'configureoendereo2001:db8:0:b::2/64nainterfaceeth0 eosendereos10.0.2.1/24e2001:db8:0:c2::1nainterfaceeth1:

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

353

Na janela de servios ative a opo de rota default clicando em Default Routeenasconfiguraes,substituaocontedodoarquivopor:


# ! / b i n / s h i p r o u t e a d d d e f a u l t v i a 2 0 0 1 : d b 8 : 0 : b : : 1

Aofim,confirme(Apply)todasasalteraes. d. E,noPC'cliente2'configureosseguintesendereos:

Obs: apesar de nessa simulao estarmos configurandoaredeIPv4doclientecom endereos estticos, numa situao real esses endereos normalmente seriam configuradoscomautilizaodeumservioDHCPv4noCPEdocliente.

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

354

Aofimarededeveficarassim:

5. Com a rede IPv6 configurada, simulao deve ser iniciada para que se possa prosseguir com a configurao DSLite e prover conectividade IPv4 ao novo cliente 'cliente2'. a. Antes de iniciar configurao do tnel verifique, com a utilizao dos comandos ping6 2012::2 e ping 203.0.133.2 no terminal do computador do novocliente,queexisteconectividadeIPv6comaInternetmasnoIPv4. Osresultadosdevemserossenguites:

Faa o mesmo no cliente anterior'cliente1'paraverificarqueeleaindapossui


IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.brrev.2012.07.0401

355

conectividadeIPv4eIPv6. b. Abra o terminal do host 'aftr' que prov o servio AFTR e, nele digite o seguintecomandoparaabriroshelldoprogramaaftr:
# t e l n e t l o c a l h o s t 1 0 1 5

Depois de se conectar interface do servio AFTR utilize o comando list tunnel para listar os tneis que j esto ativos. O resultado deve ser o seguinte:

O que mostra que existe apenas o tnel para o cpe1 doclientepreviamente configurado.

Importante: O tnel pode no estar listado por ser criado dinamicamente. Caso isso acontea, utilize o comando ping 203.0.113.2no terminaldamquinacliente1parareestabelecerotnel. c. Sem fechar a janela do terminal 'aftr', acesse o terminal do roteador 'cpe2'. Utilizeosseguintescomandosparaconfiguraronovotnel4in6:
# m o d p r o b e i p 6 _ t u n n e l # i p 6 t u n n e l a d d d s l t u n m o d e i p i p 6 r e m o t e 2 0 0 1 : d b 8 : 0 : 2 0 0 0 : : l o c a l 2 0 0 1 : d b 8 : 0 : b : : 2 d e v e t h 0 # i p a d d r a d d 1 9 2 . 0 . 0 . 2 p e e r 1 9 2 . 0 . 0 . 1 d e v d s l t u n # i p l i n k s e t d e v d s l t u n u p # i p r o u t e a d d d e f a u l t d e v d s l t u n

Note que todos os endereos a exceo do endereo da interface local do roteador e da ponta local do tnel so os mesmos configurados no CPE da experinciaanterior. 6. Com isso, o tnel j deve estar configurado e funcionando. Repita o comando ping 203.0.113.2 para verificar que o cliente 'cliente2' passou a ter conectividade IPv4 comaInternet.OResultadodeveparecidocom:

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.br rev.2012.07.0401 356

No terminal do AFTR, utilize o comando list tunnel para verificarqueum novotnel 4in6foiautomaticamentecriado:

Se desejar, utilize o Wireshark para escutar algumas interfaces da rede e verificar como o encapsulamento dos pacotes no tnel. Depois que acabar os testes, termineasimulaoclicandonoboto .

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.br rev.2012.07.0401 357

Experincia5AdiodatcnicaA+PredeDSLite
1. Nessa experincia pretendese aplicar a tcnica A+P /Port Range Router a uma rede previamente configurada com a tcnica DSLite com o objetivo de mostrar a integrao dessas tcnicas e de apresentar uma soluo que permita o controle de algumas portas IPv4 por parte dos clientes da operadora. Facilitando, assim, a utilizaodealgumasaplicaescomoservidoresWeb. 2. Para essa terceira experincia considerase que o aluno j tenha realizado as experincias anteriores da tcnica DSLite. O arquivo tecnicastransicaodsl3.imn ser utilizado por j estar configurado com os tneis da segunda experincia apresentada. Aoabriroarquivo,aseguinterededeveaparecer:

3. Na experincia, a mquina aftr, cpe1 e cpe2 sero configuradas com a tcnica A+P com o intuito de permitir o compartilhamento de um mesmo IPv4 pblico por maisdeumclientedoISP. Paracomear,inicieasimulaodaredecomoboto .

4. Comasimulaoemandamento,amquinaaftrterdeserreconfiguradacomas configuraesdatcnicaA+P: a. Acesse o terminal da mquina aftr e edite o arquivo aftrscript utilizando o comando nano aftrscript. Nele, adicione as linhas abaixo antes do final da funo aftr_start() para fazer com que esse servidor responda pelo endereoIPv4203.0.113.133queserdistribudopraosclientes:
i p r o u t e a d d 2 0 3 . 0 . 1 1 3 . 1 3 3 / 3 2 d e v t u n 0 a r p i e t h 0 s 2 0 3 . 0 . 1 1 3 . 1 3 3 0 a : 0 b : 0 c : 0 d : 0 e : f 2 p u b

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.br rev.2012.07.0401 358

FecheonanoutilizandooatalhoCtrl+X. b. Aindanoterminaldamquinaaftr,editeoarquivoaftr.confcomocomando nanoaftr.conf.Troqueocontedodessearquivopelaconfiguraoaseguir. CasoestejautilizandoaVMfornecida,bastasobrescreveroarquivocomo comando c p / h o m e / c o r e / D e s k t o p / t r a n s i c a o / D S L i t e / a f t r . c o n f 2 . / a f t r . c o n f noterminaldessamesmamquina.

a u t o t u n n e l o f f b u c k e t t c p s i z e 1 1 b u c k e t u d p s i z e 9 b u c k e t i c m p s i z e 4 d e c a y 1 . 9 8 3 d e c a y 5 . 9 9 6 d e c a y 1 5 . 9 9 8 d e f a u l t f r a g m e n t e q u a l o f f d e f a u l t f r a g m e n t l i f e t i m e 3 1 d e f a u l t f r a g m e n t i p v 6 m a x c o u n t 1 0 2 5 d e f a u l t f r a g m e n t i n m a x c o u n t 1 0 2 6 d e f a u l t f r a g m e n t o u t m a x c o u n t 1 0 2 7 d e f a u l t h o l d l i f e t i m e 1 2 1 d e f a u l t n a t l i f e t i m e t c p 6 0 1 d e f a u l t n a t l i f e t i m e c l o s e d 1 2 1 d e f a u l t n a t l i f e t i m e u d p 3 0 1 d e f a u l t n a t l i f e t i m e i c m p 3 1 d e f a u l t n a t l i f e t i m e r e t r a n s 1 1 d e f a u l t p o o l t c p 1 0 9 9 9 8 d e f a u l t p o o l u d p 1 1 9 9 9 9 d e f a u l t p o o l e c h o 1 2 1 0 0 0 0 d e f a u l t t u n n e l a u t o o n d e f a u l t t u n n e l m s s o n d e f a u l t t u n n e l m t u 1 3 1 0 d e f a u l t t u n n e l t o o b i g o f f d e f a u l t t u n n e l t o o b i g s t r i c t d e f a u l t t u n n e l f r a g m e n t i p v 6 m a x c o u n t 1 7 d e f a u l t t u n n e l f r a g m e n t i p v 4 m a x c o u n t 6 5 d e f a u l t t u n n e l n a t t c p m a x c o u n t 2 0 1 d e f a u l t t u n n e l n a t u d p m a x c o u n t 2 0 2 d e f a u l t t u n n e l n a t i c m p m a x c o u n t 5 1 d e f a u l t t u n n e l n a t t c p r a t e 5 1 d e f a u l t t u n n e l n a t u d p r a t e 2 1 d e f a u l t t u n n e l n a t i c m p r a t e 6 d e f m s s o f f d e f m t u 1 3 2 0 d e f t o o b i g o f f d e f t o o b i g s t r i c t e q f r a g o n e q f r a g o f f q u a n t u m 2 1 d e f a u l t t u n n e l m s s o n d e f m t u 1 4 5 0 a d d r e s s e n d p o i n t 2 0 0 1 : d b 8 : 0 : 2 0 0 0 : :

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.br rev.2012.07.0401 359

a d d r e s s i c m p 2 0 3 . 0 . 1 1 3 . 1 3 1 p o o l 2 0 3 . 0 . 1 1 3 . 1 3 1 p o o l 2 0 3 . 0 . 1 1 3 . 1 3 3 e c h o 3 2 0 0 0 6 4 0 0 0

a c l 6 : : 0 / 0

p r r 2 0 0 1 : d b 8 : 0 : a : : 2 t c p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 0 0 p r r 2 0 0 1 : d b 8 : 0 : a : : 2 u d p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 0 0 p r r 2 0 0 1 : d b 8 : 0 : a : : 2 t c p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 0 1 p r r 2 0 0 1 : d b 8 : 0 : a : : 2 u d p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 0 1 p r r 2 0 0 1 : d b 8 : 0 : a : : 2 t c p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 0 2 p r r 2 0 0 1 : d b 8 : 0 : a : : 2 u d p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 0 2 p r r 2 0 0 1 : d b 8 : 0 : a : : 2 t c p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 0 3 p r r 2 0 0 1 : d b 8 : 0 : a : : 2 u d p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 0 3 p r r 2 0 0 1 : d b 8 : 0 : b : : 2 t c p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 1 0 p r r 2 0 0 1 : d b 8 : 0 : b : : 2 u d p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 1 0 p r r 2 0 0 1 : d b 8 : 0 : b : : 2 t c p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 1 1 p r r 2 0 0 1 : d b 8 : 0 : b : : 2 u d p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 1 1 p r r 2 0 0 1 : d b 8 : 0 : b : : 2 t c p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 1 2 p r r 2 0 0 1 : d b 8 : 0 : b : : 2 u d p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 1 2 p r r 2 0 0 1 : d b 8 : 0 : b : : 2 t c p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 1 3 p r r 2 0 0 1 : d b 8 : 0 : b : : 2 u d p 2 0 3 . 0 . 1 1 3 . 1 3 3 1 0 0 1 3

Com a linha pool 203.0.113.133 echo3200064000essearquivoconfigurao endereo 203.0.113.133 como parte do pool de endereos que sero utilizados para fazer o NAT da rede interna do ISP. E, as linhas prr designam as portas TCP e UDP entre 10000 e 10003 para serem utilizadas pelocliente1easportasde10010a10013paraocliente2. Note que cada uma das portas deve ser definida individualmente. Porm, como alternativa para que essa configurao esttica no fique extremamente grande, as portas podem ser distribudas dinamicamentecom a utilizao da interface shell da aplicao AFTR acessvel via telnet porta 1015. Aoconcluiraconfiguraodoarquivo,saiaesalveocomocomandoCtrl+X.

IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.br rev.2012.07.0401 360

c. Para finalizar a configurao da mquina aftr utilize o comando aftr no mesmoterminalqueestavasendoutilizado.Asadadeveser:

5. O passo seguinte da implantao da tcnica A+P configurao das mquinas cpe1 e cpe2. Agora, alm de ficarem encarregadas da criao dos tneis IPv4 em IPv6, elas tambm sero responsveis pela traduo dos endereos IPv4 pblicosprovidospeloISPparaosendereosdoNATlocaldarededocliente. Nessa etapa, o programa iptables utilizado para desempenhar taltraduo.Abrao terminal correspondentemquinacpe1eutilizeos comandos aseguir.Mas,caso esteja utilizando a VM fornecida, execute o script i p t a b l e s c p e 1 . s h com o comandosh/home/core/Desktop/transicao/DSLite/iptablescpe1.sh.
# i p t a b l e s t n a t A P O S T R O U T I N G p t c p s 1 0 . 0 . 0 . 0 / 2 4 j S N A T t o s o u r c e 2 0 3 . 0 . 1 1 3 . 1 3 3 : 1 0 0 0 1 1 0 0 0 3 # i p t a b l e s t n a t A P O S T R O U T I N G p u d p s 1 0 . 0 . 0 . 0 / 2 4 j S N A T t o s o u r c e 2 0 3 . 0 . 1 1 3 . 1 3 3 : 1 0 0 0 1 1 0 0 0 3 # i p t a b l e s t n a t A P O S T R O U T I N G p i c m p s 1 0 . 0 . 0 . 0 / 2 4 j S N A T t o s o u r c e 2 0 3 . 0 . 1 1 3 . 1 3 3 : 1 0 0 0 1 1 0 0 0 3 # i p t a b l e s t n a t A P R E R O U T I N G p t c p d 2 0 3 . 0 . 1 1 3 . 1 3 3 d p o r t 1 0 0 0 0 j D N A T t o d e s t i n a t i o n 1 0 . 0 . 0 . 2 : 2 2 # i p t a b l e s t n a t A P R E R O U T I N G p u d p d 2 0 3 . 0 . 1 1 3 . 1 3 3 d p o r t 1 0 0 0 0 j D N A T t o d e s t i n a t i o n 1 0 . 0 . 0 . 2 : 2 2 # i p t a b l e s t n a t A P R E R O U T I N G p i c m p d 2 0 3 . 0 . 1 1 3 . 1 3 3 j D N A T t o d e s t i n a t i o n 1 0 . 0 . 0 . 2

Isso serve para configurar o iptables para mapear os pacotes TCP e UDP que chegam pela porta de 10000 na porta 22 correspontente ao servio de ssh do cliente1 e, tambm, configura os pacotes que saem daredeinternaparautilizarem as portas de 10001 a 10003 que foram configuradas no AFTR para formar o tnel comesteCPE. Os comandos utilizados no cpe2 so equivalentes, sendo a porta 10010 mapeada para o servidor ssh do cliente2eas portas de10011a10012comoportas desada. Caso esteja utilizando a VM fornecida, execute o script i p t a b l e s c p e 2 . s h com a linha s h / h o m e / c o r e / D e s k t o p / t r a n s i c a o / D S L i t e / i p t a b l e s c p e 1 . s h . Caso
IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.br rev.2012.07.0401 361

contrrio,executeosseguitescomandos:
# i p t a b l e s t n a t A P O S T R O U T I N G p t c p s 1 0 . 0 . 2 . 0 / 2 4 j S N A T t o s o u r c e 2 0 3 . 0 . 1 1 3 . 1 3 3 : 1 0 0 1 1 1 0 0 1 3 # i p t a b l e s t n a t A P O S T R O U T I N G p u d p s 1 0 . 0 . 2 . 0 / 2 4 j S N A T t o s o u r c e 2 0 3 . 0 . 1 1 3 . 1 3 3 : 1 0 0 1 1 1 0 0 1 3 # i p t a b l e s t n a t A P O S T R O U T I N G p i c m p s 1 0 . 0 . 2 . 0 / 2 4 j S N A T t o s o u r c e 2 0 3 . 0 . 1 1 3 . 1 3 3 : 1 0 0 1 1 1 0 0 1 3 # i p t a b l e s t n a t A P R E R O U T I N G p t c p d 2 0 3 . 0 . 1 1 3 . 1 3 3 d p o r t 1 0 0 1 0 j D N A T t o d e s t i n a t i o n 1 0 . 0 . 2 . 2 0 : 2 2 # i p t a b l e s t n a t A P R E R O U T I N G p u d p d 2 0 3 . 0 . 1 1 3 . 1 3 3 d p o r t 1 0 0 1 0 j D N A T t o d e s t i n a t i o n 1 0 . 0 . 2 . 2 0 : 2 2 # i p t a b l e s t n a t A P R E R O U T I N G p i c m p d 2 0 3 . 0 . 1 1 3 . 1 3 3 j D N A T t o d e s t i n a t i o n 1 0 . 0 . 2 . 2 0

6. Para testar o funcionamento da tcnica, abra o terminal da mquina cliente1 e execute o comando abaixo para iniciar uma captura de pacotes com o programa tcpdump:
# t c p d u m p v v i e t h 0 s 0 w / t m p / c a p t u r a _ a + p 1 . p c a p

Semfechlo,abraoterminaldocliente2edigite:
# t c p d u m p v v i e t h 0 s 0 w / t m p / c a p t u r a _ a + p 2 . p c a p

Porfim,inicietambmumtcpdumpnoterminaldamquinaserver1:
# t c p d u m p v v i e t h 0 s 0 w / t m p / c a p t u r a _ s e r v e r 1 . p c a p

Abra um novo terminal da mquina server1 e digite os comandos abaixo para solicitar conexes SSH nas portas 10000 e10010paraoendereo203.0.113.133.A seguir, volte aos terminais das mquinas cliente1 e cliente2epareas execues dos tcpdumps comocomandoCtrl+C.
# s s h p 1 0 0 0 0 c o r e @ 2 0 3 . 0 . 1 1 3 . 1 3 3 # e x i t # s s h p 1 0 0 1 0 c o r e @ 2 0 3 . 0 . 1 1 3 . 1 3 3 # e x i t

Importante:Depoisdecadachamadadocomandosshserrequisitadaa aceitaodachavepublicadoservidoreasenhadousurio.Aceiteachave, digitandoyese,depois,corequandoasenhaforsolicitada.

362 IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.br rev.2012.07.0401

Oresultadodeveser:

Issomostraqueos clientes 1e2aceitaram os pedidos deconexoSSHnaporta22. Para verificar que as requisies de fato chegaram aos clientes, abra os arquivos /tmp/captura_a+p1.pcap e /tmp/captura_a+p2.pcap no Wireshark. E note que a pesar de a conexo ter sido feita com as portas 10000 e 10010doIP203.0.113.133 elas chegaram corretamente s portas dos servidores SSH configurados em cada um dos clientes. E, para melhor visualizar a conversanoWireshark,digiteSSHna barradeFiltros(Filter:):

363 IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.br rev.2012.07.0401

364 IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.br rev.2012.07.0401

Para visualizar os pacotes na interface do servidor, abra o arquivo /tmp/captura_server1.pcap. Como as portas utilizadas para a comunio no so padro doservioSSH,avisualizaodas conversas ficafacilitadaseantes deabrir o arquivo a opo View>Name Resolution>Enable for Transport Layer for desabilitada. Ainda assim, o nome do filtro deve ser mudado de SSH para TCP. Note, nesse arquivo, que de fatoacomuniocom ocliente1feitaatravs daporta 10000e,comocliente2,pelaporta10010:

Parafinalizaroexperimento,pareaexecuodasimulaoclicandonoboto

365 IPv6.brLaboratrioDualStackLite(DSLite)NIC.brhttp://ipv6.br rev.2012.07.0401

366

IPv6Laboratrioderelay6to4
Objetivo
Tneis 6to4 realizados automaticamente, e normalmente sem conhecimento do usurio, pelos sistemas operacionais Windows XP, Vista e 7, bem como por alguns equipamentos de rede, podem levar a uma experincia pior para os usurios, dado que os dados trafegaro por relays pblicos 6to4, normalmente fora do pas. A conexo ser menos estveleapresentardelaysmaiores. Nesse laboratriomostrasecomoativarum relay 6to4local,num provedordeservios que j tenha o IPv6 habilitado, a fim de mitigar o problema descrito anteriormente, eliminando a necessidade dos pacotes de resposta viajarem longas distncias, passando por relays potencialmentenoconfiveis. Paraopresenteexerccioserutilizadoatopologiadescritanoarquivo: tecnicastransicaorelay6to4.imn.

IntroduoTerica
O 6to4 (RFC 3056) umas das tcnicas de transio mais antigas em uso. Com ajudade relays pilha dupla distribudos na Internet, abertos, instalados de forma colaborativa por diversas redes, qualquer rede IPv4 pode obter conectividade IPv6, atravs de tneis 6in4 automticos. O endereamento 6to4, utiliza o prefixo de endereo global 2002:wwxx:yyzz::/48, onde wwxx:yyzz o endereo IPv4 pblico do cliente convertido parahexadecimal. A figura abaixo demonstra o fluxo dos pacotes em uma rede 6to4. importante notar que noexisteanecessidadedeospacotesiremevoltarempelomesmorelay6to4.

Dentre os problemas que afetam o 6to4, podese citar problemas de qualidade com relays
IPv6.brLaboratrio6to4NIC.brhttp://ipv6.brrev.2012.03.2901

367

pblicos e problemas de segurana. Aliese a isso o fato de que diversos sistemas operacionais suportam tneis 6to4 de forma automtica, entre eles o Windows XP, o Windows Vista e o Windows 7. O fato dos sistemas operacionais ativarem os tneis 6to4 sem interveno ou conhecimento dos usurios traz algumas consequncias srias. Uma delas que firewalls ou outras medidas de segurana em redes corporativas podem ser inadvertidamente contornadas. Outra, que, via tnel, os pacotes podem seguir caminhos mais longos, trazendo uma experincia pior para o usurio,em comparaoquelaqueele teria se estivesse simplesmente usando IPv4. Um agravante que no h relays pblicos 6to4 no Brasil, ocasionando a ida do pacote para localidades distantes como Amrica do NorteouEuropa,mesmoqueaorigemeodestinoestejamnopas. Provedores de contedos e servios na Internet podem sofrer com a questo, pois ao implantar o IPv6 em um servidor Web, por exemplo, usurios que antes acessavamno bem via IPv4, podem passar a fazlo de forma lenta e instvel, via IPv6 obtido automaticamentepormeiodeumtnelautomtico6to4. recomendvel agir para mitigar esseproblema,principalmenteporqueexisteumamedida bastante simples eefetiva,quepodeserutilizada.Deveselembrarqueocaminhodeidado 6to4 pode ser diferente do caminho de volta. Isto permite que um relay 6to4sejacriadoem um servidor Web, ou em uma rede, com o objetivo de responder as requisies recebidas via 6to4. O relay no deve ser pblico, apenas servir para responder s requisies dirigidas aoservioadvindas declientes 6to4.Aimplementaodesterelay noirreduziro tempo gasto para receber pacotes 6to4, mas garante que os pacotes 6to4 de resposta saiam da rede com destino ao originador da requisio, j encapsulados em IPv4, e isto dar a vantagem do tempo de resposta ser consideravelmente reduzido, j que no ser necessrio o pacote ir at o relay localizado no exterior. Esta reduo pode melhorar bastante a experincia de acesso de um usurio que utilize 6to4 para acessar um servio qualquer.

RoteiroExperimental
Experincia6Relay6to4

1. Parafazeralgumasverificaesduranteoexperimentotambmsernecessriaa utilizaodoprogramaWiresharkquerealizaaverificaodospacotesqueso enviadosnarede.Namquinavirtual,utilizeumTerminalpararodarocomando:


$ s u d o a p t g e t i n s t a l l w i r e s h a r k

Antesdainstalaosersolicitadaasenhadousuriocore.Digitecorepara prosseguircomainstalao. 2. InicieoCOREeabraoarquivotecnicastransicaorelay6to4.imn.Aseguinte


IPv6.brLaboratrio6to4NIC.brhttp://ipv6.brrev.2012.03.2901

368

topologiainicialderededeveaparecerdeveaparecer:

Oobjetivodessatopologiaderederepresentardeformasimplificadaoambiente naInternetnecessrioparaperceberoproblemaeexperimentaratcnicade mitigaoproposta. AmquinapilhaDuplarepresentaumservidorqualquernaInternet.Umservidor Web,porexemplo.EsseservidorusaIPv4eIPv6.Amquinaclienterepresentaum usuriodomsticocomWindows,cujoprovedorofereceapenasIPv4.Nessa situaoumclienterealestabeleceriaumtnel6to4automtico(muitoemboraa mquinavirtualdaexperinciausenaverdadeLinux,eotneltenhasido configuradoporumscriptquandoaexperinciafoiiniciada).Osrelaysrepresentam respectivamenteumrelay6to4pbliconaSuiaeoutronoCanad,situaono muitodiferentedaquelaquepodeserencontradanaprtica,naInternet. 3. Verifiqueoestadoinicialdosnsdatopologia. a. Inicieasimulao: i. aperteoboto ou ii. utilizeomenuExperiment>Start. b. EspereatqueoCOREtermineainicializaodasimulaoeabrao terminaldocliente,atravsdoduploclique.

IPv6.brLaboratrio6to4NIC.brhttp://ipv6.brrev.2012.03.2901

369

c. Verifiqueotempototaldeidaevoltaentreoclienteeoservidorpilhadupla atravsdoseguintecomando:
# p i n g c 4 2 0 3 . 0 . 1 1 3 . 2 # p i n g 6 c 4 2 0 1 2 : 2 : : 6 : 1 2

Oresultadodeveser:

Notequedaformaquearedeestconfigurada,ospacotesdoclienteato servidorpassampelorelayCanada.Numasituaoreal,elesseriam direcionadosparaorelaymaisprximoaocliente,pormeiodoendereoanycast 192.88.99.1.Ospacotesdoservidorparaoclientepassam,porsuavez,pelo relayCanada.NaInternetrealospacotesseriamdirecionadosaorelaymais prximoaoservidor,quebuscariaquemanunciaarotapara2002::/16.Noteque, naexperincia,foramconfiguradosdelaysde75mse120msnosenlacesdo relayCanadaedorelaySuica,respectivamente,parasimularosatrasos encontradosnaInternet,causadospeladistncia. Otestedesteitemumarepresentaodadiferenadetempodeidaevolta entreclienteepilhaDuplacomparandootempogastoquandoutilizadoIPv4e IPv6via6to4.Caberessaltarqueestaexperinciasimulaclienteeservidor prximosfisicamente,porissoosdelaysIPv4sobaixos. 4. Configureorelay6to4noservidorpilhadupla.

IPv6.brLaboratrio6to4NIC.brhttp://ipv6.brrev.2012.03.2901

370

a. AbraoterminaldepilhaDuplaatravsdoduplocliqueeutilizeosseguintes comandosparaaconfigurao:
# i p t u n n e l a d d t u n e l 6 t o 4 m o d e s i t t t l 6 4 r e m o t e a n y l o c a l 1 9 2 . 8 8 . 9 9 . 1 # i p l i n k s e t d e v t u n e l 6 t o 4 u p # i p a d d r a d d 1 9 2 . 8 8 . 9 9 . 1 / 2 4 d e v l o # i p 6 a d d r a d d 2 0 0 2 : c 0 5 8 : 6 3 0 1 : : / 1 6 d e v t u n e l 6 t o 4 # i p l i n k s e t l o u p

Oresultadodeveser:

Aconfiguraoacimacriaumrelay 6to4noprprioservidorpilhaDupla. atribudooendereo192.88.99.1interfacedeloopback depilhaDuplae criadoumtnelqueutilizaoprotocolo6in4,representadoporsitnoLinux.Os pacotescujosendereosdedestinopertencema2002::/16so encapsuladosporpilhaDupla,atravsdotnelcriado.Dessemodo, eliminaseousodeumrelay 6to4pblico,umavezqueopacoteIPv6j encapsuladonarededeorigemetransmitidodestaformaviaInternetIPv4. Casoestaconfiguraosejautilizadaemservidoresreais,necessrio verificarcomoprovedorupstream sesoutilizadosfiltrosquenopermitem spoofing(e.g.,enviodepacotescujoendereodeorigemnopertencerede internadoISP).SeoclienteforumSistemaAutnomo,comblocosIPs prprios,provvelqueoupstream nofaaessefiltro.SeusarIPsdo prprioupstream ,provvelquesim. 5. Verifiqueamudanaefetuada. a. AbraoterminaldepilhaDupla,atravsdoduploclique. b. UtilizeoseguintecomandoparainiciaracapturadepacotesdepilhaDupla:
# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ r e l a y 6 t o 4 . p c a p

IPv6.brLaboratrio6to4NIC.brhttp://ipv6.brrev.2012.03.2901

371

Oresultadodeveser:

c. Noterminaldecliente,utilizenovamenteoseguintecomando:
# p i n g 6 c 4 2 0 1 2 : 2 : : 6 : 1 2

Oresultadodeveser:

d. NoterminaldopilhaDupla,encerreacapturadepacotesatravsda sequnciaCtrl+C. Oresultadodeveser:

Comparandootempodeidaevoltagastonestepassocomopassoanterior configurao,podemosnotarqueospacotesdoservidorparaoclientenopassam maisporumrelaypblico.Nesteexperimento,podemosverificarisso numericamentedeformasimples,porcausadareduode240ms.Issosignifica queospacotesnoestomaistrafegandopelorelaySuica,oqueaconteciaemseu caminhodevolta,doservidorpilhaDupla,atocliente. Observequenopossvelefetuarnenhumamelhoriadotempopercorridodeum pacoteoriginadodeclienteparapilhaDuplaquandoatcnica6to4utilizada.A


IPv6.brLaboratrio6to4NIC.brhttp://ipv6.brrev.2012.03.2901

372

configuraoaquiapresentadavisareduzirotempodegastoentrepilhaDuplae cliente,dadoqueousodoendereo2002::/16indicaqueoclientepossuitrnsito IPv4nativo.Contudo,numasituaorealissominimizadoporquenomodelo clienteservidor,usadoporexemplonaWeb,asrequisiessopequenas,enquanto asrespostascarregamumagrandequantidadedeinformao. 6. Encerreasimulao: a. aperteoboto ou b. utilizeomenuExperiment>Stop. 7. Paraverificarospacotescapturados,utilizaremosoprogramaWireshark.Para abrilo,inicieoprogramawireshark.Umamaneiraatravsdeumterminalna mquinavirtualcomocomando:
$ w i r e s h a r k

Esseprogramatemcomoprincipaisfuncionalidadesacapturaeanlisedepacotes transmitidosporumainterfacederede.Atravsdeseuuso,possvelmelhor visualizarospacotesquetrafegampelarede.Verifiqueoarquivodecaptura previamenteobtido.

IPv6.brLaboratrio6to4NIC.brhttp://ipv6.brrev.2012.03.2901

373

a. Abraoarquivo/ t m p / c a p t u r a _ r e l a y 6 t o 4 . p c a p comomenuFile>Open:

b. Coloqueofiltroicmpv6paravisualizarapenasospacotesquequeremos observar:

Note que as verses mais atuais do Wireshark so inteligentes o suficiente para mostrar os pacotes como do tipo ICMPv6, mesmo eles estando encapsuladosempacotesIPv4.

IPv6.brLaboratrio6to4NIC.brhttp://ipv6.brrev.2012.03.2901

374

Analise os pacotes echo reply veja se os dados contidos nos pacotes conferem com a teoria, prestando atenoformacom queos pacotes IPv6 foram encapsulados em pacotes IPv4, principalmente quanto ao endereo IPv4deorigem.

Camposimportantes: Type(camadaEthernet):indicaqueamensagemutilizaoprotocoloIPv4. Protocol (camada IPv4): indica que a mensagem encapsula o protocolo IPv6 (protocolonmero416in4). Destination(camadaIPv4):odestinooendereoIPv4decliente(192.0.2.2). Source (camada IPv4): a fonte o endereo anycast IPv4 de pilhaDupla (192.88.99.1). Destination(camadaIPv6):odestinooendereoIPv6decliente(2002:c000:202::). Source(camadaIPv6):afonteoendereoIPv6depilhaDupla(2012:2::6:12).

IPv6.brLaboratrio6to4NIC.brhttp://ipv6.brrev.2012.03.2901

375

376

IPv6Laboratriode6rd
Objetivo
A tcnica IPv6 Rapid Deployment (6rd) foi desenvolvida pela ISP francesa Free, levando apenas seis semanas desde o incio do projeto at o fornecimento de IPv6 para seus clientes. Essa tcnica de tunelamento permite implantar o IPv6parausurios em umarede que suporta apenas IPv4. O 6rd, contudo, deve ser suportado pelos equipamentos dos clientes(CPEs). Esselaboratriodivididoemduaspartes: 1. Configuraomanualdorelay edeumCPE,fornecendoumarede/64e 2. ConfiguraomanualdeumCPE,fornecendoumarede/56. Paraopresenteexerccioseroutilizadasastopologiasdescritanosarquivos: tecnicastransicao6rd.imnetecnicastransicao6rdmultiplosCPEs.imn.

IntroduoTerica
Paraexplicarofuncionamentodo6rdvamosanalisaratopologiadaredecomasua implementao:

Analisandoafiguradasnuvens,possvelnotarqueo6rddependebasicamentededois componentes: CPE6rd:instaladocomointerfaceentrearededaoperadoraedousurio. Relay 6rd:instaladonainterfaceentrearedeIPv4daoperadoraeaInternetIPv6. OCPE6rdumCPEtradicional(xDSLmodem,cablemodem,3Gmodemetc),cujo


IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

377

softwarefoimodificadoparapermitirousodo6rd.OusodeumCPE6rddificultaa implementaodatcnica,umavezquerequerasubstituio,lgicaoufsica,de equipamentosemcampo.TalmodificaonosCPEsnormalmentevivelnoscasosem queoprovedorgerenciaremotamenteoequipamento,sendocapazdefazerupgrades em seufirmware. Orelay 6rdumequipamentoquevaiencapsularedesencapsularpacotesparatrafegarem corretamentenasredesIPv4eIPv6. OCPE6rdatribuiaousurioumendereoIPv4,comoumCPEnormal.Entretantoum endereoIPv6tambmatribudoaousurio.EsteendereoIPv6umendereoIPv6 pblicovlido,masconstrudodemaneiraespecfica,baseadonoendereoIPv4:

No6rd,otamanhondoprefixoeotamanhoodoendereoIPv4,queformamoprefixo delegado6rd,soescolhasdoprovedordeacesso.Parapermitirqueaautoconfigurao deendereostateless funcionenecessrioqueotamanhodesteprefixon+osejamenor que64bits. Normalmente utilizase n=32, o=32 e m=0. Podese, contudo, aumentar o nmero de bits utilizados por n para alm de 32, forando o endereo IPv4 a utilizar parte dos 64 bits menos significativos, o que impede o funcionamento da autoconfigurao stateless . Para evitar que isto ocorra, o endereo IPv4 pode ocupar menos de 32 bits. Tal configurao possvel se os endereos IPv4 fizerem parte de uma mesma rede, pois podese omitir o prefixo da rede. Por exemplo, se todos os endereos IPv4 forem do tipo 198.51.0.0/16, os 16 bits que representam os nmeros 198 e 51 podem ser omitidos e a representao do endereo IPv4 necessitar somente de 16 bits, ao invs dos 32 bits necessrios para representaroendereocompleto.

RoteiroExperimental
Experincia7Configurao6rdnorelayeemumCPE(/64)
1. Parafazeralgumasverificaesduranteoexperimentotambmsernecessriaa utilizaodoprogramaWiresharkquerealizaaverificaodospacotesqueso enviadosnarede.Namquinavirtual,utilizeumTerminalpararodarocomando:
$ s u d o a p t g e t i n s t a l l w i r e s h a r k

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

378

Antesdainstalaosersolicitadaasenhadousuriocore.Digitecorepara prosseguircomainstalao. 2. InicieoCOREeabraoarquivotecnicastransicao6rd.imn.Aseguintetopologia inicialderededeveaparecer:

Oobjetivodessatopologiaderederepresentaromnimonecessrioparaquea implantaodo6rdsejapercebida,umavezquepeloroteadorv4entreoCPEeo relay transportaapenasIPv4.Aredefoiconfiguradacomrotasestticasdeforma quetodasasmquinaspossamconectarseviaIPv4,assimcomoconectarsevia IPv6entreorelay eoservidorexterno. Nesteexperimento,oclientereceberumarede/64,sendooprefixocompostopelo prefixoIPv6doISPeoendereoIPv4doCPE. 3. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulao: i. aperteoboto ou ii. utilizeomenuExperiment>Start. b. EspereatqueoCOREtermineainicializaodasimulaoeabrao terminaldoroteadorv4,atravsdoduploclique.

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

379

c. Verifiquequeoroteadorv4nosuportaIPv6atravsdoseguintecomando:
# i p a d d r s h o w

Oresultadodeveser:

PodeobservarsequenohendereosIPv6nasinterfaces,nemmesmo endereosdotipolinklocal,oqueindicaqueoroteadornosuportao protocolo. d. AbraoterminaldoCPE,atravsdoduplocliqueeverifiqueaconfigurao atravsdocomando:


# i p a d d r s h o w

Oresultadodeveser:

Podeobservarseque,nocontextodoIPv6,hsomenteosendereoslink
IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

380

localeoloopback configurados. 4. Verifiqueaconectividadeentreclienteeexterno. a. Abraoterminaldecliente,atravsdoduploclique. b. Utilizeosseguintescomandosparaverificaraconectividade:


# p i n g c 4 1 9 8 . 5 1 . 1 0 0 . 2 # p i n g 6 c 4 2 0 1 2 : 2 : : 6 : 1 2

Oresultadodeveser:

ObservequehconectividadeIPv4,masnohaindaconectividadeIPv6.A configuraode6rdproveressaconectividade. 5. Configureo6rdnorelay enoCPEeumendereoIPv6nocliente. Nomomentodepreparodestelaboratrio,aconfiguraodoCPEedorelay suportadoparao6rdnoLinuxapartirdokernel2.6.33eemequipamentosCiscoe Juniper. a. Abraoterminalderelay ,atravsdoduploclique,eutilizeosseguintes comandosparaaconfigurao:
# i p t u n n e l a d d p a r a D e n t r o m o d e s i t l o c a l 2 0 3 . 0 . 1 1 3 . 1 t t l 6 4 # i p t u n n e l 6 r d d e v p a r a D e n t r o 6 r d p r e f i x 2 0 0 1 : d b 8 : : / 3 2 # i p l i n k s e t p a r a D e n t r o u p # i p 6 a d d r a d d 2 0 0 1 : d b 8 : : 1 / 1 2 8 d e v p a r a D e n t r o # i p 6 r o u t e a d d 2 0 0 1 : d b 8 : : / 3 2 d e v p a r a D e n t r o # i p 6 r o u t e a d d 2 0 0 0 : : / 3 d e v e t h 1

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

381

Oresultadodeveser:

O relay possui conectividade IPv4 e IPv6 para a Internet, aqui representada pelo n externo, enquanto a rede interna est devidamente configurada somente para o uso de IPv4. A configurao acima cria o tnel paraDentro, cujo nomerefereseredeinternadoISP.Otnelassociaseaum endereo IPv4 da rede interna do ISP em sua criao (203.0.113.1), utilizando o protocolo 41, representada no Linux pelo tipo sit. OprefixoIPv6fornecidoao ISP (2001:db8::/32) utilizado como parmetro de configurao do tnel configurado para o 6rd. Aps inicializar o tnel, so configuradas as rotas: uma para aredeinternaatravs dotneleoutraparaaInternet,representada pelainterfaceeth1. b. AbraoterminaldeCPEatravsdoduplocliqueeutilizeosseguintes comandosparaaconfigurao:
# i p 6 a d d r a d d 2 0 0 1 : d b 8 : c b 0 0 : 7 1 8 2 : : / 6 4 d e v e t h 0 # i p t u n n e l a d d p a r a F o r a m o d e s i t l o c a l 2 0 3 . 0 . 1 1 3 . 1 3 0 t t l 6 4 # i p t u n n e l 6 r d d e v p a r a F o r a 6 r d p r e f i x 2 0 0 1 : d b 8 : : / 3 2 # i p l i n k s e t p a r a F o r a u p # i p 6 a d d r a d d 2 0 0 1 : d b 8 : c b 0 0 : 7 1 8 2 : : 1 / 1 2 8 d e v p a r a F o r a # i p 6 r o u t e a d d : : / 9 6 d e v p a r a F o r a # i p 6 r o u t e a d d 2 0 0 0 : : / 3 v i a : : 2 0 3 . 0 . 1 1 3 . 1

Oresultadodeveser:

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

382

O CPE possui conectividade IPv4 dentrodarededoISP,conformecitadono item anterior. A configurao inicialmente atribuium endereonainterfacede rede local (eth0) referente ao prefixo IPv6 do CPE, sendo tal prefixo compostopeloprefixoIPv6doISP(2001:db8::/32)eoendereoIPv4doCPE convertido em hexadecimal (203.0.113.130 cb 00 71 82), resultando no prefixo2001:db8:cb00:7182::/64. Em seguida, configurado o tnel paraFora, cujo nome referese rede interna do ISP, por onde se trafegam os pacotes destinados Internet. O tnel associase a um endereo IPv4 da rede interna doISPem suacriao (203.0.113.130),utilizandooprotocolo41,representadanoLinuxpelotiposit. O prefixo IPv6 fornecidoaoISP2001:db8::/32eutilizadocomoparmetro de configurao do tnel configurado para o 6rd. Aps inicializar o tnel, so configuradas as rotas: uma para viabilizar o uso do tnel em IPv4 (::/96) e outro para a Internet, atravs do encapsulamento para o relay, via IPv4 (::203.0.113.1). c. Abraoterminaldecliente,atravsdoduploclique,eutilizeosseguintes comandosparaaconfigurao:
# i p 6 a d d r a d d 2 0 0 1 : d b 8 : c b 0 0 : 7 1 8 2 : : b 1 c 0 / 6 4 d e v e t h 0 # i p 6 r o u t e a d d d e f a u l t v i a 2 0 0 1 : d b 8 : c b 0 0 : 7 1 8 2 : :

Oresultadodeveser:

Neste experimento, o endereo IPv6 do cliente configurado manualmente, pois o objetivo configurar o 6rd na rede do ISP. Para uma configurao mais robusta, o CPE deve ser configurado para prover a autoconfigurao. Essa funcionalidade prevista no protocolo IPv6apresentadanaexperincia da categoria Funcionalidades sob ottuloAutoconfiguraodeendereos Stateless. Observequenesteexperimento,osvaloresapresentadosnaintroduotericade n,oemso,respectivamente,32,32e0bits,demodoqueomaiorprefixoIPv6do ISPfoiutilizadojuntamentecomoendereoIPv4integraldoCPE.

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

383

6. VerifiqueaconectividadeviaIPv6entreclienteeexterno. a. Abraoterminaldoroteadorv4,atravsdoduploclique. b. Utilizeoseguintecomandoparainiciaracapturadepacotesdoroteador:


# t c p d u m p i e t h 0 s 0 w / t m p / c a p t u r a _ 6 r d . p c a p

Oresultadodeveser:

c. Noterminaldecliente,utilizenovamenteoseguintecomando:
# p i n g 6 c 4 2 0 1 2 : 2 : : 6 : 1 2

Oresultadodeveser:

d. Noterminaldoroteadorv4,encerreacapturadepacotesatravsda sequnciaCtrl+C. Oresultadodeveser:

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

384

e. Noterminaldecliente,utilizeoseguintecomando:
# t r a c e r o u t e 6 2 0 1 2 : 2 : : 6 : 1 2

Oresultadodeveser:

7. Encerreasimulao: a. aperteoboto ou b. utilizeomenuExperiment>Stop. 8. Paraverificarospacotescapturados,utilizaremosoprogramaWireshark.Para abrilo,inicieoprogramawireshark.Umamaneiraatravsdeumterminalna mquinavirtualcomocomando:


$ w i r e s h a r k

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

385

Esseprogramatemcomoprincipaisfuncionalidadesacapturaeanlisedepacotes transmitidosporumainterfacederede.Atravsdeseuuso,possvelmelhor visualizarospacotesquetrafegampelarede.Verifiqueoarquivodecaptura previamenteobtido. a. Abraoarquivo/ t m p / c a p t u r a _ 6 r d . p c a p comomenuFile>Open:

b. Coloqueofiltroicmpv6paravisualizarapenasospacotesquequeremos observar:

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

386

Note que as verses mais atuais do Wireshark so inteligentes o suficiente para mostrar os pacotes como do tipo ICMPv6, mesmo eles estando encapsuladosempacotesIPv4. Analise os pacotes echo request e echo reply vejaseos dados contidos nos pacotes conferem com a teoria, prestando ateno forma com que os pacotes IPv6 foram encapsulados em pacotes IPv4.

Camposimportantes: Type(camadaEthernet):indicaqueamensagemutilizaoprotocoloIPv4. Protocol (camada IPv4): indica que a mensagem encapsula o protocolo IPv6 (protocolonmero416in4). Destination(camadaIPv4):odestinooendereoIPv4dorelay (203.0.113.1). Source(camadaIPv4):afonteoendereoIPv4doCPE(203.0.113.130). Destination(camadaIPv6):odestinooendereoIPv6deexterno(2012:2::6:12). Source (camada IPv6): a fonte o endereo IPv6 do cliente (2001:db8:cb00:7182::b1c0).

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

387

Experincia8Configurao6rdemumCPE(/56)
1. NoCORE,abraoarquivotecnicastransicao6rdmultiplosCPEs.imn.Aseguinte topologiainicialderededeveaparecerdeveaparecer:

Comparandocomatopologiadoexperimentoanterior,foramadicionadosdois conjuntosdeCPEseclientes.Nesteexperimento,osCPEs2e3jesto configurados,bemcomoorelay . Emcontrastecomoexperimentoanterior,oISPdivulgarumprefixomenor (2001:db8:cab0::/48)eoclientereceberumprefixomaior(/56).Issorealizado atravsdeumapropriedadedo6rd,naqualoprefixoIPv4daredeinternadoISP omitido. Nesteexperimento,oclientereceberumarede/56,sendooprefixocompostopelo prefixoIPv6divulgadopeloISPepelosoctetosfinaisdoendereoIPv4doCPE. 2. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulao: i. aperteoboto ou ii. utilizeomenuExperiment>Start.

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

388

b. EspereatqueoCOREtermineainicializaodasimulaoeabrao terminaldoroteador,atravsdoduploclique. c. Verifiquequeoroteadorv4nosuportaIPv6atravsdoseguintecomando:


# i p a d d r s h o w

Oresultadodeveser:

PodeobservarsequenohendereosIPv6nasinterfaces,nemmesmo endereosdotipolinklocal,oqueindicaqueoroteadornosuportao protocolo. d. Abraoterminaldecliente2,atravsdoduplocliqueeverifiqueaconfigurao atravsdocomando:


# i p a d d r s h o w

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

389

Oresultadodeveser:

Podeobservarsequeoendereo2001:db8:cab0:c200::f0ca/56est configuradonainterfacequecomunicacomoCPE2. e. Abraoterminaldecliente3,atravsdoduplocliqueeverifiqueaconfigurao atravsdocomando:


# i p a d d r s h o w

Oresultadodeveser:

f. Podeobservarsequeoendereo2001:db8:cab0:e200::6a10/56est configuradonainterfacequecomunicacomoCPE3.

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

390

g. AbraoterminaldeCPE1,atravsdoduplocliqueeverifiqueaconfigurao atravsdocomando:
# i p a d d r s h o w

Oresultadodeveser:

Podeobservarseque,nocontextodoIPv6,hsomenteosendereoslink localeoloopback configurados. 3. Verifiqueaconectividadeentreosclientes. a. Utilizeosseguintescomandosemcliente2paraverificaraconectividade comcliente3eexterno:


# p i n g c 4 1 9 2 . 0 . 2 . 1 9 4 # p i n g 6 c 4 2 0 0 1 : d b 8 : c a b 0 : e 2 0 0 : : 6 a 1 0 # p i n g c 4 1 9 8 . 5 1 . 1 0 0 . 2 # p i n g 6 c 4 2 0 1 2 : 2 : : 6 : 1 2

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

391

Oresultadodeveser:

ObservequehconectividadeIPv4eIPv6partindodecliente2tanto internamentequantoexternamenteemrelaorededoISP. b. Utilizeosseguintescomandosemcliente1paraverificaraconectividade comcliente2eexterno:


# p i n g c 4 1 9 2 . 0 . 2 . 1 3 0 # p i n g 6 c 4 2 0 0 1 : d b 8 : c a b 0 : c 2 0 0 : : f 0 c a # p i n g c 4 1 9 8 . 5 1 . 1 0 0 . 2 # p i n g 6 c 4 2 0 1 2 : 2 : : 6 : 1 2

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

392

Oresultadodeveser:

ObservequehconectividadeIPv4,masnohaindaconectividadeIPv6.A configuraode6rdproveressaconectividade. 4. Configureo6rdnoCPE1eumendereoIPv6nocliente1. a. Nesteexperimento,orelay jestconfigurado.Osseguintescomandos encontramsenesseroteiroattulodecomparaodaconfiguraoutilizada emrelaoaoexperimentoanterior.


# i p t u n n e l a d d p a r a D e n t r o m o d e s i t l o c a l 2 0 3 . 0 . 1 1 3 . 1 t t l 6 4 # i p t u n n e l 6 r d d e v p a r a D e n t r o 6 r d p r e f i x 2 0 0 1 : d b 8 : c a b 0 : : / 4 8 6 r d r e l a y _ p r e f i x 2 0 3 . 0 . 1 1 3 . 0 / 2 4 # i p l i n k s e t p a r a D e n t r o u p # i p 6 a d d r a d d 2 0 0 1 : d b 8 : c a b 0 : : 1 / 1 2 8 d e v p a r a D e n t r o # i p 6 r o u t e a d d 2 0 0 1 : d b 8 : c a b 0 : : / 4 8 d e v p a r a D e n t r o # i p 6 r o u t e a d d 2 0 0 0 : : / 3 d e v e t h 1

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.brrev.2012.03.2901

393

b. AbraoterminaldeCPE1atravsdoduplocliqueeutilizeosseguintes comandosparaaconfigurao:
# i p 6 a d d r a d d 2 0 0 1 : d b 8 : c a b 0 : 8 2 0 0 : : / 5 6 d e v e t h 0 # i p t u n n e l a d d p a r a F o r a m o d e s i t l o c a l 2 0 3 . 0 . 1 1 3 . 1 3 0 t t l 6 4 # i p t u n n e l 6 r d d e v p a r a F o r a 6 r d p r e f i x 2 0 0 1 : d b 8 : c a b 0 : : / 4 8 6 r d r e l a y _ p r e f i x 2 0 3 . 0 . 1 1 3 . 0 / 2 4 # i p l i n k s e t p a r a F o r a u p # i p 6 a d d r a d d 2 0 0 1 : d b 8 : c a b 0 : 8 2 0 0 : : 1 / 1 2 8 d e v p a r a F o r a # i p 6 r o u t e a d d : : / 9 6 d e v p a r a F o r a # i p 6 r o u t e a d d 2 0 0 0 : : / 3 v i a : : 2 0 3 . 0 . 1 1 3 . 1

Oresultadodeveser:

Naconfiguraoapresentada,sodestacadasasdiferenasquando comparadascomomesmopassodoexperimentoanterior.OprefixoIPv6do CPE1compostopeloprefixoIPv6divulgadopeloISP(2001:db8:cab0::/48) eorestantedoendereoIPv4doCPE1apsaremoodaprefixoIPv4da redeinternadoISPconvertidoemhexadecimal(203.0.113.130/24130 decimal82hexadecimal),resultandonoprefixo2001:db8:cab0:8200::/56. c. Abraoterminaldecliente1,atravsdoduploclique,eutilizeosseguintes comandosparaaconfigurao:


# i p 6 a d d r a d d 2 0 0 1 : d b 8 : c a b 0 : 8 2 0 0 : : 9 : d a d e / 5 6 d e v e t h 0 # i p 6 r o u t e a d d d e f a u l t v i a 2 0 0 1 : d b 8 : c a b 0 : 8 2 0 0 : :

Oresultadodeveser:

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.br rev.2012.03.2901 394

Observequenesteexperimento,osvaloresapresentadosnaintroduotericade n,oemso,respectivamente,48,8e8bits,demodoquesomenteumapartedo prefixoIPv6doISPfoiutilizadojuntamentecompartedoendereoIPv4doCPE1. Nestaconfigurao,atribuidoaoclienteumprefixoIPv6/56,permitindoacriao de256subredes/64(2=256). 5. VerifiqueaconectividadeviaIPv6partindodecliente1. a. Abraoterminaldecliente1,atravsdoduploclique,eutilizeosseguintes comandosparaverificaraconectividadecomcliente2,cliente3eexterno:


# p i n g 6 c 2 2 0 0 1 : d b 8 : c a b 0 : c 2 0 0 : : f 0 c a # p i n g 6 c 2 2 0 0 1 : d b 8 : c a b 0 : e 2 0 0 : : 6 a 1 0 # p i n g 6 c 2 2 0 1 2 : 2 : : 6 : 1 2 # t r a c e r o u t e 6 2 0 0 1 : d b 8 : c a b 0 : e 2 0 0 : : 6 a 1 0 # t r a c e r o u t e 6 2 0 1 2 : 2 : : 6 : 1 2

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.br rev.2012.03.2901 395

Oresultadodeveser:

IPv6.brLaboratrio6rdNIC.brhttp://ipv6.br rev.2012.03.2901 396

397

IPv6LaboratriodeNAT64eDNS64
Objetivo

O NAT64 e o DNS64 em conjuntopermitem que,em umarede,hosts somenteIPv6 acessem servidores somente IPv4 naInternet,pormeiodatraduodos protocolos. Nesse laboratrio o objetivo configurar o NAT64 e o DNS64 para verificar o funcionamentodatcnica. Para o presente exerccio ser utilizado a topologia descrita no arquivo: tecnicastransicaonat64.imn. Ao contrrio dos outros experimentos desenvolvidos pela equipe IPv6.br, o arquivo de topologia deste experimento requer o uso da mquina virtual que serve de host para o CORE como parte integrante do experimento em si, devido a incompatibilidade do software utilizado em relao tcnicadeemulaodarededo CORE. Tambm importantedestacarqueesteo arquivodetopologianofunciona noVMwarePlayer.recomendamosautilizaodoVirtualBox4.1.10ousuperior.

IntroduoTerica
Neste mdulo prtico, testaremos o funcionamento da tcnica de traduo NAT64 (RFC 6146), aplicvel para ns somente IPv6 acessarem a Internet IPv4, utilizando uma tcnica stateful de traduo de pacotes IPv6 em IPv4. Ela necessita de uma tcnica auxiliar para a converso do DNS, chamada de DNS64 (RFC 6147). So sistemas distintos, mas que trabalham em conjunto para permitir a comunicao entreasredesIPv6eIPv4.

RoteiroExperimental
Experincia9NAT64eDNS64

Os passos a seguir, ensinam como instalar o mdulo do kernel do Linux desenvolvido pelo projeto ecdysis, disponvel no endereo http://ecdysis.viagenie.ca/download/ecdysisnfnat6420101117.tar.gz, necessrio para o funcionamento do NAT64. Porm, parafins didticos,estes primeiros passos j foram realizados no cenrio disponvel no arquivo tecnicastransicaonat64.imn, sendo necessrio apenas a sua configurao, que ser detalhada mais a frente, a partirdoitem3.
IPv6.brLaboratrioNAT64NIC.brhttp://ipv6.brrev.2012.03.2901

398

1. Para realizar o download, primeiro faa um pequeno cadastro no site do projeto ecdysis e, em seguida, voc receber por email o link para baixar os arquivos necessrios para instalao. Aps a realizao do download, descompacte o arquivoeprossigacomainstalaoviaterminaldoseguintemodo:
$ t a r x v z f e c d y s i s n f n a t 6 4 2 0 1 0 1 1 1 7 . t a r . g z $ c d e c d y s i s n f n a t 6 4 2 0 1 0 1 1 1 7 $ m a k e $ s u d o m a k e i n s t a l l

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao. Se voc utiliza uma verso de kernel no Linux superior a 2.6.38,utilizeos seguintes comandos,aoinvsdoapresentadoanteriormente:
$ t a r x v z f e c d y s i s n f n a t 6 4 2 0 1 0 1 1 1 7 . t a r . g z $ c d e c d y s i s n f n a t 6 4 2 0 1 0 1 1 1 7 $ w g e t h t t p : / / w w w . v i a g e n i e . c a / p i p e r m a i l / e c d y s i s d i s c u s s / a t t a c h m e n t s / 2 0 1 1 0 7 2 5 / 7 f 4 3 f 0 b 9 / a t t a c h m e n t . e l | p a t c h $ m a k e $ s u d o m a k e i n s t a l l

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao. 2. Para este experimento, tambm necessrio o uso do BIND, que uma implementao do protocolo DNS (Domain Name System), com verso superior a 9.8.Namquinavirtual,utilizeumTerminalpararodaroscomandos:
$ w g e t f t p : / / f t p . i s c . o r g / i s c / b i n d 9 / 9 . 8 . 1 P 1 / b i n d 9 . 8 . 1 P 1 . t a r . g z $ t a r x v z f b i n d 9 . 8 . 1 P 1 . t a r . g z $ c d x v z f b i n d 9 . 8 . 1 P 1 $ . / c o n f i g u r e $ m a k e $ s u d o m a k e i n s t a l l

Antes da instalao ser solicitada a senha do usurio core. Digite core para prosseguircomainstalao.

IPv6.brLaboratrioNAT64NIC.brhttp://ipv6.brrev.2012.03.2901

399

3. InicieoCOREeabraoarquivotecnicastransicaonat64.imn,localizadano diretriododesktopTransio/NAT64.Aseguintetopologiainicialderededeve aparecer:

O objetivo dessa topologia de rede representar o mnimo necessrio para que o usoconjuntodeNAT64eDNS64sejaentendido. 4. Verifiqueaconfiguraodosnsdatopologia. a. Inicieasimulao: i. aperteoboto ou ii. utilizeomenuExperiment>Start. b. EspereatqueoCOREtermineainicializaodasimulao. c. Namquinavirtual(foradoCORE),abraoTerminalerodeoseguinte comando:
# / h o m e / c o r e / s i m u l a c a o n a t 6 4 . s h s t a r t # s u d o s y s c t l w n e t . i p v 6 . c o n f . a l l . f o r w a r d i n g = 1

Casonecessrio,digitecoreparaprosseguircomaconfigurao.

IPv6.brLaboratrioNAT64NIC.brhttp://ipv6.brrev.2012.03.2901

400

Oresultadodeveser:

Na topologia deste experimento, a mquina virtual utilizada como n responsvel pelo DNS64 e NAT64 e prov roteamento para o n cliente. Esse script interliga a mquina virtual que serve de base para o CORE com a emulao que executada neste, identificando interfaces de rede, setando bridgeserotasestticas. 5. VerifiqueaconectividadeentreclienteepilhaDupla. Abraoterminaldoclienteatravsdoduplocliqueeutilizeoseguintecomando:
# p i n g 6 c 4 2 0 1 2 : 2 : : 6 : 1 2

Oresultadodeveser:

6. ConfigureoNAT64namquinavirtual. Abraoterminaldamquinavirtualeutilizeosseguintescomandosparaa configurao:


# s u d o i n s m o d / h o m e / c o r e / e c d y s i s n f n a t 6 4 2 0 1 0 1 1 1 7 / n f _ n a t 6 4 . k o n a t 6 4 _ i p v 4 _ a d d r = 1 9 2 . 0 . 2 . 2 n a t 6 4 _ p r e f i x _ a d d r = 6 4 : f f 9 b : : n a t 6 4 _ p r e f i x _ l e n = 9 6 # s u d o / h o m e / c o r e / n a t 6 4 c o n f i g . s h 1 9 2 . 0 . 2 . 2

IPv6.brLaboratrioNAT64NIC.brhttp://ipv6.brrev.2012.03.2901

401

Casonecessrio,digitecoreparaprosseguircomaconfigurao. Oresultadodeveser:

A tcnica apresentada utiliza um mdulo desenvolvido para Linux e o mesmo carregadoatravsdoprimeirocomando,comosseguintesparmetros:


n a t 6 4 _ i p v 4 _ a d d r = 1 9 2 . 0 . 2 . 2 E n d e r e o I P v 4 c o n e c t a d o a I n t e r n e t n a t 6 4 _ p r e f i x _ a d d r = 6 4 : f f 9 b : : P r e f i x o I P v 6 u t i l i z a d o p a r a m a p e a r e n d e r e o s I P v 4 n a t 6 4 _ p r e f i x _ l e n = 9 6 T a m a n h o d o p r e f i x o I P v 6 u t i l i z a d o n o m a p e a m e n t o

O segundo comando responsvel por habilitarainterfacenat64econfigurararota usada para a traduo, alm de configurar o roteamento de pacotes na mquina virtual. 7. VerifiqueaconectividadeviaIPv6entreclienteev4. Abraoterminaldeclienteatravsdoduplocliqueeutilizeoseguintecomando:
# p i n g 6 c 4 6 4 : f f 9 b : : c b 0 0 : 7 1 0 2

Oresultadodeveser:

IPv6.brLaboratrioNAT64NIC.brhttp://ipv6.brrev.2012.03.2901

402

Conformeapresentadonoitemanterior,osendereosIPv4soacessveisvia NAT64atravsdacomposiodoprefixoIPv6(64:ff9b::/96)seguidodoendereo IPv4escritoemhexadecimal(IPv4dev4:203.0.113.2cb007102). 8. Nestepasso,verificaremosofuncionamentodoservioDNSsemaopode DNS64. a. Abraoterminaldamquinavirtualeutilizeoseguintecomandoparaeditara configuraoDNS:


# s u d o n a n o / e t c / r e s o l v . c o n f

b. Editeoarquivoparacontersomentealinha:
n a m e s e r v e r 1 2 7 . 0 . 0 . 1

Oresultadodeveser:

AperteCtrl+XparasairdonanoeYparaconfirmaramodificaodo arquivo. c. Abraoterminaldamquinavirtualeutilizeoseguintecomandopara inicializaroservioDNS:


# s u d o / u s r / l o c a l / s b i n / n a m e d c / h o m e / c o r e / n a m e d . c o n f

Oresultadodeveser:

d. Abraoterminaldeclienteatravsdoduplocliqueeutilizeosseguintes comandos:
# d i g t A N Y s e r v i d o r . p d # d i g t A N Y s e r v i d o r . v 4

IPv6.brLaboratrioNAT64NIC.brhttp://ipv6.brrev.2012.03.2901

403

Oresultadodeveser:

Nestasconsultas,podemosobservarqueapenasodomnioservidor.pdpossui endereamentoIPv4eIPv6(pilhadupla)equeoservidor.v4possuiapenas endereoIPv4.


IPv6.brLaboratrioNAT64NIC.brhttp://ipv6.brrev.2012.03.2901

404

9. Nestepasso,modificaremosaconfiguraodeDNSparahabilitaroDNS64. a. Abraoterminaldamquinavirtualeutilizeoseguintecomandoparaencerrar oservio:


# s u d o k i l l a l l n a m e d

Oresultadodeveser:

b. ModifiqueoarquivodeconfiguraodoDNSatravsdoseguintecomando:
# n a n o / h o m e / c o r e / n a m e d . c o n f

Insiraotextodestacadoconformeabaixo:
o p t i o n s { d i r e c t o r y " / h o m e / c o r e / " l i s t e n o n v 6 { a n y } d n s 6 4 6 4 : f f 9 b : : / 9 6 { c l i e n t s { a n y } } } z o n e " v 4 " { t y p e m a s t e r f i l e " v 4 . z o n e " } z o n e " p d " { t y p e m a s t e r f i l e " p d . z o n e " }

IPv6.brLaboratrioNAT64NIC.brhttp://ipv6.brrev.2012.03.2901

405

Oresultadodeveser:

AperteCtrl+XparasairdonanoeYparaconfirmaramodificaodo arquivo. c. Abraoterminaldamquinavirtualeutilizeoseguintecomandopara inicializaroservioDNS:


# s u d o / u s r / l o c a l / s b i n / n a m e d c / h o m e / c o r e / n a m e d . c o n f

Oresultadodeveser:

d. Abraoterminaldeclienteatravsdoduplocliqueeutilizeosseguintes comandos:
# d i g t A A A A s e r v i d o r . v 4 # h o s t s e r v i d o r . v 4

IPv6.brLaboratrioNAT64NIC.brhttp://ipv6.brrev.2012.03.2901

406

Oresultadodeveser:

Nestasconsultas,podemosobservarqueaconsultaaodomnioservidor.v4agora possuicomorespostaumendereoIPv4mapeado. 10. Antesdeencerrarasimulao,abraoterminaldamquinavirtualeutilizeos seguintescomandos:


# s u d o i p l i n k s e t n a t 6 4 d o w n # s u d o r m m o d n f _ n a t 6 4 . k o

Casonecessrio,digitecoreparaprosseguir.

EssescomandosdesabilitamainterfacedoNAT64namquinavirtualeomdulo necessrioparasuaexecuo. 11. Encerreasimulao: a. aperteoboto ou b. utilizeomenuExperiment>Stop.

IPv6.brLaboratrioNAT64NIC.brhttp://ipv6.brrev.2012.03.2901

407

408