IPv6, OpenVPN yeniden başladığı anda trafiği geçirmeyi bırakır ve IPv4 çalışmaya devam eder. Tünel arayüzü yeniden oluşturuldu ve onun IPv6 durumunu yöneten başka bir şey ya adresi ya da öneki erişilebilir kılan yolu kaybetti. Üç ayrı durum parçası devreye giriyor ve her birinin farklı sahibi var: sağlayıcının devrettiği önek ve ömrü, VPN istemcilerine verilen adresler ve o istemci önekini sunucuya geri gönderen üst yol. Herhangi bir daemona dokunmadan önce her birinin sahibini belirleyin, çünkü yanlış olanı yeniden başlatmak sorunu bir gün gizler ve bir sonraki bağlantıda geri getirir.

Üç IPv6 durum parçası, üç sahip

StateTypical ownerWhat breaks when it is wrong
Delegated prefix and lifetimeUpstream router or provider via DHCPv6-PDClients keep addresses that the upstream no longer routes
Client addresses inside the tunnelOpenVPN server config or a delegation daemonNo global address, or an address outside the routed prefix
Return route for the client prefixUpstream router, or the server's own routing tableOutbound works, replies never arrive

Tünelin içindeki küresel kapsamlı bir adres tek başına yeterli değildir. Üst yönlendiriciler o öneki yine de VPN sunucusuna geri göndermek zorundadır ve sunucunun tesadüfen ondan bir adresi olduğu için bunu yapmayacaklardır.

Bu yüzden genel bir /64'ü tünel havuzuna kopyalamak da risklidir. Sunucuya yönlendirilen bir önek, üst tarafın on-link olarak gördüğü bir önekle aynı değildir ve komşu keşfi bu boşluğu doldurmaz.

Herhangi bir şeyi değiştirmeden önce sunucunun durumunu okuyun

Durumu iki kez yakalayın, bir kez IPv6 çalışırken ve bir kez yeniden başlatmadan sonra, sonra karşılaştırın. Salt okunur görünümler yeterlidir ve bir bakım penceresi sırasında hiçbir maliyeti yoktur:

ip -6 addr show
ip -6 route show table all
ip -6 rule show
sysctl net.ipv6.conf.all.forwarding

Üç belirli fark arayın: kaybolan bir yol, kullanımdan kaldırılmış veya geçersiz bir ömre geçen bir adres ve yeniden devretmeden sonra değişen ama VPN yapılandırmasının hâlâ eskisini duyurduğu bir önek.

Adres kaybolduysa ama önek değişmediyse, onu atayan daemon arayüzü yönetmeyi bırakmıştır. Önek değiştiyse ama adresler değişmediyse, istemci yapılandırması eskimiştir. İki arıza tarayıcıdan aynı görünür ve hiçbir ortak yanları yoktur.

dhcpcd'nin tüneli yönetip yönetmeyeceğine karar verin

dhcpcd arayüzleri keşfedebilir ve bir DHCPv6 önekinin parçalarını alt arayüzlere devredebilir, yapılandırması da devretme hedeflerini açıkça adlandırabilir. Açık bir hedef olmadığında, belgelenmiş davranışı başka arayüzleri kapsayabilir ve böylece tünel kimsenin planlamadığı bir adresle kalır.

İki koşul sizi tünelin statik adreslemesini OpenVPN'ye bırakmaya itmelidir: sunucu yapılandırmasında sabit adresler gönderiyor ve tünel adı yeniden bağlanmada değişiyor. İkisi de geçerliyse, tüneli devretme daemonundan bilerek hariç tutun, nedenini söyleyen bir yorumla.

Bunun yerine tünele devretme bilinçliyse, önek değişikliği işlemesini uygulayın. Bu, devredilen önek veya ömrü değiştiğinde tepki vermek, sunucunun duyurduğu istemci önekini güncellemek ve yolu yeniden eklemek anlamına gelir. Bu tasarımda arayüzü hariç tutmak, yeni öneki bilen tek bileşeni ortadan kaldırır.

dhcpcd'yi yeniden başlatmak durumu yeniden oluşturduğu için bir şeyleri düzeltiyor gibi görünebilir, ama düşünmediğiniz arayüzlerin yapılandırmasını da yeniler veya geri çeker. Bu kurtarma onu her VPN yeniden başlatmasından sonra zorunlu kılmaz. Kanıt olarak kullandığınız sayaçları da sıfırlar. Gerçekten değiştirdiğiniz arayüzün hedefli olarak yeniden yüklenmesini tercih edin.

IPv6'yı IPv4 NAT'tan ayrı doğrulayın

Yönlendirmenin etkin olduğunu ve üst yolun gerçek istemci önekine işaret ettiğini doğrulayın, sonra yeni izin verilen bir IPv6 bağlantısı kurun. İstemcinin kendi IPv6 yol tablosunu da kontrol edin, çünkü genel bir adres gösteren istemci isteğinin tüneli kullandığını kanıtlamaz.

IPv4 maskeleme başka bir sorunu çözer: özel kaynaklar için dönüş yolu. Geri alınmış bir IPv6 öneki için hiçbir şey yapmaz ve eklenmesi IPv6'yı geri getirmez.

Sahiplik kaydıyla bitirin: hangi bileşen öneki devrediyor, hangisi istemci adreslerini atıyor, hangisi dönüş yolunu tutuyor ve yeniden bağlanmada her birine ne oluyor. Bir runbook'taki dört satır, sıradaki kişiyi önemli olanı bulmak için üç daemonu yeniden başlatmaktan kurtarır.

İlgili makaleler