OSPF
Nedir?
- Bir internal gateway protokolüdür.
- Bir Link-state teknolojisidir. Buradaki link’i bir router üzerinde interface, ip adresi, network tipi, olarak ve bu interface’in karşı uçundaki komşuluğu, bağlı olan komşuluk olarak tanımlayabiliriz. Bu şekilde tüm routerlar ve link’leri hakkındaki bilgilerden link-state database oluşturulur.
Shortest path first algoritması, SPF, için Dijkstra algoritmasını kullanır. Basitçe;
- OSPF işlemi başlar başlamaz, cihaz kendi OSPF link-state verilerini hazırlar ve komşuluklarına gönderir.
- Link-State verilerinin network’e yayılarak, her bir OSPF router tarafından alınacak şekilde iletilir (flood). Link state bilgisi alan router veriyi kaydeder ve diğer komşuluklarına iletir.
- Tüm link-state verisinin alınmasından sonra her bir router SPF çalıştırır ve routing tablosunu oluştutur.
- Network’de bir değişiklik olmadığı sürece SPF çalıştırılmaz.
OSPF Paket Type : OSPF işleyişi ve paket tipleri hakkında bilgi
Önemli Noktalar :
Default Route : How Does OSPF Generate Default Routes?
Normal alanlara default information originate ile type-5. Komutun tippine göre default route’un routing tablosuna olup olmaması önem taşır.
stub/totaly stub alanlara type-3 defualt route anonsu yapar.
nssa/totaly nssa : area <area id> nssa no-summary ise type-3 default otomatik olarak aons edilir. area <area id> nssa default-information originate ile type-7 anons edilir.
LSA filtreleme :
LSA’leri bir alan içerisinde filterelenmesi mümkün değildir. Yapılabilecekler distribute-list ile route’un routing tablosuna eklenmesine engel olunur. Bunun dışında area x filter ve prefix-list kullanımı ile x areasına giren type-3’ler ABR’da filtrelenenbilir.
Type-5/Type-7 Forward adress :
Detaylı bilgi için LSA tiplerine bakın.
Alanlar ve Network tipleri
Genel olarak OSPF ile tüm cihazlar network hakkında aynı bilgiye sahip olmalıdır. Buda network büyüdükçe cihazlar üzerinde daha fazla kaynak kullanımı anlamına gelir. Aynı zamanda link-state verilerinin daha fazla dolaşması demektir. Bundan dolayı network alt alanlara ayrılır. Dolayısı ile link-state yayılımı sınırlandırılmış olur. Bu şekilde gereksiz yere SPF çalışmasıda engellenir.
Alanların ortasında kalan router tipine ise Area Border Router, ABR denir. OSPF’i diğer external network’e bağlayan cihazlara ise Autonomous System Border Router denir. Genelde redistribution yapılan veya network anonsu geçilen routerlardır.
OSPF için bir adet super area, backbone area veya area 0 terimi kullanılır. Adından anlaşılacağı üzere tüm alanların bağlı oldukları ana alan, kök alan’dır. Ağaç yapısındna örnek verir isek, backbone area ağacın ana dalı, kökü diğer alanlar ise buna bağlı dallardır. Her alt alan bir şekilde backbone alanına bağlanmalıdır ( en azından tunnel, vb ile).
Backbone alanı dışındaki alanlarda farklı tiplere alınabilir.
- Stub : Network’de çok fazla extarnal route olması durumunda alt-alanlarda diğer alanlardan gelen external route’ların filtrelmesi istenebilir. Zira bu alanlarında tek çıkış noktası backbone alanıdır. Bu durumda ABR tarafından o alana diğer alanlar hakkında bilgi ve type-3 default route gönderilir.
- Totaly Stub : Bu durumda ABR tarafından o alana sadece type-3 default route gönderilir. Diğer alanlardan gelen bilgiler filtrelenir, diğer alanlar da bulunan routerlar veya linkler hakkında bilgi gönderilmez.
- NSSA/Totaly NSSA : Stub alan tiplerinde ASBR bulunmasına izin verilmez. Stub alan içerisinde external route anonsu yapılacak ise network NSSA olarak değiştirilmelidir.
Backbone alan’nı dışındaki alanlarda stub/nssa şeklinde farklılık gösterir. Komşulukların oluşması için alan tiplerini aynı olması gerekir.
LSA tipleri :
LSA daha önce bahsettiğimiz gibi router’ın üzerindeki OSPF linkleri hakkındaki bilgileri içeren OSPF paketleridir. Komşuluklar aracılığı ile tüm networklere iletilir. Nelerdir bunlar;
Type 1 – Router LSA
- Router’ın söz konusu alan içerisinde yer alan linkleri hakkındaki bilgiyi içerir.
- Tüm link bilgileri tek bir LSA ile gönderilir.
- Gönderen router’ın ABR, ASBR ve bir virtual-link ucumu olduğunu yani tipi hakkında bilgi gönderir.
- Sadece bulunduğu alana gönderilir. Eğer bir ABR ise, her alan için ayrı ayrı LSA gönderilir. Diyelimki area 0 iki linki ve area 2 bir linki olsun. Area 0, area 0’da bulunan 2 link bilgisiniz area 2 için ise area 2 bulunan bir adet link hakkında LSA gönderir.
V-E-B bitlerinin anlamı : V -> bir virtual link ucu olup olmadığı, E-> external ASBR, B -> ABR
Router LSA alt tipleri vardır. Link-ID ve Link Data’nın anlamı LSA tipine göre değişir.
Özetle Router LSA, Router tipi hakkında bilgi verir. Ayrıca bulunduğu her alan için o alandaki link’leri hakkında bilgi içeririr ve sadece o alana gönderilir. Router nasıl bir linke’e bağlı olabilir. P2P olabilir veya birden fazla router’ın bağlı olduğu bir transit network olabilir. Tam tersine sadece kendinin bağlı olduğu bir network olabilir. Veya bir virtual-link olabilir. Bu link tipine göre taşıdığı veri’de farklılık gösterir. Bir transit link ise link-id DR gösterir data ise router’ın o network’de bulunan interface ip’sini.
Type 2 – Network LSA
Network LSA, Transit veya NBMA networkler için söz konusu network’e hangi routerların bağlı olduğunu bildirmek için kullanılır.
DR tarafından sadece söz konusu olan alan’a için gönderilir.
Tahmin edileceği gibi içerdiği bilgi, transit network adresi ve mask’ı, link-id olarak DR’ın ip adresi adresi, advertising router bilgisin de ise DR id’si ve link-data’da bağlı olan router’ların id’si yer alır.
Type 3 – Network Summary LSA
İsmi ne kadar summary olsa ise de genel olarak bilinen summarization ile ilgili değildir. OSPF’de farklı alanların kullanılması ile birlikte ortaya çıkar. Type-1 ve type-2 router üzerindeki link’ler ve bağlı olduğu networkler hakkında bilgi verir. Fakat sadece o alan içerisinde kalırlar. ABR’lar bir alanki bilgiyi diğer alana iletir. Bunu’da type-3 LSA kullanarak yapar. Type-3 LSA, type-1 ve type-2 lsa bilgilerini type-3 şeklide diğer alanlara iletir. ABR aynı zamanda bir alandan aldığı type-3 lsa’i de diğer alanlara flood eder.
Link-state ID anons edilen anons edilen network adresini gösterir. Advertising router ise tabi ki bu anonsu type-3’e çeviren ABR’ın ID’sidir. link-data ise network mask yer alır.
Önemli bir type-3 lsa ise ABR’ın yarattığı default-route’dur. Bunun için söz konusu alan stub veya totaly-stub (area x stub no-summary) olarak seçilir. Bu durumda ABR sadece o alan için link-id’si 0.0.0.0 olan type-3 default route gönderir. Eğer alan totaly-stub ise diğer alanlara ait olan type-3’leri de göndermez.
Ayrıca ABR üzerinde type-3 çevrilerek anons edilecek type-1 ve type-2’leri summary etmek mümkündür. Bu şekilde diğer alanlara gönderilen lsa sayızı azaltılabilir. area x range …ile x alanından gelen type-1 ve type-2 leri summary et ve diğer alanlara gönder.
routing tabosunda O IA olarak görülürler.
Type 4 – ASBR Summary LSA
Bir OSPF router ASBR olması durumunda, redistribition v.b methodlar ile route anons etmesi durumunda, kendinin bir ASBR olduğunu belirtir. Bu durumda o alan’daki ABR, ASBR yerini diğer alanlara type-4 lsa ile bildirir. Buradaki link-id ASBR ID’si iken Advertising Router ise type-4 ileten router’dır.
area-1 <R1|R2>area 0 <R3> area 2
Eğer Area 2 içerisinde bir ASBR var ise: area 2 içerinde type-4 olmaz. R3 area 0, Advertising Router kendi olacak şekilede anons geçer. R1 ve R2 ise area 1 type-4 gönderirken Advertising Router kendileri olacak şekilde type-4 değiştirirler. Metrikleri güncelliyerek.
Type 5 – External LSA
OSPF dışındaki route’ları yaymak için kullanılır. Yayma işlemi bir redistribution sonucu olur. ASBR tarafından oluşturulur.
Link-state id anons edilen network’dür. Mask link-data içerisinde yer alır. Advertising router ise ASBR’ın kendisidir. Burada önemli bir kısım Forward-Adress alanıdır. Bu söz konusu network’e nasıl erişileceğini yani next-hop’unu belirtir. Var sayılan adres 0.0.0.0 ise ASBR gönder demektir. Burada dikkat edilmesi gereken redistribtion v.b ospf route anosu geçilir iken next-hop yanlışlık ile OSPF altına alınmamasıdır.
When the metric of the redistributed route from multiple ASBRs are equal as illustrated in the document, the forwarding address changes the behavior of the type 5 LSA path selection. When a router receives two type 5 LSAs to the same destination with the forwarding addresses set on both LSAs, the router makes a comparison based on the metric to the forwarding addresses. The LSA with a forwarding address that offers the smaller metric is placed into the routing table.
If the metric of the redistributed routes are different, the routers prefer the route with the lowest metric and not the lowest metric to the forwarding address.
The Effects of the Forwarding Address on Type 5 LSA Path Selection
İki tip type-5 vardır. E1 ve E2. E1 söz konusu network’e olan toplam cost iken E2 ise sadece anons edilen cost’tur. Var sayılan E2’dir.
Routing tablosun O E2 veya O E1 olarak görülürler.
summary-address ip-address mask [not-advertise] [tag tag] komutu ile external route’lar summary edilebilir.
Type 7 – NSSA External LSA
Genel olarak type-5 ile aynıdır. ASBR’lar stub area’lar içerisinde yer alamaz. Bunun için NSSA alanı tipi tanımlanarak, ASBR yer alması sağlanır. Bu durumda söz konusu alan içerisinde type-7 olarak external route dolaşır ve ABR tarafından diğer alanlara type-5 olarak gönderilir.
Forwarding Adress kısmı ise type-5 farlılık gösterir. Next-hop OSPF internal ise o kullanılır (type-5 deli gibi) fakat değil ise next-hop ASBR router-id olur. Bu şekilde stub benzeri bir alan içerisinde redistribitution yapılabilir.
ASBR aynı zamanda ABR ise bu durumda type-7/type-5 çevirmesini yapmasını istemiyebilirsiniz.
Ayrıca bir NSSA alanın’da birden fazla ABR var ise, router-id’si en yüksek olan ABR type-7->type-5 çevirmesini yapar.
- Bit P—This bit is used in order to tell the NSSA ABR whether to translate type 7 into type 5.
- No Type 7/5 translation means bit P = 0.
- Type 7/5 translation means bit P = 1.
- If bit P = 0, then the NSSA ABR must not translate this LSA into Type 5. This happens when NSSA ASBR is also an NSSA ABR.
- If bit P = 1, then the NSSA ABR must translate this type 7 LSA into a type 5 LSA. If there are multiple NSSA ABRs, the one with highest router ID.
Routing tablosun O N1 veya O N2 olarak görülürler.
OSPF Path Selection
İlk olarak lsa type bakar daha sonra metriğe bakar. Kabaca Intra>Inter Type-5>Type-7 E1>E2(default)
- Intra-Area (O)
- Inter-Area (O IA)
- External Type 1 (E1)
- NSSA Type 1 (N1)
- External Type 2 (E2)
- NSSA Type 2 (N2)
OSPF Deufalt Route
https://www.cisco.com/c/en/us/support/docs/ip/open-shortest-path-first-ospf/7039-1.html
https://networklessons.com/ospf/ospf-path-selection-explained/
OSPF Hızlı Yakınsama ve Kararlılık
Etkiliyen Unsurlar :
1 – Tek bir router’ın komşuluk sayısı : 60-70 arası önerilen.
2 – Bir area’daki router sayısı. 50’den fazla önerilmiyor.
3 – Bir ABR/ASBR üzerindeki alan sayısı. 3’den fazla önerilmiyor.
4 – DR/BDR seçimi. CPU kullanımı az olan seçilmeli.
OSPF’de hızlı yakınsama :
1 – Sorun tespiti
2 – Sorunun bildirimi
3 – Hata noktası çevresinden, yeni topology’nin tespiti
4 – RIB tablosunun güncellenmesi
5 – FIB tablosunun güncellenmesi
• Detect event has occurred
• Propagate the event
• Process the event
• Update forwarding plane
I_FCT = FD + LSA_GRF + (QSP) + SPTC + RU + DD B_FCT= I_FCT + CRR
I_FCT – IGP Fast Convergence Time
FD – Failure Detection
LSA_GRF – LSA Generation, Reception and Flooding
QSP – Queuing, Serialization & Propagation (can be neglected) SPTC – SPT Computation
RU – RIB Update
DD – Distribution Delay
B_FCT – BGP Fast Convergence
CRR – CEF Recursive Resolution for BGP Prefixes
1-4-5. adımlar genelde tüm routing protocollerinde benzerdir ve yakınsama aslında en fazla bu adımlardan etkilenir. Özellikle 1-2 adımlar süre olarak en fazla etkiliyen adımlardır. Burada IGP timerlerı (Hello,dead-time vb) gibi poll based event detection yaklaşımını beklemek zman kaybı olabilir. Bunun yerine olay bazlı (carrier loss, BFD failure, UDLD vb) bir yaklaşımı tercih etmek daha hızlı olabilir. Günümüzde linklerin büyük bir çoğunluğu ethernet tabanlı servislere dayanmakta, dolayısı ile buralarda hata algılama IGP timerlarına bırakılır ise oldukça fazla zaman kaybedilebilir. Buradaki yaklaşım elverdiğince BFD kullanmak olmalıdır. IGP bazında yakınsamayı en aza indirmek için 2 ve 3 adımları iyileştirmek gerekir.
“The detection of network failures consumes most of the convergence time budget in typical designs”
“Event driven detection of link or neighbor failures is almost always going to be faster than polled detection of these failures.
For instance, detecting the loss of carrier on a point-to-point Ethernet link is always faster than detecting the loss of three “hello” or “status” packets no matter how fast those hello packets are transmitted, received, and processed.”
Russ White, Mosaddaq Turabi CCDE Quick Reference
Yakınsama zamanı, hatının yayılımı (LSA timers), SPF zamanlarına ve SPF hesaplama sürelerine bağlıdır. Eğer birden fazla alan/area/domain içeren bir yayılım söz konusudur ve link state protcollerinin alanlar arası yakınsaması link vektor tip protocolere benzer (area/lsa summerization’dan dolayı).
Ayrıca tüm ağ bazında yakınsama, kullanılan tüm kontrol protokolleri için yakınsama süresini içerir. Dolayısı ile kullanılan diğer kontrol protokollerinin yakınsamasıda unutulmamalıdır (BGP, MPLS, LDP vb.). LDP IGP sync, BGP PIC Edge konularınada bakılması önerilir.
Yapılabilecekler :
Genel olarak OSPF/IS-IS içerisinde çok fazla prefix kullanılmamlıdır. Özellikle müşteri routeları, edge networkler, çok fazla up/down olduğu için OSPF/IS-IS gibi link-state protokolleri ile taşınması uygun değildir. Bunun yerine IBGP bu amaç için kullanılabilir. OSPF/IS-IS ise IBGP next-hop bilgilerini taşımak için kullanılır. Unified MPLS/Seamless MPLS.
Bunun ötesinde IGP için komşuluk kurma, hatayı hızlı algılama, bir döngüye yol açmıyacak şekilde hata dışında yeni bir yol hesaplama gibi işlemlerin hızlıca yapılması gerekir.
carrier delays : carrier-delay komutu ile ayarlanabilinir. Interface’in fiziksel seviyede down olarak bildirilmesi için geçen süre.
carrier-delay down msec 0
carrier-delay down up 10
ip event damping : BGP damping’e benziyen işlem.
Hello/dead timers (fast hellos) : Komşuluk için hızlı hello değiş tokuşu, yakınsama işlemini hızlandırır. Bir çok vendorun fast hello uygulaması mevcuttur. Fakat yine’de OSPF dead interval 1sn’den az olamaz. Dolayısı ile BFD bu konuda yardımcı olur.
Bidirectional Forwarding Detection(BFD) : Indirect link bağlantılarında P2P ve MP BFD kullanımı.
LSA packet pacing : Süresi dolan ve yeniden yollanması gereken, retransmit edilmesi gereken (ACK almamış) ve flood edilmesi gereken LSA’larin guruplanarak gönderilmesi. Büyük networklerde ayarlanması gerekebilir.
show ip ospf | inc transmission|pacing
LSA group pacing timer 240 secs
Interface flood pacing timer 33 msecs
Retransmission pacing timer 66 msecs
Exponential throttle timers for LSA :
İnterface down/flap benzer bir konudur. Alınan bir hatanın ne kadar zaman sonra raporlanacağı şeklinde düşünülebilir. Çok hızlı up/down olan bir interface kararlı olana kadar raporlamak istemiyebilirsiniz, bir kere down raporunu geçip kararlı bir şekilde up olana kadar beklersiniz. Burada sorun ne kadar zaman hata bildirimini tutup, ne zaman bildireceğimizdir. Cisco bu konuda exponential back-off timer denilen bir yöntem kullanmaktadır. Bu yöntemde 3 adet farklı zaman kullanılır.
start interval : Hatanın ne kadar zaman sonra bildirileceği .
increment : ikinci, üçüncü, ve sonraki hata bildiriminin ne kadar zaman sonra yapılacağını göstere çarpan.
max_wait : Bir hata bildirimi için en fazla ne kadar beklenebileceği.
Show ip ospf ile bakıldığında;
“Initial SPF schedule delay…,” “Minimum hold time between two consecutive SPFs…,” ve “Maximum wait time between two consecutive SPFs….” görülen değerler throttle timer’larını gösterir.
LSA arrival interval (reception delay) : İlk alınan LSA dışında, gelen aynı LSA’larin kabulu için (dikkat LSA gönderen router’da değil, kabul eden de) geçmesi gereken süreyi belirtir. Eğer LSA throttle timer’ları değiştirilmiş ise bu değerinde hesaplanması gerekir. Zira eğer LSA hold time’den daha düşük bir değer verilir ise, LSA drop edilebilir.
LSA processing delay : LSA’in flood listesine konması için gecikme süresi. Hızlı yakınsama için SPF processin çalışmasından önce LSA’ler flood edilmelidir. Cisco’da OSPF için SPF çalışmadan önce LSA flood edilmesini sağlıyacak bir mekanızma yok. Fakat LSA flood pacing timer kullanılabilir. timers pacing flood bu işlem için kullanılır (varsayılan değeri 55msec).
http://www.cisco.com/en/US/docs/ios/12_2s/feature/guide/fs_spftrl.html
Exponential throttle timers SPF : Ağ’ın hata sonrası yeni yapıya hızlı olarak yakınsaması her cihazın aynı veri tabanına sahip olması ile açıklanabilir. Bunun için;
iSPF : Sadece ağın hatadan etkilenen kısımlarının SPF çalıştırması olarak açıklanabilir.
Hızlı yakınsama için SPF’nin çalışma süresini kısa tutmak gereklidir. Fakat ne kadar kısa olacağı başka sorunlara yol açar. En azından LSA flood süresinden uzun olmalıdır, ilk olarak hatayı ağ’a yay, daha sonra hesapla.
Incremental SPF : Ağın sadece hata’dan etkilenen kısmının SPF çalıştırması için.
Önerilen :
router ospf x
router-id x
ispf
log-adjacency-changes detail
nsf
timers throttle spf 50 50 5000
timers throttle lsa 10 20 5000
timers lsa arrival 10 ! IOS XR gerek yok.
timers pacing flood 5
mpls traffic-eng router-id Loopback0
mpls traffic-eng area 0
interface GigabitEtherneX
description ### backbone interface ###
bandwidth 5000
ip mtu 1500
ip ospf network point-to-point
ip ospf bfd
ip ospf cost 15
mpls ip
mpls label protocol ldp
mpls traffic-eng tunnels
bfd interval 200 min_rx 200 multiplier 3
Linkler :
http://www.ciscopress.com/articles/article.asp?p=1763921&seqNum=6
Which Routing Protocol? IPv4 and IPv6 Perspective BRKIPM-3010
http://blog.ine.com/2009/12/31/tuning-ospf-performance/
http://blog.ine.com/2010/06/02/ospf-fast-convergenc/
Yararlı Linkler :
OSPF Paket Type : OSPF işleyişi ve paket tipleri hakkında bilgi