Tünel ayakta, rota gitti: iki VPN arızasını ayırmak
Bir önek üç farklı aşamada alınabilir, seçilebilir ve kurulabilir. Önce iletim tablosunu, sonra protokol tablosunu, sonra saatleri okuyun.
Bir ana bilgisayar erişilemez hale gelirken tünel arayüzü hâlâ kurulmuş olduğunu bildirir ve bu iki gözlem çelişmez. Bir şey trafiğin kullandığı yolu kaldırdı: bir komşu önekini geri çekti, izlenen bir statik rota kaldırıldı ya da başka bir rota tercih edilir oldu. Güvenlik ilişkisi her üç durumda da tamamen sağlıklı kalabilir. Olayları ayırmak, VPN başarısız mı oldu diye değil, hangi katmanın önce değiştiğini sormak demektir.
Tek bir olay gibi görünen üç aşama
Bir yönlendirme kararının üç aşaması vardır. Önek alınır, en iyi olarak seçilir ve iletim tablosuna kurulur. Her aşama tek başına başarısız olabilir ve arıza uygulama tarafından aynı görünür. Öğrenilen ama seçimi kaybeden bir önek, baktığınız tek kanıt iletim tablosu olduğunda hiç ulaşmamış olandan ayırt edilemez.
Bu yüzden ilk soru hangi protokolün suçlu olduğu değil, hangi aşamanın kırıldığıdır. Cevap, olayın kime ait olduğunu ve bir sonraki denetimin hangi aracı kullanacağını belirler.
Önce kurulu rotayı okuyun
Çekirdeğe, arızalı hedefe giden trafiğin gerçekte nereye gittiğini sorun. ip route get bir sonraki sıçramayı, arayüzü ve çekirdeğin kullanacağı kaynak adresi yazdırır ve tüm tablo için değil tek bir hedef için yanıt verir. Yanıt tüneli adlandırıyorsa iletim tablosu hâlâ yolun var olduğuna inanır ve sorun onun üzerindedir.
ip route get 10.20.5.10
ip route show 10.20.0.0/16
«unreachable» yanıtı hiç kurulu rota olmadığı anlamına gelir, bu da bir geri çekmeye veya eksik kuruluma işaret eder. Fiziksel bir arayüzü adlandıran yanıt, trafiğin kimse karar vermeden tünelden çıktığı anlamına gelir ve bir sonraki denetim kazanan tercihtir. Paketler hâlâ kaybolurken tüneli adlandıran yanıt ise yolun daha aşağısına, filtrelemeye veya karşı tarafa işaret eder.
Sonra protokolün kendi görünümüne bakın
Bir yönlendirme servisi birden fazla tablo tutar ve ilginç karşılaştırma bunlar arasındadır. BGP için komşu oturumunun durumu, alınan duyuru ve kurulu rota üç ayrı kanıttır. Bir önek alınan tabloda oturabilir ve daha kısa yönetim mesafeli bir rota kazandığı için çekirdeğe hiç ulaşmayabilir. Karşı tarafın duyuruyu durdurduğu sonucuna varmadan önce üçünü de denetleyin.
vtysh -c "show bgp summary"
vtysh -c "show bgp ipv4 unicast 10.20.0.0/16"
Özet oturumun kurulup kurulmadığını, önek bazında görünüm öneğin kabul edilip edilmediğini, çekirdek araması ise kurulup kurulmadığını söyler. Bunları bu sırayla okumak oturum titremesinin geri çekmeyle ve geri çekmenin ilke reddiyle karıştırılmasını önler.
Saatler uyuşmadığında
Tünel günlüğünü, yönlendirme günlüğünü ve uygulamanın ilk arızasını gerçek saat dilimlerini kullanarak tek bir zaman çizelgesine koyun. Komşu kaybı önce geliyorsa tünel rotayı kendisiyle birlikte düşürdü. Geri çekme önce geliyorsa yönlendirme değişti ve tünel sonradan tepki verdi. Bunlar farklı sahipleri olan farklı olaylardır ve sıra bütün bulgudur.
Bir dakikalık saat kayması bu sonucu tersine çevirmeye yeter, bu yüzden sıraya güvenmeden önce saat dilimini ve sapmayı doğrulayın. Sapma olmadan yerel saatle günlük tutan aygıtlar, kendinden emin ama yanlış bir zaman çizelgesinin olağan kaynağıdır.
Döngüsüz kurtarma
Geri çekmeden sonra iki yol uygun olabilir: protokolün seçtiği yol ve elle sabitlediğiniz yol. Ağın sizin için almaya devam ettiği karar yalnızca ilkidir, bu yüzden elle yapılan rota kurtarma planı değil geçici bir çözümdür. Yedek duyuru da zaten kurulmuş bir oturum için güvenlik duvarı veya NAT durumunu korumaz, bu yüzden yeni akışlar çalışabilirken özgün akış bozuk kalabilir. Hangi yedeğin etkin olması gerektiğini ve uzak tesisin bunun üzerinden dönüş yolu kabul edip etmeyeceğini doğrulayın.
Geri çekmenin neden olduğunu anlamadan kalıcı bir statik geçersiz kılma kurmayın. Bu kısayol trafiği başarısız bir yola sabitleyebilir veya kasıtlı bir yönlendirme ilkesini sessizce atlayabilir ve özgün nedeni yeni bir yapılandırmanın altına gömer. Rota geri getirildikten sonra uygulamayı yeniden test edin ve seçilen öneğin yalnızca tabloda bir girdi değil, çalışan bir veri yolu olduğunu doğrulayın.