IPv6 128 bits
IPv4 32 bits
Atribuição de Prefixos:
Registry Prefix -> Assignado pelo IANA a um RIR e.x. 2310::/12
ISP Prefix -> Assignado pelo RIR a um ISP e.x. 2310:1111:/32
Site Prefix ou Global Prefix-> Assignado por um ISP ou registry a o customer(site) e.x. 2310:1111:2222::/48
Subnet Prefix-> Assignado por um Engineer a um link e.x. 2310:1111:2222:3333::/64
Tipos de Endereços IPv6:
Address Type | Range | Application | RFC |
Aggregatable global unicast | 2000::/3 | Host-to-host communication; same as IPv4 unicast. | RFC 3587 RFC 3177 |
Multicast | FF00::/8 | One-to-many and many-to-many communication; same as IPv4 multicast. | |
Anycast | Same as Unicast | Application-based, including load balancing, optimizing traffic for a particular service, and redundancy. Relies on routing metrics to determine the best destination for a particular host. |
RFC 2526 |
Link-local unicast | FE80::/10 | Connected-link communications. | |
Solicited-node multicast | FF02::1:FF00:0/104 | Neighbor solicitation. |
Aggregatable global unicast
Os Aggregatable global address prefixes são estruturados de forma a serem sumarizados e agregados sob uma hierarquia consistente, com base no RFC 3177, começam após os primeiros 3 bits no prefixo:
- Os 45 bits seguintes representam o global routing prefix
- Os últimos 16 bits no prefixo antes do Interfacede ID, são os referentes ao Site Level Level Aggregator (SLA). Estes bits devem ser usados pela organização no seu endereçamento hierárquico interno. Este campo é conhecido como Subnet ID
Os restantes 64 bits representam o interface ID
2000(3bits)+GlobalPrefix(48bits)+SLA(16bits)+InterfaceID(64bits)
Link-Local Addresses
O endereço Link-local começa sempre com FE80::/10. O interface ID deriva do formato EUI-64. Os restantes 54 bits no prefixo são sempre definidos como 0.
Nas interfaces Ethernet o MAC-Add é a base do Interafce ID no Link-Local, para outros tipos de interfaces é utilizado uma pool de endereços MAC virtual para gerar os Interface ID. Por definição o endereço link-local não é roteavel.
Multicast
Uma vez que o IPv6 não tem o conceito de broadcast, usa multicast em todas as funções á semelhança do broascast no IPv4. Por exemplo, o DHCP IPv6 usa multicast para envar tráfego para um host desconhecido na rede local.
IPv6 Multicast Address Format
Os endereços Multicast no IPv6 começam sempre com FF no 1º octecto do endereço, ou FF00::/8. O 2º octecto especifica o lifetime e scope do grupo multicast. O Lifetime pode ser permanente ou temporário.
O Scope pode ser local para qualquer um dos seguintes:
- Node (bin 0001)
- Link (bin 0010)
- Site (bin 0101)
- Organization (bin 1000)
- Global (bin 1110)
FF(8bits)+Lifetime(4bits)+Scope(4bits)+000….(48bits)+InterfaceID(64bits)
Function | Multicast Group | IPv4 Equivalent |
All hosts | FF02::1 | Subnet broadcast address |
All Routers | FF02::2 | 224.0.0.2 |
OSPFv3 routers | FF02::5 | 224.0.0.5 |
OSPFv3 designated routers | FF02::6 | 224.0.0.6 |
RIP v2 | FF02::9 | 224.0.0.9 |
EIGRP routers | FF02::A | 224.0.0.10 |
PIM routers | FF02::D | 224.0.0.13 |
DHCP relay agents (routers that forward to the DHCP server) | FF02:1:2 | N/A |
DHCP servers (site scope) | FF05::1:3 | N/A |
ALL NTP servers (site scope) | FF05::101 | N/A |
Anycast
O formato dos endereços anycast é igual aos do unicast. O RFC 2526 recomenda um range de endereços a usar para aplicações Anycast.
The Unspecified Address
Este endereço representa-se desta forma ::. . O Unspecified Address é sempre usado como source address por uma interface que ainda não aprendeu o seu endereço unicast. Este não pode ser assignado a uma interface e usado como endereço de destino.
Method | Dynamic or Static | Prefix and length learned from… | Host learned from… | Default router learned from… | DNS addresses learned from… |
Stateful DHCP | Dynamic | DHCP Server | DHCP Server | Router, using NDP | (Stateful) DHCP Server |
Stateless autoconfig | Dynamic | Router, using NDP | Derived from MAC | Router, using NDP | Stateless DHCP |
Static config | Static | Local config | Local config | Router, using NDP | Stateless DHCP |
Static config with EUI-64 | Static | Local config | Derived from MAC | Router, using NDP | Stateless DHCP |
Learning the Prefix/Length and Default Router with NDP Router Advertisements
O Neighbor Discovery Protocol (NDP) tem diversas funções. Uma das funções permite aos Hosts enviar uma mensagem multicast para os routers no link anunciarem: o Default gateway e os prefixos IPv6 no link. Este processo utiliza mensagens ICMPv6, estas têm o nome de Router Solicitation (RS) e Router Advertisement (RA).
O IPv6 define endereços multicast para diferentes funções, por exemplo, as mensagens RS (com destino FF02::2) apenas são recebidas/processadas pelos Routers sendo que as RA (com destino FF02::1) são enviadas pelos routers e recebidas/processadas apenas pelos hosts IPv6.
Message | RS | RA |
Multicast destination | FF02::2 | FF02::1 |
Meaning of Multicast address | All routers on this link | All IPv6 nodes on this link |
Calculating the Interface ID Using EUI-64
Para criar automaticamente um único Interface ID, o IPv6 define o método para calcular o interface ID (64 bits) derivado do Mac-Address.
O processo EUI-64 utiliza os 6 bytes (48bits) do Mac-Address e expande-o até 64 bits, os 2 bytes (16 bits) são o valor hex FFFE e este é inserido no meio do Mac-Address. É necessário mudar o “universal/local bit” (bit 7 da esquerda para a direita) para o valor 1.
RFC 4291 – IP Version 6 Addressing Architecture
Mac-Address do Host – 0034:5678:9ABC
Interface ID formato EUI-64
00000000 (1ºs 8 bits do Mac-Address)
00000010 (mudando o “universal/local bit” para 1)
00000010 -> 02 hex Resultado: 0234:56FF:FE78:9ABC
Feature | Stateful DHCP | Stateless DHCP |
Remembers IPv6 address | Yes | Yes |
Assigns IPv6 address to client | Yes | Yes |
Supplies useful information, such as DNS server IP addresses | Yes | No |
Most useful in conjunction with stateless autoconfiguration | No | No |
Unicast IPv6 Addresses
O IPv6 suporta 3 tipos de unicast:
- Link local
- Global unicast
- Unique local
Unique Local IPv6 Addresses
O Unique Local Unicast tem a mesma função que o RFC 1918 no IPv4, relativo a endereços privados. O RFC 4193 refere que este endereços devem ser usados apenas internamente (rede privada) e não advertidos para a internet. Estes endereços começam como FD00::/8
O Interface ID poderá ser criado através de config estática ou através do EUI-64
Link Local Unicast Addresses
O IPv6 usa o Link Local para enviar e receber pacotes IPv6 numa única subnet. Existem diversas utilizações possíveis, apontando algumas:
- Usado como source address para as mensagens RS & RA
- Usado pelo Neighbor Discovery (equivalente ao ARP para o IPv6)
- IP Next-Hop para routing
By default, os routers utilizam um scope de Link Local para os pacotes enviados para um IP Link Local. Conforme o nome indica, os pacotes não saiem do Local Link, subnet. Caso o router receba pacotes com destino a outra subnet este não encaminha o tráfego.
Cada elemento da rede (host,router,etc) calcula o seu Local Link antes de enviar qualquer tráfego para a rede. Após calculado envia uma mensagem RS tendo como source o Link Local.
O Link Local começa com o range FE80::/10, sendo apenas os 1ºs 10 bits. O range pode variar entre FE80::/10, FE90::/10; FEA0::/10; FEB0::/10
IPv6 Unicast Address Summary
RFCs anteriores do IPv6 definiam o Site Local address Type como redes privadas á semelhança do IPv4. Este address Type foi descontinuado (RFC 3879)
Type of Address | Purpose | Prefix | Easily Seen Hex Prefix(es) |
Global unicast | Unicast packets sent through the public Internet | 2000::/3 | 2 or 3 |
Unique local | Unicast packets inside one organization | FD00::/8 | FD |
Link local | Packets sent in the local subnet | FE80::/10 | FE8 |
Site local | Deprecated; originall meant to be used like private IPv4 addresse | FECO::/1 | FEC, FED, FEE, FEF |
Unspecified | An address used when a host has no usable IPv6 address | ::/128 | N/A |
Loopback | Used for software testing, like IPv4’s 127.0.0.1 | ::1/128 | N/A |
Neighbor Discovery Protocol for Layer 2 Mapping
Se o MAC não for conhecido, o host/router utiliza o Neighbor Discovery Protocol para dinamicamente descobrir o mesmo. O ND é definido no RFC 2461
O processo funciona como o ARP no IPv4, mas com diferentes detalhes. Neste caso o PC1, envia uma mensagem multicast de nome Neighbor Solicitation (NS) ICMP message, pergunta ao R1 pelo seu Mac-Address. O R1 envia uma mensagem ICMP Neighbor Advertisement (NA), em unicast de retorno ao PC1, listando o seu Mac-address.
As mensagens NS usam um endereço multicast especial de nome Solicited Node Multicast. Em qualquer link, o endereço Solicited Node Multicast representa todos os hosts com os últimos 24 bits nos seus endereços IPv6.Enviando pacotes para o Solicited Node Multicast, o pacote chega ao host correcto, mas também chega a outros hosts. (Nota: Os pacotes enviados para o Solicited Node Multicast têm um scope Link Local).
O Solicited Node Multicast tem o endereço FF02::1:FF:0/104. Os últimos 24 bits (6 digitos Hex) do endereço são formados adicionando os últimos 24 bits do endereço IPv6 para o qual a mensagem está a ser enviada. Esta conceção permite convenientemente o uso de endereços multicast na LAN, que comece com 01005E Hex seguido por um valor 0 (binário) e os restantes 23 bits.
Neste exemplo o endereço IPv6 do R1: 2340:1111:AAAA:1:213:19FF:FE7B:5004, a mensagem de NS é enviada com o endereço FF02::1:FF:7B:5004
Nota: O MAC Ethernet correspondente seria 0100.5E7B.5004
As major roles do IPv6 ND incluem o seguinte:
- Stateless address autoconfiguration (detailed in RFC 2462)
- Duplicate address detection (DAD)
- Router discovery
- Prefix discovery
- Parameter discovery (link MTU, hop limits)
- Neighbor discovery
- Neighbor address resolution (replaces ARP, both dynamic and static)
- Neighbor and router reachability verification
Message Type | Information Sought or Sent | Source Address | Destination Address | ICMP Type, Code |
Router Solicitation (RS) |
Hosts query for the presence of routers on the link |
Address assigned to querying interface, if assigned, or :: if not assigned |
FF02::2 | 133,0 |
Router Advertisement (RA) |
Routers advertise their presence and link prefixes, MTU, and hop limits. |
Router’s link-local address |
FF02::1 for periodic broadcasts; address of querying host for responses to an RS |
134,0 |
Neighbor Solicitation (NS) | Hosts query for other nodes’ link-layer addresses. Used for duplicate address detection and to verify neighbor reachability. |
Address assigned to querying interface, if assigned, or :: if not assigned |
Solicited-node multicast address or the target node’s address, if known |
135,0 |
Neighbor Advertisement (NA) | Sent in response to NS messages and periodically to provide information to neighbors. |
Configured or automatically assigned address of originating interface |
Address of node requesting the NA or FF02::1 for periodic advertisements |
136,0 |
Redirect | Sent by routers to inform nodes of better next-hop routers. |
Link-local address of originating node |
Source address of requesting node |
137,0 |
Neighbor Solicitation
Os nodos IPv6 enviam NS messages para encontra o link-layer do neighbor específico. Esta message é usada para 3 operações:
- Duplicate address detection (DAD)
- Neighbor reachability verification
- Layer 3 to Layer 2 address resolution (as a replacement for ARP)
A resposta é NS message é a Neighbor Advertisement (NA).
Router Advertisement and Router Solicitation
Quando é configurado o comando ipv6 unicast-routing os routers iniciam o envio de mensagens RA, o intervalo de envio é de 200 segundos (by default). Este intervalo pode ser alterado usando o comando ipv6 nd ra-interval. Os RA incluem todos os prefixos configurados na interfave do router.
By Default, o router Cisco adverte-se como sendo o candidato a default gateway. Para não adverter o router como candidato usa-se o comando ipv6 nd ra-lifetime 0. O envio de RA com lifetime=0, informa os hosts para não usar este router.O comando ipv6 nd suppress-ra suprime o envio de RAs.
Se um host não tiver ainda endereço configurado, envia um RS com source unspecified address, caso contrário usa o endeço configurado.
Os hosts enviam RS messages para aprender os endereços dos routers no link.
Duplicate Address Detection (DAD)
Quando uma interface fica operacional, esta efectua o teste de DAD. O propósito é verificar se existe o endereço em causa já se encontra em uso por outro host.
Para efectuar esta verificação a interface utiliza uma mensagem NS (Neighbor Solicitation) para com algumas alterações.Para verificar o seu próprio IP, o host envia uma mensagem NS para o endereço Solicited Node Multicast (destination) baseado no seu próprio endereço IPv6. A source usada é unspecified address (::.), se existe um reply é mensagem estamos perante uma duplicação de IPs.
Na NS message é incluído o field Target Address (endereço a analisar).
Os hosts IPv6 usam este processo para verificar os endereços configurados estaticaticamente ou autoconfigured
Por exemplo: Um host com o IP 2001:128:1F:633:207:85FF: FE80:71B8, envia uma NS message para solicited-node address FF02::1:FE80:71B8/104. Na ausência de resposta não existe duplicação.
Neighbor Unreachability Detection
Existem 2 formas de confirmar o reachability (two-way) a um nodo:
- O host envia probes para o solicited-node multicast address e recebe RA/NA em resposta.
- A comunicação com um host onde existe TCP ACK
ICMPv6
RFC 2463 – Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
As mensagens ICMPv6 foram classificadas em 2 grupos: error reporting messages e informational messages. Para conservar largura de banda, o RFC 2463 sugere o rate-limit ICMPv6 error messages. O Cisco IOS permite rate-limiting definido o intervalo mínimo entre error messages permitindo um token bucket
R1(config)#ipv6 icmp error-interval
Intervalo Default (100ms), e o default token-bucket size são 10 tokens
Com esta config, um novo token (até um máx de 10) é adicionado ao bucket a cada 100ms. Quando o token bucket está full, podem ser enviadas no máx 10 ICMPv6 error messages. Uma vez o token bucket vazio, o router não pode enviar adicionalmente ICMPv6 error messages até um token ser adicionado ao bucket.
DNS
IPv6, RFC 1886 AAAA records
RFC 1886 e RFC 2874 DNS extensions.
DHCP
RFC 3315 – Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
Existem 2 condições para que o host use DHCPv6:
- O Host é configurado explicitamente para usar DHCPv6
- O router IPV6 adverte nas RA messages que os hosts devem usar DHCPv6. O router define a M flag (Managed Address Configuration) no RA
Na config Stateful autoconfiguration, o host envia um request DHCP para um dos endereços IPv6 conhecidos na porta UDP 547:
- FF02::1:2, all DHCP relay agents and servers
- FF05::1:3, all DHCP servers
O reply do server ao cliente é feito na porta UDP 546.
Configurar pool DHCPv6 no router
ipv6 dhcp server pool-name (comm interface)
Access Lists and Filter-traffic
A conceitos de filtragem de tráfego em IPv4 e IPv6 mantém-se, devem existir alguns cuidados da aplicação de access-lists para os network layer protocols:
- A sintaxe do uso de access-lists em IPv6 difere um pouco de IPv4, comando ipv6 traffic-filter access-list-name { in | out}
- As access-lists são sempre named, não podem ser numéricas (a menos que seja usado o n como name)
R1(config)#ipv6 access-list restrict-telnet
R1(config-ipv6-acl)# permit tcp any 2001:1:2:3::/64 eq telnet dscp cs1 log
R1(config-ipv6-acl)# deny tcp any any log-input
R1(config-ipv6-acl)# line vty 0 4
R1(config-line)# access-class restrict-telnet in
R1# show access-lists
IPv6 access list restrict-telnet
permit tcp any 2001:1:2:3::/64 eq telnet dscp cs1 log (1 match) sequence 10
deny ipv6 any any log-input (2 matches) sequence 20
R1#
!Filtragem de trafego IPv6
R2(config)# ipv6 access-list no-web
R2(config-ipv6-acl)# deny tcp any eq www 2001:8:128::/64
R2(config-ipv6-acl)# permit ipv6 any any
R2(config)# interface FastEthernet0/0
R2(config-int)# ipv6 traffic-filter no-web in
R2# show ipv6 access-list
IPv6 access list no-web
deny tcp any eq www 2001:8:128::/64 log-input (12 matches) sequence 10
permit ipv6 any any (119 matches) sequence 20
Inverse Neighbor Discovery
O Protocolo ND conhece o endereço IPv6 e procura descobrir o Link Layer Address usado por esse endereço IPv6. Em redes do tipo Frame-Relay ou outros tipos de WAN (Data Link Protocolos), a ordem de discovery é inversa. O Router começa por saber qual o Link Layer Address e necessita de aprender o endereço IPv6 do neighbor. No IPv4 á utilizado o ARP (LAN) e InverseARP (Frame-Relay), o IPv6 utiliza o ND e Inverser Neighbor Discovery (IND), como parte do protocolo ICMPv6 é definido a mensagem Inverse NS (INS) e Inverse NA (INA). A mensagem INS sabe qual o endereço do Link Layer do Neighbor (DLCI do Frame-Relay), e “pergunta “ pelo endereço IPv6 do neighbor. Os detalhes da mensagem INS incluem:
- Origem IPv6:IPv6 Unicast de quem enviou
- Destino IPv6: FF02::1 ( Todos os Hosts IPv6 Multicast)
- Endereços Link Layer
- Request: Please reply with your IPv6 address(es)
O reply do IND lista todos os endereços IPv6.
Configuring IPv6 Addresses on Cisco Routers
Sintaxe:
ipv6 address address/length
ipv6 address prefix /length eui-64
ipv6 address autoconfig
ipv6 address dhcp
ipv6 unnumbered interface-type number
ipv6 enable
ipv6 address address link-local
ipv6 address address/length anycast
Configuring Static IPv6 Addresses on Routers
O routing static funciona em IPv4 exatamente como no IPv4, mas com algumas alterações:
- Rota estática em IPv6 para uma interface tem métrica AD 1, e não zero como no IPv4
- Rota estática em IPv6 para uma interface do tipo broadcast (tipo ethernet), é obrigatório especificar o endereço IPv6 do next-hop pelas razões apresentadas de seguida
Conforme mencionado, as rotas estáticas IPv6 que apontam para interface do tipo broadcast (ethernet) devem especificar o next-hop. Isto deve-se ao IPv6 não usar ARP, não existem conceito de proxy-ARP no IPv6. O router next-hop não faz proxy para um destino diferente da Subnet.
A utilização do Comando debug ipv6 routing (antes de efetuar static/dynamic routing) é sem dúvida importante quando existe uma corrida contra o tempo.