OpenVPN sunucu yardımcısı: ağ artı netmask, asla CIDR değil
IPv4 sunucu yardımcısı hizalanmış bir ağ ve noktalı maske alır, CIDR soneki değil. Aralığı denetleyin, havuzu günlükte doğrulayın, sonra boyutu güvenle değiştirin.
CIDR sonekini noktalı maskeyle karıştıran bir sunucu satırı, daemon’u bir bağlantı noktası açmadan önce durdurur. IPv4 için server yardımcısı iki ayrı argüman ister: hizalanmış bir ağ adresi ve ardından noktalı biçimde netmask. O satırdaki diğer her şey çıkarımdır ve havuz boyutları ile istemci maskeleri tam da bu çıkarımda yanlış gider.
Yardımcının kabul ettiği iki argüman
Önce ağı, sonra maskeyi yazın; adrese hiçbir şey eklemeyin:
server 10.72.16.0 255.255.240.0/20 için biçim budur. Aşağıdaki satır hatadır ve çalışma anında değil, seçenek ayrıştırmasında başarısız olur:
server 10.72.16.0/20 255.255.240.0Bunu ayıklarken iki fikri ayrı tutun. Önek uzunluğu ve noktalı maske aynı aralığı tanımlar, ancak yardımcı ikisini aynı anda kabul etmez ve reddedilen satır, aritmetiği değil yönergeyi adlandıran bir seçenek hatası üretir.
Maskeyi yazmadan önce ağı hizalayın
İlk adres aralığın ağ adresidir, içindeki elverişli bir istemci adresi değil. /20 için aralık 10.72.16.0 ile 10.72.31.255 arasında uzanır ve bunlardan yalnızca ilki geçerli bir ağ argümanıdır. /21 255.255.248.0 kullanır ve 10.72.16.0 ile 10.72.23.255 arasını kapsar, dolayısıyla satırı server 10.72.16.0 255.255.248.0 olur.
Öneki değiştirmek aralığı değiştirir, başka bir şeyi değil. Tek bir istemcinin kaç adres aldığını değiştirmez, çünkü bu topolojinin özelliğidir, bu satırdaki maskenin değil.
Havuzu sunucu tarafından doğrulayın
Örneği ayrıntılı günlükle ön planda başlatın ve yardımcının çıkardığı satırları okuyun. Oluşturduğu havuz başlangıçta yazdırılır; bu, aritmetiği elle hesaplamaktan daha güvenilirdir:
openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195Havuz özetini çıktının üst kısmına yakın arayın. Yardımcının ayırdığı aralığı listeler ve bu aralık amacınıza uymuyorsa, maske aritmetiği ne derse desin satırdaki argümanlar yanlıştır.
Ardından bir istemci bağlayın ve ona verilen adresi kaydeden satırı bulun. Havuz aralığının yanındaki o tek adres, istemcinin ayrılmış bloğun içine mi yoksa beklemediğiniz bir yere mi düştüğünü söyler. İkisi uyuşmuyorsa istemciyi değil argümanları düzeltin. Uyuşuyorlarsa ve istemci hâlâ hiçbir yere ulaşamıyorsa, havuz asla sorun olmamıştır.
İstemcinin maskesini topolojiyi göz önünde tutarak okuyun
İstemcinin tünel arayüzünde /30 göstermesi bozuk bir havuzun kanıtı değildir. Noktadan noktaya adreslemede her istemci küçük bir blok alır ve arayüz maskesi o bloğu tanımlar, sunucunun havuzu ise bütünü kapsar. Alt ağ topolojisinde istemcinin maskesi bunun yerine havuzun maskesiyle eşleşir. Yani maske tek başına hangi topolojinin iş başında olduğunu söyler, havuzun doğru yazılıp yazılmadığını değil.
Sonuca varmadan önce yapılandırılmış topolojiyi ve atanan adresi birlikte denetleyin:
ip -4 addr show tun0Adres havuzun içindeyse ve maske havuzdan darsa, bu topolojinin işini yapmasıdır. Adres havuzun dışındaysa havuz yanlıştır ve istemci tarafındaki hiçbir denetim bunu düzeltmez.
Çalışan bir havuzu değiştirmek
Geçerli havuzla, LAN ile veya istemcilere zaten gönderilmiş herhangi bir rotayla çakışmayan bir aralık seçin. Çakışma, yeniden başlatmayı atlatan ve günler sonra bir sitenin bir yönden ulaşılamaz görünmesiyle ortaya çıkan arızadır.
Satırı değiştirin, yeniden başlatın ve kullanıcıları geri almadan önce başlangıç havuzunu yeniden okuyun. Yeni aralık bir şeyle çakışırsa aynı başlangıç çıktısı bunu hemen gösterir ve geri alma tek satırlık bir düzenleme artı bir yeniden başlatmadır.
Değişiklikten sonra eski aralığı bir süre ayrılmış tutun. Geç bağlanan istemciler hâlâ önceki havuzdan bir adres tutuyor olabilir ve bu adresleri yeniden kullanan yeni bir aralık, yönlendirme arızası gibi görünen çift atamalar üretir. OpenVPN 2.6 kılavuzu yardımcının argümanlarını ve genişlemesini belgeler; bir yönergenin komşusuyla aynı gösterimi kullandığını varsaymadan önce bunu okumakta yarar var.