Bir VPN üzerinden özel bir öneke ulaşmak, süresi olan bir gereksinimdir: o bağlantı kullanılabilir olduğu sürece geçerlidir ve bağlantı bitince biter. Bir oturum açma betiği bunu ifade edemez, çünkü oturum açma ile tünelin kalkması farklı anlardır ve oturum açma sırasında var olan tünel bir dakika sonra trafiği taşıyan tünel olmayabilir. İlk karar hangi komutun çalıştırılacağı değildir. Hangi bileşenin öneki sahiplendiğidir.

Önekin bir sahibi olmalı, bir anı değil

Gereksinimi öznesi olan bir cümle olarak yazmaya başlayın: ulaşın 10.77.0.0/24 Ofis VPN'i üzerinden, o bağlantı ayaktayken. Bu cümle öneki, bağlantıyı ve koşulu adlandırır ve iki popüler yedeği hemen dışlar: bir oturum açma kancası ve şöyle bir arayüz adı ppp0 veya utun2.

Arayüz adları çalışma zamanında atanır ve yeniden bağlanmalar arasında kararlı değildir. Geçen hafta gördüğü adla eşleşen bir kanca ya hiç tetiklenmez ya da başkasının arayüzüne karşı tetiklenir. Her iki sonuç da eski varsayım olarak değil, bir yönlendirme hatası olarak görünür. Aynı itiraz, yalnızca belirli bir tünel ayaktayken var olan bir ada bağlı her betik için de geçerlidir.

Desteklenen bir rota niyeti kaynağı kullanın

Ağ geçidi, yönetilen bir profil veya sahip istemcinin belgelenmiş rota mekanizması, bu mekanizma gereksinimi ifade edebildiğinde doğru yerdir. Hangisinin geçerli olduğu protokole ve sağlayıcıya bağlıdır ve anahtarlar aralarında seyahat etmez, bu nedenle bir profili yapılandıran değer OpenVPN yerel L2TP veya IKEv2 istemcisi hakkında hiçbir şey söylemez.

MechanismCan carry extra prefixesWho owns the lifetime
Gateway-pushed routesOften, if the gateway is configured for itThe connection
Managed profile settingsDepends on the client and profile formatThe profile
Provider tunnel settingsYes, as included and excluded routesThe provider process
Manual commandYes, onceNobody

Paket tünelleri geliştirenler için Apple'ın IPv4 tünel ayarları dahil edilen ve hariç tutulan rotaları açıkça ortaya koyar ve IPv6'nın da karşılığı vardır. Bunlar sağlayıcının kullandığı API'lerdir, her yerel VPN panelinin yöneticiye keyfi bir rota listesi sunduğunun kanıtı değildir. Mevcut kombinasyon gereken önekleri ifade edemiyorsa sıradaki adım, operatörden gelen desteklenen bir yapılandırma yoludur; daha iyi davranacağı umuduyla kurulan başka bir uygulama değildir.

Kullanım ömrü temizliği içerir

Bazen harici bir yardımcı gerçekten gerekir ve o zaman «rotayı ekle» işinin en küçük parçasıdır. Hangi bağlantıya hizmet ettiğini ve o bağlantının hangi arayüzü kullandığını bilmeli, ilgili ağ durumu oturana kadar beklemeli, arka arkaya iki kez çalıştığında kendi kendine eş kalmalı, ve kendi kurmadığı hiçbir şeyi temizlememelidir.

Son madde can yakan maddedir. Ofis önekiyle eşleşen her rotayı silen bir yardımcı, er ya da geç eklemediği bir rotayı da siler. Ortaya çıkan kesinti VPN istemcisine yazılır, çünkü istemci kullanıcının gördüğü kısımdır. Bir yardımcının neye sahip olduğuna onu yazmadan önce karar vermek, sonradan yerel bir alt ağın neden yanıt vermeyi bıraktığını açıklamaktan daha ucuzdur.

Yeniden bağlanma yarışı

Hızlı bir yeniden bağlanma düşünün. Oturum A düşer, oturum B kalkar ve rotasını kurar, sonra A'nın gecikmiş temizliği nihayet çalışır. Bu temizlik rotaları öneke göre kaldırırsa B'nin geçerli durumunu da götürür ve bir saniye önce çalışan bağlantı artık hiçbir yere yönlenmez.

Bu bir sahiplik yarışıdır ve betiğe uyku eklemek yalnızca hangi tarafın kazandığını değiştirir. Çözüm, temizliği kimliğe bağlı kılmaktır: yardımcının kurduğu arayüzü ve oturumu hâlâ geçerli olanlarla karşılaştırın ve yalnızca eşleştiğinde kaldırın.

Neyin test edileceği ve bir rotanın neleri yapamayacağı

Kabul, dört geçişi kapsamalıdır: ilk bağlantı, başka bir arayüze yeniden bağlanma, başarısız bir bağlantı denemesi ve son bağlantı kesme. Her birinden sonra, sistemin uzak taraftaki bir adres için gerçekte seçtiği rotayı okuyun, beklediğinizi değil.

route -n get 10.77.0.5
netstat -rn -f inet

Zor durumları da aynı tura katın: gerektiği yerde IPv6, uzak önekle çakışan yerel bir önek ve tünel ayaktayken çalışmaya devam etmesi gereken genel VPN uç noktasına giden rota. Sonra bir rotanın ne olmadığını yazın. Paketleri seçer; uzak tarafta izin vermez ve bir dönüş yolu oluşturmaz, ve bunlar ayrı sahipleri olan ayrı gereksinimler olarak kalır.

İstediğiniz sonuç, her geçişte desteklenen bağlantı sahibini izleyen bir önektir; yazıldığı makinede bir kez tesadüfen başarılı olan bir komut değil.

İlgili makaleler