Bu Yazıda OSPF Metriği (Cost), OSPF Neighbor State'leri, OSPF Hello / Dead Zamanlayıcıları, OSPF Mesaj Türlerini ve Bazı Ek OSPF Yapılandırmaları öğreneceğiz.
Konuya başlamadan önce OSPF Part 1 Yazısını okumanızı tavsiye ederim.
OSPF Cost
OSPF Metriği Cost olarak Adlandırılır. Temel olarak Portun Hızı olan Bant Genişliğine (Bandwidth) göre otomatik olarak hesaplanır. Portun Cost Değerini Manuel olarak da Yapılandırabilirsiniz.
Cost, Reference Bandwidth olarak Adlandırılan Değerin Portun Bandwidth Değerine Bölünmesi ile Hesaplanır.
Varsayılan OSPF Reference Bandwidth = 100 Mbps
Örneğin 10 Mbps Hıza sahip normal bir Ethernet Portunun OSPF Cost'u 10'dur.
- Reference Bandwidth: 100 Mbps / Interface Bandwidth: 10 Mbps = Cost = 10 (Ethernet).
- Reference Bandwidth: 100 Mbps / Interface Bandwidth: 100 Mbps = Cost = 1 (Fast Ethernet).
- Reference Bandwidth: 100 Mbps / Interface Bandwidth: 1000 Mbps = Cost = 1 (Gigabit Ethernet).
- Reference Bandwidth: 100 Mbps / Interface Bandwidth: 10000 Mbps = Cost = 1 (10 Gigabit Ethernet).
1'den Küçük Tüm Cost Değerleri 1'e Dönüştürülür.
Topoloji
R3 F2/0 Portunun Cost değerini öğrenmek için show ip ospf interface f2/0 komutunu kullandım.
R3 G0/0 Portunun Cost değerini öğrenmek için show ip ospf interface g0/0 komutunu kullandım:
FastEthernet, GigabitEthernet, 10 Gig Ethernet, vs. Hepsinin Cost Değeri Eşit ve 1'dir. Bu nedenle Varsayılan Referance Bandwidth Değeri İdeal Değildir.
OSPF Referance Bandwidth Yapılandırma Komutu (config-router): auto-cost reference-bandwidth megabits-per-second (Mbps)
R3'de Reference Bandwidth Değerini 100.000 olarak Yapılandırdım.
Reference Bandwidth'i neden bu kadar büyük bir değer yapılandıralım? Gelecekteki Hız Yükseltmelerine İzin Vermek için Ağınızdaki En Hızlı Bağlantılardan Daha Büyük bir Reference Bandwidth Yapılandırmalısınız.
Reference Bandwidth yapılandırdığınızda görüntülenen mesaja dikkat edin, 'Reference Bandwidth'in Tüm Router'larda Tutarlı olduğundan emin olun'. Ağdaki Her Portta Tutarlı bir Cost Değeri Sağlamak için Tüm OSPF Router'larda Aynı Reference Bandwidth Yapılandırmalısınız. Bu nedenle Tüm Router'larda Aynı OSPF Reference Bandwidth Değerini ayarladım (100.000 Mbps - 100 Gbps).
Bir Hedefe Yönelik olan Rotanın OSPF Cost Değeri, Çıkış Portlarının Toplam Cost Değeridir.
R1'in 192.168.4.0/24 Ağına ulaşma Cost'u nedir?
Loopback Interface'in Cost'u, Her Zaman 1'dir.
Tüm Router'larda Reference Bandwidth Değiştirmeden önceki R1 Route Tablosu (Default Reference Bandwidth: 100 Mbps):
Şimdi de Tüm Router'larda Reference Bandwidth Değerini Değiştirdikten (Reference Bandwidth: 100.000 Mbps) sonra R1 Route Tablosuna bakalım.
Gördüğünüz gibi 192.168.4.0/24 Ağına giden Rota Sayısı 1'e düştü. R3 üzerinden olan Rotanın Metriği daha yüksek hesaplandığı için Route Tablosuna eklenmedi. R1 üzerinden olan Rotada bir sorun olursa R3 üzerinden olan Rota aktif olur ve Route Tablosuna eklenir (Yedek Rota - Backup Route). Ayrıca R2 2.2.2.2 IP Adresine sahip Loopback Interface'e giden Rotanın Metriğinin de değiştiğine dikkat edin.
OSPF Cost Manuel Yapılandırma Komutu (config-if): ip ospf cost cost-value
Portun OSPF Cost Değerini değiştirmek için bir seçenek daha vardır, bandwidth komutu.
Speed ve Bandwidth
- Bandwidth Varsayılan olarak Port Hızıyla (Speed) Eşleşir. Fakat Portun Bandwidth Değerini Değiştirmek Portun Çalışma Hızını (Speed) Değiştirmez.
- Bandwidth Yalnızca OSPF Cost, EIGRP Metrik, vb. Hesaplamak için Kullanılan bir Değerdir.
- Portun çalışma hızını değiştirmek için Speed komutunu kullanın. Portun fiziksel olarak veri gönderme hızını bu şekilde değiştirirsiniz.
- Bir GigabitEthernet Portunun Bandwidth değerini 100Mbps olarak değiştirirseniz, yine de 1 Gbps Hızında (Speed) çalışacaktır. Ancak OSPF Cost hesaplaması 100 Mbps Bandwidth kullanacaktır.
- OSPF Cost Değerini Değiştirmek için Portun Bandwidth Değerininin Değiştirilmesi Önerilmez.
Interface Bandwidth Yapılandırma Komutu (config-if): bandwidth kilobits-per-second
Dolayısıyla OSPF Cost Değerini değiştirmek için şimdiye kadar üç yol öğrendik, bunları özetleyelim.
- Reference Bandwidth değerini değiştirin.
- Router(config-router)# auto-cost reference-bandwidth megabits-per-second
- Manuel Yapılandırma.
- Router(config-if)# ip ospf cost cost-value
- Portun Bandwidth Değerini değiştirin.
- Router(config-if)# bandwidth kilobits-per-second
OSPF Neighbor
Router'ların Başarılı bir Şekilde OSPF Neighbor olmasını Sağlamak, OSPF Yapılandırmada ve Sorun Gidermede Çok Önemlidir.
Router'lar OSPF Neighbor olduklarında LSA Exchange, Rota Hesaplama gibi işleri otomatik olarak yaparlar. Bu nedenle OSPF'in doğru Portlarda etkinleştirildiğinden ve Router'ın komşuları ile uyumlu olabilmesi için uygun koşulların karşılandığından emin olmalısınız. Router'lar OSPF Neighbor olamazsa OSPF çalışmaz, bu nedenle bu çok önemlidir. Peki Router'lar nasıl OSPF Neighbor olur?
Bir Portta OSPF Etkinleştirildiğinde Router Düzenli Aralıklarla (Hello Timer) Porttan OSPF Hello Mesajları Göndermeye Başlar.
OSPF Hello Mesajları Router'ı Potansiyel OSPF Neighbor'a Tanıtmak için Kullanılır. OSPF Hello Mesajları ile OSPF Neighbor olmaya uyumlu olup olmadıklarını kontrol ederler ve OSPF Neighbor Olmak için Anlaşma Yaparlar.
Varsayılan Hello Timer = 10 Saniye
OSPF Hello Mesajları Multicast 224.0.0.5 IP Adresine Gönderilir.
OSPF Mesajları IP Başlığında Kapsüllenir ve IP Başlığının Protocol alanı OSPF'i belirtmek için 89 Değerine Sahiptir.
Router'lar OSPF Neighbor olabilmek için Çeşitli Durumlardan Geçmesi Gerekir.
Down State
- OSPF'in R2 G0/0 Portunda zaten etkinleştirildiğini varsayalım.
- Ardından R1 G0/0 Portunda OSPF etkinleştiriliyor.
- R1, Multicast 224.0.0.5 Adresine bir OSPF Hello Mesajı gönderir.
- Hello Mesajında iki önemli alan vardır, Local Router ID (R1) ve Neighbor Router ID (R2).
- R1 henüz OSPF Neighbor hakkında bilgi sahibi değil, bu nedenle Neighbor RID = 0.0.0.0
Init State
- R2 Hello Mesajını Aldığında OSPF Neighbor Tablosuna (show ip ospf neighbor komutu) R1 için bir Giriş Ekleyecektir.
- R2 OSPF Neighbor Tablosunda R1 ile olan ilişki şimdi Inıt State.
- R1'in hala R2'yi bilmediğine dikkat edin, bu nedenle R1 OSPF Neighbor Tablosunda R2 için hiçbir giriş olmayacaktır.
- Temel olarak Inıt State, bir Hello Mesajının alındığı, Ancak Kendi Router ID'sinin Hello Mesajında olmadığı Anlamına Gelir. R2'nin Router ID'si 2.2.2.2'dir, ancak R1'in Hello Mesajındaki Router ID 0.0.0.0'dır.
2-Way State
- R2, her iki Router'ın da Router ID'sini içeren bir Hello Mesajı gönderecektir.
- R1, R2'yi 2-Way State olarak OSPF Neighbor Tablosuna Ekleyecektir.
- Ardından R1 bu sefer R2'nin RID'sini içeren başka bir Hello Mesajı gönderecektir.
- R2, R1'den Kendi Router ID'sini aldığında OSPF Neighbor Tablosundaki R1 ile olan ilişkisini 2-Way State olarak Güncelleyecektir. Şimdi İki Router da 2-Way State'dedir. 2-Way State, Router'ın içinde Kendi RID'si olan bir Hello Mesajı Aldığı Anlamına Gelir.
- Her İki Router da 2-Way State'e ulaşırsa OSPF Neighbor olmaları için Tüm Koşulların Sağlandığı Anlamına Gelir. Öte yandan, 2-Way State'e ulaşamazlarsa sorunu gidermeniz ve bu duruma ulaşmalarını neyin engellediğini bulmanız gerekir.
- Bu Noktada Bazı OSPF Ağ Türlerinde DR (Designated Router) ve BDR (Backup Designated Router) seçilecektir. OSPF Ağ Türleri ve DR/BDR Seçimleri hakkında sonradan konuşacağız.
- Router'lar önümüzdeki birkaç durumda LSA Paylaşacaklar ve Full OSPF Adjacency oluşturacaklardır.
Exstart State
Master ve Slave'e Karar Vermek için DBD (Database Description) Paketlerini Değiştirirler. Daha Yüksek RID (Router ID)'ye Sahip Router Master olur ve Bilgi Alışverişini Başlatır. Bu durumda R2 Master, R1 Slave olacaktır.
R1, Master olduğunu iddia eden bir DBD gönderir.
Ancak R2, R1'i düzeltir. R2 daha yüksek Router ID'ye sahip ve Master olacağını söylüyor.
Exchange State
DBD, LSA'lar hakkında ayrıntılı bilgi içermez, sadece komşularına hangi LSA'lara sahip olduklarını söyleyen temel bilgiler içerir. Temel olarak Router'lar birbirlerine 'Bu LSA'lara sahibim' diyor, ancak henüz LSA'ları göndermiyorlar.
Router'lar Komşularından Hangi LSA'ları Almaları Gerektiğini Belirlemek için Aldıkları DBD Paketindeki Bilgileri Kendi LSDB'lerindeki Bilgiler ile Karşılaştırır.
Loading State
Router'lar Komşularının Kendilerine Sahip olmadıkları LSA'ları Göndermelerini İstemek için Link State Request (LSR) Mesajları Gönderir. Exchange State'de DBD Paketlerini Değiş Tokuş Ettiler, Böylece Komşularının Hangi LSA'ları Tuttuğunu Biliyorlar.
LSR, Her Router'ın Aynı LSA'lara (Aynı LSDB) Sahip olduğundan Emin olmak ve Eksik LSA'ları İstemek için Kullanılır.
LSR değişiminin sadece bir tarafını göstereceğim.
LSA'ların Kendileri Link State Update (LSU) Mesajlarında Gönderilir.
R2 İstenen LSA'ları R1'e LSU Mesajıyla Gönderir.
Loading State Tamamlandı ve Router'lar Aynı LSDB'ye Sahip.
Full State
Full State'de Router'lar, Full OSPF Adjacency olurlar ve Aynı LSDB'ye Sahiptirler. OSPF Komşuluğunu korumak için varsayılan olarak 10 saniyede bir Hello Mesajları göndermeye ve dinlemeye devam ederler.
Her Hello Mesajı Alındığında Dead Timer Resetlenir.
Varsayılan Dead Timer = 40 Saniye
Dead Timer 0'a Kadar Geri Sayarsa ve Hello Mesajı Alınamazsa OSPF Komşuluğu Kaldırılır.
Her Router Tutarlı bir LSDB'ye sahip olduğundan emin olmak için LSA'ları Ağ / Ağlar Değiştikçe veya Yeni Ağ / Ağlar Eklendikçe paylaşmaya devam eder. Bu Dinamik Yönlendirme Protokollerinin ana avantajıdır, Router'lar ağdaki değişikliklere otomatik olarak tepki verir ve gerektiğinde Rotaları ekler, kaldırır veya değiştirir.
OSPF Neighbor Özet
Öncelikle R1 ile R2 arasındaki bağlantı aktif hale geliyor, daha sonra OSPF Portlarda aktif hale geliyor ve bu da süreci başlatıyor.
Down State: R1 ve R2 henüz birbirlerini tanımıyorlar, ancak Portlarından Hello Mesajları gönderecekler. İlk Hello Mesajını R1'in gönderdiğini varsayalım.
Inıt State: R2'nin R1'den ilk Hello Mesajını aldığı, ancak R2'nin kendi Router ID'sini henüz mesaj içinde almadığı durumdur.
2-Way State; Router'lar daha fazla Hello Mesajı alışverişinde bulunur. R1'in Router ID'si, R2'nin Hello Mesajına dahil edilir ve R2'nin Router ID'si, R1'in Hello Mesajına dahil edilir. Bu aşamada bazı OSPF Ağ Türlerinde Designated Router (DR) ve Backup Designated Router (BDR) seçimleri yapılır.
Exstart State: Router'lar hangisinin Master, hangisinin Slave olacağını belirlemek için DBD paketlerini değiştirir. Master bir sonraki durumda (Exchange State), DBD değişimini başlatan Router'dır.
Exchange State: Router'lar birbirlerine LSDB'lerinin içeriği hakkında bilgi vermek için DBD paketlerini değiştirirler.
Loading State; Router'lar birbirlerinden LSA'ları istemek için LSR (Link State Request) kullanırlar. LSA'lar, LSU (Link State Update) paketleri ile gönderilir. Son olarak LSAck paketleri, Router'ın talep ettiği LSA'ları aldıklarını onaylamak için gönderilir.
Full State: Router'lar Full OSPF Adjacency olurlar.
OSPF Part 1 Yazısında OSPF'in üç ana adımı olduğunu söylemiştik.
OSPF Mesajları
R1 Router üzerinde show komutlarını inceleyelim.
show ip ospf neighbor
Varsayılan Hello Timer ve Dead Timer bilgilerini burada görebilirsiniz.
Hello due in 00:00:07 -> Hello Timer 10,9,8,7 -> Şuan 7'de.
Neighbor count is 1, Adjacent Neighbor count is 1 -> R1 G0/0 Portunda sadece 1 komşu var.
Bir sonraki yazıda Neighbor ile Adjacent Neighbor farkını göreceğiz.
Adjacent with neighbor 2.2.2.2 (Designated Router) -> R2
OSPF Ekstra Yapılandırma
OSPF'i Network Komutunu Kullanmadan Doğrudan bir Portta Etkinleştirebilirsiniz.
Örneğin R1'in henüz üzerinde OSPF Yapılandırması olmadığını varsayalım.
OSPF'i Doğrudan Portta Etkinleştirme Komutu (config-if): ip ospf process-id area area-id
show ip protocols komutunda Routing for Networks bölümü boştur (network komutu kullanmadık) ve bunun yerine OSPF'i etkinleştirdiğiniz Portlar burada görüntülenir (Routing on Interfaces). Çıktının geri kalanı aynıdır.
passive-interface default Komutu ile Tüm Router Portlarını OSPF Passive Interface olacak şekilde TYpılandırabilirsiniz.
Ardından Yalnızca Belirli Portları Kaldırmak için no passive-interface Komutu Kullanılabilir.
Özet
Quizs
- Down, Init, 2-Way, Exstart, Exchange, Loading, Full
- c
- a
- c
- b
LAB Çözümü
1. ve 2. Soruyu Yapılandırdım.
3.
R1(config)#int range g0/0, f1/0, lo1
R1(config-range-if)#ip ospf 1 area 0
R1(config)#router ospf 1
R1(config-router)#passive-interface lo1
R2
R1(config)#int range g0/0, f1/0, lo2
R1(config-range-if)#ip ospf 1 area 0
R2(config)#router ospf 1
R3
R3(config)#int range f1/0, f2/0, lo3
R3(config-range-if)#ip ospf 1 area 0
R3(config)#router ospf 1
R4
R4(config)#int range f1/0, f2/0, g0/0, lo4
R4(config-range-if)#ip ospf 1 area 0
R4(config)#router ospf 1
R4(config-router)#no passive-interface f2/0
R4(config-router)#no passive-interface f1/0
R1 - show ip route, show ip protocols ve show ip ospf neighbor
4.
R1(config)#router ospf 1
R1(config-router)#auto-cost reference-bandwidth 10000
R2
R2(config)#Router ospf 1
R2(config-router)#auto-cost reference-bandwidth 10000
R3
R3(config)#router ospf 1
R3(config-router)#auto-cost reference-bandwidth 10000
R4
R4(config)#router ospf 1
R4(config-router)#auto-cost reference-bandwidth 10000
R1'in 192.168.4.0/24 Ağına Ulaşma Cost'u: R1 G0/0: 10, R2 F1/0: 100, R4 G0/0: 10 = 120 (Toplam Cost)
R3'ün 2.2.2.2/32'ye Ulaşma Cost'u: R3 F1/0: 100, R1 G0/0: 10, R2 Lo2: 1 = 111 (Toplam Cost)
5. ve 6. Sorular
R1(config)#ip route 0.0.0.0 0.0.0.0 203.0.113.2
R1(config)#router ospf 1
R1(config-router)#default-information originate
R4 - show ip route
R4'ün İnternete Çıkması için R1'e ulaşması gerekiyor. R2'ye bir Varsayılan Rota oluşturdu.
E2, OSPF External Anlamına Gelir ve Cost'u 1'dir. Bu Durumda R4'ün hem R2'ye hem de R3'e olan bir E2 Rotası olması gerekiyor, Fakat Packet Tracerda sadece R2'ye olan Rota var. Gerçek Cisco Cihazlarında (GNS3) Rota Tablosunda Bu İki Rota da gözükecektir.
R2, R3 - show ip route
R2 ve R3, R1'e Doğru bir Varsayılan Rota oluşturdu, Cost = 1 (E2).
7.
R1'den R2'ye Gönderilen OSPF Hello Paketi İçeriği:
TTL: 1
Protocol: 0x59 (Decimal = 89) -> OSPF
Dst. IP: 224.0.0.5 (OSPF Hello Multicast Adresi)
OSPF Hello Mesajı:
- Version Num: 2 (OSPFv2)
- Type: 1 (Hello packet)
- Type: 2 (DBD Packet)
- Router ID: 1.1.1.1
- Area ID: 0.0.0.0
- Network Mask: 255.255.255.252
- Hello Interval: 10
- Router Dead Interval: 40
- DESIGNATED ROUTER: 10.0.12.1
- BACKUP DESIGNATED ROUTER: 10.0.12.2
- NEIGHBOR: 2.2.2.2
Okuduğunuz için teşekkürler.
Yorum Gönder
Yorum Gönder