gogoNET

IPv6 products, community and services

Hola a todos,


Esta pregunta la hice en una discusión que cree en el sitio pero solo uno respondió y aun no he resuelto el problema. La hago de nuevo en el grupo para ver si alguien ha
visto, o encuentra algo de esto, esta vez en Español
J. De esta forma empezamos a calentar motores.


Tengo una PC Linux como Router, con un túnel 6to4 configurado para acceder a Internet IPv6. Desde el propio Linux estoy publicando el prefijo de la red con el radvd para la autoconfiguración
de las estaciones de trabajo. Todo eso funciona muy bien hasta ahora. El problema
surge cuando trato de acceder desde Windows (XP/7) a sitios IPv6 fuera de mi
red, usando Mozilla o IE8. Se supone que por defecto el SO trate de establecer
la conexión por IPv6 y si no puede lo intente por IPv4, pero en mi caso no está
funcionando así.  


Si reviso la política en el Windows7 obtengo la siguiente tabla:

C:\Users\joel.alfredo>netsh interface ipv6 show prefixpolicies
Querying active state...

Precedence  Label  Prefix
----------  -----  --------------------------------
        50     
0  ::1/128
        40     
1  ::/0
        30     
2  2002::/16
        20     
3  ::/96
        10     
4  ::ffff:0:0/96
        
5      5  2001::/32
Con la que supuestamente las direcciones IPv6 (ya sean 6to4(2002::/16) o no,
tienen mayor precedencia que las IPv4 (::ffff:0:0/96))


Tambien revise el proceso de seleccion de nombres en el DNS y veo como se pregunta primero por el registro A, luego por el AAAA e inmediatamente trata de establecer conexion con
la IPv4 (Registro A) tal como se muestra a continuación:


172.16.8.9

200.55.128.3

DNS

Standard query A ipv6.he.net

200.55.128.3

172.16.8.9

DNS

Standard query response A 66.220.2.75

172.16.8.9

200.55.128.3

DNS

Standard query AAAA ipv6.he.net

200.55.128.3

172.16.8.9

DNS

Standard query response AAAA 2001:470:0:64::2

172.16.8.9

66.220.2.75

TCP

49626 > http [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=2

66.220.2.75

172.16.8.9

TCP

http > 49626 [SYN, ACK] Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 WS=6



Este comportamiento es el mismo si pregunto a mi DNS utilizando IPv4 o IPv6 tal com oven en la siguiente captura del Wireshark:

16 2002:be06:4612:1:5040:bb85:f0ff:57f5 2002:be06:4612:1::1 DNS Standard query
A ipv6.he.net
17 2002:be06:4612:1::1 2002:be06:4612:1:5040:bb85:f0ff:57f5 DNS Standard query
response A 66.220.2.75
18 2002:be06:4612:1:5040:bb85:f0ff:57f5 2002:be06:4612:1::1 DNS Standard query
AAAA ipv6.he.net
19 2002:be06:4612:1::1 2002:be06:4612:1:5040:bb85:f0ff:57f5 DNS Standard query
response AAAA 2001:470:0:64::2
20 172.16.8.9 66.220.2.75 TCP 49401 > http [SYN] Seq=0 Win=8192 Len=0
MSS=1460 WS=2

Sin embargo, si trato de acceder a mi sitio Web local (a través de su dirección
IPv6 6to4) funciona correctamente tal como ven a continuación:



15 2002:be06:4612:1:5040:bb85:f0ff:57f5 2002:be06:4612:1::1 DNS Standard query A www.net6sol.com
16 2002:be06:4612:1::1 2002:be06:4612:1:5040:bb85:f0ff:57f5 DNS Standard query
response A 190.6.70.18
17 2002:be06:4612:1:5040:bb85:f0ff:57f5 2002:be06:4612:1::1 DNS Standard query
AAAA www.net6sol.com
18 2002:be06:4612:1::1 2002:be06:4612:1:5040:bb85:f0ff:57f5 DNS Standard query
response AAAA 2002:be06:4612:1::1
19 2002:be06:4612:1:5040:bb85:f0ff:57f5 2002:be06:4612:1::1 TCP 49460 > http
[SYN] Seq=0 Win=8192 Len=0 MSS=1440 WS=2


Una cosa para los amantes a Linux, desde mi Ubuntu, todo funciona perfectamente J.


Estas son las soluciones que he intentado:


1.       Me recomendaron que deshabilitara Teredo, y lo deshabilite, no solo a Teredo, sino
a ISATAP también, utilizando el siguiente comando:


netsh int ipv6 set teredo disabled


netsh int ipv6 set ISATAP disabled


Pero nada cambió


2.       Utilice configuración estática en las estaciones Microsoft, pues vi que la metrica del Gateway autoconfigurado era mucho mayor que la IPv4 pero tampoco cambio nada. Claro, creo que el
problema está en la selección de la IP de destino, no del proceso de ruteo, asi
que era lógico que no funcionara.


3.       Por último le quite el Gateway IPv4 y así si se conecta utilizando IPv6, pero eso no es solución pues entonces no veo la Internet IPv4.


Estoy imaginando que sea un comportamiento de Microsoft al utilizar direcciones 6to4 pero realmente no encuentro que nadie se haya quejado de esto así que debo estar
haciendo algo mal. Si alguien puede repetir el experimento y me da sus
resultados seria de gran ayuda. Yo he probado con XP y 7 y pasa lo mismo.

Saludos a todos.

Tags: Algoritmo, Direcciones, IPv4/IPv6, Microsoft, Seleccion, Windows, XP/7, de

Views: 135

Replies to This Discussion

Bueno, encontré la respuesta en otro Forum (http://www.tunnelbroker.net). Resulta que Microsoft, por defecto, solo utiliza las direcciones 6to4 para comunicarse con otros hosts 6to4 o con hosts que solo utilizan IPv6. LA solucion esta descrita en:

Para XP
http://oldwiki.openwrt.org/IPv6_howto.html#head-e3a3af5ba5b2a7f8f19...

Para Vista/7
http://oldwiki.openwrt.org/IPv6_howto.html#head-a7f78c2c72f1b6d3899...

Saludos a todos.

Joel,

Sumandote a tu pregunta y posterior respuesta, estoy haciendo unas pruebas y no entiendo el siguiente comportamiento desde mi Windows XP SP2 con IPv6 habilitado.

al tirar el comando netsh para el show prefix policy tengo esta salida

Precedence Label Prefix
5 5 2001::/32
10 4 ::ffff:0:0/96
20 3 ::/96
30 2 2002::/16
40 1 ::/0
50 0 ::1/128

Segun entiendo, si estoy navegando desde mi PC que tiene IPv4 nativo y 6to4 habilitado, hacia sitios dual stack, los deberia descargar por IPv6 ya que:
::/0 (IPv6 default) tiene precedencia 40 sobre ::ffff:0:0/96 (IPv4). 
Sin embargo, descarga la pagina por IPv4, lo cual no se entiende...el DNS me devuelve ambos registros (A y AAAA) por lo que el SO debe ser el que decida ir por IPv6. Pero lo hace por IPv4.

Que puede ser?

Desde ya muchas gracias,

Hola Christian,

 

Por defecto Microsoft solo utiliza las direcciones IPv6 6to4 para conectarse a otras direcciones 6to4 o a equipos que no tienen IPv4, es decir, por defecto utilizará IPv4 para acceder a servicios en servidores Dual Stack.

Para que la dirección IPv6 (6to4) se utilice de forma predeterminada en Microsoft Windows cuando tratemos de conectarnos a una dirección IPv6 de cualquier tipo, se debe modificar la tabla de políticas para que la etiqueta (Label) del prefijo 6to4 coincida con el de la dirección que representa todas las direcciones IPv6 (::/0), resultando una tabla como la siguiente:

Precedence  Label  Prefix

----------  -----  --------------------------------

        50      0  ::1/128

        40      1  ::/0

        30      1  2002::/16

        20      3  ::/96

        10      4  ::ffff:0:0/96

         5      5  2001::/32

 

Esto se basa en la rfc3484 donde se define que:

The label value Label(A) allows for policies that prefer a particular source address prefix for use with a destination address prefix.  The algorithms prefer to use a source address S with a destination address D if Label(S) = Label(D).

 

La forma de lograrlo depende de la versión de Windows con la que estemos trabajando pero básicamente consiste en establecer (set) o adicionar (add) la política referida al prefijo 6to4.

netsh interface ipv6 set prefixpolicy 2002::/16 30 1
 

En caso de que no exista una política referida al prefijo 2002::/16 debe adicionarla de la siguiente manera:

 
netsh interface ipv6 add prefixpolicy 2002::/16 30 1
 

Es posible que al fijar una política se eliminen el resto de las existentes por lo que se debe guardar la tabla inicial para poder reescribirla (esto sucede en Windows XP). Para mostrar la tabla de políticas:

 
netsh interface ipv6 show prefixpolicies 
Espero haber ayudado en algo,
Saludos.

Joel,

Antes que nada gracias por la respuesta.

Lo que no comprendo es por que Windows no respeta la rfc en cuanto a la tabla default de prefixpolicy que obtuve a la salida del comando. Por mas que en la tabla uno interpreta que destinos IPv6 nativos tienen mayor preferencia que destinos IPv4, Windows definio esto arbitrariamente?

 

Que argumento tienen para definir que utilizaran 6to4 para destinos unicamente 6to4 o solo IPv6?

Mac OS y Linux/GNU se comportarian de la misma manera que Windows? 

 

Saludos y gracias,

 

Hola Christian,

Efectivamente existen distintos criterios en la selección de las direcciones IP de origen y destino en hosts dual stack. La RFC 3484 está siendo revisada por varios problemas que han surgido con el tiempo, y que no se tuvieron en cuenta cuando se redactó.

http://lists.apple.com/archives/ipv6-dev/2010/Mar/msg00005.html

Como verás en ese enlace, según la RFC 3484 en el caso de tener direcciones de origen 6to4 e IPv4 privadas (RFC 1918), para conectarnos a hosts dual stack se debería seleccionar la 6to4 ya que coincide en Scope (Global) con la dirección de destino IPv6 (que sería la preferida por tener mayor precedencia en la Tabla de políticas). Sin embargo, se ha considerado que en esos casos es más eficiente utilizar la dirección IPv4 con NAT que el túnel 6to4, por lo que se ha propuesto darle Scope Global a las direcciones IPv4 Mapped IPv6 y darles prioridad por encima de la 6to4. Esto lo puedes ver en un Internet Draft que refieren en el enlace anterior:

http://tools.ietf.org/html/draft-arifumi-6man-rfc3484-revise-02

No sé si en Linux ya hayan cambiado, pero hasta el momento en el que hice las pruebas (kernel 2.6.19 si no me equivoco), se prefería el uso de la dirección destino IPv6 con origen 6to4.

 Espero haber podido ayudarte, no dudes en escribir, pues me interesa mucho mantenerme al día en IPv6 y a veces si no tenemos alguna presión lo vamos dejando J

Saludos.

RSS

Sponsors

Coming soon...

IPv6 Product Information

gogoNET LIVE! 3 Event

Nov. 12-14, 2012, Silicon Valley, USA

© 2012   Created by gogo6.

Badges  |  Report an Issue  |  Terms of Service