OpenVPN: local ve tünel adresi, iki farklı soket
Sunucuyla iletişim kuran adres, tünelin içindeki adres değildir. local, remote ve nobind'ı ayrı roller olarak okumak bind hatalarının çoğunu açıklar.
İstemci başlamayı reddediyor ve yerel bir adresi bağlayamadığından şikâyet ediyor; bariz düzeltme, onu almayı beklediği tünel adresine yönlendirmek gibi görünüyor. Bu işe yaramaz ve nedeni anlamaya değer: tünel var olmadan önce içeride bir adres yoktur ve sunucuyla iletişim kuran soketin önce var olması gerekir. İki farklı adres söz konusudur ve bunlardan yalnızca biri yerel olarak seçilebilir.
Bind hatası yerel bir adresi adlandırır
OpenVPN yerel bir adresi bağlayamadığını bildirdiğinde, taşıma soketinden söz eder: eşe giden şifreli bağlantıyı taşıyan UDP veya TCP uç noktası.
Açık bir local yönergesi, arka plandaki süreçten bu soketi belirli bir yerel adrese bağlamasını ister. Adres, sürecin çalıştığı ağ ad alanında var olmalı ve istemci başlarken atanabilir olmalıdır.
Bir yönlendiricide veya bulut kenarında çevrilen genel bir adres, arka plan sürecinin bağlayabileceği yerel bir adres değildir, sunucunun gördüğü adres olsa bile. Bu ayrım, bir profilin evde çalışıp bir bulut örneğinde neden başarısız olduğunu açıklar. Genel adresi bir geri döngü arayüzüne eklemenin neden yardımcı olmadığını da açıklar, çünkü taşıma o zaman ağın geri yönlendiremediği bir adresten kaynak alırdı. Profili düzenlemeden önce arayüz listesini okuyun.
local ve remote gerçekte neyi seçer
remote iletişim kurulacak eşi adlandırır. local aynı soketin yakın ucunu bağlar. nobind işletim sisteminin hem yerel adresi hem de bağlantı noktasını seçmesine izin verir; bu yüzden ev yönlendiricilerinin arkasındaki istemciler genellikle iki yönergeden hiçbiri olmadan çalışır.
İki yönergenin hiçbiri tünelin içindeki adresle ilgili değildir.
Bir konteynerde veya ağ ad alanında aynı kural daha dar sınırlarla geçerlidir: ana makinenin adresleri içeride yoktur, bu yüzden ana makine yapılandırmasından kopyalanan bir local satırı yanlış bir adresten tamamen farklı bir nedenle başarısız olur.
ip -brief address show
ip route get 203.0.113.10İç adres sunucudan gelir
Tünelin içindeki adres, kontrol kanalı kurulduktan sonra müzakere edilir veya atanır. Dinamik bir havuzda sunucu bunu bağlantı anında belirler; istemciye özel yapılandırmada ise her kimlik için sabit olabilir.
local yönergesini bir iç adresle yazmak, sunucudan o adresi ayırmasını istemez. En iyi durumda bind başarısız olur; en kötü durumda istemci aynı değere sahip ilgisiz bir ana makine adresi bulur ve onu taşıma için kullanmaya başlar.
Okunması gereken arayüzler de farklıdır. ifconfig parametreleri ve havuz yapılandırması içeriyi tanımlar; remote, local, proto ve nobind ise dışarıyı tanımlar. Bu iki listeyi ayrı tutmak, bir forumda bulacağınız neredeyse her kafa karıştırıcı örneği açıklar. Bu yüzden OpenVPN 2.6 kılavuzu bunları ayrı bölümlerde belgeler.
Tuzak: kendi taşımasını yakalayan tam bir tünel
Tünel açıldıktan ve varsayılan yolu taşıdıktan sonra, onu ayakta tutan paketler tünelin içine yönlendirilmemelidir. Bu bir adresleme değil yönlendirme sorunudur ve arka plan süreci bunu, sunucunun kendi adresine özgün geçit üzerinden daha özel bir yol kurarak çözer.
Taşımayı belirli bir yerel adrese sabitler ve sonra o adresin kullandığı yolu değiştirirseniz, içerisi yapılandırılmış kalırken dış bağlantı yolunu kaybedebilir. Tünel bağlı olduğunu bildirmeye devam eder çünkü içerisi iyidir. Yalnızca taşıma bozulmuştur; bu yüzden günlükler çelişki gibi okunur.
Belirtiler o zaman bağlanıp donan bir tünel ya da yararlı bir hata olmadan döngü içinde yeniden bağlanan bir tünel gibi görünür. Tünelin içinde herhangi bir şeyi kontrol etmeden önce eşin adresine giden yolu kontrol edin ve bağladığınız yerel adresin hâlâ beklediğiniz arayüze ait olduğunu doğrulayın.
Karışıklığı önleyen bir alışkanlık
Bir profildeki her adresi okuyun ve düzenlemeden önce hangi katmana ait olduğuna karar verin.
Taşımanın uzak ucunu adlandırıyorsa veya yakın ucunu bağlıyorsa, bu bir dış adrestir ve başlangıçtan önce var olmalıdır. Tünelin içinde ne olduğunu tanımlıyorsa, sunucudan veya topolojiden gelir ve hiçbir yerel yönerge onun yerini alamaz.
İki listeyi profilin yanındaki kurulum notlarına yazın. Bir sonraki sorun giderme oturumu o zaman bir tahminle değil katmanla başlar.