Pi ağ geçidinin ana makine adı statik yolları kendi kendine günceller mi?
Pi ağ geçidiniz için bir DNS adı, yüklenmiş bir sonraki atlamayı asla yeniden yazmaz. Çekirdeğin ne sakladığını ve yolu kimin güncellemesi gerektiğini görün.
Statik bir yolu ağ geçidi adına yöneltmek, adres değişse bile ayakta kalması gerekiyormuş gibi gelir, ama kalmaz. Ad DNS'te yaşar, yol ise istemcinin yönlendirme tablosunda sayısal bir sonraki atlama olarak oturur. Pi başka bir adrese taşındığında, eski atlamayı zaten yüklemiş olan her tüketici trafiği aynı numaraya göndermeye devam eder. Hiçbir çözümleyici iletim tablosuna bağlı değildir, dolayısıyla o kaydı sizin için yeniden yazan bir şey yoktur.
DNS yanıtı ile yol farklı nesnelerdir
Pi'niz vpn-gw.lan adresine yanıt veriyor ve 10.44.0.0/16 ağını bir tünele iletiyor diyelim. 192.168.30.0/24 üzerindeki istemciler ona statik bir yolla ulaşır. Pi'nin adresi 192.168.30.4 iken 192.168.30.11'e taşındığında, kayıt TTL'i içinde takip etti, yollar ise etmedi.
İki görünüm, ayrı ayrı sorulduğunda ikisi de makul göründüğü için kolayca gözden kaçan bir biçimde birbirini tutmaz:
$ ip route get 10.44.0.1
10.44.0.1 via 192.168.30.4 dev eth0 src 192.168.30.20
$ dig +short vpn-gw.lan
192.168.30.11
Paketlerin nereye gideceğine yalnızca ilk satır karar verir. İkinci satır, çekirdeğin hiç sormadığı bir soruyu yanıtlar. Birkaç A kaydı taşıyan bir kayıt da yük devretme politikasına dönüşmez, çünkü her adres o segmentte hâlâ kullanılabilir bir sonraki atlama olmak zorundadır.
Komut çıktıktan sonra tabloda ne kalır
Bir Linux yolu burada önemli olan iki şeyi kaydeder: sonraki atlamayı protokol adresi olarak ve çıkış arayüzünü dizin numarası olarak. rtnetlink yol öznitelikleri o ilk alanı RTA_GATEWAY olarak adlandırır ve içinde baytlar bulunur. Kayıt yerine oturduktan sonra ona bağlı bir TTL yoktur ve hiçbir arka plan araması onu tazelemez.
Bu yüzden ip route add 10.44.0.0/16 via vpn-gw.lan çalışıyor gibi görünebilir. Araç, komut çalışırken adı çözer, ortaya çıkan adresi yazar ve adı tamamen unutur. Ardından ip route show 10.44.0.0/16 komutunu çalıştırın, geriye harfi harfine bir adres alırsınız.
Bu davranışı tüneli suçlamadan önce bilmekte yarar var.
Sizin yerinize ad çözen araçlar ve ne zaman
Bazı yönlendiriciler ve güvenlik duvarları bir yol ya da ağ geçidi alanında ana makine adlarını gerçekten kabul eder. Önemli olan çözümlemenin ne zaman gerçekleştiğidir. Aygıt adı yalnızca yapılandırmayı uygularken çözümlüyorsa, saklanan kayıt yazılmış bir adres kadar statiktir ve sonraki adres değişikliği bir uygulama daha gerektirir. Alanın bir ad kabul etmesi size yenileme hakkında hiçbir şey söylemez.
Yönetilen kurulumlar işi bölme eğilimindedir. Bir DHCP rezervasyonu veya statik kiralama Pi'yi tek adreste tutar ve DNS kaydı yalnızca kiralamayı izler. Hiçbir şeyin hareketli bir hedefi izlemesi gerekmez, çünkü hedef hareket etmez.
İzlenen bir güncelleyici diğer meşru kalıptır ve bir sahibe ihtiyaç duyar.
Adresi sabitleyin ya da güncelleyiciyi kendiniz çalıştırın
Küçük bir LAN için DHCP sunucusundaki rezervasyon en ucuz çözümdür. Dinamik havuzun dışında bir adres seçin, onu Pi'nin MAC adresine bağlayın ve bir sonraki kiralama yenilemesinden sonra ip -4 addr show dev eth0 ile doğrulayın. Ardından istemcilerin sonraki atlamasını bir kez o adrese yönlendirin. Artık sağlam bir ağ geçidiniz ve onu tanımlayan bir kaydınız var; bu ilişkinin gerçekten işlediği sıra budur.
Pi gerçekten taşınmak zorundaysa, her istemciyi elle düzenlemek yerine yol onarımını tek bir yerde tutun. Çözen, karşılaştıran ve değiştiren kısa bir betik adımı yinelenebilir kılmaya yeter:
new=$(dig +short vpn-gw.lan | head -n1)
cur=$(ip route get 10.44.0.1 | awk '{print $3}')
if [ "$new" != "$cur" ]; then
ip route replace 10.44.0.0/16 via "$new"
fi
ip route get 10.44.0.1
Son komut kabul testidir, çünkü çekirdeğin gerçekten kullanacağı ağ geçidini yazdırır. Yazdırılan adres hâlâ eskiyse betik yanlış ağ ad alanında çalıştı ya da izni yoktu ve DNS tarafı ilgisizdir.
Dönüş yolunu da denetleyin. Pi istemci alt ağına nasıl ulaşacağını bilmelidir ve güvenlik duvarı tünel trafiğine izin vermelidir. Uyuşmazlığı örtmek için eklenen varsayılan yol genellikle gerçek boşluğu gizler ve bir hafta sonra başka bir şeyi bozar.