26
Porte de aplicaciones y servicios a IPv6 Eva M. Castro 1 www.6sos.org Porte de aplicaciones y servicios a IPv6 Eva M. Castro [email protected] Grupo de Sistemas y Comunicaciones (GSyC) Universidad Rey Juan Carlos (URJC) Este proyecto ha sido cofinanciado por PROFIT

Porte de aplicaciones y servicios a IPv6eva/doc/6sos.pdf · Porte de aplicaciones y servicios a IPv6 –Eva M. Castro 16 Aplicación cliente IPv6 en nodo dual TCP / UDP IPv4 IPv6

Embed Size (px)

Citation preview

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 1

www.6sos.org

Porte de aplicaciones y servicios a IPv6Eva M. Castro [email protected] de Sistemas y Comunicaciones (GSyC)Universidad Rey Juan Carlos (URJC)

Este proyecto ha sidocofinanciado por PROFIT

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 2

www.6sos.org

Índice

• Arquitectura de transición- Red- Nodos finales - Aplicaciones

• Evolución de aplicaciones• Escenarios de transición de aplicaciones• Dependencias en el código fuente• Conclusiones

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 3

www.6sos.org • Red• Nodos finales• Aplicaciones

Arquitectura de transición

RedEncaminamiento/Direccionamiento

IP

TCP/UDP

Nivel enlace

AplApl

IP

TCP/UDP

Nivel enlace

AplApl

Nodo final

Aplicación

Nodofinal

Aplicación

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 4

www.6sos.org

Arquitectura de transición

RedEncaminamiento/Direccionamiento

IP

TCP/UDP

Nivel enlace

AplApl

IP

TCP/UDP

Nivel enlace

AplApl

Nodo final

Aplicación

Nodofinal

Aplicación

Instalar mecanismos de transición

• Red• Nodos finales• Aplicaciones

• Red sólo IPv4• Red sólo IPv6• Red dual• Red heterogénea

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 5

www.6sos.org

Arquitectura de transición• Red• Nodos finales• Aplicaciones

RedEncaminamiento/Direccionamiento

IP

TCP/UDP

Nivel enlace

AplApl

IP

TCP/UDP

Nivel enlace

AplApl

Nodo final

Aplicación

Nodofinal

Aplicación

Modificar pila IP

Modificar pila IP

• Nodo sólo IPv4• Nodo sólo IPv6• Nodo con doble pila

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 6

www.6sos.org

Arquitectura de transición• Red• Nodos finales• Aplicaciones

RedEncaminamiento/Direccionamiento

IP

TCP/UDP

Nivel enlace

AplApl

IP

TCP/UDP

Nivel enlace

AplApl

Nodo final

Aplicación

Nodofinal

AplicaciónModificar código fuente

Modificar código fuente

• Aplicación sólo IPv4• Aplicación sólo IPv6• Aplicación dual

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 7

www.6sos.org

Índice

• Arquitectura de transición• Evolución de aplicaciones

1. De aplicaciones IPv4 a aplicaciones IPv62. De aplicaciones IPv4 a aplicaciones duales3. Transición gradual

• Escenarios de transición de aplicaciones• Dependencias en el código fuente• Conclusiones

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 8

www.6sos.org

1. De aplicaciones v4 a aplicaciones IPv6

Apv4Apv4

Apv6Apv6

IPv4

TCP/UDP

Nivel enlace

IPv6

VENTAJAS:• Fácil.• En período corto de tiempo

PROBLEMAS:• El usuario selecciona entre aplicaciones, apv4 ó apv6.• Mantenimiento del código fuente

Apv6Apv6Apv4Apv4

Sustitución de las Sustitución de las llamadas y estructuras llamadas y estructuras de IPv4 por las de IPv6de IPv4 por las de IPv6

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 9

www.6sos.org

2. De aplicaciones IPv4 a aplicaciones duales

Apv4Apv4

ApdualAp

dual

IPv4

TCP/UDP

Nivel enlace

IPv6

VENTAJAS:• Una única aplicación• Mantenimiento código fuente

PROBLEMAS:• Muchos cambios, más tiempo

ApdualApdual

Añadir Añadir soporte IPv6soporte IPv6

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 10

www.6sos.org

3. Transición gradual

Apv4Apv4

ApdualApdual

Apv6Apv6Sustitución de las Sustitución de las llamadas y estructuras llamadas y estructuras de IPv4 por las de IPv6de IPv4 por las de IPv6

Añadir Añadir soporte IPv4soporte IPv4VENTAJAS:

• Soporte IPv6 en un breve período de tiempo • Una única aplicación• Mantenimiento código fuente

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 11

www.6sos.org

Índice

• Arquitectura de transición• Evolución de aplicaciones• Escenarios de transición de aplicaciones

1. Aplicaciones IPv4 en nodos duales2. Aplicaciones IPv6 en nodos duales3. Aplicaciones duales en nodos duales4. Aplicaciones duales en nodos sólo IPv4

• Dependencias en el código fuente• Conclusiones

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 12

www.6sos.org

1. Aplicaciones IPv4 en nodos duales

• Dependencias en el código fuente con IPv4.• Intercambian paquetes IPv4.• Para su funcionamiento en redes IPv6:

- Portar el código a IPv6- Si no es posible, utilizar mecanismos de transición. Las

aplicaciones utilizan IPv4 pero se intercambian paquetes IPv6: § BIA (Bump In the API)§ BIS (Bump In the Stack)

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 13

www.6sos.org

Red IPv6

API de transporteAPI de transporte

BISBISIPv4

TCP/UDP

Nivel de enlace

API de transporteAPI de transporte

BIABIA

IPv4

TCP/UDP

Nivel de enlace

IPv6

Apv4Apv4 Apv4Apv4

BIS/BIA

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 14

www.6sos.org

2. Aplicaciones IPv6 en nodos duales

a.b.c.da.b.c.d ::::FFFF:a.b.c.dFFFF:a.b.c.d

Dirección IPv4 IPv4-mapped IPv6

• Se han sustituido las estructuras y funciones de IPv4 por las de IPv6. Dependencias en el código fuente con IPv6

• Intercambian de paquetes IPv6.• Para su funcionamiento en redes IPv4:

- Portar a aplicaciones duales - Mantener 2 aplicaciones: ping4 y ping6 o- Utilizar direcciones IPv6 a partir de las direcciones IPv4, IPv4-mapped

IPv6 addresses, no soportadas en todos las implementaciones.

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 15

www.6sos.org

Aplicación servidor IPv6 en nodo dual

TCP / UDP

Nivel enlace

IPv4

TCP / UDP

IPv4 IPv6

Dirección IPv4-mapped IPv6 ::FFFF:a.b.c.d

Dirección IPv6x:x:x:x:x:x:x:x

Cliente IPv4Cliente IPv4

TCP / UDP

IPv6

Cliente IPv6Cliente IPv6 Servidor IPv6escucha en 0::0

Servidor IPv6escucha en 0::0

Nivel enlace

IPv4

Nivel enlace

IPv6

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 16

www.6sos.org

Aplicación cliente IPv6 en nodo dual

TCP / UDP

IPv4 IPv6

Dirección IPv4-mapped IPv6 ::FFFF:a.b.c.d

Dirección IPv6x:x:x:x:x:x:x:x

Cliente IPv6Cliente IPv6

Nivel enlace

TCP / UDP

IPv6

Servidor IPv6Servidor IPv6

Nivel enlace

IPv6

TCP / UDP

Nivel enlace

IPv4

Servidor IPv4Servidor IPv4

IPv4

Dirección IPv4a.b.c.d

Dirección IPv6x:x:x:x:x:x:x:x

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 17

www.6sos.org

3. Aplicaciones duales en nodos duales

• Aplicaciones válidas para redes IPv4 e IPv6:

- Implementación de aplicaciones cliente:§ Resolver nombre de máquina del servidor a las posibles

direcciones IP. Intentar conectar primero usando IPv6 y si fallaprobar con IPv4.

- Implementaciones de aplicaciones servidor:1. Mantener conexiones diferentes de forma explícita para IPv4 e

IPv6, o2. Desarrollar una aplicación servidor IPv6 y confiar en las

direcciones IPv4-mapped IPv6 para los clientes IPv4.

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 18

www.6sos.org

4. Aplicaciones duales en nodos sólo IPv4

• Las aplicaciones duales deberían funcionar en los nodos sólo IPv4 para evitar tener varias versiones de la misma aplicación.

REQUISITO• Desarrollar el código fuente para que nodos que

no tengan soporte del protocolo IPv6 puedan ejecutar dichas aplicaciones.

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 19

www.6sos.org

Índice

• Arquitectura de transición• Evolución de aplicaciones• Escenarios de transición de aplicaciones• Dependencias en el código fuente

1. Formato de presentación de las direcciones IP2. Resolución de nombres3. API de la capa de transporte4. Otras dependencias específicas

• Conclusiones

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 20

www.6sos.org

1. Formato de presentación de direcciones IP

• El formato de presentación es una cadena que contiene la dirección IP. Diferentes en IPv4 e IPv6:

§ IPv4: “a.b.c.d”§ IPv6: “x:x:x:x:x:x:x:x”

• El formato de presentación en IPv6 necesita más memoria.

• Los analizadores sintácticos de direcciones deben ser revisados para adecuarse al nuevo formato.

• Ambigüedad con el carácter “:” en URLs (RFC 2732): - http://[DirecciónIPv6]:puerto

• RECOMENDACIÓN:- Utilizar FQDN (Fully Qualified Domain Name)

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 21

www.6sos.org2. Resolución de nombres

• Tipos de resolución:- Directa:

§ a partir del nombre de la máquina obtener su dirección IP.- Inversa:

§ a partir de la dirección IP obtener el nombre de máquina.

• Utilizar FQDN.• Las consultas/respuestas de DNS se envían usando

IPv4/IPv6 independientemente del tipo de registros que se soliciten.

• RECOMENDACIÓN:- Usar las funciones de resolución independientes de

protocolo.

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 22

www.6sos.org

3. API de la capa de transporte

En el caso concreto del API de sockets existen las siguientes dependencias:

- Estructuras de datos para las direcciones IP:§ sockaddr_in, sockaddr_in6, sockaddr_storage

- Funciones del API de comunicaciones:§ socket(), bind(), connect(), read()/write() …

- Funciones de conversión de direcciones:§ entre el formato de presentación y las estructuras de datos de

direcciones.- Opciones de configuración de red.

• RECOMENDACIÓN:- Desarrollar aplicaciones independientes de la versión IP

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 23

www.6sos.org

Estructuras de datos

Family

Data

FamilyPort Number

IPv4 Address(32 bits)

Unused

Port Number

Flow Info

IPv6 Address(128 bits)

Scope ID

FamilyAlign

Padding

Familysockaddr sockaddr_in sockaddr_in6 sockaddr_storage

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 24

www.6sos.org

4. Otras dependencias específicas

• Selección de la dirección IP:- Los nodos automáticamente resuelven el problema de la

selección de la dirección de origen, siguiendo una serie de reglas predefinidas (RFC 3484).

• Fragmentación a nivel de aplicación: - Cálculo del tamaño del fragmento para que no haya

degradación de prestaciones por fragmentación a nivel IP .

• Almacenamiento de direcciones IP: - No almacenar direcciones IP, pueden cambiar. Si es necesario

almacenar nombres y solicitar la resolución en el momento que senecesiten.

• RECOMENDACIÓN:- Revisar el código exhaustivamente

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 25

www.6sos.org

Índice

• Arquitectura de transición• Evolución de aplicaciones• Escenarios de transición de aplicaciones• Dependencias en el código fuente• Conclusiones

Porte de aplicaciones y servicios a IPv6 – Eva M. Castro 26

www.6sos.org

Conclusiones

• Desarrollar aplicaciones duales:- Válidas para cualquier tipo de nodo y para comunicarse con

cualquier aplicación utilizando IPv4 o IPv6.- Intentar la comunicación con cada una de las direcciones IP

obtenidas a través de las funciones de resolución.• Usar FQDN:

- Eliminar las direcciones IP cableadas del código.• No almacenar direcciones IP.• Las direcciones “IPv4-mapped IPv6 addresses” no

siempre funcionan:- No siempre están implementadas.- En algunos nodos están deshabilitadas por seguridad.