SlideShare a Scribd company logo
1 of 25
Download to read offline
1                                IPv6 - Linux                              Luiz Arthur

    IPv6 é o novo protocolo da camada de rede (no modelo OSI), ou a camada de
    Inter-rede (no modelo TCP/IP) o qual sucede o IPv4 (conhecido apenas como IP).
    O IPv4 foi projetado a muito tempo atrás e seu endereçamento esta deixando a
    desejar na Internet atual. Por isto, a maior diferença entre o IPv6 quanto ao IPv4
    é com certeza o aumento do tamanho de representação de hosts dentro do
    cabeçalho IPv6 que passa de 32 bits para 128 bits. Isto possibilita endereças
    bilhares de máquinas sem se preocupar com a falta de endereços representados
    na rede.

    O Linux começou a tratar o IPv6 em novembro de 1996 com o Kernel 2.1.8, mas
    foram códigos experimentais nada muito sério, sendo então tratado com mais
    rigor em outubro de 2000, no Kernel 2.4 e 2.6.

    Formato do endereçamento do IPv6

    Um número de 128 bits é muito longo, e se fosse representado em decimal, tal
    como o IPv4 seriam necessário ~39 dígitos. Isto tornaria o endereço IPv6 difícil
    de se memorizar.

    Assim, o IPv6 adotou um esquema de endereçamento em hexadecimal, neste
    esquema endereçamos representamos de uma só vez 4 bits (conhecidos como
    nibble) que são representados por dígitos 0-9 ou caracteres a-f (10-15). Este
    formato reduz o endereçamento para 32 caracteres.
2                              IPv6 - Linux                              Luiz Arthur

    Para melhorar o aspecto esses números foram separados de 16 em 16 bits tal
    como:

                    2001:0db8:0100:f101:0210:a4ff:fee3:9566

    Uma seqüência de blocos de 16 bits contento apenas zeros podem ser
    representado por “::”, mas somente uma vez.

                           2001:0bd8:100:f101:0:0:0:1

                                     é igual a

                               2001:bd8:100:f101::1

    Uma boa redução de um endereço IPv6 seria:

                   0000:0000:0000:0000:0000:0000:00000:0001

                              a forma abreviada seria

                                        ::1

    Esta forma de endereçamento é chamada de compacta (compact, ou codificada
    na base85).
3                               IPv6 - Linux                           Luiz Arthur

    Endereços especiais

    De todo espaço de endereçamento IPv6, apenas 15% estão previamente alocado
    para uso, ficando os 85% restantes reservados para o futuro.

    O endereço IPv6 que representa a interface de loopback, similar ao 127.0.0.1
    do IPv4 é:

                     0000:0000:0000:0000:0000:0000:0000:0001

    ou comprimido:

                                        ::1

    Endereços de mapeamento entre IPv4 e IPv6

    A terceira forma de representação, mais conveniente quando em ambientes
    mistos com hosts IPv4 e IPv6, é da forma x:x:x:x:x:x:d:d:d:d, onde os "x" são
    números hexadecimais (16 bits) e os "d" são valores decimais de 8 bits
    referentes à representação padrão já bem conhecida do IPv4.
4                               IPv6 - Linux                            Luiz Arthur

    Espera-se que o IPv6 conviva por muito tempo com o IPv4, desta forma, criou-se
    um esquema de endereço IPv6 para fazer mapeamentos aos endereços IPv4, tal
    como:

                             0:0:0:0:0:ffff:a.b.c.d/96

    na forma comprimida o formato é:

                                 ::ffff:a.b.c.d/96

    Por exemplo, o endereço IPv4 192.168.1.100 ficaria no IPv6 com:

                               ::ffff:192.168.1.100

    O contrário também é possível ou seja IPv4 no IPv6 tal endereço é representado
    da seguinte forma:

                              0:0:0:0:0:0:a.b.c.d/96

    no formato comprimido:

                                    ::a.b.c.d/96
5                                IPv6 - Linux                            Luiz Arthur

    Endereço não especificado

    Em IPv4 “0.0.0.0” ou “any” é representado no IPv6 por:

    0000:0000:0000:0000:0000:0000:0000:0000 ou ::

    Prefixos (tipos de endereços IPv6)

    Especificamente, o prefixo definido pelos primeiros bits do endereço indica cada
    tipo de endereço IPv6. O campo variável que compreende esses bits é
    denominado Format Prefix (FP).

    Aggregatable Global Unicast Addresses

    Este é o endereço unicast que será globalmente utilizado na Internet. Seu novo
    formato possui sete campos: o prefixo de 3 bits (001), um identificador TLA
    (Top-Level Aggregation), um campo RES reservado, um identificador NLA (Next-
    Level Aggregation), um identificador SLA (Site-Level Aggregation) e o
    identificador da interface:

    bits:   3      13           8         24              16         64
            FP     TLA ID       RES       NLA ID          SLA ID     InterfaceID
6                                 IPv6 - Linux                           Luiz Arthur

    Local-Use IPv6 Address

    Existem dois de endereços para uso local: link-local e site-local.

    Link-local : endereço identificado por um prefixo de 10 bits (1111111010),
    definido para uso interno num único enlace para funções como auto-
    configuração de endereços, descoberta do vizinho (neighbor discovery) ou
    quando não há roteador. Estações ainda não configuradas, ou com um endereço
    global unicast ou com um site-local, poderão utilizar um endereço link-local. Os
    roteadores não devem repassar pacotes com endereço fonte ou destino deste
    tipo;

    Um endereço de link local tem os seguintes prefixos: fe8X: (o mais utilizado),
    fe9X:, feaX: e febX:. Onde “X” é um caracter hexadecimal normalmente o “0”


    Site-local: endereço identificado pelo prefixo de 10 bits (1111111011), definido
    para uso interno numa organização que não se conectara à Internet, e não há
    necessidade de uso de um prefixo global. Os roteadores não devem repassar
    pacotes cujos endereços origem ou destino sejam endereços site-local.

    Um endereço site-local é identificado pelos prefixos: fecX: (o mais utilizado),
    fedX:, feeX: e fefX. Onde “X” deve ser subustituido por um caracter
    hexadecimal, sendo normalmente o “0”.
7                                IPv6 - Linux                               Luiz Arthur

    Os endereços IPv6 unicast foram projetados assumindo que os sistemas de
    roteamento da Internet repassam pacotes baseado num algoritmo de cálculo do
    prefixo mais longo, sem nenhum conhecimento da estrutura interna do endereço
    IPv6. O tipo específico de endereço IPv6 é indicado pelos primeiros bits do
    endereço (FP).

    Dentre os tipos de endereços unicast apresentados anteriormente, foram
    apresentados os endereços Aggregatable Global Unicast Addresses a serem
    globalmente utilizados na Internet e definidos pelo formato de prefixo (FP =
    001) para suportar a agregação provider-based, definida inicialmente pela RFC
    1884, e um novo tipo de agregação denominada como exchange-based. Esta
    combinação permitirá uma agregação eficiente de rotas, tanto para sites
    conectados a provedores, quanto para aqueles conectados aos pontos de troca
    de tráfego (exchanges).

       3       13          8       24          16            64
       FP      TLA ID      RES     NLA ID           SLA ID        InterfaceID

    sendo:
    FP - Format Prefix de 3 bits, neste caso igual a 001;
    TLA ID - Identificador Top-Level Aggregation de 13 bits;
    RES - 8 bits reservados para uso futuro, e deve ter todos os bits zerados;
    NLA ID - Identificador Next-Level Aggregation de 24 bits;
    SLA ID - Identificador Site-Level Aggregation de 16 bits;
    Interface ID - Identificador da interface de 64 bits.
8                               IPv6 - Linux                            Luiz Arthur

    Em termos de topologia, essa estrutura permite uma organização em três níveis
    hierárquicos: pública, site e identificador de interface. A topologia pública
    (campos TLA, RES, e NLA) reflete o conjunto de provedores de serviços
    Internet, provedores de trânsito e pontos de troca de tráfego. A topologia site
    (campos SLA) tem abrangência local, uma organização específica que não provê
    serviços de trânsito para outras organizações ou sites. Já o identificador de
    interface (campos Interface ID), como o próprio nome indica, identifica a
    interface do node.


    Top-Level Aggregation ID

    Os identificadores TLA são o topo da hierarquia de roteamento. Este formato
    suporta 8.192 (213) identificadores TLA, que podem ser aumentados ou através
    do aumento do tamanho do campo TLA, utilizando os bits reservados do campo
    RES, ou utilizando um prefixo de formato adicional.
    Os roteadores default-free devem ter uma entrada na tabela de roteamento para
    cada TLA ID ativo, e podem ter entradas adicionais para otimizar o roteamento
    de suas topologias específicas. Mas, em todos os níveis, a topologia de
    roteamento deve ser projetada para minimizar a quantidade de entradas na
    tabela de roteamento. Está sendo produzido um documento específico para o
    campo TLA.
9                                IPv6 - Linux                             Luiz Arthur

    Site-Level Aggregation ID

    O identificador SLA é utilizado por uma organização individual, que é
    responsável para definir a estrutura de endereços do espaço SLA. Dentro deste
    espaço, a organização pode criar localmente sua própria estrutura de
    endereçamento hierárquica, num procedimento similar às divisão em sub-redes
    do IPv4, só que com um número muito maior de sub-redes.

    Interface ID

    Os identificadores de interface (Interface ID), como o próprio nome indica, são
    utilizados para identificar interfaces de um enlace específico e devem ser únicos
    para esse link. Também devem ser únicos num escopo mais abrangente. Em
    muitos casos, o identificador de interface será o endereço de interface da
    camada de enlace ou obtido a partir deste.

    Endereços IPv6 de Produção

    Atualmente, já estão sendo oferecidos endereços IPv6 de produção pelos três
    Regional Internet Registries (RIR): ARIN, RIPE NCC e APNIC.

    Inicialmente, foi reservado pela     IANA   o prefixo TLA 2001::/16 para
    endereçamento de produção. Sob esse prefixo, são alocados os identificadores
    para backbones, utilizando para isso o campo Sub-TLA. O tamanho do prefixo
    mínimo alocado é de 35 bits.
10                           IPv6 - Linux                             Luiz Arthur

 O processo de alocação utiliza um procedimento chamado slow start. Ao se obter
 um identificador Sub-TLA, os 6 bits seguintes são reservados pelo RIR que fez a
 alocação. O RIR só fará alocações subseqüentes desse espaço reservado quando
 a organização tiver utilizado pelo menos 80% do espaço previamente alocado.

 Endereçamento no 6Bone

 Com o propósito de utilizar o mínimo do espaço de endereçamento de produção
 IPv6, a IANA alocou ao Projeto 6Bone o prefixo TLA 3FFE::/16. Esse endereço
 é especificado no RFC 2471 - IPv6 Testing Address Allocation.

 Sob esse prefixo, o 6Bone criou um formato próprio para o particionamento de
 seu espaço endereços. Esse formato é baseado no utilizado em endereços de
 produção, especificado no RFC 2374 - An IPv6 Aggregatable Global Unicast
 Address Format.

 O suporte ao IPv6 no Kernel Linux

 Para que seu computador de suporte ao novo protocolo IPv6 é necessário que
 este esteja sendo executado pelo Kernel (núcleo do Sistema Operacional), uma
 forma de verificar se este está ou não no Kernel e verificando a existência do
 arquivo /proc/net/if_inet6, para tanto é possível executar o seguinte comando:

 # test -f /proc/net/if_inet6 && echo "O Kernel está executando IPv6”
11                           IPv6 - Linux                            Luiz Arthur
 Se tudo estiver bem, será apresentado a mensagem "O Kernel está
 executando IPv6”, caso contrário não será apresentada mensagem alguma e o
 Kernel não esta dando suporte ao Ipv6.

 Carregando modulo IPv6 no Kernel Linux

 Uma forma simples de dar suporte ao IPv6, é carregando o modulo do IPv6 no
 kernel. Para tanto basta executar o seguite comando:

 #modprobe ipv6

 Agora para ter a certeza que este modulo foi atribuído ao Kernel Linux basta
 executar o seguinte comando:

 # lsmod |grep -w 'ipv6' && echo "O IPv6 foi carregado corretamente”

 Caso seja mostrado a mensagem "O IPv6 foi carregado corretamente” o
 Linux estará pronto para trabalhar com o IPv6, caso contrário será necessário
 re-compilar o Kernel.

 Caso queira-se trabalhar com freqüência com o IPv6 é melhor carregar o modulo
 do IPv6 sempre que o Linux for iniciado no computador, para tanto basta editar
 os arquivos /etc/modules.conf ou /etc/conf.modules, e acrescentar a
 seguinte linha:
 alias net-pf-10 ipv6 # automatically load IPv6 module on demand
12                           IPv6 - Linux                            Luiz Arthur

 Verificando se as ferramentas de configuração de rede estão prontas
 para o IPv6

 Os pacotes de programas que tratam de aspectos de rede devem dar suporte ao
 IPv6 para que possamos configurar corretamente os serviços, para tanto
 podemos executar os seguinte comandos:

 # ifconfig -? 2>& 1|grep -qw 'inet6' && echo "ifconfig pronto para o IPv6"

 # route -? 2>& 1|grep -qw 'inet6' && echo "route pronto para o IPv6"

 # ip 2>&1 |grep -qw 'inet6' && echo "ip pronto para o IPv6"

 Caso exista uma saída para os comandos anteriores o IPv6 está pronto para ser
 implementado, caso contrário você precisará reinstalar tais ferramentas com
 suporte a Ipv6.

 O comando ip é atualmente o comando que dá mais suporte a configuração de
 redes, este por exemplo, substitui os comandos ifconfig e route,
 implementando ainda funções avançadas de configuração de redes (que não
 estão disponíveis nos comandos ifconfig e route), porém as distribuições Linux
 mais antigas podem não possuir tal ferramenta de rede.
13                           IPv6 - Linux                             Luiz Arthur

 Configurando Interfaces com IPv6

 Para configurar a interfaces de rede com IPv6 podemos utilizar o tanto o
 comando ifconfig quanto o ip.

 Usando o ifconfig:

 Vamos dar uma olhada na interface lo, e ver se o endereço IPv6 está correto:

 #ifconfig lo
 lo        Link encap:Local Loopback
           inet addr:127.0.0.1 Mask:255.0.0.0
           UP LOOPBACK RUNNING MTU:16436 Metric:1
           RX packets:12 errors:0 dropped:0 overruns:0 frame:0
           TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:760 (760.0 b) TX bytes:760 (760.0 b)


 Bem a saída anterior é apresentada antes do modulo IPv6 ser carregada no
 Kernel, o comando a seguir mostra o mesmo comando já com a adição de
 suporte do IPv6 no Kernel.
14                           IPv6 - Linux                            Luiz Arthur
 # ifconfig lo
 lo        Link encap:Local Loopback
           inet addr:127.0.0.1 Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING MTU:16436 Metric:1
           RX packets:12 errors:0 dropped:0 overruns:0 frame:0
           TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:760 (760.0 b) TX bytes:760 (760.0 b)

 Agora podemos observar no comando anterior a existência de uma nova linha à:
 inet6 addr: ::1/128 Scope:Host. Tal linha indica a presença do endereço
 localhost ::1 atribuído a uma interface local via IPv6.

 Logo após iniciar o modulo IPv6 no Kernel Linux, podemos ligar, por exemplo, a
 primeira placa de rede Ethernet do computador, para isto iremos apenas
 executar o comando:

 #ifconfig eth0 up
15                           IPv6 - Linux                            Luiz Arthur

 Em seguida podemos verificar o status desta placa de rede com o comando
 ifconfig e a saída será algo como:

 #ifconfig eth0
 eth0      Link encap:Ethernet HWaddr 00:0C:6E:0D:A6:DF
           inet6 addr: fe80::20c:6eff:fe0d:a6df/64 Scope:Link
           UP BROADCAST MULTICAST MTU:1500 Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:0 (0.0 b) TX bytes:238 (238.0 b)
           Interrupt:11 Base address:0xe000

 Podemos observar que existe um endereço inet6 (IPv6) atribuído a interface, tal
 endereço é atribuído automaticamente pelo IPv6, baseado no endereço físico da
 placa de rede. Está prática pode ser utilizada para substituir servidores DHCP.

 Atribuindo endereços IPv6 com o ifconfig:

 #ifconfig <interface> inet6 add <ipv6address>/<prefixlength>

 Exemplo:

 #ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64
16                           IPv6 - Linux                        Luiz Arthur

 Já para remover um endereço IPv6 utilize as seguintes opções:

 #ifconfig <interface> inet6 del <ipv6address>/<prefixlength>

 Exemplo:

 #ifconfig eth0 inet6 del 2001:0db8:0:f101::1/64

 Usando o comando ip:

 Para ligar ou desligar as interfaces de rede com o comando ip, utilize os
 seguintes comando respectivamente:

 # ip link set dev <interface> up
 # ip link set dev <interface> down

 Exemplo:

 # ip link set dev eth0 up
 # ip link set dev eth0 down
17                             IPv6 - Linux                               Luiz Arthur

 Já para verificar o status das interfaces utilize as seguintes opções:

 # /sbin/ip -6 addr show dev <interface>

 Exemplo:

 #ip -6 addr show dev eth0
 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> qlen 1000
     inet6 fe80::20c:6eff:fe0d:a6df/64 scope link

 Atribuindo endereços IPv6 via comando ip:

 #ip -6 addr add <ipv6address>/<prefixlength> dev <interface>

 Exemplo:

 #ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0

 Removendo endereços IPv6 com o comando ip:

 #ip -6 addr del <ipv6address>/<prefixlength> dev <interface>

 Exemplo:

 #ip -6 addr del 2001:0db8:0:f101::1/64 dev eth0
18                                   IPv6 - Linux                                             Luiz Arthur

 Configurando rotas com IPv6

 Exibindo rotas existentes, para tanto você pode utilizar o ip ou o route:

 #ip -6 route show [dev <device>]

 Exemplo:

 ip -6 route show dev eth0
 2001:0db8:0:f101::/64 proto                 kernel       metric      256   mtu   1500   advmss   1440
 fe80::/10             proto                 kernel       metric      256   mtu   1500   advmss   1440
 ff00::/8              proto                 kernel       metric      256   mtu   1500   advmss   1440
 default               proto                 kernel       metric      256   mtu   1500   advmss   1440

 Ou:

 #route -A inet6 |grep -w "eth0"
 2001:0db8:0:f101   ::/64 :: UA    256   0   0   eth0   <-Interface   route for global address
 fe80::/10          ::       UA    256   0   0   eth0   <-Interface   route for link-local address
 ff00::/8           ::       UA    256   0   0   eth0   <-Interface   route for all multicast addresses
 ::/0               ::       UDA   256   0   0   eth0   <-Automatic   default route
19                             IPv6 - Linux                              Luiz Arthur

 Adicionando uma rota para um gateway:


 #ip -6 route add <ipv6network>/<prefixlength> via <ipv6address> [dev<device>]

 Exemplo:

 #ip -6 route add 2000::/3 via 2001:0db8:0:f101::1

 Ou:

 #route -A inet6 add <ipv6network>/<prefixlength> gw <ipv6address> [dev<device>]

 Exemplo:

 #route -A inet6 add 2000::/3 gw 2001:0db8:0:f101::1

 Para remover a rota basta substituir o add por del tanto no comando ip quanto
 no route.
20                           IPv6 - Linux                            Luiz Arthur

 Adicionando rotas através de interfaces

 Não freqüentemente é necessário fazer rotas ponto-a-ponto, para é possível
 utilizar os seguintes comandos:

 #ip -6 route add <ipv6network>/<prefixlength> dev <device> metric 1

 Exemplo:

 #ip -6 route add 2000::/3 dev eth0 metric 1

 Ou:

 #route -A inet6 add <network>/<prefixlength> dev <device>

 Exemplo:

 #route -A inet6 add 2000::/3 dev eth0

 Novamente para apagar este tipo de rota execute substitua a opção add por del.
21                             IPv6 - Linux                          Luiz Arthur

 Ping no IPv6

 O comando ping que é utilizado para enviar mensagens ICMP e descobrir se
 hosts estão ou não disponíveis na rede, também existe na IPv6, mas é o ICMPv6.

 Para utilizar tal funcionalidade utilize o seguinte comando:

 # ping6 <hostwithipv6address>
 # ping6 <ipv6address>
 # ping6 [-I <device>] <link-local-ipv6address>

 Exemplo:

 # ping6 -c 1 ::1
 PING ::1(::1) from ::1 : 56 data bytes
 64 bytes from ::1: icmp_seq=0 hops=64 time=292 usec

 --- ::1 ping statistics ---
 1 packets transmitted, 1 packets received, 0% packet loss
 round-trip min/avg/max/mdev = 0.292/0.292/0.292/0.000 ms
22                             IPv6 - Linux                              Luiz Arthur

 Usando um endereço link-local, o Kernel não conhece a interface física ou
 virtual, e teremos como resultado um erro, tal como:

 # ping6 fe80::212:34ff:fe12:3456
 connect: Invalid argument

 Neste caso temos que especificar a interface de rede, tal como:

 # ping6 -I eth0 -c 1 fe80::2e0:18ff:fe90:9205
 PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from
 ¬ fe80::212:34ff:fe12:3478 eth0: 56 data bytes
 64 bytes from fe80::212:23ff:fe12:3456: icmp_seq=0 hops=64 time=445 usec
 --- fe80::2e0:18ff:fe90:9205 ping statistics ---
 1 packets transmitted, 1 packets received, 0% packet loss round-trip
 min/avg/max/mdev = 0.445/0.445/0.445/0.000 ms

 Utilizando ping com endereços multicast

 Para pingar um endereço multicast o comando é:

 # ping6 -I eth0 ff02::1
 PING ff02::1(ff02::1) from fe80:::2ab:cdff:feef:0123 eth0: 56 data
 bytes
 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.104 ms
 64 bytes from fe80::212:34ff:fe12:3450: icmp_seq=1 ttl=64 time=0.549
 ms (DUP!)
23                             IPv6 - Linux                              Luiz Arthur

 IPv6 com o traceroute6

 O traceroute6 é similar ao traceroute do IPv4, por exemplo:

 # traceroute6 www.6bone.net
 traceroute to 6bone.net (3ffe:b00:c18:1::10) from 2001:0db8:0000:f101::2, 30
 ¬ hops max, 16 byte packets
  1 localipv6gateway (2001:0db8:0000:f101::1) 1.354 ms 1.566 ms 0.407 ms
  2 swi6T1-T0.ipv6.switch.ch (3ffe:2000:0:400::1) 90.431 ms 91.956 ms 92.377 ms
  3 3ffe:2000:0:1::132 (3ffe:2000:0:1::132) 118.945 ms 107.982 ms 114.557 ms
  4 3ffe:c00:8023:2b::2 (3ffe:c00:8023:2b::2) 968.468 ms 993.392 ms 973.441 ms
  5 3ffe:2e00:e:c::3 (3ffe:2e00:e:c::3) 507.784 ms 505.549 ms 508.928 ms
  6 www.6bone.net (3ffe:b00:c18:1::10) 1265.85 ms * 1304.74 ms

 Outro programa parecido com o traceroute6 é o tracepath6, porém este
 descobre o MTU ao longo do caminho entre os hosts. Por exemplo:

 # tracepath6 www.6bone.net
  1?: [LOCALHOST] pmtu 1480
  1: 3ffe:401::2c0:33ff:fe02:14 150.705ms
  2: 3ffe:b00:c18::5 267.864ms
  3: 3ffe:b00:c18::5 asymm 2 266.145ms pmtu 1280
  3: 3ffe:3900:5::2 asymm 4 346.632ms
  4: 3ffe:28ff:ffff:4::3 asymm 5 365.965ms
  5: 3ffe:1cff:0:ee::2 asymm 4 534.704ms
  6: 3ffe:3800::1:1 asymm 4 578.126ms !N
 Resume: pmtu 1280
24                                 IPv6 - Linux                          Luiz Arthur

 Outro comando útil para análise de redes IPv6 é o tcpdump, este que permite a
 analise de trafego da rede, tal comando implementa as seguintes opções para a
 analise de uma rede IPv6:

 ●   icmp6: filtra trafego ICMPv6;

 ●   ip6: filtra trafego IPv6 (incluindo ICMPv6)

 ●   proto ipv6: filtra tuneis IPv6-in-IPv4.

 Exemplos de comando tcpdump com IPv6:

 # tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6
 tcpdump: listening on eth0
 2001:0db8:100:f101:2e0:18ff:fe90:9205 > 2001:0db8:100:f101::1: icmp6: echo
  request (len 64, hlim 64)
 2001:0db8:100:f101::1 > 2001:0db8:100:f101:2e0:18ff:fe90:9205: icmp6: echo
  reply (len 64, hlim 64)
25     IPv6 - Linux   Luiz Arthur

 fim

More Related Content

What's hot

Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógicoFaculdade Mater Christi
 
Redes Avançadas - 2.IPv6
Redes Avançadas - 2.IPv6Redes Avançadas - 2.IPv6
Redes Avançadas - 2.IPv6Mauro Tapajós
 
Noções básicas de endereçamento de redes tcp ip
Noções básicas de endereçamento de redes tcp ipNoções básicas de endereçamento de redes tcp ip
Noções básicas de endereçamento de redes tcp ipFlavioCLima
 
T.A.R Aula 2 (1ª Unidade)
T.A.R Aula 2 (1ª Unidade)T.A.R Aula 2 (1ª Unidade)
T.A.R Aula 2 (1ª Unidade)Cleiton Cunha
 
Aula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IPAula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IPFilipo Mór
 
I Pv6 Final 2
I Pv6 Final 2I Pv6 Final 2
I Pv6 Final 2ptic433
 
Rct 17 - camada de rede - endereçamento ip
Rct   17 - camada de rede - endereçamento ipRct   17 - camada de rede - endereçamento ip
Rct 17 - camada de rede - endereçamento ipUniversal.org.mx
 
Módulo 08 o que é tcp-ip
Módulo 08   o que é tcp-ipMódulo 08   o que é tcp-ip
Módulo 08 o que é tcp-ipMarília Simões
 
T2 endereços ip
T2 endereços ipT2 endereços ip
T2 endereços ipPaula Lopes
 
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IP
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IPRedes de Computadores 2 - Aula 2 - Protocolo TCP/IP
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IPCleber Fonseca
 
Redes de computadores 2 - Protocolos
Redes de computadores 2 - ProtocolosRedes de computadores 2 - Protocolos
Redes de computadores 2 - ProtocolosJosé Ronaldo Trajano
 
Tutorial sobre protocolo TCP/IP
Tutorial sobre protocolo TCP/IPTutorial sobre protocolo TCP/IP
Tutorial sobre protocolo TCP/IPChris x-MS
 

What's hot (20)

Capítulo 19 camada de rede - end lógico
Capítulo 19   camada de rede - end lógicoCapítulo 19   camada de rede - end lógico
Capítulo 19 camada de rede - end lógico
 
Redes Avançadas - 2.IPv6
Redes Avançadas - 2.IPv6Redes Avançadas - 2.IPv6
Redes Avançadas - 2.IPv6
 
Protocolos de Redes
Protocolos de RedesProtocolos de Redes
Protocolos de Redes
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
Endereços ip
Endereços ipEndereços ip
Endereços ip
 
Protocolos de Redes
Protocolos de RedesProtocolos de Redes
Protocolos de Redes
 
Noções básicas de endereçamento de redes tcp ip
Noções básicas de endereçamento de redes tcp ipNoções básicas de endereçamento de redes tcp ip
Noções básicas de endereçamento de redes tcp ip
 
T.A.R Aula 2 (1ª Unidade)
T.A.R Aula 2 (1ª Unidade)T.A.R Aula 2 (1ª Unidade)
T.A.R Aula 2 (1ª Unidade)
 
Aula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IPAula 6 - Redes de Computadores A - Endereçamento IP
Aula 6 - Redes de Computadores A - Endereçamento IP
 
I Pv6 Final 2
I Pv6 Final 2I Pv6 Final 2
I Pv6 Final 2
 
Rct 17 - camada de rede - endereçamento ip
Rct   17 - camada de rede - endereçamento ipRct   17 - camada de rede - endereçamento ip
Rct 17 - camada de rede - endereçamento ip
 
Módulo 08 o que é tcp-ip
Módulo 08   o que é tcp-ipMódulo 08   o que é tcp-ip
Módulo 08 o que é tcp-ip
 
T2 endereços ip
T2 endereços ipT2 endereços ip
T2 endereços ip
 
Protocolo IPv6
Protocolo IPv6Protocolo IPv6
Protocolo IPv6
 
Artigo ipv6
Artigo ipv6Artigo ipv6
Artigo ipv6
 
Endereço IP 1A REDES
Endereço IP 1A REDESEndereço IP 1A REDES
Endereço IP 1A REDES
 
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IP
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IPRedes de Computadores 2 - Aula 2 - Protocolo TCP/IP
Redes de Computadores 2 - Aula 2 - Protocolo TCP/IP
 
Redes de computadores 2 - Protocolos
Redes de computadores 2 - ProtocolosRedes de computadores 2 - Protocolos
Redes de computadores 2 - Protocolos
 
Camada de Rede
Camada de RedeCamada de Rede
Camada de Rede
 
Tutorial sobre protocolo TCP/IP
Tutorial sobre protocolo TCP/IPTutorial sobre protocolo TCP/IP
Tutorial sobre protocolo TCP/IP
 

Similar to IPv6 endereços e hierarquia de rede

IPv6 básico - Tiago Valtrick
IPv6 básico - Tiago ValtrickIPv6 básico - Tiago Valtrick
IPv6 básico - Tiago ValtrickTchelinux
 
Diferenças entre IPV4 e IPV6
Diferenças entre IPV4 e IPV6Diferenças entre IPV4 e IPV6
Diferenças entre IPV4 e IPV6José Alyson
 
Apresentação i pv6
Apresentação i pv6Apresentação i pv6
Apresentação i pv6PeslPinguim
 
Modelo OSI - Camada de Rede
Modelo OSI - Camada de RedeModelo OSI - Camada de Rede
Modelo OSI - Camada de RedeWalyson Vëras
 
Palestra IPv6 Estácio Parangaba - 10-05
Palestra IPv6 Estácio Parangaba - 10-05Palestra IPv6 Estácio Parangaba - 10-05
Palestra IPv6 Estácio Parangaba - 10-05Silvana Correa
 
Redes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IPRedes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IPMauro Tapajós
 
Redes - Enderecamento IP
Redes - Enderecamento IPRedes - Enderecamento IP
Redes - Enderecamento IPLuiz Arthur
 
Redes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPRedes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPMauro Tapajós
 
Capítulo 20 camada de rede - internet protocol
Capítulo 20   camada de rede - internet protocolCapítulo 20   camada de rede - internet protocol
Capítulo 20 camada de rede - internet protocolFaculdade Mater Christi
 
Aula 5 - Serviços e protocolos da camada de rede e transporte (1).pptx
Aula 5 - Serviços e protocolos da camada de rede e transporte (1).pptxAula 5 - Serviços e protocolos da camada de rede e transporte (1).pptx
Aula 5 - Serviços e protocolos da camada de rede e transporte (1).pptxDELYDASILVALIMANETO
 
Palestra 2º Café com Software Livre - Alan C. Besen - Ipv6: A nova internet?!
Palestra 2º Café com Software Livre -  Alan C. Besen - Ipv6: A nova internet?! Palestra 2º Café com Software Livre -  Alan C. Besen - Ipv6: A nova internet?!
Palestra 2º Café com Software Livre - Alan C. Besen - Ipv6: A nova internet?! blusolsl
 

Similar to IPv6 endereços e hierarquia de rede (20)

IPv6 básico - Tiago Valtrick
IPv6 básico - Tiago ValtrickIPv6 básico - Tiago Valtrick
IPv6 básico - Tiago Valtrick
 
Diferenças entre IPV4 e IPV6
Diferenças entre IPV4 e IPV6Diferenças entre IPV4 e IPV6
Diferenças entre IPV4 e IPV6
 
Apresentação i pv6
Apresentação i pv6Apresentação i pv6
Apresentação i pv6
 
Modelo OSI - Camada de Rede
Modelo OSI - Camada de RedeModelo OSI - Camada de Rede
Modelo OSI - Camada de Rede
 
Conteúdo de IPV6
Conteúdo de IPV6Conteúdo de IPV6
Conteúdo de IPV6
 
Palestra IPv6 Estácio Parangaba - 10-05
Palestra IPv6 Estácio Parangaba - 10-05Palestra IPv6 Estácio Parangaba - 10-05
Palestra IPv6 Estácio Parangaba - 10-05
 
Redes sem FIO
Redes sem FIORedes sem FIO
Redes sem FIO
 
Redes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IPRedes I -7.Introdução ao TCP/IP
Redes I -7.Introdução ao TCP/IP
 
Protocolos - IPV6
Protocolos - IPV6Protocolos - IPV6
Protocolos - IPV6
 
Redes - Enderecamento IP
Redes - Enderecamento IPRedes - Enderecamento IP
Redes - Enderecamento IP
 
Endereçamento IPv6
Endereçamento IPv6Endereçamento IPv6
Endereçamento IPv6
 
Redes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPRedes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IP
 
Capítulo 20 camada de rede - internet protocol
Capítulo 20   camada de rede - internet protocolCapítulo 20   camada de rede - internet protocol
Capítulo 20 camada de rede - internet protocol
 
Camada rede
Camada redeCamada rede
Camada rede
 
Ipv4 e ipv6
Ipv4 e ipv6Ipv4 e ipv6
Ipv4 e ipv6
 
I pv6
I pv6I pv6
I pv6
 
Aula 5 - Serviços e protocolos da camada de rede e transporte (1).pptx
Aula 5 - Serviços e protocolos da camada de rede e transporte (1).pptxAula 5 - Serviços e protocolos da camada de rede e transporte (1).pptx
Aula 5 - Serviços e protocolos da camada de rede e transporte (1).pptx
 
Palestra 2º Café com Software Livre - Alan C. Besen - Ipv6: A nova internet?!
Palestra 2º Café com Software Livre -  Alan C. Besen - Ipv6: A nova internet?! Palestra 2º Café com Software Livre -  Alan C. Besen - Ipv6: A nova internet?!
Palestra 2º Café com Software Livre - Alan C. Besen - Ipv6: A nova internet?!
 
R&C 0501 07 1
R&C 0501 07 1R&C 0501 07 1
R&C 0501 07 1
 
Artigo IPv6
Artigo IPv6Artigo IPv6
Artigo IPv6
 

More from Luiz Arthur

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Luiz Arthur
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãLuiz Arthur
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Luiz Arthur
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Luiz Arthur
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Luiz Arthur
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsLuiz Arthur
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterLuiz Arthur
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na webLuiz Arthur
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookLuiz Arthur
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.orgLuiz Arthur
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Luiz Arthur
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Luiz Arthur
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologiaLuiz Arthur
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105Luiz Arthur
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computaçãoLuiz Arthur
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação CLuiz Arthur
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonLuiz Arthur
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-segurancaLuiz Arthur
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redesLuiz Arthur
 

More from Luiz Arthur (20)

Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
Pint of Science - Cibersegurnça x ciberameaças: Até onde você está seguro?
 
Desafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhãDesafios da cibersegurança - ontem, hoje e amanhã
Desafios da cibersegurança - ontem, hoje e amanhã
 
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
Slides - Uma abordagem autonômica para mitigar ciberataques em redes de compu...
 
NAPSOL
NAPSOLNAPSOL
NAPSOL
 
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
Uma Arquitetura Autonômica para Detecção e Reação a Ameaças de Segurança em R...
 
Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...Detecção de alertas de segurança em redes de computadores usando redes sociai...
Detecção de alertas de segurança em redes de computadores usando redes sociai...
 
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security AlertsEvaluating the Utilization of Twitter Messages as a Source of Security Alerts
Evaluating the Utilization of Twitter Messages as a Source of Security Alerts
 
Análise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no TwitterAnálise de Mensagens de Segurança Postadas no Twitter
Análise de Mensagens de Segurança Postadas no Twitter
 
match making e propaganda na web
match making e propaganda na webmatch making e propaganda na web
match making e propaganda na web
 
Mineração de dados no Gmail e Facebook
Mineração de dados no Gmail e FacebookMineração de dados no Gmail e Facebook
Mineração de dados no Gmail e Facebook
 
Invasao kernel.org
Invasao kernel.orgInvasao kernel.org
Invasao kernel.org
 
Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)Núcleo do Linux (Kernel Linux)
Núcleo do Linux (Kernel Linux)
 
Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2Palestra Ferramentas de Segurança Open Source v.2
Palestra Ferramentas de Segurança Open Source v.2
 
Palestra mau uso da tecnologia
Palestra mau uso da tecnologiaPalestra mau uso da tecnologia
Palestra mau uso da tecnologia
 
UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105UTFPR-inventario-patrimonio-laboratorio-e105
UTFPR-inventario-patrimonio-laboratorio-e105
 
01 programação - introdução computação
01 programação - introdução computação01 programação - introdução computação
01 programação - introdução computação
 
Bibliografia recomendada - programação C
Bibliografia recomendada - programação CBibliografia recomendada - programação C
Bibliografia recomendada - programação C
 
Bibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-pythonBibliografia recomendada-programacao-python
Bibliografia recomendada-programacao-python
 
Bibliografia recomendada-seguranca
Bibliografia recomendada-segurancaBibliografia recomendada-seguranca
Bibliografia recomendada-seguranca
 
Bibliografia recomendada-redes
Bibliografia recomendada-redesBibliografia recomendada-redes
Bibliografia recomendada-redes
 

IPv6 endereços e hierarquia de rede

  • 1. 1 IPv6 - Linux Luiz Arthur IPv6 é o novo protocolo da camada de rede (no modelo OSI), ou a camada de Inter-rede (no modelo TCP/IP) o qual sucede o IPv4 (conhecido apenas como IP). O IPv4 foi projetado a muito tempo atrás e seu endereçamento esta deixando a desejar na Internet atual. Por isto, a maior diferença entre o IPv6 quanto ao IPv4 é com certeza o aumento do tamanho de representação de hosts dentro do cabeçalho IPv6 que passa de 32 bits para 128 bits. Isto possibilita endereças bilhares de máquinas sem se preocupar com a falta de endereços representados na rede. O Linux começou a tratar o IPv6 em novembro de 1996 com o Kernel 2.1.8, mas foram códigos experimentais nada muito sério, sendo então tratado com mais rigor em outubro de 2000, no Kernel 2.4 e 2.6. Formato do endereçamento do IPv6 Um número de 128 bits é muito longo, e se fosse representado em decimal, tal como o IPv4 seriam necessário ~39 dígitos. Isto tornaria o endereço IPv6 difícil de se memorizar. Assim, o IPv6 adotou um esquema de endereçamento em hexadecimal, neste esquema endereçamos representamos de uma só vez 4 bits (conhecidos como nibble) que são representados por dígitos 0-9 ou caracteres a-f (10-15). Este formato reduz o endereçamento para 32 caracteres.
  • 2. 2 IPv6 - Linux Luiz Arthur Para melhorar o aspecto esses números foram separados de 16 em 16 bits tal como: 2001:0db8:0100:f101:0210:a4ff:fee3:9566 Uma seqüência de blocos de 16 bits contento apenas zeros podem ser representado por “::”, mas somente uma vez. 2001:0bd8:100:f101:0:0:0:1 é igual a 2001:bd8:100:f101::1 Uma boa redução de um endereço IPv6 seria: 0000:0000:0000:0000:0000:0000:00000:0001 a forma abreviada seria ::1 Esta forma de endereçamento é chamada de compacta (compact, ou codificada na base85).
  • 3. 3 IPv6 - Linux Luiz Arthur Endereços especiais De todo espaço de endereçamento IPv6, apenas 15% estão previamente alocado para uso, ficando os 85% restantes reservados para o futuro. O endereço IPv6 que representa a interface de loopback, similar ao 127.0.0.1 do IPv4 é: 0000:0000:0000:0000:0000:0000:0000:0001 ou comprimido: ::1 Endereços de mapeamento entre IPv4 e IPv6 A terceira forma de representação, mais conveniente quando em ambientes mistos com hosts IPv4 e IPv6, é da forma x:x:x:x:x:x:d:d:d:d, onde os "x" são números hexadecimais (16 bits) e os "d" são valores decimais de 8 bits referentes à representação padrão já bem conhecida do IPv4.
  • 4. 4 IPv6 - Linux Luiz Arthur Espera-se que o IPv6 conviva por muito tempo com o IPv4, desta forma, criou-se um esquema de endereço IPv6 para fazer mapeamentos aos endereços IPv4, tal como: 0:0:0:0:0:ffff:a.b.c.d/96 na forma comprimida o formato é: ::ffff:a.b.c.d/96 Por exemplo, o endereço IPv4 192.168.1.100 ficaria no IPv6 com: ::ffff:192.168.1.100 O contrário também é possível ou seja IPv4 no IPv6 tal endereço é representado da seguinte forma: 0:0:0:0:0:0:a.b.c.d/96 no formato comprimido: ::a.b.c.d/96
  • 5. 5 IPv6 - Linux Luiz Arthur Endereço não especificado Em IPv4 “0.0.0.0” ou “any” é representado no IPv6 por: 0000:0000:0000:0000:0000:0000:0000:0000 ou :: Prefixos (tipos de endereços IPv6) Especificamente, o prefixo definido pelos primeiros bits do endereço indica cada tipo de endereço IPv6. O campo variável que compreende esses bits é denominado Format Prefix (FP). Aggregatable Global Unicast Addresses Este é o endereço unicast que será globalmente utilizado na Internet. Seu novo formato possui sete campos: o prefixo de 3 bits (001), um identificador TLA (Top-Level Aggregation), um campo RES reservado, um identificador NLA (Next- Level Aggregation), um identificador SLA (Site-Level Aggregation) e o identificador da interface: bits: 3 13 8 24 16 64 FP TLA ID RES NLA ID SLA ID InterfaceID
  • 6. 6 IPv6 - Linux Luiz Arthur Local-Use IPv6 Address Existem dois de endereços para uso local: link-local e site-local. Link-local : endereço identificado por um prefixo de 10 bits (1111111010), definido para uso interno num único enlace para funções como auto- configuração de endereços, descoberta do vizinho (neighbor discovery) ou quando não há roteador. Estações ainda não configuradas, ou com um endereço global unicast ou com um site-local, poderão utilizar um endereço link-local. Os roteadores não devem repassar pacotes com endereço fonte ou destino deste tipo; Um endereço de link local tem os seguintes prefixos: fe8X: (o mais utilizado), fe9X:, feaX: e febX:. Onde “X” é um caracter hexadecimal normalmente o “0” Site-local: endereço identificado pelo prefixo de 10 bits (1111111011), definido para uso interno numa organização que não se conectara à Internet, e não há necessidade de uso de um prefixo global. Os roteadores não devem repassar pacotes cujos endereços origem ou destino sejam endereços site-local. Um endereço site-local é identificado pelos prefixos: fecX: (o mais utilizado), fedX:, feeX: e fefX. Onde “X” deve ser subustituido por um caracter hexadecimal, sendo normalmente o “0”.
  • 7. 7 IPv6 - Linux Luiz Arthur Os endereços IPv6 unicast foram projetados assumindo que os sistemas de roteamento da Internet repassam pacotes baseado num algoritmo de cálculo do prefixo mais longo, sem nenhum conhecimento da estrutura interna do endereço IPv6. O tipo específico de endereço IPv6 é indicado pelos primeiros bits do endereço (FP). Dentre os tipos de endereços unicast apresentados anteriormente, foram apresentados os endereços Aggregatable Global Unicast Addresses a serem globalmente utilizados na Internet e definidos pelo formato de prefixo (FP = 001) para suportar a agregação provider-based, definida inicialmente pela RFC 1884, e um novo tipo de agregação denominada como exchange-based. Esta combinação permitirá uma agregação eficiente de rotas, tanto para sites conectados a provedores, quanto para aqueles conectados aos pontos de troca de tráfego (exchanges). 3 13 8 24 16 64 FP TLA ID RES NLA ID SLA ID InterfaceID sendo: FP - Format Prefix de 3 bits, neste caso igual a 001; TLA ID - Identificador Top-Level Aggregation de 13 bits; RES - 8 bits reservados para uso futuro, e deve ter todos os bits zerados; NLA ID - Identificador Next-Level Aggregation de 24 bits; SLA ID - Identificador Site-Level Aggregation de 16 bits; Interface ID - Identificador da interface de 64 bits.
  • 8. 8 IPv6 - Linux Luiz Arthur Em termos de topologia, essa estrutura permite uma organização em três níveis hierárquicos: pública, site e identificador de interface. A topologia pública (campos TLA, RES, e NLA) reflete o conjunto de provedores de serviços Internet, provedores de trânsito e pontos de troca de tráfego. A topologia site (campos SLA) tem abrangência local, uma organização específica que não provê serviços de trânsito para outras organizações ou sites. Já o identificador de interface (campos Interface ID), como o próprio nome indica, identifica a interface do node. Top-Level Aggregation ID Os identificadores TLA são o topo da hierarquia de roteamento. Este formato suporta 8.192 (213) identificadores TLA, que podem ser aumentados ou através do aumento do tamanho do campo TLA, utilizando os bits reservados do campo RES, ou utilizando um prefixo de formato adicional. Os roteadores default-free devem ter uma entrada na tabela de roteamento para cada TLA ID ativo, e podem ter entradas adicionais para otimizar o roteamento de suas topologias específicas. Mas, em todos os níveis, a topologia de roteamento deve ser projetada para minimizar a quantidade de entradas na tabela de roteamento. Está sendo produzido um documento específico para o campo TLA.
  • 9. 9 IPv6 - Linux Luiz Arthur Site-Level Aggregation ID O identificador SLA é utilizado por uma organização individual, que é responsável para definir a estrutura de endereços do espaço SLA. Dentro deste espaço, a organização pode criar localmente sua própria estrutura de endereçamento hierárquica, num procedimento similar às divisão em sub-redes do IPv4, só que com um número muito maior de sub-redes. Interface ID Os identificadores de interface (Interface ID), como o próprio nome indica, são utilizados para identificar interfaces de um enlace específico e devem ser únicos para esse link. Também devem ser únicos num escopo mais abrangente. Em muitos casos, o identificador de interface será o endereço de interface da camada de enlace ou obtido a partir deste. Endereços IPv6 de Produção Atualmente, já estão sendo oferecidos endereços IPv6 de produção pelos três Regional Internet Registries (RIR): ARIN, RIPE NCC e APNIC. Inicialmente, foi reservado pela IANA o prefixo TLA 2001::/16 para endereçamento de produção. Sob esse prefixo, são alocados os identificadores para backbones, utilizando para isso o campo Sub-TLA. O tamanho do prefixo mínimo alocado é de 35 bits.
  • 10. 10 IPv6 - Linux Luiz Arthur O processo de alocação utiliza um procedimento chamado slow start. Ao se obter um identificador Sub-TLA, os 6 bits seguintes são reservados pelo RIR que fez a alocação. O RIR só fará alocações subseqüentes desse espaço reservado quando a organização tiver utilizado pelo menos 80% do espaço previamente alocado. Endereçamento no 6Bone Com o propósito de utilizar o mínimo do espaço de endereçamento de produção IPv6, a IANA alocou ao Projeto 6Bone o prefixo TLA 3FFE::/16. Esse endereço é especificado no RFC 2471 - IPv6 Testing Address Allocation. Sob esse prefixo, o 6Bone criou um formato próprio para o particionamento de seu espaço endereços. Esse formato é baseado no utilizado em endereços de produção, especificado no RFC 2374 - An IPv6 Aggregatable Global Unicast Address Format. O suporte ao IPv6 no Kernel Linux Para que seu computador de suporte ao novo protocolo IPv6 é necessário que este esteja sendo executado pelo Kernel (núcleo do Sistema Operacional), uma forma de verificar se este está ou não no Kernel e verificando a existência do arquivo /proc/net/if_inet6, para tanto é possível executar o seguinte comando: # test -f /proc/net/if_inet6 && echo "O Kernel está executando IPv6”
  • 11. 11 IPv6 - Linux Luiz Arthur Se tudo estiver bem, será apresentado a mensagem "O Kernel está executando IPv6”, caso contrário não será apresentada mensagem alguma e o Kernel não esta dando suporte ao Ipv6. Carregando modulo IPv6 no Kernel Linux Uma forma simples de dar suporte ao IPv6, é carregando o modulo do IPv6 no kernel. Para tanto basta executar o seguite comando: #modprobe ipv6 Agora para ter a certeza que este modulo foi atribuído ao Kernel Linux basta executar o seguinte comando: # lsmod |grep -w 'ipv6' && echo "O IPv6 foi carregado corretamente” Caso seja mostrado a mensagem "O IPv6 foi carregado corretamente” o Linux estará pronto para trabalhar com o IPv6, caso contrário será necessário re-compilar o Kernel. Caso queira-se trabalhar com freqüência com o IPv6 é melhor carregar o modulo do IPv6 sempre que o Linux for iniciado no computador, para tanto basta editar os arquivos /etc/modules.conf ou /etc/conf.modules, e acrescentar a seguinte linha: alias net-pf-10 ipv6 # automatically load IPv6 module on demand
  • 12. 12 IPv6 - Linux Luiz Arthur Verificando se as ferramentas de configuração de rede estão prontas para o IPv6 Os pacotes de programas que tratam de aspectos de rede devem dar suporte ao IPv6 para que possamos configurar corretamente os serviços, para tanto podemos executar os seguinte comandos: # ifconfig -? 2>& 1|grep -qw 'inet6' && echo "ifconfig pronto para o IPv6" # route -? 2>& 1|grep -qw 'inet6' && echo "route pronto para o IPv6" # ip 2>&1 |grep -qw 'inet6' && echo "ip pronto para o IPv6" Caso exista uma saída para os comandos anteriores o IPv6 está pronto para ser implementado, caso contrário você precisará reinstalar tais ferramentas com suporte a Ipv6. O comando ip é atualmente o comando que dá mais suporte a configuração de redes, este por exemplo, substitui os comandos ifconfig e route, implementando ainda funções avançadas de configuração de redes (que não estão disponíveis nos comandos ifconfig e route), porém as distribuições Linux mais antigas podem não possuir tal ferramenta de rede.
  • 13. 13 IPv6 - Linux Luiz Arthur Configurando Interfaces com IPv6 Para configurar a interfaces de rede com IPv6 podemos utilizar o tanto o comando ifconfig quanto o ip. Usando o ifconfig: Vamos dar uma olhada na interface lo, e ver se o endereço IPv6 está correto: #ifconfig lo lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:760 (760.0 b) TX bytes:760 (760.0 b) Bem a saída anterior é apresentada antes do modulo IPv6 ser carregada no Kernel, o comando a seguir mostra o mesmo comando já com a adição de suporte do IPv6 no Kernel.
  • 14. 14 IPv6 - Linux Luiz Arthur # ifconfig lo lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:760 (760.0 b) TX bytes:760 (760.0 b) Agora podemos observar no comando anterior a existência de uma nova linha à: inet6 addr: ::1/128 Scope:Host. Tal linha indica a presença do endereço localhost ::1 atribuído a uma interface local via IPv6. Logo após iniciar o modulo IPv6 no Kernel Linux, podemos ligar, por exemplo, a primeira placa de rede Ethernet do computador, para isto iremos apenas executar o comando: #ifconfig eth0 up
  • 15. 15 IPv6 - Linux Luiz Arthur Em seguida podemos verificar o status desta placa de rede com o comando ifconfig e a saída será algo como: #ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:6E:0D:A6:DF inet6 addr: fe80::20c:6eff:fe0d:a6df/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:238 (238.0 b) Interrupt:11 Base address:0xe000 Podemos observar que existe um endereço inet6 (IPv6) atribuído a interface, tal endereço é atribuído automaticamente pelo IPv6, baseado no endereço físico da placa de rede. Está prática pode ser utilizada para substituir servidores DHCP. Atribuindo endereços IPv6 com o ifconfig: #ifconfig <interface> inet6 add <ipv6address>/<prefixlength> Exemplo: #ifconfig eth0 inet6 add 2001:0db8:0:f101::1/64
  • 16. 16 IPv6 - Linux Luiz Arthur Já para remover um endereço IPv6 utilize as seguintes opções: #ifconfig <interface> inet6 del <ipv6address>/<prefixlength> Exemplo: #ifconfig eth0 inet6 del 2001:0db8:0:f101::1/64 Usando o comando ip: Para ligar ou desligar as interfaces de rede com o comando ip, utilize os seguintes comando respectivamente: # ip link set dev <interface> up # ip link set dev <interface> down Exemplo: # ip link set dev eth0 up # ip link set dev eth0 down
  • 17. 17 IPv6 - Linux Luiz Arthur Já para verificar o status das interfaces utilize as seguintes opções: # /sbin/ip -6 addr show dev <interface> Exemplo: #ip -6 addr show dev eth0 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> qlen 1000 inet6 fe80::20c:6eff:fe0d:a6df/64 scope link Atribuindo endereços IPv6 via comando ip: #ip -6 addr add <ipv6address>/<prefixlength> dev <interface> Exemplo: #ip -6 addr add 2001:0db8:0:f101::1/64 dev eth0 Removendo endereços IPv6 com o comando ip: #ip -6 addr del <ipv6address>/<prefixlength> dev <interface> Exemplo: #ip -6 addr del 2001:0db8:0:f101::1/64 dev eth0
  • 18. 18 IPv6 - Linux Luiz Arthur Configurando rotas com IPv6 Exibindo rotas existentes, para tanto você pode utilizar o ip ou o route: #ip -6 route show [dev <device>] Exemplo: ip -6 route show dev eth0 2001:0db8:0:f101::/64 proto kernel metric 256 mtu 1500 advmss 1440 fe80::/10 proto kernel metric 256 mtu 1500 advmss 1440 ff00::/8 proto kernel metric 256 mtu 1500 advmss 1440 default proto kernel metric 256 mtu 1500 advmss 1440 Ou: #route -A inet6 |grep -w "eth0" 2001:0db8:0:f101 ::/64 :: UA 256 0 0 eth0 <-Interface route for global address fe80::/10 :: UA 256 0 0 eth0 <-Interface route for link-local address ff00::/8 :: UA 256 0 0 eth0 <-Interface route for all multicast addresses ::/0 :: UDA 256 0 0 eth0 <-Automatic default route
  • 19. 19 IPv6 - Linux Luiz Arthur Adicionando uma rota para um gateway: #ip -6 route add <ipv6network>/<prefixlength> via <ipv6address> [dev<device>] Exemplo: #ip -6 route add 2000::/3 via 2001:0db8:0:f101::1 Ou: #route -A inet6 add <ipv6network>/<prefixlength> gw <ipv6address> [dev<device>] Exemplo: #route -A inet6 add 2000::/3 gw 2001:0db8:0:f101::1 Para remover a rota basta substituir o add por del tanto no comando ip quanto no route.
  • 20. 20 IPv6 - Linux Luiz Arthur Adicionando rotas através de interfaces Não freqüentemente é necessário fazer rotas ponto-a-ponto, para é possível utilizar os seguintes comandos: #ip -6 route add <ipv6network>/<prefixlength> dev <device> metric 1 Exemplo: #ip -6 route add 2000::/3 dev eth0 metric 1 Ou: #route -A inet6 add <network>/<prefixlength> dev <device> Exemplo: #route -A inet6 add 2000::/3 dev eth0 Novamente para apagar este tipo de rota execute substitua a opção add por del.
  • 21. 21 IPv6 - Linux Luiz Arthur Ping no IPv6 O comando ping que é utilizado para enviar mensagens ICMP e descobrir se hosts estão ou não disponíveis na rede, também existe na IPv6, mas é o ICMPv6. Para utilizar tal funcionalidade utilize o seguinte comando: # ping6 <hostwithipv6address> # ping6 <ipv6address> # ping6 [-I <device>] <link-local-ipv6address> Exemplo: # ping6 -c 1 ::1 PING ::1(::1) from ::1 : 56 data bytes 64 bytes from ::1: icmp_seq=0 hops=64 time=292 usec --- ::1 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max/mdev = 0.292/0.292/0.292/0.000 ms
  • 22. 22 IPv6 - Linux Luiz Arthur Usando um endereço link-local, o Kernel não conhece a interface física ou virtual, e teremos como resultado um erro, tal como: # ping6 fe80::212:34ff:fe12:3456 connect: Invalid argument Neste caso temos que especificar a interface de rede, tal como: # ping6 -I eth0 -c 1 fe80::2e0:18ff:fe90:9205 PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from ¬ fe80::212:34ff:fe12:3478 eth0: 56 data bytes 64 bytes from fe80::212:23ff:fe12:3456: icmp_seq=0 hops=64 time=445 usec --- fe80::2e0:18ff:fe90:9205 ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max/mdev = 0.445/0.445/0.445/0.000 ms Utilizando ping com endereços multicast Para pingar um endereço multicast o comando é: # ping6 -I eth0 ff02::1 PING ff02::1(ff02::1) from fe80:::2ab:cdff:feef:0123 eth0: 56 data bytes 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.104 ms 64 bytes from fe80::212:34ff:fe12:3450: icmp_seq=1 ttl=64 time=0.549 ms (DUP!)
  • 23. 23 IPv6 - Linux Luiz Arthur IPv6 com o traceroute6 O traceroute6 é similar ao traceroute do IPv4, por exemplo: # traceroute6 www.6bone.net traceroute to 6bone.net (3ffe:b00:c18:1::10) from 2001:0db8:0000:f101::2, 30 ¬ hops max, 16 byte packets 1 localipv6gateway (2001:0db8:0000:f101::1) 1.354 ms 1.566 ms 0.407 ms 2 swi6T1-T0.ipv6.switch.ch (3ffe:2000:0:400::1) 90.431 ms 91.956 ms 92.377 ms 3 3ffe:2000:0:1::132 (3ffe:2000:0:1::132) 118.945 ms 107.982 ms 114.557 ms 4 3ffe:c00:8023:2b::2 (3ffe:c00:8023:2b::2) 968.468 ms 993.392 ms 973.441 ms 5 3ffe:2e00:e:c::3 (3ffe:2e00:e:c::3) 507.784 ms 505.549 ms 508.928 ms 6 www.6bone.net (3ffe:b00:c18:1::10) 1265.85 ms * 1304.74 ms Outro programa parecido com o traceroute6 é o tracepath6, porém este descobre o MTU ao longo do caminho entre os hosts. Por exemplo: # tracepath6 www.6bone.net 1?: [LOCALHOST] pmtu 1480 1: 3ffe:401::2c0:33ff:fe02:14 150.705ms 2: 3ffe:b00:c18::5 267.864ms 3: 3ffe:b00:c18::5 asymm 2 266.145ms pmtu 1280 3: 3ffe:3900:5::2 asymm 4 346.632ms 4: 3ffe:28ff:ffff:4::3 asymm 5 365.965ms 5: 3ffe:1cff:0:ee::2 asymm 4 534.704ms 6: 3ffe:3800::1:1 asymm 4 578.126ms !N Resume: pmtu 1280
  • 24. 24 IPv6 - Linux Luiz Arthur Outro comando útil para análise de redes IPv6 é o tcpdump, este que permite a analise de trafego da rede, tal comando implementa as seguintes opções para a analise de uma rede IPv6: ● icmp6: filtra trafego ICMPv6; ● ip6: filtra trafego IPv6 (incluindo ICMPv6) ● proto ipv6: filtra tuneis IPv6-in-IPv4. Exemplos de comando tcpdump com IPv6: # tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6 tcpdump: listening on eth0 2001:0db8:100:f101:2e0:18ff:fe90:9205 > 2001:0db8:100:f101::1: icmp6: echo request (len 64, hlim 64) 2001:0db8:100:f101::1 > 2001:0db8:100:f101:2e0:18ff:fe90:9205: icmp6: echo reply (len 64, hlim 64)
  • 25. 25 IPv6 - Linux Luiz Arthur fim