Dizüstü bilgisayarın bir IPv6 adresi var, tünel IPv4 üzerinde ayakta ve yine de her IPv6 testi başarısız oluyor. Ya da daha kötüsü: test başarılı oluyor ve trafik tünele hiç girmeden sağlayıcının yolundan çıkıyor. İki sonuç da tek bir eksik karara çıkıyor: kimse yönlendiriciye istemcilere doğru yönlendirebileceği bir önek vermedi. Yolu istemciden dışarı doğru yürümek hangi parçanın eksik olduğunu bulur.

İstemcinin bulunduğu yerden başlayın

Sunucuya dokunmadan önce istemciye bakın. ip -6 addr havuzdan gelen tünel adresini göstermeli, ip -6 route ise tünel aygıtına işaret eden itilmiş öneki göstermelidir. Adres varsa ama yol yoksa itme eksiktir veya istemci onu yok saymıştır. İkisi de yoksa sunucu hiçbir şey atamamıştır.

Ardından istemcinin dış dünya hakkında ne düşündüğünü kontrol edin. Tünel üzerinden varsayılan yol tüm IPv6 trafiğini talep ederken, 2000::/3 için yol yalnızca küresel unicast talep eder. İkisi de doğru olabilir ve sızıntı hakkında farklı soruları yanıtlarlar.

Hiçbir IPv6 varsayılanı olmayan istemci, tünelin kendisi tamamen sağlıklı olsa da her genel testte başarısız olur. Bu bir politika boşluğudur, bozuk tünel değil.

Sunucunun gerçekten yönlendirebildiği havuzu kontrol edin

Bir sunucu yalnızca gerçekten denetlediği bir önekten atama yapabilir. Sağlayıcı bir /56 devrederse tünel için bir /64 ayırın, gerisini LAN için bırakın. Sağlayıcı WAN'da yalnızca bir /64 verip başka bir şey yönlendirmiyorsa LAN önekini olduğu gibi bırakın ve tünele benzersiz bir yerel aralık verin, istemcilerin küresel çıkışı olmayacağını kabul ederek.

Havuz ve itme birlikte gider. server-ipv6 2001:db8:80:10::/64 adresleri atar, push "route-ipv6 2000::/3" istemcilere tünele ne göndereceklerini söyler. 2000::/3 itmek küresel unicast'ı kapsar ve link-local ile multicast aralıklarını tünelin dışında bırakır.

Seçilen öneki dağıtım kaydına yazın. Bir sonraki sefer sağlayıcı devrini değiştirecek kişi tünelin hangi /64'ü zaten kapladığını bilmelidir.

İkinci aile için yönlendirmeyi açın

IPv4 yönlendirmesi IPv6 yönlendirmesi anlamına gelmez. net.ipv6.conf.all.forwarding=1 ayarını yapın ve IPv4 FORWARD politikasının zaten izin verdiği her şeyi yansıtın. FORWARD zinciri varsayılan olarak düşüren bir yönlendiricide, eksik bir kural kümesi tam olarak ölü bir tünel gibi görünür.

El sıkışma başarılı olur, istemci bir adres alır ve geri hiçbir şey gelmez. Her iki yön ve WAN bacağı için kural ekleyin, çünkü LAN'a ulaşıp internete ulaşmayan tünel üçüncü testte başarısız olur. Başarısız denemeden sonra zincir sayaçlarına bakın, çünkü hiç eşleşmeyen kural, eşleşip düşüren kuraldan farklı bir sorundur.

ip6tables -A FORWARD -i br0 -o tun0 -j ACCEPT
ip6tables -A FORWARD -i tun0 -o br0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -i tun0 -o wan0 -j ACCEPT

Bir yan etki, sonunda tüneli suçlayanları yakalar. Yönlendirmeyi açmak, aksi söylenmedikçe çekirdeğin Router Advertisement ile adres yapılandırmasını atlamasına neden olur ve böyle öğrenilen varsayılan yol da onunla birlikte kaybolur. Ya WAN arayüzüne açık bir varsayılan yol sabitleyin ya da orada accept_ra değerini bilerek 2 yapın. Her değişiklikten sonra, istemcileri yeniden test etmeden önce yönlendiricinin hâlâ kullanılabilir bir IPv6 dış yolu olduğunu doğrulayın.

Üst taraf yönlendirme yapmadığında komşu keşfini yanıtlayın

Üst taraftaki ekipman bazen devredilen /64'ü kendi bağlantısına ait sayar ve VPN kutusuna herhangi bir alt önek yönlendirmeyi reddeder. Bu olduğunda, bir şey her istemci adresi için komşu isteklerini ayrı ayrı yanıtlamalıdır.

OpenVPN atanan adresi bir client-connect kancasına açar, böylece kayıtlar elle tutulan bir liste yerine gerçek havuzu izleyebilir. Kanca ip -6 neigh add proxy $ifconfig_pool_remote_ip6 dev eth0 ekler ve eşleşen client-disconnect kancası onu kaldırır. Kaldırma olmazsa proxy tablosu eskir ve sonraki bir istemci hiç almadığı bir adres için kaydı miras alabilir. Durumu ip -6 neigh show proxy ile doğrulayın.

Proxy'yi bir geçici çözüm olarak görün. Tünelin /64'ü için yönlendiriciye yönelen statik yol istemci değişimlerine dayanır ve hiçbir ayrıcalıklı shell kancası gerektirmez.

Yolu dışarı doğru izleyin, atlama atlama

Dışarı doğru üç adımda test edin: önce yönlendiricinin tünel adresi, sonra bir LAN ana bilgisayarı ve üçüncü olarak traceroute6 ile genel bir hedef. Havuzu birincisi, yönlendirmeyi ve LAN güvenlik duvarını ikincisi, üst taraf üzerinden dönüş yolunu üçüncüsü kanıtlar. Her başarısızlık, tüm tasarımı yeniden açmak yerine aramayı tek bir aygıta daraltır.

Tünelin MTU'suna dikkat edin, çünkü yoldaki IPv6 yönlendiricileri sizin yerinize parçalamaz. Çok büyük bir MTU, temiz bir başarısızlık yerine packet-too-big hatası ve takılmış TLS olarak görünür. Açıkça ayarlayın ve sınıra yakın bir yükle test edin.

İlgili makaleler