OSPF komşuluğu kurulmadığında ilk refleks genelde konfigürasyonu baştan yazmak olur. Oysa komşuluğun hangi durumda takıldığı, sorunun nerede olduğunu neredeyse her zaman söyler. Bu yazıda önce durumu okuyacağız, sonra sırayla kontrol edeceğiz.
Örnek topoloji basit: R1 ve R2, 10.0.12.0/30 ağı üzerinden Area 0’da komşu olacak. R1’in router ID’si 1.1.1.1, R2’ninki 2.2.2.2.
Komutlar Huawei VRP V200R0xx, Cisco IOS 15.x, FortiOS 7.x ve RouterOS 7 esas alınarak yazıldı. Sürüme göre küçük farklar olabilir. Sekmelerden birini seçtiğinde sayfadaki tüm komutlar o üreticiye geçer.
1. Komşuluk hangi durumda takılı?
Önce iki taraftaki komşu tablosuna bak.
display ospf peer brief
show ip ospf neighbor
get router info ospf neighbor
/routing ospf neighbor print
Çıktıdaki durum sana nereye bakacağını söyler:
| Takıldığı durum | Ne anlama gelir | İlk bakılacak yer |
|---|---|---|
| Hiç yok / Down | Hello hiç gelmiyor ya da kabul edilmiyor | Arayüz, area ve network tanımı, passive interface, hello parametreleri, ACL |
| Init | Komşunun hello’su geliyor, bizimki ona ulaşmıyor | Tek yönlü filtre (ACL, firewall), tek yönlü link |
| 2-Way | Broadcast ağda DROther’lar arasında normaldir | Point-to-point olması gerekiyorsa network type |
| ExStart / Exchange | Veritabanı (DBD) değişimi tamamlanmıyor | MTU uyuşmazlığı, aynı router ID |
| Loading | İstenen LSA’lar gelmiyor | Nadir; MTU, bozuk LSA |
2. Hello parametrelerini karşılaştır
İki router’ın komşu olabilmesi için hello paketindeki şu alanlar birebir aynı olmalı:
- Area ID
- Hello ve dead interval
- Subnet maskesi (broadcast ağlarda)
- Kimlik doğrulama tipi ve anahtarı
- Area tipi (ör. bir taraf stub, diğeri normal olamaz)
Uymayan hello sessizce düşürülür; komşu tabloda hiç görünmez. Arayüz bazında değerleri iki tarafta da görüntüle:
display ospf interface GigabitEthernet0/0/1
show ip ospf interface GigabitEthernet0/1
get router info ospf interface port1
/routing ospf interface print detail
Çıktılarda area, network type, hello/dead değerleri ve DR/BDR durumunu yan yana koy. Farkı görmek çoğu zaman tek başına yeterli.
3. Zamanlayıcıları ve network type’ı eşitle
Point-to-point bir linkte iki tarafı da point-to-point yapmak DR/BDR seçimini ortadan kaldırır ve komşuluğu hızlandırır. Bir taraf broadcast, diğeri point-to-point kalırsa komşuluk kurulsa bile rotalar tabloya düzgün düşmeyebilir.
interface GigabitEthernet0/0/1
ospf network-type p2p
ospf timer hello 10
ospf timer dead 40
interface GigabitEthernet0/1
ip ospf network point-to-point
ip ospf hello-interval 10
ip ospf dead-interval 40
config router ospf
config ospf-interface
edit "port1-ospf"
set interface "port1"
set network-type point-to-point
set hello-interval 10
set dead-interval 40
next
end
end
/routing ospf interface-template add area=backbone \
networks=10.0.12.0/30 type=ptp \
hello-interval=10s dead-interval=40s
4. Hata sayaçlarına ve debug’a bak
Parametreler doğru görünüyorsa router’a neden paketi reddettiğini sor. Kimlik doğrulama, area ve zamanlayıcı uyuşmazlıkları burada açıkça görünür.
display ospf error
debug ip ospf adj
! işin bitince:
undebug all
diagnose ip router ospf all enable
diagnose ip router ospf level info
diagnose debug enable
! işin bitince:
diagnose debug disable
/system logging add topics=ospf,debug action=memory
/log print where topics~"ospf"
Üretim cihazında debug açık bırakma. Yoğun bir cihazda CPU’yu gereksiz yere yorar.
5. ExStart / Exchange’de takılıyorsa: MTU
Komşuluk ExStart ya da Exchange’de kalıyorsa ilk şüpheli MTU uyuşmazlığıdır. DBD paketleri arayüz MTU’sunu taşır; karşı taraf daha büyük bir MTU görürse değişimi tamamlamaz.
Doğru çözüm iki taraftaki arayüz MTU’sunu eşitlemektir. MTU kontrolünü kapatmak sorunu gizler, çözmez; geçici bir test için kullan.
display interface GigabitEthernet0/0/1 | include MTU
Huawei varsayılan olarak DBD paketlerinde MTU alanını 0 gönderir. Karşı tarafla gerçek MTU kontrolü yapmak için arayüzde ospf mtu-enable kullanılır.
show interfaces GigabitEthernet0/1 | include MTU
! yalnızca geçici test için:
interface GigabitEthernet0/1
ip ospf mtu-ignore
config router ospf
config ospf-interface
edit "port1-ospf"
set mtu-ignore enable
next
end
end
6. Router ID çakışması
İki router aynı router ID’yi kullanıyorsa komşuluk ExStart civarında döner ya da hiç oturmaz. Bu genelde bir konfigürasyonun kopyalanıp düzenlenmeden yapıştırılmasıyla olur.
display ospf brief
! ID değiştirdiysen etkin olması için:
reset ospf process
show ip ospf | include ID
! ID değiştirdiysen etkin olması için:
clear ip ospf process
get router info ospf status
/routing ospf instance print
Process’i sıfırlamak o cihazdaki tüm OSPF komşuluklarını düşürür. Bakım penceresinde yap.
7. Arada firewall ya da ACL var mı?
OSPF, TCP ya da UDP değil, IP protokol 89 kullanır. Hello’lar 224.0.0.5, DR/BDR’ye giden paketler 224.0.0.6 multicast adresine gider. Arada bir firewall ya da arayüz ACL’i varsa bu trafiğe açıkça izin ver. Init durumunda takılı bir komşuluk çoğu zaman tek yönde filtrelenen trafiğe işaret eder.
Özet kontrol listesi
- Komşuluk hangi durumda? Tabloya göre yön belirle.
- Area, hello/dead, maske, kimlik doğrulama ve area tipi iki tarafta aynı mı?
- Network type iki tarafta tutarlı mı?
- Hata sayaçları ve debug ne diyor?
- ExStart/Exchange’de ise MTU’ları karşılaştır.
- Router ID’ler benzersiz mi?
- Arada IP protokol 89 ve multicast’i engelleyen bir şey var mı?
Bu yedi adım, sahada karşılaşılan OSPF komşuluk sorunlarının büyük kısmını çözer. Kalanlar için ilgili üreticinin dokümantasyonuna ve debug çıktısına dön.