IPv4 vs Windows 7'de IPv6 önceliği


31

Hurricane Electric tüneli üzerinden IPv6 bağlantım var. Bu yıl IPv6 gününden bu yana, birçok hizmet (google.com, facebook.com vb.) Ana etki alanlarında IPv6'yı etkinleştirdi. Windows makinemde IPv6, IPv4'ten daha çok tercih ediliyor. Bu, ne zaman Google’ı ziyaret edersem, tüm trafik tünelden geçerek gecikmeyi% 100’den daha fazla artıran Hurricane Electric’e gidiyor:

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

Soru: Belirli bir etki alanı adı için hem IPv4 hem de IPv6 kayıtları bulunduğunda, Windows 7'yi her zaman IPv4'ü tercih etmesini nasıl sağlayabilirim?


4
Bunun için, çoğu işletim sisteminde doğru yol, önek politikasını yapılandırmaktır - Windows üzerinden netsh interface ipv6 show prefixpolicy. Yarın daha ayrıntılı bir cevap verebilirim.
Grawity

1
@grawity Olması gereken prefixpoliciesdeğil prefixpolicy.
Peter Wood

@PeterWood XP'den sonra farklı olabilir.
grawity

1
@grawity Evet, Windows 7, ve arama netsh interface ipv6 showkullanımını içeren verir show prefixpolicies - Shows prefix policy entries, ancak hiçbir prefixpolicy. Şerefe.
Peter Wood

Yanıtlar:


40

1. Çözüm: IPv4 adreslerini IPv6 yerine tercih etmek için bir önek ilkesi ekleyin

Önek ilke tablosu yönlendirme tablosuna benzer, bağlantı yaparken hangi IP adreslerinin tercih edildiğini belirler. Önek politikalarındaki daha yüksek önceliğin, yönlendirme tablosu "maliyet" değerinin tam tersine, daha düşük bir "öncelik" değeriyle temsil edildiğine dikkat edin.

Varsayılan Windows ön eki tablosu:

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 adreslerinin (:: / 0) IPv4 adreslerine (:: / 96, :: ffff: 0: 0/96) tercih edildiğini unutmayın.

Hurricane Electric IPv6 tüneli herhangi bir IPv4 adresinden daha az elverişli hale getirecek bir politika oluşturabiliriz :

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

2001: 470 :: / 32 Hurricane Electric öneki, 3 Öncelik (çok düşük) ve 6 bir Etiket.

Daha genel bir önek kullanabilirdim, ancak bir ISS'den doğrudan bir IPv6 bağlantısı alıp almadığımdan ve IPv4'ten öncelikli olacağından emin olmak istedim.

Bu çözümü uyarlarsanız, Hurricane Electric'im yerine uygun bir IPv6 öneki kullanmanız gerekir.

2. Çözüm: Windows'un her zaman IPv6 yerine IPv4'ü tercih etmesini sağlamak için kayıt defterini düzenleyin

Bu çözüm daha geneldir ancak daha invaziv ve daha az standart uyumludur. Sonunda, Windows hala önek politikası tablosunu sizin için değiştirecektir.

  • RegEdit’i açın, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters
  • DisabledComponentsDWORD kayıt defteri değerini oluşturun , değerini 20 (Onaltılık) olarak ayarlayın. Özellikle sisteminizde zaten varsa , bu kayıt defteri anahtarı hakkında daha fazla bilgi için Microsoft KB 929852'ye bakın DisabledComponents.
  • Yeniden Başlatma.

Çözüm 2 için PowerShell komutları: 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

Bağlantı başına bu tercihi ayarlayamazsınız (örn. Bir yönlendirici yönlendiricim var) ancak yalnızca genel olarak veya en fazla bağdaştırıcı başına.
Mirh

23

Monospace metinleri ve garip sayıları ve sembolleri olan tablolar sizi korkutuyorsa, bunu sizin için yapılandırma değişikliklerini yapan Microsoft Fix-its, Microsoft'un basit yükleyicileri ile yapabilirsiniz.

Bunlar , IPv6 bağlantınız koptuğunda bunu yapmak isteyeceğinizi açıklayan KB 2533454'ten geliyor . Düzeltmeyi çalıştırmak için yönetici olmanız gerekir; indirdikten sonra sağ tıklayın ve Yönetici olarak çalıştır seçeneğini seçin.


Bunu etkinleştirmek / devre dışı bırakmak için basma düğmesi olan +1 gerçekten harika, şerefe
ashes999

7

En basit yol ve bunlar her zaman o kadar basit ki onları gözden kaçırıyoruz ...

  1. ağ ve Paylaşım Merkezini Aç.

  2. Adaptör Ayarlarını Değiştir butonuna tıklayın.

  3. "Menü Çubuğu" nda Gelişmiş'e tıklayın. ** Not..Eğer sadece "Düzenle" yi görüyorsanız, o zaman bunu tıklayın ve açılan menüden "Düzen - Menü Çubuğu" nu seçin.

  4. Önceki adımda gelişmiş seçeneğine tıkladıktan sonra, bu adımda "Gelişmiş Ayarlar" seçeneğini tıklayın (ekranınızda bir kutu açılacaktır)

  5. Görüntülenenler adaptörler ve ayarlardır ve şu anda kullanmakta olduğunuz adaptör daha önce üst yarıda ve aşağıdaki temsili çözümlemede vurgulanacaktır (bu adaptör için ciltleme görmelisiniz). Listedeki ciltleme listesinden birini vurgulayın ve sağ ışıktaki okları görmelisiniz, ciltleme sırasını tercihinize göre değiştirmek için bu okları kullanın ve ardından alttan ok seçeneğini seçin.

  6. Bağdaştırıcınızın özelliklerine bir protokol, hizmet veya istemci yüklediğinizde olduğu gibi. Aynısı burada da geçerlidir. bu da bir adaptör değiştirdiğin ve geri kalanı da uyuyor. Örneğin, kablosuz bağdaştırıcınızda IPV6'yı 4'ten çok tercih ederseniz, LAN bağdaştırıcınız da değişir.

Çok fazla düşünmek zorunda kalmadan veya paketler arası bir ağda yönlendirilmesi hakkında çok fazla bilgiye sahip olmadan, bu belirli görevi yapmayı düşünmenin en kolay yolu.


2
Oraya gittiğimde, IPv4 zaten her iki kategoride de ilk sırada yer alıyor. Ancak, ağ bağdaştırıcımın özelliklerine gittiğimde ilk önce IPv6 listeleniyor.
kojow7

1

Kısa versiyon

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

Uzun versiyon

RFC6724 , adreslerin tercih edilmesinde bir değişiklik tanımladı. Bu değişiklikle IPv6 artık hemen hemen her durumda tercih edilen adres değil :(

Haziran 2012’de sorulan bu soru Eylül 2012’den itibaren bir RFC tarafından "giderildi" . Windows sürümünüze bağlı olarak, bu yeni politikayı kutusundan çıkardınız (Windows 8.1) ya da büyük olasılıkla bir güncelleme ile teslim ettiniz ( Windows 8, Windows 7, Windows Vista).

Buradayız çünkü istiyoruz IPv6'yı kullanmak ; bu değişikliğin geri alınmasını istiyoruz.

Geri koymak nasıl

Tek bir ana bilgisayar için birden fazla IP adresi alırsanız, makineniz hangi adresi kullanacağına karar vermek zorundadır. Örnek bir sıralama olabilir:

  • IPv6 geridöngü
  • Yerel IPv6
  • Benzersiz-Yerel adresler (ULA'lar), örneğin fdxx ::
  • Site yerel, örneğin fec0
  • 6bone
  • 6ya4
  • IPv4compat
  • IPv4
  • Teredo, örneğin 2001

Windows makinenizde, bu sıralamaya önek politikası denir .

Ön ek politikası

Bilgisayarınızın önek politikasını çalıştırarak görüntüleyebilirsiniz:

>netsh int ipv6 show prefixpolicies

Eski zamanlarda (başlangıçta RFC 3484 tarafından tanımlanmış ), ön ek politikası şuydu:

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

Gördüğünüz gibi hemen hemen her zaman IPv6 (yay!) Kullanır:

  1. IPv6 geridöngü
  2. Yerel IPv6, ULA'lar, yerel bölge, 6'lı
  3. 6ya4
  4. IPv4compat
  5. IPv4
  6. gemi kurdu

IPv6'yı dağıtma çabalarını gerçekleştirdiyseniz: işe yaradı.

Yeni Önek Politikası

2012 yılında RFC6724 tarafından yeni bir tercih sırası tanımlanmıştır . Bugünlerde önek politikası, IPv6'yı asla kullanmamanızı sağlar:

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          

Benzersiz Yerel Adreslerinizi veya site-yerel adresinizi asla kullanamayacağınızı göreceksiniz ; sürekli bozuluyor:

  1. IPv6 geridöngü
  2. Yerel IPv6
  3. IPv4
  4. 6ya4
  5. gemi kurdu
  6. Ulaş
  7. Site yerel
  8. 6bone
  9. IPv6compat

Nasıl düzeltilir?

İstediğimiz şey IPv6'yı düzeltmektir, böylece ULA'lar IPv4'e göre tercih edilir. En azından ULA'ların ( fc00::/7) kullanımını IPv4'ün üstüne çıkarmak istiyoruz :

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          

Hangi tarafından yapılır:

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

Bu sadece bir sonraki yeniden başlatmaya kadar aktif kalmasını sağlayacak. Değişimi kalıcı kılmak için:

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

Eğer ben:

  • / 48’im için ULA küresel öneki oluşturma
  • ve / 64 için bir alt ağ kimliği seçin.
  • ve ULA'ları işletmedeki her makineye dağıtma
  • IPv4 adreslerine ek olarak IPv6 ULA adreslerini döndürmek için DNS sunucularını güncelleyin

Bilgisayarın yapabileceği en az adres kullanmak için ortak nezaket sahip olmasıdır.

Bonus Sohbetçisi

fc00::/7Aralık, iki bölüme ayrılır:

  • fd00::/8 - GlobalID öneki yerel olarak oluşturuldu
  • fc00::/8 - ???

Hiç kimsenin gerçekten karar vermesinin fciyi olamayacağına karar verdi ve o yüzden orada oturuyor.

fdAdresleri gibi tanımlanır:

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

Bu yüzden a4d7f6dd66, tamamen rasgele 40-bit GlobalID şifreniz olarak oluşturduysanız , bu size / 48'inizi verir:

  • fda4:d7f5:dd66:: / 48
  • fda4:d7f5:dd66:face::/ 64 ( facealt ağda)
  • fda4:d7f5:dd66:face::825 ana bilgisayar IP adresi olarak

SixXS , tahsilat şansını azaltmak için bir Benzersiz Yerel Adres GlobalID ön ekleri veritabanını tuttu, örneğin:

  • 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

Ancak, kullanımın yavaşlaması ve en başta gelen şüpheli değer nedeniyle SixXS, 2018’de hizmeti durdurdu.

Bonus Okuma


fc00::/7Ağ gerçekten iki bölüme ayrılmıştır. fc00::/8Ağ dan atamak gelecekte küresel bir otorite için ayrılmış olan ve şu anda kullanılamaz, ancak fd00::/8yerel atama için kullanılabilir, ancak önümüzdeki 40 bit rastgele seçilmiş olması gerekir.
Ron Maupin

Aslında biz (ve OP) çünkü burada İSTEMİYORUM IPv6 kullanımı ve ben bulabileceğini IPv6 her örneğini devre dışı olsa bile hala geri döngü üzerinde etkin!
AaA

0

Benim için çalışan daha kolay bir yöntem var. Ben sadece önceliğini belirlemek için # arayüz metrik değerini değiştirdim. Geçmişte ağ bağdaştırıcılarının önceliğini değiştirmek için bu yöntemi kullanmıştım (önce Kablosuz NIC önceliği, önce LAN NIC önceliği), ancak TCP / IPv4 ve TCP / IPv6'da da çalıştığını öğrendim. Bu durumda, TCP / IPv4'ün arabirim metrik değerini Otomatik'ten 5'e ve TCP / IPv6'nın arabirim metrik değerini Otomatik'ten 10'a değiştirdim. Metrik sayı ne kadar düşükse, önceliği o kadar yüksek olur. Ardından PC'nizi yeniden başlatın. Bu yüzden şimdi ne zaman hostname kullanıyorsanız, Ipv6 yerine IPv4'ten cevap verecektir.

İşte daha ayrıntılı bir talimat

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.