A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "IPv6 (Parte 2: Mecanismos de Transição)"— Transcrição da apresentação:

1 IPv6 (Parte 2: Mecanismos de Transição)
Edgard Jamhour

2 Problemas 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?

3 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 socketIPv4

4 Core 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);

5 Estrutura 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 */ }

6 Traduçã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>

7 Dual Stack A forma mais simples de integração entre IPv4 e IPv6 é utilizar S.O. dual stack. Dual Stack Host Aplicação Aplicação Aplicação Aplicação TCP TCP TCP TCP IPv4 IPv4 IPv6 IPv6 Enlace Enlace Enlace

8 BIS – Bump in the Stack Mecanismo interno no host que traduz cabeçalhos IPv4 em IPv6 e vice-versa (RFC 2767). IPv4 Application gethostbyname TCP Name Resolver IPv4 Address Mapper Translator IPv6 Placa de Rede HOST REDE IPv6

9 Exemplo 1: Cliente IPv4 e Servidor IPv6
DNS 3FFE:1:2:3:4 www6.pucpr.br Aplicação IPv6 Aplicação IPv4 Dual Stack 3FFE::A:B:C:D Single Stack 3FFE::1:2:3:4 Rede IPv6

10 Exemplo: Cliente IPv4 e Servidor IPv6
Aplicação IPv4 1. www6.pucpr.br? 3. 3FFE::12:34 DNS Name Resolver 2. www6.pucpr.br 4. 3FFE::12:34 ... Endereços Falsos 3FFE::12:34 = 5. Mapping Table Address Mapper

11 Exemplo: Cliente IPv4 e Servidor IPv6
IPv4 Application payload 3FFE::12:34 Address Mapper Translator 3FFE::A:B:C:D 3FFE:12:34 payload 3FFE::12:34 = Mapping Table IPv6

12 Exemplo 2: Cliente IPv6 e Servidor IPv4
DNS 3FFE::12:34 www4.pucpr.br Aplicação IPv4 Aplicação IPv6 Dual Stack 3FFE::12:34 Single Stack 3FFE:AB:CD Rede IPv6

13 Exemplo: Cliente IPv6 e Servidor IPv4
IPv4 Application payload Address Mapper Translator 3FFE::AB:CD 3FFE:12:34 payload IPv6 3FFE::AB:CD = Mapping Table

14 BIA - Bump-In-The-API Similar ao BIS mas traduz API em vez de cabeçalhos IP. IPv4 Application Interface Sockets gethostbyname Function Mapper Name Resolver TCP TCP Address Mapper IPv4 IPv6 Placa de Rede REDE IPv6

15 IPv4 API: sends payload to 10.0.0.1
BIA Aplicação IPv4 IPv4 API: sends payload to 3FFE::1:2:3:4 Address Mapper Function Mapper 3FFE::A:B:C:D 3FFE:1:2:3:4 payload IPv6 3FFE::1:2:3:4 = Mapping Table

16 NAT-PT e NAPT-PT NAT-PT: NAPT-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)

17 NAT-PT Similar ao NAT convencional. Trabalha através do mapeamento entre endereços IPv4 e IPv6. Endereço de destino mapeado: ::FFFF: <IPv4 address> Endereço de origem é o endereço do NAT Aplicação IPv6 Aplicação IPv4 IPv6 IPv4 IPv6 Host IPv4 Host IPv6 IPv4 NAT-PT Rede IPv6 Rede IPv4 DNS_ALG

18 NAT-PT 200.1.2.3 IPv6 Network IPv4 Network 3FFE::12:34
::ffff:< > payload payload 3ffe::12:34 ::ffff:< > payload payload 3FFE::12:34 3ffe::12:34 = IPv6 Network IPv4 Network to

19 Bi-directional NAT-PT
O NAT-PT bidirecional é implementado utilizando-se um DNS-ALG (definido pela RFC 2694). 3. Mapeamento IPv4-IPv6. Aplicação IPv6 7. IPv6 6. IPv4 IPv4 Host IPv6 Host IPv4 4. Endereço IPv4 mapeado Aplicação IPv4 2. Trigger DNS ALG 1. DNS query 5. Endereço IPv4 mapeado

20 IPv6:PortaH - IPv4:PortaN
NAPT-PT Similar ao NAPT, necessita de apenas um endereço IPv4 público, mas não é bidirecional. Pacote IPv6 Pacote IPv4 Mapeamento IPv6:PortaH - IPv4:PortaN Aplicação IPv6 Aplicação IPv4 IPv6 IPv4 PortaN PortaH NAT-PT IPv4 IPv6 IPv6 Host IPv4 Host

21 NAPT-PT Um endereço IPv4 permite atender até 63K IPv6 hosts. IPv6a
IPv6a:1030  IPv4:1030 IPv6b:1030  IPv4:1040 IPv4 IPv6c:1050  IPv4:1050 IPv6b:1030 IPv4:1040 IPv6b:1050 IPv4:1050 IPv6b

22 NAPT-PT não é Bidirecional
clientes request Private IP:Port 3FFE::a :1024 3FFE::b :1024 3FFE::c :1025 Public IP:Port :1025 :1026 :1027 reply 1024 3FFE::a 1025 IPv4 1024 1026 3FFE::b 1027 Endereço IP Público IPv4 servidor 1025 3FFE::c

23 Proxy SOCKS64 Definido pela RFC 3089 (april 2001)
SOCKS64 é similar ao SOCKS. Redes que já utilizam SOCKS podem ser facilmente adaptadas para IPv6. single stack IPv4 host single stack IPv6 host IPv4 Application IPv6 Application SOCKS LIB IPv4+6 SOCKS LIB IPv6+4 TCP UDP TCP UDP IPv4 IPv6

24 Socks64: Cenário 1 Cliente IPv4 e Servidor IPv6. Socket IPv6
IPv4 Packet IPv6 Packet Aplicação IPv4 Aplicação IPv6 Socket IPv6 Socket IPv4 Socks LIB PORT PORT IPv4 IPv6 PORT PORT IPv4 Host Socks64 IPv6 Host

25 Socks64: Cenário 2 Um cliente IPv6 envia um pacote para um servidor IPv4. IPv4 Packet IPv6 Packet Aplicação IPv6 Aplicação IPv4 Socks64 Socket IPv4 Socket IPv6 Socks LIB PORT PORT IPv6 IPv4 PORT PORT IPv6 Host IPv4 Host

26 Técnicas de Tunelamento
Permite que hosts ou redes IPv6 isoladas se comunique pela Internet. Pacotes IPv6 são encapsulados como dados de pacotes IPv4. Tunnel Endpoints SRC IPv4 DST IPv4 TIPO payload SRC IPv6 DST IPv6 payload

27 ISATAP 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. IPv6 IPv4 FE80::5EFE: FE80::5EFE:

28 Tunelamento 6to4 1/65535 AGGR (1/8) 6to4 scheme Allocation
Reserved Allocation 1/256 Prefix (binary) Fraction of Address Space Unassigned NSAP Allocation 1/128 IPX Aggregatable Global Unicast Addresses 001 1/8 . 1/1024 Multicast Addresses Site-Local Unicast Addresses Link-Local Unicast Addresses AGGR (1/8) 6to4 scheme 1/65535

29 Interface externa do roteador que se conecta com a Internet.
Endereços 6to4 Classe de endereços especiais definidas para o tunelamento 6to4 (RFC 2529) 2002::/16 3 13 32 16 64 001 V4ADDR SLA ID Interface ID Site Address 2002: 80 bits Interface externa do roteador que se conecta com a Internet.

30 Example

31 Roteadores 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.

32 O endereço Anycast mágico
A RFC 3068 definiu que o prefixo /24 é utilizado para anunciar o roteador relay mais próximo de uma rede utilizando BGP. O endereço IPv6 equivalente é 2002:c058:6301::". roteadores relay Rede Privada BACKBONE IPv6 BACKBONE IPv4 Rede Privada roteador 6to4 tunel

33 Exemplo 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 (rota tornada obsoleta) ::/96 -> 2 pref 1000 2002::/16 -> 3 pref 1000

34 6over4 Tunneling (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 Application IPv6 Application 6over4 Router Multicast IPv6 IPv4 IPv6 IPv6 Net IPv4 Net Host IPv6 IPv6 Host

35 Formato 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 DST IPv4 41 payload SRC IPv6 DST IPv6 payload

36 Mapeamento 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: /16 < 2 bytes menos significativos do endereço multicast IPv6>

37 Mapeamento de Endereços
all-nodes multicast address: FF02::1: all nodes of the link (link local) all-routers multicast address: FF01::2 all link local routers solicited-node multicast address: Y.Z FF02::1::FFxx:xxxx xx:xxxx 24 less significant bits of the host unicast address.

38 Conclusã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.


Carregar ppt "IPv6 (Parte 2: Mecanismos de Transição)"

Apresentações semelhantes


Anúncios Google