OSPF (Open Shortest Path First) Protokolü

OSPF (Open Shortest Path First) Protokolü

Dinamik yönlendirme protokollerinden biri olan OSPF (Open Shortest Path First – İlk Açık Yöne Öncelik),  Link-State (Bağlantı Durumu) protokolüne göre çalışır. Tüm ağın topolojisi çıkartılarak en kısa yoldan nasıl ulaşılacağını hesaplar ve buna göre rota oluşturur.

En kısa yol seçilirken coast (maliyet) hesabı yapılır. Referans Bant Genişliği değerinin (100 Mbps) Interface Bant Genişliği değerine bölünmesi ile maliyet bulunur. Interface bant genişliği 10 Gbps, 1 Gbps ve 100 Mbps ise coast değeri 1’dir. 10 Mbps’lik ethernet portu için coast değeri 100Mbps/10Mbps = 10 olacaktır. 1,5 Mbps hızına sahip bir Serial interfacede ise coast 100Mpbs/1,5Mbps = 64 olacaktır. Bu maliyetlere göre en kısa yol rota olarak belirlenir.

OSPF’te tüm topoloji çıkartılır ve çıkarılan bu topoloji  DR(Designated Router) ve BDR (Backup Designated Router) olarak seçilen routerlarda tutulur. Tüm güncellemeleri DR olarak seçilen router yönetirken, DR routerda bir problem olması durumunda yönetimi BDR alır. Routerlar arasında DR-BDR seçimi ise şu şekilde yapılır: en yüksek Router-ID’ye sahip olan ya da en yüksek IP adresine sahip olan router DR seçilir, bir sonraki yüksek IP ya da router-ID’ye sahip olan routerda BDR seçilir.

OSPF’te AREA (alan) mantığı vardır. Büyük topolojilerde büyük kolaylık sağlamaktadır.  Backbone (omurga) diyebileceğimiz ana area,  AREA 0’dır. Diğer tüm AREA’ların 0’a bir şekilde bağlantısı olması gerekmektedir.

OSPF’te network tanımlarken SUBNET Mask değil, Wildcard Mask kullanılır. (255.255.255.255’ten Subnet değerini çıkarttığımızda Wildcard Mask değerini bulmuş oluruz. Örneğin, Subnet 255.255.255.0 ise, 255.255.255.255 – 255.255.255.0 = 0.0.0.255. Bulduğumuz 0.0.0.255 değeri bizim için Wildcard mask adresi oluyor.)

OSPF Single Area

Basit bir örnek üzerinden yapılandırmayı yapalım. Böylece daha anlaşılır olacaktır.

Örneğimde; R1-R2 arası için 1.1.1.0 networkünü, R1-R3 arası için 2.2.2.o networkünü, R1-R4 arası için 3.3.3.o networkünü, R2-R3 arası için 4.4.4.o networkünü, R3-R4 arası için 5.5.5.o networkü, PC1 için 192.168.10.0 networkünü, , PC2 için 192.168.20.0 networkünü, , PC3 için 192.168.30.0 networkünü ve , PC4 için 192.168.40.0 networkünü kullandım.

Temize çekmek gerekirse yapılandırmam şu şekilde oldu:

Router 1 için yapılandırma:

R1-PC1 yönü: GigabitEthernet 0/0/0 : 192.168.10.1/24
R1-R2 yönü : Serial  0/1/0 : 1.1.1.1/24
R1-R3 yönü : Serial  0/1/1 : 2.2.2.1/24
R1-R4 yönü : Serial  0/2/0 : 3.3.3.1/24

Router 2 için yapılandırma:

R2-PC2 yönü: GigabitEthernet 0/0/0 : 192.168.20.1/24
R2-R1 yönü : Serial  0/1/0 : 1.1.1.2/24
R2-R3 yönü : Serial  0/1/1 : 4.4.4.1 /24

Router 3 için yapılandırma:

R3-PC3 yönü: GigabitEthernet 0/0/0 : 192.168.30.1/24
R3-R1 yönü : Serial 0/1/1 : 2.2.2.2/24
R3-R2 yönü : Serial  0/1/0 : 4.4.4.2/24
R3-R4 yönü : Serial  0/2/1 : 5.5.5.1 /24

Router 4 için yapılandırma:

R4-PC4 yönü: GigabitEthernet 0/0/0 : 192.168.40.1/24
R4-R1 yönü : Serial 0/2/0 : 3.3.3.2/24
R4-R3 yönü : Serial 0/2/1 : 5.5.5.2/24

PCler için:

PC1 : 192.168.10.2/24  Gateway :192.168.10.1
PC2 : 192.168.20.2/24  Gateway :192.168.20.1
PC3 : 192.168.30.2/24  Gateway :192.168.30.1
PC4 : 192.168.40.2/24  Gateway :192.168.40.1

Bendeki bağlantılara göre böyle bir yapılandırma oluştu. Tek tek router IP verme ve port açma yapılandırmasını bu yazıya eklemeyeceğim. Zaten nasıl yapıldığını biliyoruz. Fakat hatırlatmak için bir tanesi ekleyeceğim.

Router 1

Router1(config)#interface gigabitEthernet 0/0/0
Router1(config-if)#ip address 192.168.10.1 255.255.255.0
Router1(config-if)#no shutdown

Tüm PC ve router yapılandırmalarını yaptıktan sonra gelelim OSPF yapılandırmasına;

Config modda iken router ospf yazıp ardından bir otonom numarası veriyoruz.

Router1(config)#router ospf 1

Ardından router için bir ID vereceğiz. Bu ID, IP şeklinde giriliyor. Genelde router numarasına göre ID verilir ki, config okunurken daha rahat bir şekilde anlaşılsın. (Router ID girmek zorunlu değil. Ayrıca burada IP şeklinde verilen ID’nin hiçbir şekilde normal IP ile alakası ve etkisi yoktur.)

Router1(config-router)#router-id 1.1.1.1

Ardından routerın bildiği netwokleri yazıyoruz. Yalnız burada şu fark var; network ID’sinden sonra Subnet değil Wildcard mask yazıyoruz. Wildcard masktan sonra da area yazıyoruz. Bu arada OSPF’te area’lar 0’dan başlar ve en az 1 tane area 0 bulunması gerekir. Biz hepsini area 0 yapacağız.

Router1(config-router)#network 192.168.10.0 0.0.0.255 area 0
Router1(config-router)#network 1.1.1.0 0.0.0.255 area 0
Router1(config-router)#network 2.2.2.0 0.0.0.255 area 0
Router1(config-router)#network 3.3.3.0 0.0.0.255 area 0

İşlem bu kadar basit. Tüm routerlarda OSPF aktif ettikten sonra networkleri tanımlıyoruz. Routerlar kendi aralarında network bilgilerini paylaşarak metrik değerlerine göre route tabloları oluşturacak ve ağımız hazır olacak.

Router2(config)#router ospf 1
Router2(config-router)#router-id 2.2.2.2
Router2(config-router)#network 1.1.1.0 0.0.0.255 area 0
Router2(config-router)#network 4.4.4.0 0.0.0.255 area 0
Router2(config-router)#network 192.168.20.0 0.0.0.255 area 0

Router3(config)#router ospf 1
Router3(config-router)#router-id 3.3.3.3
Router3(config-router)#network 2.2.2.0 0.0.0.255 area 0
Router3(config-router)#network 4.4.4.0 0.0.0.255 area 0
Router3(config-router)#network 5.5.5.0 0.0.0.255 area 0
Router3(config-router)#network 192.168.30.0 0.0.0.255 area 0

Router4(config)#router ospf 1
Router4(config-router)#router-id 4.4.4.4
Router4(config-router)#network 3.3.3.0 0.0.0.255 area 0
Router4(config-router)#network 5.5.5.0 0.0.0.255 area 0
Router4(config-router)#network 192.168.40.0 0.0.0.255 area 0

Konfigürasyon yaparken komşuluklar kuruldukça CLI ekranına bildirimler gelecektir. Şu an tüm konfigürasyon tamam. Route tablomuza show ip route komutu ile bakalım.

show ip route

Router1’deki route tablomuza baktığımızda 192.168.10.0, 1.1.1.0, 2.2.2.0 ve 3.3.30 networklerinin lokal networkler olduğunu; 4.4.4.0, 5.5.5.0, 192.168.20.0, 192.168.30 ve 192.168.40.0 networklerinin OSPF ile öğrenildiğini görüyoruz. PC’ler arası ping attığımızda hiçbir problemin olmadığını göreceğiz.

Multi Area OSPF

Bir önceki örneğimiz tek alan yani single area idi. OSPF’nin büyük ölçekli ağlarda çok sık kullanılmasının sebebinin ise area yapılandırmasının olmasından ve area yapılandırmasının büyük topolojilerde büyük kolaylıklar getridiğinden bahsetmiştik. Şimdi ise bir önceki örneği multi area yapalım ve bakalım nasıl yapılandırma yapılıyor.

multi area ospf

Önceki örneğimizde her alan AREA 0’da idi. Şimdi ise routerların birbirlerine bakan kısımları AREA 0, diğer kısımları ise AREA 1,2,3,4 şeklinde yaptık. Bu durumda nasıl bir konfigürasyon yapacağız peki? Diğer örnekteki gibi yapılandırma yapacağız ama bir tek fark olacak: artık routerların gigabitEthernet 0/0/0 kısımlarındaki network tanımlamalarında AREA 0 değil 1,2,3,4 olacak. Yani şöyle olacak:

Router1(config-router)#network 192.168.10.0 0.0.0.255 area 1
Router2(config-router)#network 192.168.10.0 0.0.0.255 area 2
Router3(config-router)#network 192.168.10.0 0.0.0.255 area 3
Router4(config-router)#network 192.168.10.0 0.0.0.255 area 4

Görüldüğü gibi gayet basit 🙂

Son olarak kullanabileceğimiz bazı show  komutlarına bakalım.

show ip protocols komutu ile routerda aktif olan protokollere bakabiliriz. Çıktıya baktığımızda ospf 1’in olduğunu ve metrik değerlerini görebiliyoruz.

show ip protocols

show ip ospf neighbor komutu ile kurulan komşuluklara bakabiliriz.

show ip ospf neighbor

show ip ospf database komutu ile kurulan komşuluklara ve ne kadar süredir komşuluk olduğuna bakabiliriz.

show ip ospf database

show ip route ospf komutu ile sadece OSPF protokolü ile oluşturulan route tablolarına bakabiliriz.

show ip route ospf

2 thoughts on “OSPF (Open Shortest Path First) Protokolü

  • halil

    Güzel içerik teşekkürler salih takipteyim..

    Reply
    • salih

      Sağ ol halil.

      Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir