OpenVPN laboratuvarına özel IPv6 ekleyin, her seferinde bir kontrol noktası
Dış taşımayı IPv4'te bırakın ve iç planı genişletin. Beş kontrol noktası: önekler, yardımcı, rota itmesi, yönlendirme ve istemci tarafında bir test.
Zaten IPv4 üzerinden bağlanan ve sunucunun arkasındaki özel bir IPv4 iş yüküne ulaşan bir istemciniz var. Amaç, dış taşımaya dokunmadan aynı tünelden özel bir IPv6 iş yüküne ulaşmaktır. Bu sıra önemlidir: dış yol IPv4 olarak kalır ve yalnızca iç adres planı, istemcinin rotası ve sunucudan LAN'a dönüş yolu değişir. Beş kontrol noktası, her birinde ilerlemeden önce bakılacak somut bir şey var.
Birinci kontrol noktası: zaten çalışan bağlantı
Herhangi bir şey eklemeden önce istemciyi bağlayın ve IPv4 yolunu doğrulayın. Çalışan bir tünel, yeni bir IPv6 hatasını eski bir bağlantı sorunundan ayıran bir temel çizgi verir. Ayrıca gerçekte hangi sunucu örneğini düzenlediğinizi de söyler.
Zaten güvendiğiniz havuzu, topolojiyi ve itilen rotaları not edin. IPv6 çalışması bu yapılandırmayı genişletir; onun yerini almaz.
İkinci kontrol noktası: iç önekleri seçin
Site için bir ULA /48 seçin ve ondan iki /64 kesin: biri tünel istemcileri, biri IPv6 iş yükünü barındıran LAN segmenti için. Örnek bir öneği kopyalamak yerine 40 bitlik küresel ID üretin, ve her iki alt ağı da sitenin zaten yönlendirdiği her ağa karşı kontrol edin:
Outer transport: IPv4 OpenVPN UDP
IPv4 pool: 10.90.0.0/24
IPv6 VPN pool: fd73:93bc:b6e9:77::/64
IPv6 LAN: fd73:93bc:b6e9:60::/64
Server LAN IPv6: fd73:93bc:b6e9:60::1İki bağımsız /64, istemci havuzunun LAN segmentinden kesilmesini önler; bu, dönüş rotasını yazarken önemlidir. Yukarıdaki değerler işlenmiş bir örnektir, yeniden kullanılacak bir önek değil.
Üçüncü kontrol noktası: yardımcıyı ve rota itmesini ekleyin
Bir şey eklemeden önce sunucunun mevcut yapılandırmasını okuyun. Var olan bir yönergenin ikinci kopyası birincisiyle birleşmez ve ortaya çıkan hata IPv6'yı değil yönergeyi adlandırır. Var olan IPv4 yardımcısı varken iki satır onu genişletir. Her biri farklı bir soruyu yanıtlar:
server-ipv6 fd73:93bc:b6e9:77::/64
push "route-ipv6 fd73:93bc:b6e9:60::/64"Birincisi arayüzü ve istemci havuzunu ayarlayan pratik bir yardımcıdır. İkincisi istemcinin ulaşması gereken LAN hedefini adlandırır. Bir istemciye IPv6 adresi vermek, sunucunun arkasında hangi ağların olduğunu söylemez, bu yüzden iki satır da gerekir.
Yardımcı, statik bir IPv6 havuzuyla veya nopool ile bir arada bulunmaz. Dağıtım adresleri bilerek statik olarak atıyorsa bu politikayı koruyun ve bir örneğe uymak için politikayı silmek yerine IPv6 eşdeğerini açıkça tasarlayın.
Dördüncü kontrol noktası: yönlendirme ve yanıt rotası
Sunucuda IPv6 yönlendirmesini, unutacağınız tek seferlik bir çalışma zamanı yazımıyla değil, sistemin kendi yapılandırma sahibi aracılığıyla açın. Çalışma zamanı biçimi hızlı bir test için kullanışlıdır. Kalıcı yapılandırma, dağıtımın ağ sahibinin okuduğu bir drop-in dosyasına aittir:
sysctl -w net.ipv6.conf.all.forwarding=1Yönlendirme, paketleri yönlendirmenin ötesinde ana makinenin IPv6 davranışını değiştirir. İstemci olarak yönlendirici duyurularını kabul eden bir ana makine, yönlendirmeye başladığı anda aynı şekilde kabul etmeyi bırakır. Bu yüzden IPv6 üst bağlantısı RA'lara bağlı olan bir makine o bağlantı için açık bir plana ihtiyaç duyar.
Ardından LAN'a tünel havuzuna dönüş rotası verin. İş yükünün IPv6 ağ geçidi VPN sunucusu değil LAN yönlendiricisidir, bu yüzden rota o yönlendiricide bulunur ve sunucunun LAN adresini gösterir:
ip -6 route add fd73:93bc:b6e9:77::/64 via fd73:93bc:b6e9:60::1Bağlantının ihtiyaç duyduğu ICMPv6 türlerini, yol-MTU geri bildirimi dahil koruyun. Bir IPv4 güvenlik duvarı kuralı bir IPv6 kuralı anlamına gelmez ve IPv6'yı tümüyle engellemek komşu keşfini yönlendirme arızası gibi görünecek şekilde bozar.
Beşinci kontrol noktası: istemciyi okuyun, sonra test edin
İstemciyi yeniden bağlayın ve sunucunun yardımcı adresinden çıkarsamak yerine gerçekte aldığı adresleri okuyun. Arayüz listesi iki aileyi de aynı cihazda gösterir:
ip -6 addr show tun0
ip -6 route get fd73:93bc:b6e9:60::20Tüneli seçen bir rota, istemcinin paketi nereye göndereceğini bildiğini kanıtlar. Sunucunun onu yönlendirdiğini, LAN yönlendiricisinin dönüş rotası olduğunu veya uygulamanın yanıt vermesine izin verildiğini kanıtlamaz.
Uygulamanın kendisini her ailede sırayla test edin, sonra yeniden bağlanma ve ana makine yeniden başlatma sonrasında tekrarlayın. Yalnızca yeniden başlatmaya kadar yaşayan bir rota veya sysctl bir testtir, tasarım değildir.
AAAA kaydını yalnızca IPv6 yolu uçtan uca yanıt verdiğinde yayımlayın. IPv4 üzerinden sorgulanan DNS hâlâ bir IPv6 adresi döndürebilir, bu yüzden çözülebilen bir ad, bir şeyin dinlediğinin kanıtı değildir. RFC 4193 ULA kılavuzu bu önekleri kopya değil sizin yapan küresel ID'nin üretimini kapsar.