VPN ağına giden bir rota, karıştırılması kolay iki adres taşır: paketin ulaşmaya çalıştığı hedef öneki ve onu bir adım daha yaklaştıracak sonraki sıçrama. Bir LAN ana bilgisayarında bu sonraki sıçrama, aynı bağlantı üzerinde gerçekten ulaşabildiğiniz bir yönlendirici olmalıdır. Uzak VPN adresi sonraki sıçrama değildir, aklınızdaki hedefe ne kadar düzgün uyarsa uysun.

Bu kılavuz olağan durumu kapsar: 192.168.20.0/24 üzerinde bir dizüstü bilgisayar, LAN adresi 192.168.20.5 olan bir VPN ağ geçidi ve o ağ geçidinin arkasında 10.70.0.0/24 uzak ağ. Aşağıdaki tüm komutlar, aksi belirtilmedikçe dizüstü bilgisayarda olduğunuzu varsayar.

İki adres, tek rota

Amaçlanan girdi 10.70.0.0/24 via 192.168.20.5. Önek paketin nereye gittiğini, via adresi ise onu oraya kimin taşıdığını söyler. Çekirdek, ağ geçidine adlandırdığınız arayüz üzerinden ulaşamadığı bir rotayı kurmayı reddeder ve bu ret bütün meseledir: erişilebilir olmak için tünele ihtiyaç duyan bir sonraki sıçrama, tüneli kuran sonraki sıçrama olamaz.

Bu yüzden ilk denetim «ağ geçidi çalışıyor mu» değil, «ağ geçidi bu bağlantıda mı» sorusudur. Dizüstü bilgisayarın kendi alt ağı, ARP veya komşu kaydı ve rotadaki arayüz hep birlikte uyuşmalıdır. Yalnızca 10.70.0.0/24 içinde var olan bir adres ikinci bir rotanın hedefi olabilir, ama ilkinin via asla olamaz.

Sonraki sıçrama ağ geçidini neye bağlar

Rotayı dizüstü bilgisayara kurmak yalnızca ilk devri belirler. Sonra ağ geçidinin kendi yoluna ihtiyacı vardır: etkin yönlendirme, 10.70.0.0/24 için bir tünel rotası ve kimin kullanabileceğini belirleyen her erişim ilkesi. Linux'ta bu net.ipv4.ip_forward=1 artı bir tünel rotasıdır; önündeki güvenlik duvarının iletilen akışa izin veren bir kurala ihtiyacı vardır.

Dönüş yönü, insanların unuttuğu kısımdır. Uzak tarafın 192.168.20.0/24 için geri dönüş rotası olmalıdır, yoksa tasarım dizüstü bilgisayarın kaynağını uzak tarafın bildiği bir şeye çevirmelidir. Ağ geçidinden çalışan bir ping, ağ geçidinin uzak ağa ulaşabildiğini kanıtlar; dizüstü bilgisayarın paketlerinin dönüş yolculuğundan sağ çıkıp çıkmadığı hakkında hiçbir şey söylemez.

Aramayı gönderen ana bilgisayardan doğrulayın

Çekirdeğe hangi sonraki sıçramayı seçeceğini sorun ve yanıttaki arayüzü okuyun:

ip route get 10.70.0.10
ip route show 10.70.0.0/24
ip neigh show 192.168.20.5

Arama ağ geçidini ve LAN arayüzünü bildiriyorsa ilk bölüm amaçlandığı gibi yapılandırılmıştır. Tünel aygıtını bildiriyorsa, tabloda daha önce gelen bir şey daha belirgindir ve kazanmaktadır. Rota hiç kurulamıyorsa çekirdek size ağ geçidinin erişilebilir olmadığını söylüyordur ve bu ileti herhangi bir paket yakalamadan daha yararlıdır.

Ardından testi doğru yerden yineleyin. Ağ geçidinde oluşturulan bir istek ağ geçidinin kendi kaynak adresini kullanır; bu, eksik bir dönüş rotasını veya yalnızca belirli kaynaklara izin veren bir ilkeyi gizleyebilir. ip-route kılavuzu hedefi, ağ geçidini ve onlink geçersiz kılmasını ayırır; geçersiz kılmayı kullanmadan önce anlamakta yarar vardır.

Erişilebilirliği taklit etmek için onlink kullanmayın

onlink çekirdeğe bir ağ geçidinin erişilebilirlik denetimini atlamasını ve yine de oraya göndermesini söyler. Bir yol oluşturmaz, var olmayan bir adres için ARP çözmez ve uzak bir yönlendiricinin sizin Ethernet segmentinizde yanıt vermesini sağlamaz. Yanıt veren ama bağlı bir alt ağda yer almayan ağ geçitleri için meşrudur ve açıklamadığınız bir hatayı susturmak için kullanıldığında bir tuzaktır.

Rota yalnızca onlink ile kuruluyorsa sonraki soru, ağ geçidinin neden sandığınız yerde olmadığıdır. Yanlış VLAN, yanlış arayüzde ikinci bir adres veya son oktetdeki bir yazım hatası bunların hepsini üretir ve her biri trafik akmaya başladığında dönüş yolunu da bozar.

Noktadan noktaya tüneller Ethernet değildir

Bir tünel aygıtı ARP yapmaz ve çoğu zaman anlamlı bir komşu alt ağı yoktur. Rotaları sıklıkla 10.70.0.0/24 dev tun0 gibi görünür, hiç via olmadan, çünkü eş tek diğer uç noktadır. LAN tarzı bir via adresini o tabloya kopyalamak, çekirdeğin reddedebileceği ya da daha kötüsü eşin hiç yanıtlamadığı bir adrese işaret eden bir rota üretir.

Kılavuzda iki modeli ayrı tutun: LAN rotasının erişilebilir bir ağ geçidi vardır, tünel rotasının bir arayüzü ve bir eşi vardır. WireGuard, OpenVPN ve IPsec hepsi biraz farklı biçimler sunar; bu yüzden tek bir ana bilgisayardan genelleme yapmak yerine gerçekten kullandığınız biçimi kaydedin.

Ekleyin, doğrulayın, geri alın

Tüm değişiklik üç komut ve bir denetimdir ve tam bu sırayla yazılmalıdır:

sudo ip route add 10.70.0.0/24 via 192.168.20.5
ip route get 10.70.0.10
ping -c 3 10.70.0.10
sudo ip route del 10.70.0.0/24 via 192.168.20.5

Yolu doğrulayın, tek bir hedefi doğrulayın, sonra değişiklik ana bilgisayarı öngörmediğiniz bir biçimde erişilemez yaparsa silme satırını hazır tutun. Rotanın yeniden başlatmadan sonra kalması gerekiyorsa, onu bir shell profilinde değil ana bilgisayarın ağ yapılandırmasında saklayın ve ona güvenmeden önce yeniden başlatmayı test edin. Yalnızca onu ekleyen shell'de var olan bir rota, iki kez hata ayıklayacağınız bir rotadır.

İlgili makaleler