VPN istemcisinin arkasındaki sunucu neden tünel üzerinden yanıt verir
Yanıtlar varış yolunu değil VPN'in varsayılan rotasını izlediğinde gelen bağlantılar başarısız olur. İlke tabanlı yönlendirme veya kaynak NAT dönüş yolunu geri getirir.
Aynı zamanda bir VPN istemcisi çalıştıran ana bilgisayara gelen bağlantılar çok belirli bir şekilde başarısız olur: el sıkışma gelir, daemon yanıt verir ve istemci hiçbir şey alamaz. Bağlantı noktasını hiçbir şey engellemiyor. Yanıt tünelden çıktı, çünkü varsayılan rota tünelin elinde ve çekirdek yanıtları varış noktasına göre yönlendirir, isteğin nereden geldiğini hatırlamaya göre değil. Bu tek eksiklik sonraki her belirtiyi açıklar.
Yanıt yönlendirilir, hatırlanmaz
Varsayılan rota kuran bir VPN istemcisi, LAN ağ geçidini aşan bir girdi ekler; ya metrikle ya da alanı daha belirgin iki yarıya bölerek. Giden paketler artık tünel arayüzünü seçer. Çekirdek, yanıtlanan paketin başlangıçta nereden geldiğini asla sormaz. Bu tek eksiklik sonraki her belirtiyi açıklar.
İleri yön varış noktasına göre yönlendirilir, geri yön de öyle. Yanıt, tünelin memnuniyetle taşıyacağı genel bir istemciye adreslenmiştir. Uzak uç, kaynağı kendisine ait olmayan bir paket alır, onu atar ve özgün istemci süre dolana kadar bekler.
Katı ters yol filtrelemesi, gelen paketi daemon okumadan önce düşürebilir. Önce o sayacı kontrol edin, çünkü filtre düşürmesi ile yönlendirme hatası dışarıdan aynı görünür.
ip route show default sysctl net.ipv4.conf.all.rp_filter net.ipv4.conf.eth0.rp_filter nft list ruleset | grep -A3 'hook forward'
İlk komut şu anda hangi varsayılan rotanın kazandığını gösterir. İkincisi katı filtrelemenin genel mi yoksa arayüz başına mı uygulandığını bildirir, üçüncüsü ise ilgili olabilecek herhangi bir yönlendirme zinciri kuralını gösterir.
Dönüş yolunu korumanın üç yolu
Hizmetin varış noktasını tünelden çıkarmak en dar seçenektir. LAN ağ geçidine yönelen bir ana bilgisayar rotası ile daemonun her adres yerine fiziksel adrese bağlanması, o tek akışı tünelin dışında tutar. Değişiklik yereldir ve geri alınması kolaydır.
İlke tabanlı yönlendirme genel yanıttır. Kaynak adresine veya bir güvenlik duvarı işaretine bağlanan kural, varsayılanı WAN ağ geçidine işaret eden bir tablo seçer; ana bilgisayarın kendi bağlantıları tüneli kullanmaya devam eder. Kuralın sonradan gölgelenmemesi için önceliği açık tutun.
ip rule add from 203.0.113.25/32 table 100 priority 100 ip route add default via 192.0.2.1 dev eth0 table 100 ip route get 198.51.100.7 from 203.0.113.25
İlk iki komut, genel adresten gelen yanıtlar için alternatif yolu kurar. Üçüncü komut çekirdeğe tam olarak o kaynak ve varış noktasının hangi yolu izleyeceğini sorar; kuralın herhangi bir etkisi olduğunu böyle doğrularsınız.
Kaynak çevirisi üçüncü seçenektir ve hizmetin önünde zaten NAT yapan bir yönlendirici karşısında ayakta kalan tek seçenektir. Yanıt o yönlendiriciye dönmelidir; WAN arayüzüne maskeleme bunu başarırken istemciyi hizmet günlüklerinden saklar. Bağlandıktan sonra varsayılan rotayı elle değiştirmek bir teşhistir, çünkü istemci bir sonraki yeniden bağlanmada tabloyu yeniden yazar.
Kutu bir LAN için de yönlendiriyorsa
Aynı arıza, ana bilgisayar arkasındaki aygıtlar için yönlendirdiğinde bir sıçrama ötede görünür. Gelen bağlantı, tek dönüş yolu tünel olan bir iç aygıta iletilir ve yanıt dış istemciye sağlayıcının adresinden ulaşır. İç aygıt her zaman doğru çalışır.
Ardından bağlantı izleme, hiç kaydetmediği bir akış için yanıt görür ve onu düşürür. Hedef çevirisi gelen bağlantıyı aygıta teslim eder, kaynak çevirisi ise yanıtı yönlendiricinin kendisinden geliyormuş gibi gösterir.
İletilen bağlantı noktasını WAN üzerinde tutarken yönlendiricinin kendi trafiği tüneli kullanan bir ilke rotası daha temiz eşdeğerdir. Kaynak çevirisi olmadan yanıt dış istemciye adreslenir ve iç aygıtın o adrese hiçbir rotası yoktur.
Nedenleri ayıran üç sonda
Üç sonda çalıştırın: internetten kutuya bir bağlantı, ondan genel bir ana bilgisayara bağlantı ve bir ad araması. İlk ikisi uyuşmazsa dönüş yolu suçludur. Adlar her iki yönde de başarısız olursa çözümleyici yalnızca tüneli paylaşan başka bir arızadır.
Önce yönlendirme sorununu düzeltin, sonra adlara bakın. İkisini karıştırmak, çalışan bir sunucunun bozuk çözümleyici yüzünden suçlanmasının yoludur.
İstisnanın hangi arayüzü adlandırdığını not edin ve yapılandırmayı sürüm denetimi altında tutun. Yükseltmeden sonra adı değiştirilen bir arayüze karşı yazılan kural bugün geçer ve sonraki yeniden başlatmadan sonra başarısız olur.