none
Win7 seems to prefer IPv4 native to IPv6/6to4 - which is not what the policy table says - which is right?

    Question

  • I have a Win7 machine.  It has an IPv4 address, and an IPv6 address via 6to4 (from upstream - the PC is not the 6to4 site router).  I believe that IPv6 should preferred to www.ietf.org, which has both IPv4 and IPv6 records in the DNS.  It is not, however. Both "ping www.ietf.org" and using a web-browser to that same name use IPv4.  I can see the DNS queries go out and an A and AAAA record returned. 

    My prefix policy table shows IPv6 should be preferred.  Unless I don't know how to read it, 6to4 is clearly precedence 40, and native IPv4 is precedence 10.  Be clear I am not using IPv6/Teredo - I expect IPv4 to be preferred to that.  But I expect 6to4 to be preferred to IPv4.

    What is going on?

    My prefix table:

    C:\Windows\system32>netsh int ipv6 sho prefix
    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

    Tuesday, November 17, 2009 10:49 PM

Answers

  • Precedence  Label  Prefix
    -------------  ------  --------------------------------
                 50       0   ::1/128         = localhost
                 40       1   ::/0              = default (IPv6 native)
                 30       2   2002::/16     = 6to4 (IPv6)
                 20       3   ::/96            = IPv4 compatibility
                 10       4   ::ffff:0:0/96  = IPv4 compatibility
                  5        5   2001::/32     = Teredo (IPv6)

    http://www.dd-wrt.com/wiki/index.php/IPv6_%28tutorial%29#6to4_IPv6_as_default_protocol

    Quote:

    6to4 IPv6 as default protocol

    As per RFC3484 §2.1 default policy table, having a 6to4 enabled LAN will mean that 6to4 IPv6 will only be used to communicate to a server if the server is having a 6to4 adress too (ie: 2002: prefix on its address) or if there is no IPv4 address assigned to the server name (ie: no A but an AAAA).

    In short the following makes IPv6 (6to4) default on IPv6 enabled Windows boxes:

    1. Start -> Run -> "cmd" -> "netsh" -> "interface" -> "ipv6"

    2. To set IPv6 (6to4) as the default protocol on Microsoft Windows...

    set prefix ::1/128 50 0
    set prefix ::/0 40 1
    set prefix 2002::/16 30 1
    set prefix ::/96 20 3
    set prefix ::ffff:0/96 10 4
    set prefix 2001::/32 5 5
    

    Only the 2002::/16 line (6to4 prefix policy) is changed.

    3. To make things goes back to original mode (IPv4 preference)...

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

    And Voilà ;-)


    Shorter method also available here:
    Saturday, November 21, 2009 4:26 AM

All replies

  • Precedence  Label  Prefix
    -------------  ------  --------------------------------
                 50       0   ::1/128         = localhost
                 40       1   ::/0              = default (IPv6 native)
                 30       2   2002::/16     = 6to4 (IPv6)
                 20       3   ::/96            = IPv4 compatibility
                 10       4   ::ffff:0:0/96  = IPv4 compatibility
                  5        5   2001::/32     = Teredo (IPv6)

    http://www.dd-wrt.com/wiki/index.php/IPv6_%28tutorial%29#6to4_IPv6_as_default_protocol

    Quote:

    6to4 IPv6 as default protocol

    As per RFC3484 §2.1 default policy table, having a 6to4 enabled LAN will mean that 6to4 IPv6 will only be used to communicate to a server if the server is having a 6to4 adress too (ie: 2002: prefix on its address) or if there is no IPv4 address assigned to the server name (ie: no A but an AAAA).

    In short the following makes IPv6 (6to4) default on IPv6 enabled Windows boxes:

    1. Start -> Run -> "cmd" -> "netsh" -> "interface" -> "ipv6"

    2. To set IPv6 (6to4) as the default protocol on Microsoft Windows...

    set prefix ::1/128 50 0
    set prefix ::/0 40 1
    set prefix 2002::/16 30 1
    set prefix ::/96 20 3
    set prefix ::ffff:0/96 10 4
    set prefix 2001::/32 5 5
    

    Only the 2002::/16 line (6to4 prefix policy) is changed.

    3. To make things goes back to original mode (IPv4 preference)...

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

    And Voilà ;-)


    Shorter method also available here:
    Saturday, November 21, 2009 4:26 AM
  • Awesome help for Windows 7, but can you tell me how to do this for Vista please? I followed the steps and it worked for my Windows 7 machines, but when I did it on Vista it didn't work at all :(

    Wednesday, July 20, 2011 8:13 AM