Ưu tiên IPv4 so với IPv6 trong Windows 7


31

Tôi có kết nối IPv6 thông qua đường hầm Hurricane Electric. Kể từ ngày IPv6 năm nay, nhiều dịch vụ (google.com, facebook.com, v.v.) đã bật IPv6 trên các tên miền chính của họ. Trên máy Windows của tôi, IPv6 được ưu tiên hơn IPv4. Điều này có nghĩa là bất cứ khi nào tôi truy cập Google, tất cả lưu lượng truy cập đều đi qua đường hầm của tôi đến Hurricane Electric, điều này làm tăng độ trễ hơn 100%:

C:\> ping www.google.com

Pinging www.l.google.com [2001:4860:8005::68] with 32 bytes of data:
Reply from 2001:4860:8005::68: time=85ms
Reply from 2001:4860:8005::68: time=84ms
Reply from 2001:4860:8005::68: time=112ms
Reply from 2001:4860:8005::68: time=86ms

Ping statistics for 2001:4860:8005::68:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 84ms, Maximum = 112ms, Average = 91ms


C:\> ping -4 www.google.com

Pinging www.l.google.com [173.194.79.103] with 32 bytes of data:
Reply from 173.194.79.103: bytes=32 time=28ms TTL=48
Reply from 173.194.79.103: bytes=32 time=28ms TTL=48
Reply from 173.194.79.103: bytes=32 time=55ms TTL=46
Reply from 173.194.79.103: bytes=32 time=29ms TTL=46

Ping statistics for 173.194.79.103:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 28ms, Maximum = 55ms, Average = 35ms

Câu hỏi: Làm cách nào để Windows 7 luôn thích IPv4, khi cả bản ghi IPv4 và IPv6 đều có sẵn cho một tên miền cụ thể?


4
Cách thích hợp cho việc này, trên hầu hết các hệ điều hành, là định cấu hình chính sách tiền tố - trên Windows, thông qua netsh interface ipv6 show prefixpolicy. Tôi có thể gửi một câu trả lời chi tiết hơn vào ngày mai.
grawity

1
@grawity Điều đó nên prefixpolicies, không prefixpolicy.
Peter Wood

@PeterWood Có thể khác với XP, sau đó.
grawity

1
@grawity Có, tôi đang dùng Windows 7 và gọi điện netsh interface ipv6 showcho việc sử dụng bao gồm show prefixpolicies - Shows prefix policy entries, nhưng không prefixpolicy. Chúc mừng.
Peter Wood

Câu trả lời:


40

Giải pháp số 1: Thêm chính sách tiền tố để thích địa chỉ IPv4 hơn IPv6

Bảng chính sách tiền tố tương tự như bảng định tuyến, nó xác định địa chỉ IP nào được ưu tiên khi thực hiện kết nối. Lưu ý rằng mức độ ưu tiên cao hơn trong các chính sách tiền tố được biểu thị bằng giá trị "ưu tiên" lager, ngược lại hoàn toàn với giá trị "chi phí" của bảng định tuyến.

Bảng chính sách tiền tố Windows mặc định:

C:\>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

Lưu ý rằng địa chỉ IPv6 (:: / 0) được ưu tiên hơn địa chỉ IPv4 (:: / 96, :: ffff: 0: 0/96).

Chúng tôi có thể tạo một chính sách sẽ khiến đường hầm IPv6 của Hurricane Electric trở nên kém thuận lợi hơn bất kỳ địa chỉ IPv4 nào :

netsh interface ipv6 add prefixpolicy 2001:470::/32 3 6

2001: 470 :: / 32 là tiền tố của Hurricane Electric, 3 là Ưu tiên (rất thấp) và 6 là Nhãn.

Tôi có thể đã sử dụng một tiền tố chung hơn, nhưng tôi muốn chắc chắn hơn là nếu và khi tôi nhận được kết nối IPv6 trực tiếp từ một ISP, nó sẽ được ưu tiên hơn so với IPv4.

Nếu bạn điều chỉnh giải pháp này, bạn cần thay thế một tiền tố IPv6 thích hợp thay vì tiền tố Hurricane Electric của tôi.

Giải pháp số 2: Đăng ký tinh chỉnh để làm cho Windows luôn thích IPv4 hơn IPv6

Giải pháp này chung chung hơn, nhưng xâm lấn hơn và ít tuân thủ tiêu chuẩn hơn. Cuối cùng, Windows vẫn sẽ sửa đổi bảng chính sách tiền tố cho bạn.

  • Mở RegEdit, điều hướng đến HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters
  • Tạo DisabledComponentsgiá trị đăng ký DWORD, đặt giá trị của nó thành 20 (Hệ thập lục phân). Xem Microsoft KB 929852 để biết thêm thông tin về khóa đăng ký này, đặc biệt nếu DisabledComponentsđã tồn tại trên hệ thống của bạn.
  • Khởi động lại.

Các lệnh PowerShell cho giải pháp số 2: Get-ItemProperty -Path hklm:SYSTEM\CurrentControlSet\Services\tcpip6\Parameters -Name "DisabledComponents" | select -exp DisabledComponents Set-Itemproperty -Path hklm:SYSTEM\CurrentControlSet\Services\tcpip6\Parameters -Name "DisabledComponents" -value 32
Sergii Volchkov

Đó là một mánh khóe mà bạn không thể đặt tùy chọn này cho mỗi kết nối (ví dụ: tôi có bộ định tuyến lỗi) nhưng chỉ trên toàn cầu hoặc nhiều nhất là trên mỗi bộ chuyển đổi.
mirh

23

Nếu văn bản và bảng đơn cách có số và ký hiệu lạ làm bạn sợ, bạn có thể thực hiện việc này với Microsoft Fix-it, trình cài đặt đơn giản của Microsoft giúp thay đổi cấu hình cho bạn.

Những sửa lỗi này đến từ KB 2533454 , điều này giải thích rằng bạn sẽ muốn làm điều này nếu kết nối IPv6 của bạn bị hỏng. Bạn cần phải là một quản trị viên để chạy bản sửa lỗi; Sau khi tải xuống, nhấp chuột phải và chọn Chạy với tư cách quản trị viên.


+1 có cách nhấn nút để bật / tắt điều này thực sự tuyệt vời, chúc mừng
tro.999

7

Cách đơn giản nhất, và chúng luôn đơn giản đến mức chúng ta bỏ qua chúng ...

  1. mở Trung tâm Mạng và Chia sẻ.

  2. Có bấm vào Thay đổi cài đặt bộ điều hợp

  3. Trên "Thanh menu" Nhấp vào Nâng cao. ** Lưu ý..Nếu bạn chỉ thấy "Sắp xếp", sau đó nhấp vào đó, rồi từ trình đơn thả xuống, chọn "Bố cục - Thanh menu"

  4. Sau khi nhấp vào nâng cao ở bước trước, nhấp vào "Cài đặt nâng cao" trong bước này (Một hộp sẽ mở trên màn hình của bạn)

  5. Những gì được hiển thị là bộ điều hợp và cài đặt và bộ điều hợp bạn đang sử dụng sẽ được tô sáng ở nửa trên và phân tích đại diện của nó bên dưới (bạn sẽ thấy các ràng buộc cho bộ điều hợp đó). Đánh dấu bất kỳ một trong các ràng buộc nào trong danh sách và bạn sẽ thấy các mũi tên bên phải sáng lên, sử dụng các mũi tên đó để thay đổi thứ tự ràng buộc theo sở thích của bạn và sau đó chọn ok từ dưới lên.

  6. Lưu ý rằng giống như khi bạn cài đặt một giao thức, dịch vụ hoặc máy khách trong thuộc tính bộ điều hợp. Áp dụng tương tự ở đây. đó là bạn thay đổi một bộ chuyển đổi và phần còn lại theo sau. Vì vậy, ví dụ, nếu bạn chọn IPV6 thích hơn 4 trên bộ điều hợp không dây, bộ điều hợp mạng LAN của bạn cũng thay đổi.

Đó là cách dễ nhất tôi có thể nghĩ để thực hiện nhiệm vụ đặc biệt này mà không phải suy nghĩ quá nhiều hoặc có quá nhiều kiến ​​thức về định tuyến của các gói trên một mạng liên kết.


2
Khi tôi đến đó, IPv4 đã được liệt kê đầu tiên trong cả hai loại. Tuy nhiên, khi tôi đi đến các thuộc tính của bộ điều hợp mạng, IPv6 được liệt kê đầu tiên.
kojow7

1

Phiên bản ngắn

Before September 2012                     After September 2012
Precedence  Prefix                        Precedence  Prefix       
----------  -------------                 ----------  -------------
        50  ::1/128        IPv6 loopback          50  ::1/128        IPv6 loopback
        40  ::/0           Native IPv6            40  ::/0           Native IPv6
        40  fc00::/7       ULAs                   35  ::ffff:0:0/96  IPv4
        40  fec0::/10      site-local             30  2002::/16      6to4
        40  3ffe::/16      6bone                   5  2001::/32      Teredo
        30  2002::/16      6to4                    3  fc00::/7       ULAs
        20  ::/96          IPv4compat              1  fec0::/10      site-local
        10  ::ffff:0:0/96  IPv4                    1  3ffe::/16      6bone
         5  2001::/32      Teredo                  1  ::/96          IPv4compat

Phiên bản dài

RFC6724 đã xác định một sự thay đổi trong cách các địa chỉ nên được ưu tiên. Với thay đổi này, IPv6 không còn là địa chỉ ưa thích trong gần như mọi trường hợp :(

Câu hỏi này, được hỏi vào tháng 6 năm 2012 đã được RFC "sửa" từ tháng 9 năm 2012. Tùy thuộc vào phiên bản Windows của bạn, bạn có chính sách mới này ngay lập tức (Windows 8.1) hoặc có thể đã được gửi qua bản cập nhật ( Windows 8, Windows 7, Windows Vista).

Chúng tôi ở đây vì chúng tôi muốn sử dụng IPv6; chúng tôi muốn thay đổi hoàn tác.

Làm thế nào để đặt nó trở lại

Nếu bạn nhận được nhiều địa chỉ IP cho một máy chủ, máy của bạn phải quyết định địa chỉ nào sẽ sử dụng. Một ví dụ xếp hạng có thể là:

  • IPv6 loopback
  • IPv6 nguyên bản
  • Địa chỉ duy nhất-cục bộ (ULAs), ví dụ: fdxx ::
  • Trang web cục bộ, ví dụ fec0
  • 6 xương
  • 6 đến 4
  • IPv4compat
  • IPv4
  • Teredo, ví dụ 2001

Trên máy Windows của bạn, xếp hạng này được gọi là chính sách tiền tố .

Chính sách tiền tố

Bạn có thể xem chính sách tiền tố của máy tính bằng cách chạy:

>netsh int ipv6 show prefixpolicies

Vào thời xa xưa (ban đầu được xác định bởi RFC 3484 ), chính sách tiền tố là:

Precedence  Prefix         
----------  -------------
        50  ::1/128        IPv6 loopback
        40  ::/0           Native IPv6
        40  fc00::/7       ULAs
        40  fec0::/10      site-local
        40  3ffe::/16      6bone
        30  2002::/16      6to4
        20  ::/96          IPv4compat
        10  ::ffff:0:0/96  IPv4
         5  2001::/32      Teredo

Vì vậy, bạn nhìn thấy nó sẽ khá nhiều luôn sử dụng IPv6 (yay!):

  1. IPv6 loopback
  2. IPv6 nguyên bản, ULAs, trang web cục bộ, 6one
  3. 6 đến 4
  4. IPv4compat
  5. IPv4
  6. Teredo

Nếu bạn đã nỗ lực triển khai IPv6: nó chỉ hoạt động.

Chính sách tiền tố mới

Trong năm 2012, một thứ tự ưu tiên mới đã được xác định bởi RFC6724 . Ngày nay, chính sách tiền tố khá nhiều đảm bảo rằng bạn sẽ không bao giờ sử dụng IPv6:

Precedence  Prefix         
----------  -------------
        50  ::1/128        
        40  ::/0           Native IPv6
        35  ::ffff:0:0/96  IPv4
        30  2002::/16      
         5  2001::/32      
         3  fc00::/7       ULAs
         1  fec0::/10      site-local
         1  3ffe::/16      
         1  ::/96          

Bạn sẽ thấy rằng bạn sẽ không bao giờ có thể sử dụng Địa chỉ Địa phương duy nhất hoặc địa chỉ trang web địa phương; nó bị hỏng vĩnh viễn:

  1. IPv6 loopback
  2. IPv6 nguyên bản
  3. IPv4
  4. 6 đến 4
  5. Teredo
  6. ULAs
  7. trang web địa phương
  8. 6 xương
  9. IPv6

Làm thế nào để khắc phục nó?

Điều chúng tôi muốn là sửa IPv6 để các ULA được ưa thích hơn IPv4. Ít nhất chúng tôi muốn đẩy việc sử dụng ULAs ( fc00::/7) lên trên mức của IPv4:

Precedence  Prefix         
----------  -------------
        50  ::1/128        
        40  ::/0           Native IPv6
        37  fc00::/7       ULAs <---------- from 3 up to 37
        35  ::ffff:0:0/96  IPv4
        30  2002::/16      
         5  2001::/32      
         1  fec0::/10      site-local
         1  3ffe::/16      
         1  ::/96          

Điều này được thực hiện bởi:

>netsh interface ipv6 set prefixpolicy prefix=fc00::/7 precedence=37 label=13 store=active

Điều đó sẽ chỉ giữ cho nó hoạt động cho đến khi khởi động lại tiếp theo. Để thay đổi vĩnh viễn:

>netsh interface ipv6 set prefixpolicy fc00::/7 37 13

Nếu tôi:

  • đã nỗ lực để tạo tiền tố toàn cầu ULA cho / 48 của tôi
  • và chọn id mạng con cho my / 64
  • và triển khai ULAs tới mọi máy trong doanh nghiệp
  • và cập nhật các máy chủ DNS để trả về các địa chỉ IPv6 ULA ngoài các địa chỉ IPv4

ít nhất máy tính có thể làm là có phép lịch sự chung để sử dụng địa chỉ.

Phần thưởng

Các fc00::/7phạm vi được chia thành hai phần:

  • fd00::/8 - Tiền tố GlobalID được tạo cục bộ
  • fc00::/8 - ???

Không ai từng thực sự quyết định fcsẽ tốt cho, và vì vậy chỉ cần ngồi ở đó.

Các fdđịa chỉ được xác định là:

fd [40-bit random GlobalID] [16-bit subnet] [64-bits for host assignment]

Vì vậy, nếu bạn đã tạo a4d7f6dd66dưới dạng GlobalID 40 bit ngẫu nhiên của tiền điện tử , điều đó mang lại cho bạn / 48:

  • fda4:d7f5:dd66:: / 48
  • fda4:d7f5:dd66:face::/ 64 (trong facemạng con)
  • fda4:d7f5:dd66:face::825 làm địa chỉ IP máy chủ

SixXS đã duy trì một cơ sở dữ liệu công khai về các tiền tố GlobalID Địa chỉ cục bộ duy nhất để giảm cơ hội thu thập, ví dụ:

  • fdee:e004:2208::/48: Apple Inc - Leopard OSX
  • fdd4:43c8:ba34::/48: TekSavvy - Daniel Murray
  • fdac:afbd:fea1::/48: IBM Rational Build Forge - Chris Fuller

Nhưng do việc sử dụng chậm và giá trị đáng ngờ ở nơi đầu tiên, SixXS đã ngừng dịch vụ vào năm 2018.

Đọc thưởng


Các fc00::/7mạng thực sự được chia thành hai phần. Các fc00::/8mạng được dành riêng cho một quyền lực toàn cầu trong tương lai để gán từ, và không thể hiện được sử dụng, nhưng fd00::/8hiện có sẵn để giao địa phương, nhưng nó đòi hỏi 40 bit bên cạnh được lựa chọn một cách ngẫu nhiên.
Ron Maupin

Trên thực tế, chúng tôi ở đây vì chúng tôi (và OP) KHÔNG MUỐN sử dụng IPv6 và nó vẫn hoạt động trên loopback mặc dù tôi đã vô hiệu hóa mọi phiên bản IPv6 mà tôi có thể tìm thấy!
AaA

0

Có một phương pháp dễ dàng hơn cho tôi. Tôi chỉ thay đổi số liệu giao diện # để xác định mức độ ưu tiên của nó. Trước đây tôi đã sử dụng phương pháp này để thay đổi mức độ ưu tiên của bộ điều hợp mạng (ưu tiên NIC không dây trước, ưu tiên LAN LAN thứ hai), nhưng tôi phát hiện ra nó cũng hoạt động trên TCP / IPv4 và TCP / IPv6. Trong trường hợp này, tôi đã thay đổi số liệu giao diện của TCP / IPv4 từ Tự động thành 5 và số liệu giao diện TCP / IPv6 từ Tự động thành 10. Số liệu số càng thấp, mức độ ưu tiên của nó càng cao. Sau đó khởi động lại PC của bạn. Vì vậy, bây giờ bất cứ khi nào tôi ping bằng tên máy chủ, nó sẽ trả lời từ IPv4, thay vì Ipv6.

Dưới đây là một hướng dẫn chi tiết hơn

https://www.windowscentral.com/how-change-p Warriority-order-network-ad chương-windows-10

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.