IPv4 เทียบกับลำดับความสำคัญ IPv6 ใน Windows 7


31

ฉันมีการเชื่อมต่อ IPv6 ผ่านทางช่องสัญญาณ Hurricane Electric ตั้งแต่ IPv6 วันปีนี้บริการมากมาย (google.com, facebook.com ฯลฯ ) เปิดใช้งาน IPv6 ในโดเมนหลักของพวกเขา บนเครื่อง Windows ของฉัน IPv6 นั้นเป็นที่ต้องการมากกว่า IPv4 ซึ่งหมายความว่าเมื่อใดก็ตามที่ฉันเข้าชม Google การรับส่งข้อมูลทั้งหมดจะผ่านอุโมงค์ของฉันไปยัง Hurricane Electric ซึ่งเพิ่มเวลาในการตอบสนองมากกว่า 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

คำถาม: ฉันจะทำให้ Windows 7 เลือกใช้ IPv4 ได้ตลอดเวลาอย่างไรเมื่อทั้ง IPv4 และ IPv6 สามารถใช้งานได้กับชื่อโดเมนที่ระบุ


4
วิธีการที่เหมาะสมสำหรับการนี้บนระบบปฏิบัติการมากที่สุดคือการกำหนดค่านโยบายคำนำหน้า - บน Windows netsh interface ipv6 show prefixpolicyผ่าน ฉันอาจโพสต์คำตอบที่ละเอียดยิ่งขึ้นในวันพรุ่งนี้
grawity

1
@grawity ที่ควรจะเป็นไม่ได้prefixpolicies prefixpolicy
Peter Wood

@PeterWood อาจแตกต่างไปจาก XP แล้ว
grawity

1
@grawity ใช่ฉันบน Windows 7 และโทรnetsh interface ipv6 showให้การใช้งานรวมถึงแต่ไม่show prefixpolicies - Shows prefix policy entries prefixpolicyไชโย
Peter Wood

คำตอบ:


40

โซลูชัน # 1: เพิ่มนโยบายคำนำหน้าเพื่อให้ชอบที่อยู่ IPv4 มากกว่า IPv6

ตารางนโยบายคำนำหน้านั้นคล้ายกับตารางเส้นทางซึ่งกำหนดที่อยู่ IP ที่ต้องการเมื่อทำการเชื่อมต่อ โปรดทราบว่าลำดับความสำคัญที่สูงกว่าในนโยบายคำนำหน้าจะแสดงด้วยค่า "ลำดับความสำคัญ" ของเบียร์ตรงข้ามกับค่า "เส้นทาง" ของตารางเส้นทาง

ตารางนโยบายคำนำหน้า Windows เริ่มต้น:

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

โปรดทราบว่าต้องการที่อยู่ IPv6 (:: / 0) มากกว่าที่อยู่ IPv4 (:: / 96, :: ffff: 0: 0/96)

เราสามารถสร้างนโยบายที่จะทำให้อุโมงค์ Hurricane Electric IPv6 เป็นที่น่าพอใจน้อยกว่าที่อยู่ IPv4 ใด ๆ :

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

2001: 470 :: / 32 คือส่วนนำหน้าของ Hurricane Electric 3 คือแบบ Precedence (ต่ำมาก) และ 6 คือ Label

ฉันสามารถใช้คำนำหน้าแบบทั่วไปมากขึ้น แต่ฉันต้องการตรวจสอบให้แน่ใจว่าถ้าและเมื่อฉันได้รับการเชื่อมต่อ IPv6 โดยตรงจาก ISP จะมีความสำคัญมากกว่า IPv4

หากคุณปรับใช้โซลูชันนี้คุณต้องเปลี่ยนคำนำหน้า IPv6 ที่เหมาะสมแทน Hurricane Electric ของฉัน

โซลูชัน # 2: ปรับแต่งรีจิสทรีเพื่อให้ Windows ต้องการ IPv4 มากกว่า IPv6 เสมอ

วิธีนี้เป็นวิธีทั่วไปมากกว่า แต่มีการบุกรุกมากกว่าและเป็นไปตามมาตรฐานน้อยกว่า ในท้ายที่สุด Windows จะยังคงแก้ไขตารางนโยบายคำนำหน้าสำหรับคุณ

  • เปิด RegEdit นำทางไป HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters
  • สร้างDisabledComponentsค่ารีจิสทรี DWORD ตั้งค่าเป็น 20 (เลขฐานสิบหก) ดูMicrosoft KB 929852สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรีจิสตรีคีย์นี้โดยเฉพาะหากDisabledComponentsมีอยู่แล้วในระบบของคุณ
  • Reboot

คำสั่ง PowerShell สำหรับโซลูชัน # 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

เป็นคนเกียจคร้านที่คุณไม่สามารถตั้งค่านี้สำหรับแต่ละการเชื่อมต่อ (เช่นฉันมีเราเตอร์บั๊กกี้) แต่มีเฉพาะทั่วโลกหรือต่ออะแดปเตอร์ส่วนใหญ่เท่านั้น
mirh

23

หากข้อความและตารางที่มีตัวเลขและสัญลักษณ์แปลก ๆ ทำให้ตกใจคุณสามารถทำสิ่งนี้ได้ด้วย Microsoft Fix-installer ที่เรียบง่ายจาก Microsoft ซึ่งทำการเปลี่ยนแปลงการกำหนดค่าสำหรับคุณ

การแก้ไขเหล่านี้มาจากKB 2533454ซึ่งอธิบายว่าคุณต้องการทำเช่นนี้หากการเชื่อมต่อ IPv6 ของคุณไม่ทำงาน คุณต้องเป็นผู้ดูแลระบบจึงจะสามารถแก้ไขได้ หลังจากดาวน์โหลดให้คลิกขวาและเลือก Run as administrator


+1 มีวิธีกดปุ่มเพื่อเปิดใช้งาน / ปิดการใช้งานนี้ยอดเยี่ยมจริง ๆ ไชโย
ashes999

7

วิธีที่ง่ายที่สุดและสิ่งเหล่านี้มักจะง่ายจนเรามองข้าม ...

  1. เปิดศูนย์เครือข่ายและการแบ่งปัน

  2. คลิกที่เปลี่ยนการตั้งค่าอะแดปเตอร์

  3. บน "แถบเมนู" คลิกที่ขั้นสูง ** หมายเหตุ .. หากคุณเห็น "จัดระเบียบ" จากนั้นคลิกที่จากนั้นเลือก "เลย์เอาต์ - แถบเมนู"

  4. หลังจากคลิกขั้นสูงในขั้นตอนก่อนหน้าคลิก "การตั้งค่าขั้นสูง" ในขั้นตอนนี้ (กล่องจะเปิดขึ้นบนหน้าจอของคุณ)

  5. สิ่งที่แสดงคืออะแดปเตอร์และการตั้งค่าและอะแดปเตอร์ที่คุณใช้อยู่ในปัจจุบันจะถูกไฮไลต์อยู่ที่ครึ่งบนและรายละเอียดตัวแทนด้านล่าง (คุณควรเห็นการผูกสำหรับอะแดปเตอร์นั้น) เน้นการผูกใด ๆ ในรายการและคุณควรสังเกตลูกศรเพื่อแสงที่ถูกต้องใช้ลูกศรเหล่านั้นเพื่อเปลี่ยนลำดับการเชื่อมโยงตามความต้องการของคุณแล้วเลือกตกลงจากด้านล่าง

  6. โปรดทราบว่าเช่นเดียวกับเมื่อคุณติดตั้งโปรโตคอลบริการหรือไคลเอนต์ในคุณสมบัติอะแดปเตอร์ของคุณ เช่นเดียวกับที่นี่ ซึ่งก็คือคุณเปลี่ยนอะแดปเตอร์หนึ่งตัวและส่วนที่เหลือเป็นชุดติดตาม ตัวอย่างเช่นหากคุณเลือก IPV6 ต้องการมากกว่า 4 ในอะแดปเตอร์ไร้สายของคุณอะแดปเตอร์ LAN ของคุณก็เปลี่ยนเช่นกัน

มันเป็นวิธีที่ง่ายที่สุดที่ฉันสามารถนึกถึงในการทำงานนี้โดยไม่ต้องคิดมากหรือมีความรู้มากเกินไปเกี่ยวกับการกำหนดเส้นทางของแพ็กเก็ตบนเครือข่ายอินเตอร์


2
เมื่อฉันไปที่นั่น IPv4 อยู่ในรายการแรกในทั้งสองหมวดหมู่ อย่างไรก็ตามเมื่อฉันไปที่คุณสมบัติของอะแดปเตอร์เครือข่ายของฉัน IPv6 อยู่ในรายการก่อน
kojow7

1

เวอร์ชั่นสั้น

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

รุ่นยาว

RFC6724กำหนดการเปลี่ยนแปลงว่าควรเลือกที่อยู่เป็นอย่างไร ด้วยการเปลี่ยนแปลงนี้ IPv6 ไม่ได้เป็นที่อยู่ที่ต้องการในเกือบทุกกรณี :(

คำถามนี้ซึ่งถูกถามเมื่อเดือนมิถุนายน 2012 นั้นถูก"คงที่"โดย RFC ตั้งแต่เดือนกันยายน 2012 คุณอาจมีนโยบายใหม่นี้นอกกรอบ (Windows 8.1) หรืออาจส่งผ่านการอัพเดทแล้ว (ขึ้นอยู่กับรุ่นของ Windows) Windows 8, Windows 7, Windows Vista)

เรามาที่นี่เพราะเราต้องการใช้ IPv6; เราต้องการยกเลิกการเปลี่ยนแปลงนั้น

วิธีใส่กลับ

หากคุณได้รับที่อยู่ IP หลายแห่งสำหรับโฮสต์เดียวเครื่องของคุณจะต้องตัดสินใจว่าจะใช้ที่อยู่ใด ตัวอย่างอันดับอาจเป็น:

  • IPv6 ลูปแบ็ค
  • Native IPv6
  • ที่อยู่เฉพาะในพื้นที่ (ULAs) เช่นfdxx ::
  • ไซต์ในพื้นที่เช่นfec0
  • 6bone
  • 6to4
  • IPv4compat
  • IPv4
  • Teredo เช่น2001

บนเครื่อง Windows ของคุณการจัดอันดับนี้เรียกว่านโยบายคำนำหน้า

นโยบายคำนำหน้า

คุณสามารถดูนโยบายคำนำหน้าคอมพิวเตอร์ของคุณได้โดยเรียกใช้:

>netsh int ipv6 show prefixpolicies

ในสมัยก่อน (กำหนดเดิมโดยRFC 3484 ) นโยบายคำนำหน้าคือ:

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

ดังนั้นคุณจะเห็นว่ามันสวยมากจะเสมอใช้ IPv6 (เย้!):

  1. IPv6 ลูปแบ็ค
  2. Native IPv6, ULAs, site-local, 6one
  3. 6to4
  4. IPv4compat
  5. IPv4
  6. เพรียง

หากคุณพยายามปรับใช้ IPv6: ใช้งานได้จริง

นโยบายคำนำหน้าใหม่

ในปี 2012 มีคำสั่งตั้งค่าใหม่ที่ถูกกำหนดโดยRFC6724 ทุกวันนี้นโยบายคำนำหน้าค่อนข้างมั่นใจว่าคุณจะไม่ใช้ 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          

คุณจะเห็นว่าคุณจะไม่สามารถใช้ที่อยู่เฉพาะในท้องถิ่นของคุณหรือที่อยู่ในพื้นที่ไซต์ มันหักอยู่ตลอดเวลา:

  1. IPv6 ลูปแบ็ค
  2. Native IPv6
  3. IPv4
  4. 6to4
  5. เพรียง
  6. Ulas
  7. เว็บไซต์ท้องถิ่น
  8. 6bone
  9. IPv6compat

จะแก้ไขได้อย่างไร?

สิ่งที่เราต้องการคือการแก้ไข IPv6 เพื่อให้ ULAs เป็นที่ต้องการมากกว่า IPv4 อย่างน้อยที่สุดเราต้องการผลักดันการใช้ ULAs ( fc00::/7) เหนือ 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          

ซึ่งทำโดย:

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

นั่นจะทำให้มันใช้งานได้จนกว่าจะรีบูตครั้งต่อไป วิธีเปลี่ยนค่าคงทนถาวร:

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

ถ้าฉัน:

  • ได้ผ่านความพยายามในการสร้างคำนำหน้าทั่วโลก ULA สำหรับ my / 48
  • และเลือก subnet id สำหรับ / 64 ของฉัน
  • และปรับใช้ ULAs กับทุกเครื่องในองค์กร
  • และอัปเดตเซิร์ฟเวอร์ DNS เพื่อส่งคืนที่อยู่ IPv6 ULA นอกเหนือจากที่อยู่ IPv4

อย่างน้อยคอมพิวเตอร์สามารถทำได้คือมีมารยาททั่วไปในการใช้ที่อยู่

โบนัสแช็

fc00::/7ช่วงแบ่งออกเป็นสองส่วน

  • fd00::/8 - คำนำหน้า GlobalID สร้างขึ้นในเครื่อง
  • fc00::/8 - ???

ไม่มีใครเคยตัดสินใจจริง ๆ ว่าfcจะดีและก็นั่งอยู่ที่นั่น

ที่fdอยู่ถูกกำหนดเป็น:

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

ดังนั้นหากคุณสร้างa4d7f6dd66เป็น GlobalID แบบ 40 บิตแบบcryptoghpcalllyซึ่งจะให้ / 48 ของคุณ:

  • fda4:d7f5:dd66:: / 48
  • fda4:d7f5:dd66:face::/ 64 (ในfaceซับเน็ต)
  • fda4:d7f5:dd66:face::825 เป็นที่อยู่ IP ของโฮสต์

SixXS รักษาฐานข้อมูลสาธารณะของคำนำหน้า Unique Local Address GlobalID เพื่อลดโอกาสในการชนเช่น:

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

แต่เนื่องจากการใช้งานช้าลงและค่าที่น่าสงสัยในตอนแรก SixXS หยุดให้บริการในปี 2018

การอ่านโบนัส


fc00::/7เครือข่ายแบ่งออกจริงๆออกเป็นสองส่วน fc00::/8เครือข่ายจะสงวนไว้สำหรับผู้มีอำนาจระดับโลกในอนาคตที่จะกำหนดจากและไม่สามารถนำมาใช้ในขณะนี้ แต่fd00::/8สามารถใช้ได้สำหรับการมอบหมายท้องถิ่น แต่มันต้องใช้ 40 บิตต่อไปที่จะสุ่มเลือก
Ron Maupin

ที่จริงเราอยู่ที่นี่เพราะเรา (และ OP) ไม่ต้องการใช้ IPv6 และมันยังคงทำงานอยู่บนลูปแบ็คแม้ว่าฉันจะปิดการใช้งานอินสแตนซ์ของ IPv6 ทุกอย่างที่ฉันหาได้!
AaA

0

มีวิธีที่ง่ายกว่าสำหรับฉัน ฉันเพิ่งเปลี่ยนอินเทอร์เฟซเมตริก # เพื่อกำหนดลำดับความสำคัญ ฉันเคยใช้วิธีนี้ในอดีตเพื่อเปลี่ยนลำดับความสำคัญของอะแดปเตอร์เครือข่าย (ลำดับความสำคัญของ Wireless NIC ก่อนลำดับความสำคัญ LAN NIC ที่สอง) แต่ฉันพบว่ามันทำงานบน TCP / IPv4 และ TCP / IPv6 เช่นกัน ในกรณีนี้ฉันเปลี่ยนเมตริกอินเตอร์เฟสของ TCP / IPv4 จากอัตโนมัติเป็น 5 และเมตริก TCP / IPv6 อินเตอร์เฟสจากอัตโนมัติเป็น 10 ยิ่งหมายเลขเมทริกต่ำลงลำดับความสำคัญยิ่งสูงขึ้น จากนั้นรีสตาร์ทพีซีของคุณ ดังนั้นเมื่อใดก็ตามที่ฉัน ping ใช้ชื่อโฮสต์มันจะตอบกลับจาก IPv4 แทน Ipv6

นี่คือคำแนะนำโดยละเอียดเพิ่มเติม

https://www.windowscentral.com/how-change-priority-order-network-adapters-windows-10

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.