Archivo del sitio

Knet será la primera compañía en pasarse a IPv6. Ejemplo de DNS64 y NAT64 en routers Cisco.

Una pequeña operadora de ADSL se adelanta a las grandes competidoras e instala IPv6 en su sistemaKnet  ha sido la primera que anunció que ofrecería conectividad IPv6 a todos sus clientes. Según un comunicado de la empresa, lo hará antes de que se agoten las direcciones IPv4. Con esto, dará podrá dar servicio a nuevos clientes sin la necesidad de utilizar sistemas NAT, como Movistar. No utilizar el sistema NAT significa no tener que compartir la misma dirección IP con varios usuarios.

Estamos ante una necesidad de cambiar hacia el protocolo de direccionamiento IPv6, ya que se han agotado las direcciones tradicionales de 32 bits. En un primer momento, no se harán demasiados cambios en los ordenadores, puesto que los sistemas ya son compatibles, aunque no se descarta la posibilidad de cambiar los módems de acceso.

Knetla operadora de La Rioja  trabajará con dual-stock, lo que significa que tendrá equipo que trabajara al mismo tiempo con los dos protocolos, tanto con el IPv4 como con el IPv6. Además, se ha demostrado que ambas tecnologías se comunican entre sí a través de los sistemas DNS64 y NAT64.

En primer lugar, el NAT64 se encarga de la traducción de las direcciones entre hosts que sólo tienen conectividad IPv6 con hosts que sólo tienen conectividad IPv4. Tras la resolución del nombre por el DNS64, se pide la dirección web a través de NAT64.

Para lograr este objetivo se debe contar con un equipo de red que sea capaz de realizar una traslación de protocolos IPv4 <-> IPv6. Entre otras cosas, este mapeo debe incluir el mapeo de las direcciones de capa de red de uno y otro protocolo.

Del lado de la red solo-IPv6, las direcciones IPv4 se mapean dentro de un prefijo IPv6 el cual debe  tener suficientes bits de host para mapear todo el espacio IPv4.

En segundo lugar, el DNS64, sirve para compatibilizar la resolución de nombres de ambos sistemas. Si el usuario está usando el protocolo IPv6, al acceder a una página que no se hay adaptado a este protocolo, DNS64 hará una petición a IPv4 pidiéndole un registro. A través de este registro, los servidores DNS responderán, traducirán la página al IPv6 y se la mostrarán al usuario, incluyendo en las respuestas registros AAAA que mapean las direcciones IPv4 dentro del prefijo NAT64.

En conclusión, podemos decir que es importante que las operadoras estén dando pasos hacia un nuevo protocolo en Internet, aunque desde Knet no se dan fechas exactas del cambio.

Fuentes: http://www.readwriteweb.es y http://es.wikipedia.org

Ejemplo de configuración de una red de enrutamiento para una comunicación NAT64 sin estado.

Aprovechando esta noticia que en realidad se conoce desde hace unos días, vamos a presentar un ejemplo de configuración del NAT64 para routers Cisco. La comunicación NAT64 sin estado está habilitada en la solución Cisco Carried-Grade IPv6, que pretende preservar las infraestructuras IPv4 y prepararse para una transición gradual hacia IPv6.

Los requisitos para configurar NAT64 sin estado son los siguientes:

  • Una dirección IPv6 asignada a cualquier host de la red debe tener una dirección válida de IPv4 traducible y viceversa.
  • Se debe habilitar el comando IPv6 unicast-routing para que esta configuración funcione.
  •  Hay que poseer una IOS lo suficientemente actual para que soporte NAT64. Con mi IOS c7200 no es suficiente, por lo que no voy a poder mostraros con GNS3 el resultado de ejecutar los comandos. Lo mostraré de todos modos en texto plano.

nat64

Pasos a seguir:

  1. Habilitamos el modo privilegiado EXEC:
    Router> enable
  2. Entramos en modo de configuración global:
    Router# configure terminal
  3. Habilitamos el envío de datagramas IPv6 unicast:
    Router(config)# ipv6 unicast-routing
  4. Configuramos un tipo de interfaz y entramos en la interfaz modo de configuración:
    Router(config)# interface giabitethernet0/0/0
  5. Añadimos una descripción a la interfaz de configuración:
    Router(config-if)# description interface towards ipv4 side
  6. Permitimos el procesamiento de IPv6 en una interfaz:
    Router(config-if)# ipv6 enable
  7. Configuramos una dirección IPv6 sobre la base de un prefijo de IPv6 general y habilitamos el procesamiento de IPv6 en una interfaz:
    Router(config-if)# ipv6 address 2001:1::/96
  8. Habilitamos la traducción NAT64 sin estado en la interfaz IPv6:
    Router(config-if)# nat64 enable
  9. Salimos del modo de configuración de interfaz y volvemos al modo de configuración global:
    Router(config-if)# exit
  10. Configuramos otro tipo de interfaz y entramos en la interfaz modo de configuración:
    Router(config)# interface giabitethernet1/2/0
  11. Añadimos una descripción a la interfaz de configuración:
    Router(config-if)# description interface towards ipv6 side
  12. Configuramos una dirección IPv4 para esa interfaz:
    Router(config-if)# ip address 192.168.0.0 255.255.255.0
  13. Habilitamos la traducción NAT64 sin estado en la interfaz IPv4:
    Router(config-if)# nat64 enable
  14. Salimos del modo de configuración de interfaz y volvemos al modo de configuración global:
    Router(config-if)# exit
  15. Definimos el prefijo sin Estado NAT64 que se añadirá a los hosts IPv4 para traducir la dirección IPv4 en una dirección IPv6. El comando también identifica el prefijo que debe ser usado para crear las direcciones IPv4 traducibles para los hosts IPv6.
    Router(config)# nat64 prefix stateless 2001:0db8:0:1::/9
  16. Enrutamos el tráfico IPv4 hacia la correcta interfaz de IPv6.
    Router(config)# nat64 route 192.168.0.0/24 gigabitethernet0/0/1
  17. Salimos del modo de configuración global y volvemos al modo privilegiado EXEC:
    Router(config)# end

Seguimiento y mantenimiento de la red de enrutamiento NAT64 sin estado.

Para verificar y monitorear la red de enrutamiento sin estado NAT64, vamos a ejecutar los siguientes comandos en el modo privilegiado.

  1. show nat64 statistics
    Este comando muestra las estadísticas globales y específicas de la interfaz de los paquetes que se traducen y los que se pierden.

    Router# show nat64 statistics

    NAT64 StatisticsGlobal Stats:
    Packets translated (IPv4 -> IPv6): 21
    Packets translated (IPv6 -> IPv4): 15
    GigabitEthernet0/0/1 (IPv4 configured, IPv6 configured):
    Packets translated (IPv4 -> IPv6): 5
    Packets translated (IPv6 -> IPv4): 0
    Packets dropped: 0
    GigabitEthernet1/2/0 (IPv4 configured, IPv6 configured):
    Packets translated (IPv4 -> IPv6): 0
    Packets translated (IPv6 -> IPv4): 5
    Packets dropped: 0

  2. show ipv6 route
    Este comando muestra el prefijo configurado sin estado y la ruta específica para las direcciones IPv6 (IPv4 traducidas) apuntando hacia el lado de IPv6.

    Router# show ipv6 route
    IPv6 Routing Table - default - 6 entries
    Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
    B - BGP, R - RIP, I1 - ISIS L1, I2 - ISIS L2
    IA - ISIS interarea, IS - ISIS summary, D - EIGRP, EX - EIGRP external
    ND - Neighbor Discovery
    O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
    ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
    LC 2001::1/128 [0/0] via FastEthernet0/3/4, receive
    S 2001::1B01:10A/128 [1/0] via FastEthernet0/3/4, directly connected
    S 3001::/96 [1/0] via ::42, NVI0
    S 3001::1E1E:2/128 [1/0] via FastEthernet0/3/0, directly connected
    LC 3001::C0A8:64D5/128 [0/0] via FastEthernet0/3/0, receive
    L FF00::/8 [0/0] via Null0, receive

  3. show ip route
    Este comando muestra las direcciones IPv4 en Internet que han alcanzado el lado de IPv4.

    Router# show ip route

    Codes: R - RIP derived, O - OSPF derived,
    C - connected, S - static, B - BGP derived,
    * - candidate default route, IA - OSPF inter area route,
    i - IS-IS derived, ia - IS-IS, U - per-user static route,
    o - on-demand routing, M - mobile, P - periodic downloaded static route,
    D - EIGRP, EX - EIGRP external, E1 - OSPF external type 1 route,
    E2 - OSPF external type 2 route, N1 - OSPF NSSA external type 1 route,
    N2 - OSPF NSSA external type 2 route
    Gateway of last resort is 10.119.254.240 to network 10.140.0.0
    O E2 10.110.0.0 [160/5] via 10.119.254.6, 0:01:00, Ethernet2
    E 10.67.10.0 [200/128] via 10.119.254.244, 0:02:22, Ethernet2
    O E2 10.68.132.0 [160/5] via 10.119.254.6, 0:00:59, Ethernet2
    O E2 10.130.0.0 [160/5] via 10.119.254.6, 0:00:59, Ethernet2
    E 10.128.0.0 [200/128] via 10.119.254.244, 0:02:22, Ethernet2
    E 10.129.0.0 [200/129] via 10.119.254.240, 0:02:22, Ethernet2
    E 10.65.129.0 [200/128] via 10.119.254.244, 0:02:22, Ethernet2
    E 10.10.0.0 [200/128] via 10.119.254.244, 0:02:22, Ethernet2
    E 10.75.139.0 [200/129] via 10.119.254.240, 0:02:23, Ethernet2
    E 10.16.208.0 [200/128] via 10.119.254.244, 0:02:22, Ethernet2
    E 10.84.148.0 [200/129] via 10.119.254.240, 0:02:23, Ethernet2
    E 10.31.223.0 [200/128] via 10.119.254.244, 0:02:22, Ethernet2
    E 10.44.236.0 [200/129] via 10.119.254.240, 0:02:23, Ethernet2
    E 10.141.0.0 [200/129] via 10.119.254.240, 0:02:22, Ethernet2
    E 10.140.0.0 [200/129] via 10.119.254.240, 0:02:23, Ethernet2
    IPv6 Routing Table - default - 6 entries

  4. debug nat64
    Este comando habilita la depuración del NAT64 sin estado.

    Router# debug nat64 statistics

    NAT64 statistics debugging is on
    Sep 16 18:26:24.537 IST: NAT64 (stats): Received stats update for IDB(FastEthernet0/3/5)
    Sep 16 18:26:24.537 IST: NAT64 (stats): Updating pkts_translated_v4v6 from 94368894 to
    95856998 (is_delta(TRUE) value(1488104))
    Sep 16 18:26:24.537 IST: NAT64 (stats): Received stats update for IDB(FastEthernet0/3/4)
    Sep 16 18:26:24.537 IST: NAT64 (stats): Updating pkts_translated_v6v4 from 7771538 to
    7894088 (is_delta(TRUE) value(122550))
    Sep 16 18:26:24.537 IST: NAT64 (stats): Received global stats update
    Sep 16 18:26:24.537 IST: NAT64 (stats): Updating pkts_translated_v4v6 from 1718650332 to
    1720138437 (is_delta(TRUE) value(1488105))
    Sep 16 18:26:24.537 IST: NAT64 (stats): Updating pkts_translated_v6v4 from 1604459283 to
    1604581833 (is_delta(TRUE) value(122550))

  5. ping
    Lo siguiente es un ejemplo de una captura de paquetes desde el lado de IPv6 cuando se especifica el comando ping 198.168.0.2 después de configurar el comando nat64 enabletanto en lasinterfaces IPv4 como en las interfaces IPv6.

    Router# ping 198.168.0.2

    Time Source Destination Protocol Info
    1 0.000000 2001::c6a7:2 2001::c6a8:2 ICMPv6 Echo request
    Frame 1: 118 bytes on wire (944 bits), 118 bytes captured (944 bits)
    Arrival Time: Oct 8, 2010 11:54:06.408354000 India Standard Time
    Epoch Time: 1286519046.408354000 seconds
    [Time delta from previous captured frame: 0.000000000 seconds]
    [Time delta from previous displayed frame: 0.000000000 seconds]
    [Time since reference or first frame: 0.000000000 seconds]
    Frame Number: 1
    Frame Length: 118 bytes (944 bits)
    Capture Length: 118 bytes (944 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocol in frame: eth:1pv6:icmpv6: data]
    Ethernet II, Src:Cisco_c3:64:94 (00:22:64:c3:64:94), Dst: Cisco_23:f2:30
    (00:1f:6c:23:f2:30)
    Destination: Cisco_23:f2:30 (00:1f:6c:23:f2:30)
    Address: Cisco_23:f2:30 (00:1f:6c:23:f2:30)
    (0 .... .... .... .... = IG bit: Individual address (unicast... ....
    (0 .... .... .... .... = LG bit: Globally unique address (factory default... ....
    Source: Cisco_c3:64:94 (00:22:64:c3:64:94)
    Address: Cisco_c3:64:94 (00:22:64:c3:64:94)
    (0 .... .... .... .... = IG bit: Individual address (unicast... ....
    (0 .... .... .... .... = LG bit: Globally unique address (factory default... ....
    Type: IPv6 (0x86dd)
    Internet Protocol Version 6, src: 2001::c6a7:2 (2001::c6a7:2), Dst: 2001::c6a8:2
    (2001::c6a8:2)
    0110 .... = Version: 6
    [0110 .... = This field makes the filter “ip.version ==6” possible:: 6]
    0000 0000 ... .... .... .... .... = Traffic class: 0x00000000 ....
    0000 00.. .... .... .... .... .... = Differentiated Services Field: Default ....
    (0x00000000)
    0. .... .... .... ... .... = ECN-Capable Transport (ECT): Not set.. .... ....
    0000 0000 0000 0000 0000 = Flowlabel: 0x00000000 .... .... ....
    Payload length: 64
    Next header: 64
    Hop limit: 64
    Source: 2001::c6a7:2 (2001::c6a7:2)
    [Source Teredo Server IPv4: 0.0.0.0 (0.0.0.0)]
    [Source Teredo Port: 6535]
    [Source Teredo Client IPv4: 198.51.100.1 (57.88.255.253)]
    Destination: 2001:c6a8:2 (2001::c6a8:2)
    [Destination Teredo Server IPv4: 0.0.0.0 {0.0.0.0)]
    [Destination Teredo Port: 65535]
    [Destination Teredo Client IPv4: 198.51.100.2 {198.51.100.2)]
    Internet Control Message Protocol v6
    Type: 128 (Echo request)
    Code: 0 (Should always be zero)
    Checksum: 0xaed2 [correct]
    ID: 0x5018
    Sequence: 0x0000
    Data (56 bytes)
    Data: 069ae4c0d3b060008090a0b0c0d0e0f1011121314151617...
    [Length: 57]

Configuración final

Si copiamos la siguiente secuencia en el modo de configuración global obtendremos la configuración deseada. Para listarla de nuevo, por ejemplo para guardarla en un fichero, podemos utilizar el comando show running config.

ipv6 unicast-routing
!
interface GigabitEthernet0/0/1
description interface towards ipv4 side
ip address 198.168.0.0 255.255.255.0
nat64 enable
!
interface GigabitEthernet1/2/0
description interface towards ipv6 side
ipv6 address 2001::1/128
ipv6 enable
nat64 enable
!
nat64 prefix stateless 2001::/96
nat64 route 198.167.0.0/24 GigabitEthernet1/2/0

Esto es todo. Un saludo.

Fuente: http://www.cisco.com