Farklı routing protokollerinin (rip,ospf,eigrp gibi), farklı areaların (ospf area 0 ile ospf area 1 gibi) ve farklı autonom sistemlerin (eigrp 1 ile eigrp 2 gibi) aralarında bilmedikleri yolların birbirlerine aktarılmasına redistribution denir.
Redistribution yapalacak olan router’ı bir tercüman gibi düşünebiliriz. Bu durumda protokoller’i (ospf,rip,eigrp) dil olarak düşünelim. Merkez router ise (üzerinde redistribution yapacağım) tercüman.Tercüman tüm dillere hakim herkesle konuşabiliyor. Fakat ospf bilen rip ile, rip bilen eigrp ile vs. konuşamıyor. Birinin bize tercümanlık yapması lazım.
Daha önce öğrenmiş olduğumuz RIP, EIGRP ve Static Route için Redustribution Uygulamasını izleyebilirsiniz.
Redistribution işlemi ile farklı protokollerdeki tüm routeler birbirlerine aktarılır.
İlk olarak geçmiş konuları tekrar etmek gerekirse Routing nedir diye soracak olursak;
Routing, destination networkleri keşfetme, trafik için en iyi yolu belirleme ve bu bilgileri koruma sürecidir gibi düşünebiliriz. Routing, verilerin bir router üzerinden taşınması işlemi değildir. Bu, router içinde switching olarak adlandırılır ve bir switch ile karıştırılmamalıdır. Bugünkü tanımıyla switch, trafiği ileten donanım veya yazılım tabanlı bir cihazdır. Bu tipik olarak Layer 2 adreslemeye dayanır.
Routing ise tipik olarak Layer 3'te gerçekleşir.
Layer 3 protokolüne bağlı olarak farklı routing protokolleri mevcuttur. Routing protokollerinin kullanıcı trafiğini iletmediğini, destination ağlar hakkında bilgi ilettiğini anlamak önemlidir. Protokolün türü ne olursa olsun, hepsi aynı şeyi yapar: ağların discover edilmesini sağlar, bir tür yerel tablo oluşturur ve buna routing table denir. En iyi yolu seçer ve bu yolu tablosuna ekler. Ayrıca seçtiği yolların aktif olup olmadığını belirli periyotlar ile denetler.
Statik routing’ de, statik yapılandırmayı yapan kişi routing protokolünü kontrol eder. Bu, belirli bir destination ağa veya ana bilgisayara giden yola karar verir. PBR, trafiği yönlendirme işlemi için hedefe ek olarak size daha fazla kontrol imkanı sağlar.
Policy Based Routing (PBR), data paketlerini belirli policy ya da rule' lara göre ileten ve yönlendiren bir protokoldür.
PBR ile bir network yöneticisi, aşağıdaki gibi belirli parametrelere göre policy’ lerini seçebilir:
- Kaynağın veya hedefin IP adresi
- Kaynak veya hedefin port bilgisi
- Trafik türü
- Ağ protokolleri (Static or Dynamic)
- Veri paketlerinin boyutları
- Access-List
Bu gibi parametreler belirlendikten sonra, veri paketleri buna göre yönlendirilir.
Route Map nedir? Policy Based Routing Nedir?
İki adet konunun bir arada olmasının sebebi birbirleriyle ilişki konu olmalarından kaynaklıdır. Route Map’ in uygulamasını PBR üzerinde yapabileceğimiz için iki konuya bir arada değinmek istedim.
Önceden bahsetmiş olduğum Access-Listler mevcuttu. Ne anlama geliyor bu access-list diye soracak olursak;
Örneğin: access-list 100 permit ip host 10.1.1.1 host 20.1.1.1 deyip bunu ilgili fiziksel interface altında aktif ettiğim zaman biz ne demiş oluyoruz? 10.1.1.1' li hosttan gelen trafiğin 20.1.1.1’li host’ a gitmesine izin ver demiş oluyoruz. Ama burada önemli ve unutmamamız gereken konu neydi? Her access-list’ in altında bir implicit deny olduğuydu. Ne demekti bu diye soracak olursanız benim izin verdiğim trafik dışındaki tüm akışı deny ediyor yani engelliyordu. Bu önemli bir husus.
Access-Listler sadece trafik engellemek ya da izin vermek için değil ayrıca Route Map’ lar içerisinde de kullanılmaktadır. Route Map’ler de sadece Access-List kullanılmaz. Başka opsiyonlar da vardır ama ben yaygın olanı access-list’ dir. Access-List üzerinde permit ve deny trafiğe izin vermek ya da trafiği bloklamak için kullanılan iki temel opsiyondur.
Eğer bir Access-List yazıyor isek, ve bu access-list’ i Route Map altında kullanacaksak Permit ve Deny’ ın anlamı bizim için çok önemlidir. Permit demek ilgili kuralı route-map altına dahil et, deny ise dahil etme yani dışarıda tut demek anlamına gelir. Yani özet olarak Route-Map altında kullanılan Permit ve Deny, Acl’ deki gibi izin vermek ya da vermemek diye kullanılmayıp farklı anlamlara gelmektedir.
Biz ACL yazarken bir numara tanımlıyorduk. Route-Map oluştururken de bu route-map’a bir isim veririz. Örneğin Route-map abc. Burada abc ismini vermiş oluyoruz.
access-list 100 permit ip host 1.1.1.1 host 2.2.2.2
Route-map abc
Match Yavuz
Set delete
Yani Route-Map’ imin adı abc olup içerisine Acl’ in birinci satırını ekle. Bu eklediğin satırı Yavuz ile eşleştirip delete ile aksiyon al şeklinde yorumlayabiliriz.
Ama burada en önemli soru şu ki Route-Map i kim kullanır ya da bunu kullanacak kişi ne amaçla bunu kullanır?
Route- Map ACL gibi bir işlemi engelle ya da engelleme yapmaz. Yapılması gereken bir iş için aksiyon al ya da alma der. Kabaca bu şekilde özetleyebiliriz. Route map içerisindeki permit eylemi yap deny ise eylemi yapma demektir. Bir eylemin yapılıp yapılmayacağına Route-Map kendi başına karar vermez. Bu route-map’ i kim yapıyor sorusu tüm yapının en önemli sorusudur.
Route-Map’ i genelde kim kullanır? Cevap: PBR, Redistribution, IGP(RIP;EIGRP,OSPF) ya da BGP. Yani Route-Map’ i uygulayacağımız yere göre anlamı değişir. Biz burada PBR yani Policy Base Routing ile örnek yapıp iki soru soracağız. PBR kimdir ve ne iş yapar? Permit ya da Deny; altında yazılan kuralları yap veya yapma demek olup bu da işi kimin yapacağına bağlıdır.
Policy Base Routing nedir? Örneğin Router’ a bir paket geldi. Gelen paketin mutlaka bir adet source ve bir adet destination adresi olur. Bir paket bu şekilde Router’ a geldiği zaman Router ne yapar? Source ve destination kısmına bakarak paketi ilgili yerine yönlendirir ya da drop eder. Bu normal bir Routing sürecidir. Ancak Policy-Base Routing dediğimiz süreç, duruma göre değişen routing demektir. Yani bu ne demek oluyor?
Yukarıdaki örneği incelediğimizde normal şartlarda source adresi X ve destination adresi Y olan bir paketimiz mevcut olsun. Ama ben destination adresine bakmadan direkt X source adresinden gelen paketin Z destination adresine gitmesini isteyebilirim. Burada ne yapmış oluyorum? Gelen paketin destination adresine bakmadan pakete müdahale ederek paketi başka bir destination’ a yönlendirmiş oluyorum. Policy-Base Routing (PBR)’ de biz Router’ ın normal yaptığı işe müdahale etmiş oluyoruz.
Normal şartlarda paket Router’ a girer girmez, frame kısmı çıktığı zaman geriye kalan IP paketinin header kısmı okunarak burada CEF’ e gider. Paket CEF’ e gitmeden biz PBR ile araya girerek paketin source adresine bakıp kardeşim sen gel şu next hop üzerinden yoluna devam et diyerek paketi yönlendirmiş oluyoruz.
Peki burada üç temel konu var Proccess Switching, CEF Switching ve Fast Switching nedir? Hızlıca bunları da açıklayalım.
Proccess Switching: Her paketin işlenmek için CPU gönderilmesi işlenmesi demektir.
CEF Switching: Basitçe ilk paketi CPU gönderip ne yapılacağını öğrenir ve hızlı bir veri tablosuna yazar ve bir sonraki paketi CPU göndermeden iletir.
Fast Switching: Yanlızca ilk paket process üzerinden geçiyor diğer paketler direk cache e bakılarak iletim sağlanıyor.
Normalde bir interface e gelen paketler için PBR uygulanır. İp local policy route-map ile ise router’ ın kendi göndereceği paketlere uygulanabilir.
Şartlar uygun olursa PBR paketi gönderir, olmaz ise göndermez. Bu kadar. Herhangi bir bloklama ya da engelleme yapmaz.
Local Network ve Internet kısımlarından oluşan bir yapı hayal edelim. Burada Local kısımda yer alan hostlar ve bu hostların ulaşmasını istediğimiz 2.2.2.2 IP adresli internet olduğunu varsayalım. Tabi tüm bu erişimlerin sağlanabilmesi için yapı içerisinde gerekli network yapılandırmalarının tamamlanması gerekir.
Gerekli network yapılandırmaları tamamlandıktan sonra; Host-1 üzerinden 2.2.2.2 İnternet IP adresine erişmek istediğimizde ping işleminin başarılı olduğunu görüyoruz. Ayrıca trace komutu ile 2.2.2.2 IP adresine Host-1' in 34.0.0.4 üzerinden de eriştiğini görüyoruz. Biz burada erişimin 34.0.0.4 üzerinden değil de 35.0.0.5 üzerinden olmasını istersek, yani Router; 192.168.1.10 source adresli paketi 2.2.2.2 destination adresine 35.0.05 üzerinden göndersin dersek burada Policy-Based Routing yaparız. PBR nerede uygulanır diye soracak olursanız, host üzerinden gelen paketin nerede yönlendirildiğine bakarak cevap olarak Router diyebiliriz. Local network ile İnternet arasında ikinci bir Router yer alsaydı seçimimizi yine o anki duruma göre gerçekleştirebilirdik.
PBR için ilk olarak bir Access-List' e ihtiyaç duyarız. Biz Host-1 yani 192.168.1.10 IP adresli kullanıcının 2.2.2.2 IP adresine giderken izlediği yola müdahale etmek istiyoruz. Bunun için bu IP adreslerini source ve destination belirterek bir ACL yazarız. Buradaki ACL' in amacı izin verip yasaklamak değil, dahil edip etmemekti. Bu konuyu daha önce açıklamıştım. Sonrasında bir Route-Map oluşturup ismini Yavuz veriyorum. Oluşturduğum ACL' i bu Route-Map içine match ile dahil edip default gateway olarak 35.0.0.5 tanımlıyorum. Son olarak, ilgili source adresindcen gelen paketi, ilgili Router içerisinde karşıladığım port altında gelerek kuralı bu fiziksel portun altına uyguluyorum.
İlgili konfigürasyon işlemlerini tamamladıktan sonra, Host-1 içinden hem ping hem trace atıyorum. Burada trace içerisinde bir farklılık dikkatimizi çekiyor. Yukarıdaki görsellere baktığımızda Host-1 içinden trace attığımızda destination adresine 34.0.0.4 üzerinden erişim sağlandığını görmüştük. PBR uyguladıktan sonra erişimin artık 35.0.0.5 üzerinden sağlandığını görüyoruz. Böylece bir Router' a müdahale ederek, gelen paketi source adresine bakarak istediğimiz yere yönlendirmiş olduk.
Yandaki yapıyı ele alalım. Burada normal şartlar altında R2 ve R3 üzerindeki Loopback adreslerini birbirleriyle haberleştirebilmek için görselde paylaştığım gibi hangi cihaz üzerinden nasıl bir static route yazmamız gerektiğini görüyoruz. En az 4 adet static route yazmamız gerekiyor. Peki bunu 2 adet static route ile yapabilir miyiz?
Ben R1 üzerinde source ve destination adresleri Loopback olarak şekilde bir PBR oluşturup R1 içerisindeki static route' ları kaldırarak Loopback adreslerini haberleştirebilirim. İlk olarak tüm Router' lar üzerinde static routing yaparak herkesi heryer ile haberleştirelim. Yanda R1, R2 ve R3 için Routing Table' ları görüyoruz. R1 de 2.2.2.2 ve 3.3.3.3 networkleri için iki ayrı static route ve R2 ile R3'de de default route görüyoruz.
Hem R2 hem de R3 üzerinden Loopback adreslerini source olarak belirtip destination adreslerine erişebildiğimizi görüyoruz. Şimdi R1 üzerinde yer alan static route' ları kaldırıp PBR yaparak durumu tekrar test edelim.
Gördüğünüz gibi R1 üzerinde sadece directly connected networkler yer alıp tüm static route' lar kaldırılmıştır. Bu işlemi tamamladıktan sonra R1 üzerinde PBR yapılandırmasına başlayabiliriz.
İlk olarak her iki Loopback için de ACL yazmamız gerekiyor. ACL 100 de source 2.2.2.2 ve destination 3.3.3.3 için, ACL 101'de de source 3.3.3.3 ve destination 2.2.2.2 için ACL yazdık. Sonrasında; çift yönlü bir paket yönlendirmesi yapacağımız için 2 adet Route-Map' a ihtiyacımız var. Bunlardan bir tanesi 2.2.2.2' den gelen paketleri 3.3.3.3'e yönlendirmek için, diğeri de 3.3.3.3' den gelen paketleri 2.2.2.2' ye yönlendirmek için. İki ayrı Route-Map' i oluşturup ilgili ACL' leri içerisine match ederiz ve gelen paketleri nereye yönlendirmek istiyorsak ona göre bir ip next-hop belirleriz.
Route-Map tek başına bir anlam ifade etmiyordu. Oluşturduğumuz kuralları mutlaka ilgili interface'lerin altına uygulamamız gerekiyor. R2R3 yani source 2.2.2.2 destination 3.3.3.3 için kuralı R1' in R2' ye bakan interface' i altına uygulamamız gerekir. R3R2 içinde tam tersini düşünebiliriz. Temel amaç ilgili source paketi, Router' in hangi fiziksel portunda karşılanıyorsa kuralı o port altına uygularız.
show ip access-list ve show route-map komutları ile R1 içerisindeki ACL ve Route-Map kurallarını görüntüleyebiliriz.
R2 ve R3 üzerinden ilgili loopback adreslerine ping attığımızda UUUU yani unreachable olduğunu görüyoruz. Neden?? Çünkü bir source olarak herhangi bir adres belirtmediğimiz için Router'lar source adresini otomatik olarak WAN interface'leri olarak alıyor. Biz PBR yaparken source olarak Loopback adreslerini belirtmiştik.
Ama ben yandaki gibi source adreslerini belirterek ping atarsam next hoplarıma erişmiş olurum. Source olarak WAN interface' ler üzerinden de yine erişim sağlamak istiyorsam yapmam gereken o ilgili interface adresleri için de Route-Map oluşturup PBR yapmam gerekiyor.
Web sitesi trafiğini analiz etmek ve web sitesi deneyiminizi optimize etmek amacıyla çerezler kullanıyoruz. Çerez kullanımımızı kabul ettiğinizde, verileriniz tüm diğer kullanıcı verileriyle birlikte derlenir.
Soru ve görüşleriniz için, anasayfa kısmında yer alan iletişim bilgilerimden ulaşabilirsiniz.