OpenVPN route yönergesindeki bir joker karakter neden çalışamaz
route adres öneklerini kurar, bu yüzden bir ana bilgisayar adı deseninin eşleştirecek hiçbir şeyi yoktur. Ağlar için bir önek, etki alanları karar vermesi gerektiğinde ise bir proxy veya PAC dosyası kullanın.
Niyet makul: bir şirket etki alanına ait her şeyi tünelden geçirmek ve gerisini rahat bırakmak. Düzenlenen yönerge rotaları kurar ve bir rotanın eşleştireceği bir ana bilgisayar adı kavramı yoktur. İçine bir joker karakter yazmaya yönelik her girişim ya bir ayrıştırma hatası ya da, daha kötüsü, ad tek bir adrese çözüldüğü için bugün tesadüfen çalışan bir rota üretir. İki farklı mekanizmadan birbirinin işini yapması isteniyor.
Bir rotanın kurduğu şey ve hiç okumadığı şey
Bir rota girdisi, bir hedef önekinin bir arayüz üzerinden erişilebilir olduğunu söyler. Çekirdek paketleri bu öneklerle eşleştirir, bu yüzden söz konusu tek tanımlayıcılar adresler ve maskelerdir. Bir ana bilgisayar adı yönlendirme kararında asla görünmez, bu yüzden orada bir desen eşleştirilemez.
OpenVPN bazı rota parametrelerinde çözümlenebilir bir adı kabul edebilir ve bu hoşgörü bir karışıklık kaynağıdır. Ad, yapılandırma uygulanırken çözümlenir ve sıradan rotalar haline gelen bir veya daha fazla adres üretir. Bundan sonra ad tamamen resimden kaybolur.
Yani bir addan inşa edilen rota bir anlık görüntüdür, kural değil. Adın tünel başladığı anda çözümlendiği şeyi kapsar ve bu, değişen bir ana bilgisayar ailesi için istemediğiniz davranışın tam kendisidir. Yarın taşınan bir kayıt, rotayı düne işaret eder halde bırakır.
Hedef gerçekten bir önek olduğunda
Hedef bilinen bir özel ağsa, öneki yazın. Dokümantasyon uzayından bir örnek için, tek bir ana bilgisayar ve tek bir alt ağ şöyle görünür:
route 10.60.4.20 255.255.255.255
route 10.60.0.0 255.255.0.0
Her iki girdi de adresleri ve maskeleri adlandırır ve ikisi de DNS değişikliklerinden sağ çıkar çünkü hiçbir şeyleri bir ada bağlı değildir. Bütün avantaj budur: rota, bir kez gerçekleşen bir arama hakkında değil, topoloji hakkında bir ifadedir.
Tek bir DNS yanıtından büyük bir önek çıkarsamayın. Tek bir adrese çözümlenen tek bir ana bilgisayar adı, arkasındaki ağın boyutu hakkında size hiçbir şey söylemez ve tahmin edilen önek, bir tünelin sonunda kimsenin içinden göndermeyi amaçlamadığı trafiği yakalamasının yoludur. Aramadan çıkarsamak yerine ağ sahibine gerçek öneği sorun.
İş birimi bir ana bilgisayar adı olduğunda
Etki alanına göre seçim, etki alanını okuyan bir şey gerektirir, yani bir uygulama katmanı bileşeni. Olağan yanıt, tünelin diğer tarafında yaşayan bir HTTP proxy'sidir ve istemci hangi isteklerin ona gönderileceğini seçer.
Bir proxy yapılandırma dosyası bu seçimi ifade edebilir. Aşağıdaki örnek kurallar bir etki alanını ve alt etki alanlarını bir proxy'ye, diğer her şeyi doğrudan gönderir:
function FindProxyForURL(url, host) {
var h = host.toLowerCase();
if (h === "corp.example" || dnsDomainIs(h, ".corp.example")) {
return "PROXY 10.60.0.12:3128";
}
return "DIRECT";
}
Tam ad karşılaştırması etki alanının kendisini kapsar ve son ek karşılaştırması, yalnızca benzer karakterlerle biten bir adla eşleşmeden onun çocuklarını kapsar. İkisi de gereklidir ve birini atlamak doğru görünen ama tepeyi veya bir sahtekarı atlayan bir kural üretir.
Bu kurallar bir proxy seçer; bir tane oluşturmazlar ve işletim sisteminin hiçbir rotasını değiştirmezler. Proxy adresi hâlâ tünelden geçen kendi yoluna ihtiyaç duyar ve doğrudan olarak işaretlenen istekler makinenin zaten sahip olduğu yönlendirme politikasını izler.
Proxy seçeneğinin kapsamadığı şey
Tarayıcının proxy yapılandırmasını yok sayan programlar bunların hiçbirinden etkilenmez. Komut satırı araçları, güncelleyiciler ve kendi ağ yığınına sahip uygulamalar PAC dosyasını değil yönlendirme tablosunu alır, bu yüzden bu durumlar desteklenen bir uygulama başına mekanizma veya farklı bir tasarım gerektirir. Tarayıcı kuralının iş akışını kapsadığını vaat etmeden önce önemli istemcileri listeleyin.
Doğrudan geri dönmek de bir kaçış yolu değildir. Makinenin yönlendirme politikası zaten her şeyi tünele gönderiyorsa, doğrudan olarak işaretlenen bir istek içeride kalır, çünkü proxy seçimi ve yönlendirme tablosu farklı katmanlarda alınan farklı kararlardır.
Ad çözümleme üçüncü ve ayrı bir sorudur. Hangi isteklerin bir proxy'ye gideceğini seçmek, onlara hangi çözümleyicinin yanıt verdiği hakkında hiçbir şey söylemez ve ikisini tek bir ayar olarak ele almak, dışarıdan biri test edene kadar görünmez olan sızıntılar üretir. Her sorgunun nerede yanıtlandığına karar verin ve bu kararı proxy kuralının yanına yazın. Tünel açıldığı için değişen bir çözümleyici yanıtı sessizce taşır.
Her iki yolu da test etmek, yalnızca mutlu olanı değil
Eşleşmesi gereken bir ana bilgisayar adını, eşleşmemesi gereken bir ana bilgisayar adını ve etki alanının tepesini test edin, çünkü tepe yalnızca son ek kuralı tarafından en sık atlanan durumdur. Ardından, sayfanın yüklenip yüklenmediğinden çıkarsamak yerine her isteğin gerçekte hangi yolu izlediğini doğrulayın.
Son olarak, hata dalını test edin. Erişilemeyen bir proxy, sessizce doğrudan bir bağlantıya dönmek yerine önceden karar verdiğiniz şekilde başarısız olmalıdır. Ağ seçenekleri referansı rota parametrelerini tam olarak belgeler; bu tasarımın etki alanı yarısı tamamen onun dışında yaşar.