Politika yönlendirmesi, çoğu sorun giderme notunun sorduğu sorudan farklı bir soruya yanıt verir. Ana tablo bir hedefin nereye gittiğini söyler; politika kuralları hangi tabloya bakılacağını söyler ve bunu kaynak adresine, bir paket işaretine, veya paketin geldiği arayüze göre belirleyebilir. Bir tünel tutarsız davrandığında sebep çoğu zaman kural kümesidir, yönlendirme tablosu ise çoğu zaman değildir.

Kurallar tabloyu seçer, sonra tablo rotayı seçer

Her kural bir öncelik, bir eşleşme koşulu ve bir hedef tablo taşır. Çekirdek kuralları öncelik sırasıyla dolaşır ve ilk eşleşmede durur, ardından o tabloda olağan en uzun önek aramasını yapar. Boş bir tabloya işaret eden kural, sıradaki kuralın seçtiği şeye düşer ve dikkatle yazılmış bir kuralın hiçbir şey yapmıyormuş gibi görünmesinin sebebi budur.

Bu yüzden ana tabloyu dökmek çalışan bir VPN istemcisini nadiren açıklar. İstemciler genellikle kuralları düşük öncelik numaralarına, ana tablonun varsayılan kuralından çok önce ekler, böylece paket hiçbir zaman baktığınız rotaya ulaşmaz. Ana tablodaki bir metriği düşürmek, zaten yönlendirilmiş trafik için hiçbir şeyi değiştirmez.

Bir kural bir öneki kasıtlı olarak kara deliğe veya erişilemez hâle getirebilir. Bazı istemciler böyle bir kuralı güvenlik anahtarı olarak ekler ve o zaman düşüş, yapılandırılmış bir tünelden çok bozuk bir tünel gibi görünür.

Kural kümesini liste olarak değil, sıra olarak okuyun

Kuralları öncelikleri ve işaret ettikleri tablolarla birlikte yazdırın, ardından varsayılan veya tünel rotası taşıyan her tabloyu yazdırın. Sıra, önemli olan kısımdır ve bir ekran görüntüsünün genellikle atladığı kısım da odur:

ip rule show
ip route show table all | sed -n '1,60p'
ip route get 198.51.100.20 from 10.8.0.2
ip route get 198.51.100.20 from 10.8.0.2 mark 0x1

Son iki komut, teoriyi gözleme dönüştüren komutlardır, çünkü şunu sorarlar: çekirdek o kaynak ve o işaret için ne yapardı. İşaret değiştiğinde yanıt değişiyorsa işarete dayalı bir kural devrededir ve işareti atlayan her test başka bir paketi test eder. Dış bağlantı kendi kuralını hak eder. Tüm trafiği kendi üzerinden yönlendiren bir tünel, bağlandığı uç nokta adresini dışlamalıdır, yoksa şifrelenmiş paketler az önce terk ettikleri tünele geri gönderilir. İstemcilerin çoğu bu dışlamayı otomatik ekler ve elle düzenlenmiş kural kümesi bunun eksik kaldığı yerdir.

İşaretler ve soketler: istemcilerin trafiği bölmesinin iki yolu

Bazı istemciler paketleri güvenlik duvarında işaretler ve işaretle eşleşen bir kural ekler. Diğerleri soket düzeyinde yönlendirme kullanır ve soket bağlanmadan önce sokete bir rota koyar. İlki ip rule içinde görünür; ikincisi görünmez ve genel bir aramada ortaya çıkmaz.

Bir test programı temsil etmesi gereken uygulamadan farklı davranıyorsa, uygulamanın işaret koyup koymadığını veya bir aygıta bağlanıp bağlanmadığını kontrol edin. Mekanizma adlandırıldıktan sonra bu fark bilmece değildir ve aynı makinede bir kabuktan gelen curl ile bir tarayıcı sekmesinin neden farklı yollar izleyebildiğini açıklar. İki teknik de geniş anlamda politika yönlendirmesidir: yolu hedeften başka bir şeyle seçerler. İkisi de trafiği yetkilendirmez ve ikisi de eşin beklediği güvenlik duvarı kurallarının veya kimlik bilgilerinin yerini tutmaz.

Başka bir kural eklemeden önce sahipliği izleyin

Kuralları bir şey kurar. Bir VPN istemcisi, bir ağ yöneticisi ve elle yazılmış bir betik açılışta kural ekleyebilir ve yeniden bağlanma mantığı önceki kümeyi geride bırakabilir. Önceki bir profilden kalan iki eski kural, profil silindikten çok sonra bile trafiği yönlendirmeye devam eder.

Hangi sürecin kurala sahip olduğunu önceliğinden ve biçiminden bulun ve bu sahibin kümeyi her bağlantıda yeniden yazıp yazmadığını kontrol edin. Yazıyorsa, bugün eklenen elle kural yarın kaybolur ve düzeltme kabuk geçmişi dosyasında değil istemcinin yapılandırmasında olmalıdır. Test için tüm kural kümesini temizlemek, öngörülebilir bir maliyeti olan çekici bir kısa yoldur: istemcinin kendi tünelini çalıştırmak için ihtiyaç duyduğu kuralları da kaldırır. Kuralları tek tek silin veya yeniden başlatabildiğiniz bir makinede test edin.

Kapsamı bir değil iki akışla kanıtlayın

Bir düzeltme yalnızca etkilenmesi gereken bir akış ve etkilenmemesi gereken bir akışla doğrulanır. Politikasının tünele yönlendirdiği bir hedef ve dışarıda kalması gereken bir hedef seçin, ardından ikisi için aramaları ve yakalamaları karşılaştırın:

ip route get 198.51.100.20 from 192.0.2.44
ip route get 198.51.100.21 from 192.0.2.44
tcpdump -ni any host 198.51.100.21 and port 443

İki arama farklı arayüzler döndürdüğünde kural bir şey yapıyordur. Aynı arayüzü döndürdüklerinde kural amaçlanandan daha geniş eşleşiyordur ve bu, tek bir uygulama için düşünülmüş bir tünelden bütün bir alt ağı sessizce geçiren arızadır.

Kural önceliklerini ve sahip hizmeti iki test adresiyle birlikte bilete yazın. Böylece sıradaki kişi bir belirti tarifi yerine yeniden üretilebilir bir çifte sahip olur ve politika yönlendirmesinin hâlâ devrede olup olmadığını bir dakika içinde söyleyebilir.

İlgili makaleler