Transcript
Page 1: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

IPv6IPv6(Parte 2: Mecanismos de Transição)(Parte 2: Mecanismos de Transição)

Edgard Jamhour

Page 2: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Problemas de TransiçãoProblemas de Transição

• Como evitar reescrever aplicações?

• Como permitir um cliente IPv4 conectar-se com um servidor IPv6?

• Como permitir um cliente IPv6 conectar-se com um servidor IPv4?

• Como permitir um cliente IPv6 alcançar um roteador IPv6 através de uma rede IPv4?

• Como permitir a um host IPv6 se conectar a outro host IPv6 através da Internet?

Page 3: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Por que as aplicações precisam ser reescritas?Por que as aplicações precisam ser reescritas?

• No sistema operacional, a aplicação escolhe a pilha de protocolos quando abre um socket.

• O socket IPv6 é definido pela RFC 2133 (April 1997).

– Basic Socket Interface Extensions for IPv6

Aplicação

TCP

Porta

IPv4 IPv6

socketIPv6

Porta

socketIPv4

Page 4: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Core FunctionsCore Functions

• Criação do Socket:

• Socket TCP (IPv4):– s = socket(PF_INET, SOCK_STREAM, 0);

• Socket UDP (IPv4):– s = socket(PF_INET, SOCK_DGRAM, 0);

• Socket TCP (IPv6)– s = socket(PF_INET6, SOCK_STREAM, 0);

• Socket UDP (IPv6)– s = socket(PF_INET6, SOCK_DGRAM, 0);

Page 5: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Estrutura de Endereços IPv6Estrutura de Endereços IPv6

• Ao abrir um socket IPv6 , o “endpoint” é especificado pela seguinte estrutura:

• struct sockaddr_in6 { u_char sin6_len; /* Tamanho da estrutura */ u_char sin6_family; /* AF_INET6 */ u_int16m_t sin6_port; /* Porta TCP ou UDP */ u_int32m_t sin6_flowinfo; /* Flow Label + prioridade */ struct in6_addr sin6_addr; /* Endereço IPv6 */

};

• struct in6_addr { u_int8_t s6_addr[16]; /* Endereço IPv6 */

}

Page 6: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Tradução de Nomes em EndereçosTradução de Nomes em Endereços

• API´s para tradução de nomes:

– gethostbyname()

• Retorna o endereço do host

• O comportamento da função gethostbyname() pode ser modificado pela variável de ambiente:

– RES_OPTIONS=inet6

• Esta função retorna endereços IPv4 mapeados para aplicações IPv6:

– ::FFFF: <IPv4 address>

Page 7: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Dual StackDual Stack

• A forma mais simples de integração entre IPv4 e IPv6 é utilizar S.O. dual stack.

Aplicação Aplicação

TCP TCP

IPv4 IPv6

Enlace

Aplicação

TCP

IPv4

Enlace

Aplicação

TCP

IPv6

Enlace

Dual Stack Host

Page 8: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

BIS – Bump in the StackBIS – Bump in the Stack

• Mecanismo interno no host que traduz cabeçalhos IPv4 em IPv6 e vice-versa (RFC 2767).

IPv4 Application

Placa de Rede

TCP Name Resolver

Address MapperTranslator

IPv6

REDE IPv6

gethostbyname

IPv4

HOST

Page 9: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Exemplo 1: Cliente IPv4 e Servidor IPv6 Exemplo 1: Cliente IPv4 e Servidor IPv6

Dual Stack

192.168.0.13FFE::A:B:C:D

Aplicação IPv4

Aplicação IPv6

Single Stack

3FFE::1:2:3:4

3FFE:1:2:3:4www6.pucpr.brDNS

Rede IPv6

Page 10: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Exemplo: Cliente IPv4 e Servidor IPv6 Exemplo: Cliente IPv4 e Servidor IPv6

Aplicação IPv4

Name Resolver

Address Mapper

1. www6.pucpr.br?

DNS2. www6.pucpr.br

4. 3FFE::12:34 6. 10.0.0.1

7. 10.0.0.1

3FFE::12:34 = 10.0.0.1

5. Mapping Table

3. 3FFE::12:34

10.0.0.0...

10.0.0.255

Endereços Falsos

Page 11: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Exemplo: Cliente IPv4 e Servidor IPv6Exemplo: Cliente IPv4 e Servidor IPv6

IPv4 Application

Translator Address Mapper

3FFE::12:34 = 10.0.0.1

Mapping Table

192.168.0.1 10.0.0.1 payload

IPv6

3FFE::12:34

3FFE::A:B:C:D 3FFE:12:34 payload

Page 12: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Exemplo 2: Cliente IPv6 e Servidor IPv4 Exemplo 2: Cliente IPv6 e Servidor IPv4

Dual Stack

192.168.0.13FFE::12:34

Single Stack

3FFE:AB:CD

3FFE::12:34www4.pucpr.br

DNS

Rede IPv6

Aplicação IPv6

Aplicação IPv4

Page 13: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Exemplo: Cliente IPv6 e Servidor IPv4Exemplo: Cliente IPv6 e Servidor IPv4

IPv4 Application

Translator Address Mapper

3FFE::AB:CD = 10.0.0.1

Mapping Table

10.0.0.1 192.168.01 payload

IPv6

10.0.0.1

3FFE::AB:CD 3FFE:12:34 payload

Page 14: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

BIA - Bump-In-The-APIBIA - Bump-In-The-API

• Similar ao BIS mas traduz API em vez de cabeçalhos IP.

Name Resolver

Address Mapper

REDE IPv6

gethostbyname

IPv4 Application

Placa de Rede

TCP

Function Mapper

IPv6IPv4

TCP

Interface Sockets

Page 15: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

BIABIA

Aplicação IPv4

Function Mapper Address Mapper

3FFE::1:2:3:4 = 10.0.0.1

Mapping TableIPv6

3FFE::1:2:3:4

3FFE::A:B:C:D 3FFE:1:2:3:4 payload

IPv4 API: sends payload to 10.0.0.1

Page 16: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

NAT-PT e NAPT-PTNAT-PT e NAPT-PT

• NAT-PT:

– Network Address Translation - Protocol Translation

– Similar ao NAT

• NAPT-PT

– Network Address and Port Translation - Protocol Translation

– Similar ao NAPT

• NAT-PT é também baseado nos seguintes padrões:

– DNS-ALG: DNS Application Level Gateway (DNS Extension)

– SIIT: Stateless IP/ICMP Translation Algorithm (SIIT)

Page 17: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

NAT-PTNAT-PT

• Similar ao NAT convencional. Trabalha através do mapeamento entre endereços IPv4 e IPv6.

IPv4 Host

Aplicação IPv4

Aplicação IPv6

IPv6 Host NAT-PT

DNS_ALG

IPv6 IPv4

Endereço de destino mapeado: ::FFFF: <IPv4 address>

Rede IPv6

Rede IPv4

IPv4IPv6

Endereço de origem é o endereço do NAT

Page 18: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

NAT-PTNAT-PT

IPv6 Network

3FFE::12:34

210.0.0.1 to 210.0.0.10

3ffe::12:34 ::ffff:<200.1.2.3> payload 210.0.0.1 payload200.1.2.3

3ffe::12:34::ffff:<200.1.2.3> payload 210.0.0.1 payload200.1.2.3

IPv4 Network

200.1.2.3

3ffe::12:34 = 210.0.0.1

Page 19: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Bi-directional NAT-PTBi-directional NAT-PT

IPv4 Host

Aplicação IPv4

3. Mapeamento IPv4-IPv6.

1. DNS query

Aplicação IPv6

IPv6 Host

2. Trigger

4. Endereço IPv4 mapeado

5. Endereço IPv4 mapeado

• O NAT-PT bidirecional é implementado utilizando-se um DNS-ALG (definido pela RFC 2694).

6. IPv4

DNS ALG

IPv4

7. IPv6

Page 20: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

NAPT-PTNAPT-PT

• Similar ao NAPT, necessita de apenas um endereço IPv4 público, mas não é bidirecional.

IPv4 Host

Aplicação IPv6

Aplicação IPv4

MapeamentoIPv6:PortaH - IPv4:PortaN

Pacote IPv4

PortaH

IPv6 IPv4

PortaN

Pacote IPv6

IPv6 HostNAT-PT

IPv4IPv6

Page 21: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

NAPT-PTNAPT-PT

IPv6b:1050

IPv6a:1030

IPv4

IPv6a

IPv6b

IPv6b:1030 IPv4:1040

IPv4:1050

IPv4:1030

• Um endereço IPv4 permite atender até 63K IPv6 hosts.

IPv6b:1030 IPv4:1040

IPv6a:1030 IPv4:1030

IPv6c:1050 IPv4:1050

Page 22: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

NAPT-PT não é BidirecionalNAPT-PT não é Bidirecional

Endereço IP Público200.0.0.1

clientes

servidor

3FFE::a

Private IP:Port

3FFE::a :10243FFE::b :10243FFE::c :1025

3FFE::b

3FFE::c

request reply

1025

1026

1027

Public IP:Port

200.0.0.1 :1025200.0.0.1 :1026200.0.0.1 :10271024

1024

1025 IPv4

IPv4

Page 23: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Proxy SOCKS64Proxy SOCKS64

• Definido pela RFC 3089 (april 2001)

• SOCKS64 é similar ao SOCKS. Redes que já utilizam SOCKS podem ser facilmente adaptadas para IPv6.

IPv4 Application

SOCKS LIB IPv4+6

TCP UDP

IPv4

IPv6 Application

SOCKS LIB IPv6+4

TCP UDP

IPv6

single stack IPv4 host single stack IPv6 host

Page 24: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Socks64: Cenário 1Socks64: Cenário 1

• Cliente IPv4 e Servidor IPv6.

IPv4 Host Socks64 IPv6 Host

PORT

PORT PORT

PORT

Socks LIB

AplicaçãoIPv4

AplicaçãoIPv6Socket IPv4 Socket IPv6

IPv4 Packet IPv6 Packet

IPv4 IPv6

Page 25: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Socks64: Cenário 2Socks64: Cenário 2

• Um cliente IPv6 envia um pacote para um servidor IPv4.

IPv4 Host

Socks64

IPv6 Host

PORT

PORT PORT

PORT

Socks LIB

Aplicação IPv4

Aplicação IPv6

Socket IPv4 Socket IPv6

IPv4 Packet IPv6 Packet

IPv6IPv4

Page 26: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Técnicas de TunelamentoTécnicas de Tunelamento

• Permite que hosts ou redes IPv6 isoladas se comunique pela Internet.

• Pacotes IPv6 são encapsulados como dados de pacotes IPv4.

SRC IPv4 payloadDST IPv4

Tunnel Endpoints

payloadSRC IPv6 DST IPv6

TIPO

Page 27: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

ISATAPISATAP

• ISATAP é um mecanismo para atribuição automática de endereço e configuração automática de túneis que permite que hosts IPv6 se comuniquem através da Internet.

FE80::5EFE:192.168.1.2 FE80::5EFE:10.32.1.2

IPv4

192.168.1.2 10.32.1.2 IPv6

Page 28: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

6to4 scheme

Tunelamento 6to4Tunelamento 6to4

1/65535

AGGR (1/8)

Reserved

Allocation

0000 0000 1/256

Prefix (binary) Fraction of

Address Space

Unassigned … …

NSAP Allocation 0000 001 1/128

IPX Allocation 0000 010 1/128

Unassigned … … Aggregatable Global Unicast

Addresses 001 1/8

Unassigned … …

. 1111 1110 10 1/1024

1111 1110 11 1/1024 Multicast Addresses 1111 1111 1/256

Site-Local Unicast AddressesLink-Local Unicast Addresses

Page 29: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Endereços 6to4Endereços 6to4

• Classe de endereços especiais definidas para o tunelamento 6to4 (RFC 2529)– 2002::/16

0 0000 0000 0010 V4ADDR001 SLA ID Interface ID

3 13 32 64

2002:

16

Site Address 80 bits

Interface externa do roteador que se conecta com a Internet.

Page 30: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

ExampleExample

Internet (IPv4 Network)

IPv6 host

IP6to4 router

IP6to4 router

IPv6 Network 2002:C8C0:7801::/48

IPv6 host

V4ADDR C8.C0.78.1

(200.192.116.1)

V4ADDR C8.11.62.1

(200.17.98.1)

IPv6 Network 2002:C811:6201::/48

C8.C0.78.1 C8.11.62.1 2002:C8C0:7801… 2002:C811:6201… payload

IPv6 packet IPv4 header

C8.C0.78.1 C8.11.62.1 2002:C8C0:7801… 2002:C811:6201… payload

IPv4 header IPv6 packet

Page 31: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Roteadores 6to4 RelayRoteadores 6to4 Relay

• Roteadores Relay são utilizados para permitir a comunicação entre Hosts 6to4 através de backbones puramente IPv6. Os roteadores Relay são vistos como o verdadeiro “gateway default” para acessar redes puramente IPv6.

• Muitas instituições que participam dos projetos de backbones IPv6, como Microsoft e Cisco, oferecem roteadores relay.

Page 32: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

O endereço Anycast mágicoO endereço Anycast mágico

• A RFC 3068 definiu que o prefixo 192.88.99.0/24 é utilizado para anunciar o roteador relay mais próximo de uma rede utilizando BGP.

• O endereço IPv6 equivalente é 2002:c058:6301::".

BACKBONE IPv4

BACKBONE IPv6

roteadores relay

roteador 6to4tunel

Rede Privada

Rede Privada

Page 33: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

ExemploExemplo

• A tabela abaixo ilustra as rotas criadas automaticamente pelo Windows XP para acessar redes IPv6.

• ::/0 -> 3/2002:c058:6301::1741 pref 1331

• ::/0 -> 3/2002:836b:213c::836b:213c pref 2147483647 (rota tornada obsoleta)

• ::/96 -> 2 pref 1000

• 2002::/16 -> 3 pref 1000

Page 34: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

6over4 Tunneling 6over4 Tunneling (Virtual Ethernet)(Virtual Ethernet)

• Permite que hosts IPv6 isolados se comunique com roteadores IPv6 através de uma rede IPv4.

– RFC 2529: Transmission of IPv6 over IPv4 Domains without Explicit Tunnels

IPv6 HostHost IPv6

IPv4 IPv6

IPv4 Net IPv6 Net

IPv6 Application

6over4

Router

IPv6 Application

Multicast IPv6

Page 35: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Formato dos PacotesFormato dos Pacotes

• Pacotes IPv6 são encapsulados no interior de pacotes IPv4 utilizando o tipo de protocolo 41.

• Pelo menos um roteador da rede deve suportar o serviço IPv6over4.

SRC IPv4 payloadDST IPv4

payloadSRC IPv6 DST IPv6

41

Page 36: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Mapeamento de Endereços MulticastMapeamento de Endereços Multicast

• Os serviços IPv6 são baseados em mensagens multicast:

– Neighbor Discovering, Router Discovering and Prefix Discovering

• IPv6over4 define um mapeamento entre mensagens multicast IPv4 e IPv6:

– Pv4 multicast base address: 239.192.0.0/16

– 239 .192.< 2 bytes menos significativos do endereço multicast IPv6>

Page 37: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

Mapeamento de EndereçosMapeamento de Endereços

• all-nodes multicast address: 239.192.0.1

– FF02::1: all nodes of the link (link local)

• all-routers multicast address: 239.192.0.2

– FF01::2 all link local routers

• solicited-node multicast address: 239.192.Y.Z

– FF02::1::FFxx:xxxx

– xx:xxxx 24 less significant bits of the host unicast address.

Page 38: 2010, Edgard Jamhour IPv6 (Parte 2: Mecanismos de Transição) Edgard Jamhour

2010, Edgard Jamhour

ConclusãoConclusão

• O IPv6 é necessidade real para permitir a continuidade do crescimento dos serviços Internet devido:

– Ao esgotamento de endereços IPv4 públicos

– Ao grande número de rotas dos roteadores de borda.

• A transição para IPv6 ocorrerá gradualmente.

– Redes IPv4 e IPv6 podem e irão coexistir.

– Atualmente, já é possível utilizar endereços IPv6 e mecanismos de transição.


Recommended