Tag Archives: DNS

Some DNS Resources Compiled

Working a lot around Response Policy Zone (RPZ) these days, it’s better to start collecting some valuable tools, whitepapers, research, best practises, etc

DNS Servers

Name Description
BIND The most widely used DNS software on the Internet
Bundy Integrated authoritative DNS and DHCP server (the continuation of the BIND 10)
Dnsmasq A lightweight, easy to configure DNS forwarder and DHCP server
Knot DNS Knot DNS is a high-performance authoritative-only DNS server
PowerDNS A versatile nameserver which supports a large number of backends

ALG breaking a Transfer Zone

This came when i tried to do a DNS Transfer Zone through a Cisco SOHO (877), which when triggered i received a RST packet from the router. Initially i was thinking that came from the server, but looking to the packet capture i observed the TTL was 254, which was the from router it self. Why? Answer ALG.

Because ALG can handle until a certain message size, the only way to fix this is DISABLE the ALG.

INTERNET#sh ver | i Vers
Cisco IOS Software, C800 Software (C800-UNIVERSALK9-M), Version 15.2(4)M6, RELEASE SOFTWARE (fc2)

[[email protected] ~]# dig -y @104.28.16.27 cocheno.com -t axfr;; communications error to 104.28.16.27#53: connection reset

Looking at the NAT Debug…..

Jan 11 23:15:10.146: NAT-FRAG: tcpmss value :0
Jan 11 23:15:10.150:  NAT-L4F:setting ALG_NEEDED flag in subblock
Jan 11 23:15:10.150: NAT-FRAG: tcpmss value :0
Jan 11 23:15:10.150:  NAT-L4F: Policy check successful
Jan 11 23:15:10.150:  NAT-L4F: received fd1: 1073742971 and
tcp flags = 0x2, payload_len = 0
Jan 11 23:15:10.294:  NAT-L4F:setting ALG_NEEDED flag in subblock
Jan 11 23:15:10.294: NAT-FRAG: tcpmss value :0
Jan 11 23:15:10.294:  NAT-L4F: received fd2: 1073742972 and
tcp flags = 0x12,payload_len = 0
Jan 11 23:15:10.298:  NAT-L4F:setting ALG_NEEDED flag in subblock
Jan 11 23:15:10.298: NAT-FRAG: tcpmss value :0
Jan 11 23:15:10.298:  NAT-L4F: Received final ACK from fd1 : 1073742971 and
tcp flags = 0x10
Jan 11 23:15:10.298:  NAT-L4F:Transistioning to proxy: rc 0 error 0
Jan 11 23:15:10.298:  NAT-L4F: Successfully proxied this flow
Jan 11 23:15:10.298:  NAT-L4F:setting ALG_NEEDED flag in subblock
Jan 11 23:15:10.298: NAT-FRAG: tcpmss value :0
Jan 11 23:15:10.298: NAT-ALG: lookup=0 l7_bytes_recd=125 appl_type=12
Jan 11 23:15:10.298: NAT-ALG: DNS l7_msg_size = 125
Jan 11 23:15:10.298: NAT-ALG: after state machine:
Jan 11 23:15:10.298: NAT-ALG: remaining_hdr_sz=0
Jan 11 23:15:10.298: NAT-ALG: remaining_payl_sz=0
Jan 11 23:15:10.298: NAT-ALG: tcp_alg_state=0
Jan 11 23:15:10.298: NAT-ALG: complete_msg_len=125
Jan 11 23:15:10.298:  l4f_send returns 125 bytes
Jan 11 23:15:10.298:  Complete buffer written to proxy
Jan 11 23:15:10.298:  NAT-L4F:NO DATA to read
Jan 11 23:15:10.446:  NAT-L4F:setting ALG_NEEDED flag in subblock
Jan 11 23:15:10.446: NAT-FRAG: tcpmss value :0
Jan 11 23:15:10.454:  NAT-L4F:setting ALG_NEEDED flag in subblock
Jan 11 23:15:10.454: NAT-FRAG: tcpmss value :0
Jan 11 23:15:10.454: NAT-ALG: lookup=1 l7_bytes_recd=1452 appl_type=12
Jan 11 23:15:10.454: NAT-ALG: DNS l7_msg_size = 31751
Jan 11 23:15:10.454: NAT-ALG: Unsupported l7_msg_size = 31751
Jan 11 23:15:10.454: NAT-L4F:CSM isn’t able to accept the pkt
Jan 11 23:15:10.458:  NAT-L4F:read RST, aborting
Jan 11 23:15:10.458:  NAT-L4F:setting ALG_NEEDED flag in subblock

 

How to disable DNS ALG?

INTERNET-RTR(config)#no ip nat service alg tcp dns

Notas Estudo BCVRE 170-010 parte 2

Chapter 4 DHCP and DNS

[email protected]:~$ set interfaces ethernet eth1 address dhcp

[email protected]:~$ show dhcp client leases
interface  : eth1
ip address : 192.168.196.135    [Active]
subnet mask: 255.255.255.0
domain name: localdomain        [overridden by domain-name set using CLI]
router     : 192.168.196.2
name server: 192.168.196.2
dhcp server: 192.168.196.254
lease time : 1800
last update: Tue Jul 15 10:38:43 GMT 2014
expiry     : Tue Jul 15 11:08:43 GMT 2014
reason     : RENEW

A default route recebida via DHCP tem a AD = 210

[email protected]# run sh ip route
Codes: K – kernel route, C – connected, S – static, R – RIP, O – OSPF,
I – ISIS, B – BGP, > – selected route, * – FIB route

S>*   0.0.0.0/0 [210/0] via 192.168.196.2, eth1

[set | edit] service dhcp-server
[set | edit] shared-network-name name
[set | edit] subnet address/mask
set default-router address
set dns-server address
set start address [stop address]
set exclude address

Comandos DHCP Relay
set service dhcp-relay interface interface-name
set service dhcp-relay server ip-address

[email protected]:~$ show dhcp server leases
IP address       Hardware Address   Lease expiration     Pool      Client Name
———-       —————-   —————-     —-      ———–
192.168.42.10    00:0c:29:f5:40:6e  2009/11/04 23:52:07  DHCP-Eth0 JansPC
192.168.42.11    00:0c:29:a5:02:c7  2009/11/04 23:52:11  DHCP-Eth0 Desktop
192.168.42.22    00:15:c5:b3:2e:64  2009/11/04 17:55:01  DHCP-Eth0
192.168.42.23    00:04:f2:02:84:49  2009/11/04 17:24:59  DHCP-Eth0 FredsPC

System DNS – para uso interno do vRouter
Dynamic DNS
DNS forwarding

set system name-server name
[set | edit] service dns dynamic interface interface-name service service-provider
set login name
set password password
set server [ip-address | fqdn]
set host-name name

[set | edit] service dns forwarding
set listen-on interface-name
set system
set dhcp interface-name
set name-server ip-address
set system static-host-mapping host-name name inet ip-address

Antes de configurar o DNS forwading, é necessário especificar qual o DNS server a ser usado para as queries. By default o vRouter tenta o System DNS. Caso os do System DNS não respondam o vRouter tenta os aprendidos via DHCP. É possivel fazer override destes defaults selecionando apenas os system servers, DHCP-learned ou explicity-configured apenas para o DNS forwarding

[email protected]:~$ show dns forwarding statistics
—————-
Cache statistics
—————-
Cache size: 150
Queries forwarded: 5
Queries answered locally: 2
Total DNS entries inserted into cache: 23
DNS entries removed from cache before expiry: 0
———————
Nameserver statistics
———————
Server: 10.0.0.30
Queries sent: 5
Queries retried or failed: 0

As estaticistas mostram apenas os servers contactados, ou seja, o vRouter nunca enviou nenhuma querie para o server 10.0.0.31

Chapter 5 Routing

Routing Tables

[email protected]:~$ show ip route
Codes: K – kernel, C – connected, S – static, R – RIP, B – BGP
O – OSPF, IA – OSPF inter area
N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2
E1 – OSPF external type 1, E2 – OSPF external type 2
i – IS-IS, L1 – IS-IS level-1, L2 – IS-IS level-2, ia – IS-IS inter
area
> – selected route, * – FIB route, p – stale info
Gateway of last resort is not set
C>* 10.1.1.0/30 is directly connected, eth1
C>* 10.2.2.0/30 is directly connected, eth2
C>* 127.0.0.0/8 is directly connected, lo
S>* 172.16.0.0/16 [1/0] via 10.1.1.1, eth1
O   172.16.0.0/16 [110/20] via 10.1.1.1, eth1, 00:00:35
C>* 192.168.0.0/24 is directly connected, eth0

Rotas marcadas com * são marcadas como activas

Static Routes

[email protected]# set protocol static route 172.16.1.0/24 next-hop 10.1.2.1

[email protected]# set protocol static route 0.0.0.0/0 next-hop 192.168.1.1

Floating Static Routes

Protocol——Distance
Connected–0
Static———1
EBGP——–20
OSPF——–110
RIP————120
IBGP———-200

[email protected]# set protocol static route 192.168.1.0/24 next-hop 10.1.1.2 distance 150

Chapter 6 Firewalls

vRouter_packet_processing_vyatta

Firewall Rulebase

Baseado no Match e Action

Match : Faz match do Layer 3 e Layer 4, caso não seja especificado faz match all

Action : Accept, Reject (envia ICMP unreachable message), Drop. A default action é DROP

set firewall name PublicServers rule 10 action accept
set firewall name PublicServers rule 10 state established enable
set firewall name PublicServers rule 10 state related enable

set firewall name PublicServers rule 20 action accept
set firewall name PublicServers rule 20 destination address 10.6.7.0/24
set firewall name PublicServers rule 20 source address 10.2.3.0/24

set firewall name PublicServers rule 30 action accept
set firewall name PublicServers rule 30 destination address 10.6.7.0/24
set firewall name PublicServers rule 30 destination port smtp
set firewall name PublicServers rule 30 protocol tcp
set firewall name PublicServers rule 30 source address 10.4.5.0/24

set firewall name PublicServers rule 40 action reject
set firewall name PublicServers rule 40 destination address 10.6.7.0/24
set firewall name PublicServers rule 40 source address 10.4.5.0/24

set firewall name PublicServers rule 50 action accept
set firewall name PublicServers rule 50 destination address 10.6.7.0/24
set firewall name PublicServers rule 50 destination port http,ftp,smtp
set firewall name PublicServers rule 50 protocol tcp

[email protected]# set interfaces ethernet eth0 firewall out name PublicServers

[email protected]# run show firewall name

—————————–
Rulesets Information
—————————–
——————————————————————————–
IPv4 Firewall “PublicServers”:

Active on (eth0,OUT)

rule  action   proto     packets  bytes
—-  ——   —–     ——-  —–
10    accept   all       0        0
condition – saddr 0.0.0.0/0 daddr 0.0.0.0/0 state RELATED,ESTABLISHED

20    accept   all       0        0
condition – saddr 10.2.3.0/24 daddr 10.6.7.0/24

30    accept   tcp       0        0
condition – saddr 10.4.5.0/24 daddr 10.6.7.0/24 tcp dpt:25

40    reject   all       0        0
condition – saddr 10.4.5.0/24 daddr 10.6.7.0/24 reject-with icmp-port-unreacha
ble

50    accept   tcp       0        0
condition – saddr 0.0.0.0/0 daddr 10.6.7.0/24  dports 80,21,25

10000 drop     all       0        0
condition – saddr 0.0.0.0/0 daddr 0.0.0.0/0

[email protected]:~$ show firewall name PublicServers statistics
IPv4 Firewall “PublicServers”:
Active on (eth0,OUT)
rule  packets   bytes     action  source              destination
—-  ——-   —–     ——  ——              ———–
10    5.62M     6.52G     ACCEPT  0.0.0.0/0           0.0.0.0/0
20    51        13036     ACCEPT  10.2.3.0/24         10.6.7.0/24
30    0         0         ACCEPT  10.4.5.0/24         10.6.7.0/24
40    0         0         REJECT  10.4.5.0/24         10.6.7.0/24
50    0         0         ACCEPT  0.0.0.0/0           10.6.7.0/24
1025  2042      923057    DROP    0.0.0.0/0           0.0.0.0/0

Um dos estados é o trafego “related”, isto permite ativar o ALG em protocolos como o FTP e SIP

Applying Rulebases

 Individual interfaces – cada interface pode ter uma rulebase em cada direção (IN + OUT), e a mesma rulebase pode ser aplicada a várias interfaces
Zones – Zone é um grupo de interfaces. Agrupando as interfaces em zones fica implicitamente associado todos os enderecos dentro da zona. Épossivel aplicar uma rulebase a zones possibilitando ter security policies mais genéricas.Quando aplicada a rulebase é especificado a source/destination zone

Referências:

Notas Estudo BCVRE 170-010 parte 1

Vyatta vRouter 5400 Online Documentation

Brocade Certified vRouter Engineer 2013 (BCVRE) Exam

Voucher gratuito Brocade Certified vRouter Engineer (BCVRE) 170-010 Exam

Network Functions Virtualization

Certification Brocade Community

Certification Exam Information

Notas IPv6

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 3315Dynamic 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.