WireGuard: wg-quick içinde iki yarım rota ile 0.0.0.0/0 karşılaştırması
İki /1 aralığı /0 ile aynı adresleri kapsar, ancak wg-quick bunları farklı yönlendirir. Düzenlemeden önce ilke kurallarını, işaretleri ve uç nokta yolunu denetleyin.
İki /1 öneki, tek bir /0 ile tam olarak aynı IPv4 adreslerini kapsar ve bu eşitlik yalnızca eşin izin verilen önek listesinin içinde geçerlidir. Kurulum aracı nasıl yönlendirileceğine karar verdiği anda geçerliliğini yitirir, çünkü Linux wg-quick varsayılan öneki aritmetik değil özel bir durum olarak ele alır. Özel dal ayrı bir tablo, iki ilke kuralı, bir soket işareti ve bir çift yarım rotanın asla almadığı ters yol ayarlarını kurar. Bu nedenle düzenlemeden sonra bir vekil sunucu veya tarayıcı çalışmayı bıraktığında, önekler değişikliğin en az ilgi çekici kısmıdır.
Önek listesi tüm yapılandırma değildir
AllowedIPs aynı anda iki iş yapar ve bunlardan yalnızca biri kapsamla ilgilidir. WireGuard'ın kendisi için liste kripto anahtar yönlendirmesidir: hangi hedeflerin bir eşe doğru şifrelendiğine ve o eşin hangi kaynak adresleri kullanabileceğine karar verir. wg-quick için aynı liste bir rota belirtimi olarak da hizmet eder ve ürettiği rota, listenin rastlantısal olarak hangi dalla eşleştiğine bağlıdır. Bu nedenle iki farklı liste biçiminde aynı kapsam, aynı ana makine durumu hakkında hiçbir şey söylemez.
Varsayılan yapılandırma bu kararı elinizden alır, çünkü Table varsayılan olarak otomatiktir ve rotaların nereye ineceğini araç kendisi seçer. Başka bir ağ yöneticisi, bir dağıtım sarmalayıcısı veya özel bir Table değeri sonucu yeniden değiştirir, bu yüzden bir ana makine için yazılmış tavsiye bir sonrakinde yanlış görünebilir.
Varsayılan dal bir rotanın ötesinde ne ekler
Bir /0 girdisi wg-quick aracını varsayılan rota yoluna gönderir: ayrı bir yönlendirme tablosu varsayılanı alır, bir ilke kuralı işaretsiz trafiği oraya gönderir, ikinci bir kural ana tablonun daha belirgin rotalarını yetkili tutar ve arayüz kendi soketine bir güvenlik duvarı işareti alır. O işaret döngü bekçisidir. Tünel trafiğini taşıyan şifreli datagramlar işaret ayarlanmış olarak çıkar, böylece her şeyi tünele yönlendiren kural tünelin kendi taşıma paketlerini yutmaz.
Bunun yerine bir çift /1 girdisi olağan rota yolunu izler. Yapılandırılmış tabloya iki rota iner ve çevredeki mekanizmaların hiçbiri görünmez, gereksiz olduğu için değil, o kod yoluna hiç girilmediği için.
İki düzenin ayrıldığı yer
Ayrım önce yineleme olarak görünür. Yarım rotalar ana tabloda olduğunda, eşin kendi taşıma adresi bir tünel önekinin içine düşer, bu yüzden tüneli taşıması gereken paket tünelin içini gösteren bir rotayla eşleşir. Bir şeyin bunu muaf tutması gerekir: geçerli uç nokta için bir ana makine rotası, elle uygulanmış bir işaret veya arayüze özgü bir kural. Ana makine rotası, uç noktanın adresi değişene kadar çalışır, bu DNS tabanlı uç noktalarda, dolaşan istemcilerde ve çok eşli yapılandırmalarda olur.
İkincisi, işaretler hakkında akıl yürüten her şey davranışını değiştirir. Bağlantıları yerel olarak yönlendiren saydam bir vekil sunucu, işaretleri ve kaynakları özgün istemci akışından farklı olan yeni soketler oluşturur ve varsayılan dalın ürettiği ilke kuralları bu akışları ayıran şeyin bir parçasıydı. Vekil sunucunun kendi giden bağlantısını okumak, özgün hedefe ulaşılıp ulaşılamadığını sınamaktan farklı bir alıştırmadır.
Düzenlemeden önce kuralları ve işaretleri okuyun
Tünel sağlıklıyken mevcut durumu kaydedin, sonra değişiklikten sonra yeniden, ve yapılandırma dosyasından akıl yürütmek yerine iki dökümü karşılaştırın. İlke kurallarını, her tabloyu, arayüzün işaretini ve kaydedilen uç noktaları ekleyin.
ip rule show
ip -4 route show table all | grep -E 'default|wg1'
wg show wg1 fwmark
wg show wg1 endpoints
Çıktının ilk satırı işaretsiz trafik kuralını kaybetmişse ve ayrı tablo boşsa, varsayılan dal çalışmıyor demektir ve hiçbir önek aritmetiği etkilerini geri getirmez. Daha önce işaret taşıyan bir arayüzde sıfır işareti aynı sinyaldir, tek bir değerde görünür.
Dağıtmadan önce tünel kaybını prova edin
Yarım rota düzeni bilinçli tercih ise eksik parçaları açıkça sağlamalıdır: adres değişikliklerine dayanan bir uç nokta yolu, tünel düştüğünde amaçlanan davranış ve IPv6 için eşdeğer işlem. Bunları bir kesinti sırasında keşfetmek yerine gereksinim olarak yazın. Ardından hatayı prova edin, çünkü sessizce fiziksel bağlantıya geri düşen tam bir tünel, çalışmayı durduran bir tünelden daha kötüdür.
sudo ip -4 route add 198.51.100.20/32 via 192.0.2.1 dev eth0
ip -4 route get 198.51.100.20
sudo wg-quick down wg1
Rota araması uç noktayı tünelden geçmeden fiziksel arayüzden çözmelidir ve arayüzü indirmek ana makineyi tasarımın vaat ettiği durumda bırakmalıdır. Değişimden sonra çalışan bir vekil sunucu, üretilen ana makine durumunun önemli olduğunu kanıtlar; döngü önleme ve indirilmiş durumdaki davranışın düzenlemeden sağ çıktığını kanıtlamaz.