Tek ana makineden TCP ve UDP üzerinden OpenVPN sunmak
Bir süreç 2.7 öncesinde tek bir taşıma bağlar. Köprülü bir TAP çiftini, iki TUN alt ağını ve ortak bir havuzu karşılaştırın, ardından her profili kendi dinleyicisiyle eşleştirin.
Yalnızca TCP 443'e izin veren ağlar, UDP'yi sorunsuz geçiren ağlarla bir arada bulunur ve bir sunucu ikisine de hizmet etmelidir. proto udp içeren bir profil ikinci gruba yanıt verir ve birincide başarısız olur; aynı yapılandırmayı proto tcp diyecek şekilde düzenlemek ikinci bir dinleyici oluşturmaz. Yönerge bir süreç için tek bir taşıma seçer. Geri kalan her şey bu kısıtlamadan doğar.
Ya birden fazla süreç çalıştırırsınız ya da aynı anda birkaç soket bağlayabilen bir sürüm çalıştırırsınız.
2.7 öncesinde bir süreç tek bir taşıma bağlar
Topluluk OpenVPN sürümü proto öğesinin tanımladığı soketi bağlar ve bu yönerge örnek için tek bir taşıma seçer. TCP ve UDP ayrı yığınlardır, bu yüzden aynı bağlantı noktası numarasını ikisi aynı anda kullanabilir, ama tek bir süreç kullanamaz. Bu nedenle 2.6 hattı size daemon başına bir taşıma verir. OpenVPN 2.7 bu kısıtlamayı sunucular için kaldırdı; sunucular tek bir süreçte birden çok --local deyimiyle birden çok soket bağlayabilir.
Herhangi bir yanıtın etrafında tasarım yapmadan önce sürümü denetleyin, çünkü 2.7 düzeni kendi yapılandırma söz dizimine sahip farklı bir işletim modelidir. 2.6 için yazılmış bir kılavuz, söylemese de iki süreci anlatır.
İki örneği çalıştırmanın üç yolu
TAP arayüzleriyle her taşıma için bir örnek çalıştırın ve ana makinedeki iki tap aygıtını köprüleyin. Her iki istemci kümesi de aynı yayın alanına girer; bu, tek bir adres havuzunun onları kapsamasını sağlar ve yayına bağımlı protokolleri çalışır durumda tutar. TUN ile köprüleme kullanılamaz, bu yüzden en basit bölünme her örneğe kendi alt ağını verir ve yönlendirme iki istemci kümesini ayrı tutar. Üçüncü seçenek, her örneğin o örneğin aygıtı üzerinden istemciye /32 yolunu kuran bir learn-address betiği çağırmasını sağlayarak tek bir havuzu korur.
Bu üçüncü düzen, insanların istediği ve en çok özen isteyen düzendir, çünkü betik veri yolunun parçası olur ve ekleme, güncelleme ve silme olaylarını doğru işlemek zorundadır.
| Arrangement | Interfaces | Address pool | Cost |
|---|---|---|---|
| Bridged TAP pair | Two tap devices joined by a bridge | One shared pool | Broadcast traffic and bridge maintenance |
| Two TUN subnets | Two tun devices, no bridge | One pool per instance | Routing rules and two plans |
| Shared pool with routes | Two tun devices plus a hook | One pool across both | A script on the data path |
İki örneği ayrı tutun
Her örneğin ayrıca ayrı bir bağlantı noktasına veya adrese, ayrı bir durum dosyasına ve ayrı bir günlük hedefine ihtiyacı vardır. Aynı durum dosyasına yazan iki daemon, bir olay sırasında okunamayan çıktı üretir ve ona tam da o anda ihtiyaç duyarsınız. İkinci örnek belirli bir adres bağlarsa, süreç başladığında o adres ana makinede bulunmalıdır; aksi halde anahtarlar hakkında bir şey söylemeden bağlama hatasıyla çıkar.
Birimleri ve profilleri, taşıma dosya adından anlaşılacak şekilde adlandırın. Bir sonraki operatörün hangisinin TCP olduğunu öğrenmek için yapılandırma açması gerekmemeli.
Profili dinleyiciyle eşleştirin
proto tcp çalıştıran bir sunucu proto tcp-client içeren istemci profili bekler ve hâlâ proto udp taşıyan bir profil o dinleyici karşısında kullanıcının üzerine gidebileceği bir hata olmadan zaman aşımına uğrar. Dağıtım iki taşımayı da sunuyorsa iki profil tutun ve hangisinin denendiğini desteğin bilmesi için etiketleyin. Yalnızca bağlantı noktası numarası taşımayı tanımlamaz.
Güvenlik duvarı kuralları aynı bölünmeyi izler: UDP 1194 için bir kural TCP 1194 hakkında hiçbir şey söylemez ve bir adres için olan kural diğer dinleyiciyi kapsamaz.
Önce sunucunun görünümünü okuyun
Sunucuda ss -lntup ile başlayın ve hem TCP hem UDP dinleyicisinin göründüğünü doğrulayın. Ardından her türden birer istemci bağlayın ve durum çıktısında farklı adreslere sahip iki kayıt olup olmadığını denetleyin. Soketler varsa ve hiç istemci gelmiyorsa, yol veya güvenlik duvarı paketleri daemon görmeden reddediyor.
Hiç görünmeyen bir soket yapılandırma veya bağlama sorunudur; görünüp de hiç bağlantı kaydetmeyen bir soket ise filtreleme sorunudur. İkisi istemci tarafından aynı görünür, bu yüzden önce sunucunun kendi görünümüne bakılır. TCP'nin sıra başı tıkanması taşıdığını unutmayın; bu yüzden onu sunmak, temiz UDP yolu olan istemciler için bir yükseltme değil erişilebilirlik önlemidir.