Route Map Conditional Forwarding
Üst satırlarda permit ya da deny seçenekleri var. Bu trafik eğer eşleşiyorsa izin ver, trafik eşleşmiyorsa deny et. Herhangi bir satıra eşleştiği anda alt satırların hiçbir değeri kalmıyor. En altta ise implicit deny satırı var. deny any any yani ne olursa olsun bunu geçirme çöpe at.
Standart acl sadece kaynak network veriliyor. Yanına verdiğiniz numarayı isim olarak düşünebilirsiniz. Yani access-list 1 permit any any ve altına yazdığımız bir access liste yine aynı numarayı kullanıyorsunuz çünkü buradaki amacımız liste oluşturmak. 1 numarası satır numarası değil. Acl adı olarak düşünebilirsiniz. Yanına 1-99 arasında verirseniz bunun starndart olduğunu anlıyor veya 100-199 arasında verirseniz extended olduğunu anlıyor ama named olarak kullanırsanız. ip access-list test derseniz bunun yanında numara vs yok. Yani standart mı extended mı olduğunu anlamıyor. O yüzden Named olarak yazacaksanız bunu ACL de belirtiyoruz.
ip access-list standart text bu şekilde yazılıyor.
any 'nin anlamı 0.0.0.0 255.255.255.255 ( ilk sıfırların hiçbir önemi yok aslında ikinci oktet önemli).
wildcard maskesi subnet maskesinden daha esnek olduğu için wildcard maskesi ile yazıyor. Subnet maskesi'nin kuralı bellidir. 1 sayıları networkü belirtir. 0'lar hostu belirtir ve asla şöyle bir subnet maskesi olmaz. 255.0.255.0 Yani network kısmı sonra hostlar başladı sonra yine network kısmı :)) Böyle bir şey olmaz.
Yani network kısmı bittiği anda host kısmı başlar. Kuralı budur. Ancak wildcard maskesinde 0'lar burası mutlaka match edecek demek. Yani burası birebir aynı olmak zorunda demek. 172.16.0.0 0.0.255.255 Yani burada ilk 2 tanesi 0 ise 172 ve 16 kesinlikle eşleşecek demek. 255'ler ise ignore et demek. Yani bakma demek seni ilgilendirmiyor demek.
Wildcard maskesinin 255.255.255.255 olması şu demek. İlk hane ne olursa olsun bakma, ikinci hane ne olursa olsun bakma, 3 ve 4 de aynı şekilde. Hangi ip adresi olursa olsun bakma demek.
permit host 192168.1.1 bunun diğer bir yazılış türü ise 0 değeri match etmeye karşılık geliyordu wildcard maskesinde bu yüzden diğer bir şekilde permit 192.168.1.1 0.0.0.0 şeklinde yazabiliriz.
Extended'da ise kaynak ve hedef ip adresini belirtmek zorundasın.
Eğer IGP protokollerinde anonsta filtreleme yazacaksan, Standart ACL de permit 192.168.0.0 0.0.255.255 bu network ise geçer. Ama daha esnek yazmak istiyorsan yani 172.16.0.0/16 ve aşağısındaki hepsi yani /15 /14 /13 .... vs hepsine izin ver. Uzamasın diye. permit ip host 172.16.0.0 host 255.240.0.0 şeklinde yazabilriiz. Bu şekildeki case'ları aslında prefix list ile yazıyoruz.
permit ip host 172.16.0.0 host 255.240.0.0 / 12 aralığındaki herhangi bir prefix
permit ip host 172.16.0.0 host 255.250.0.0 / 16 aralığındaki herhangi bir prefix
Bgp de bu kural farklı bir anlam ifade ediyor.
Örnek olarak 10.0.1.254 , 10.0.2.254, 10.0.3,254 ... bu formtta birçok ip adresleri oluşturmak istersek bunu şu şekilde yazabiliriz. permit ip 10.0.0.254 0.0.255.0 Yani 0 demek eşleşecek demek idi. Birinci ikinci ve dördüncü oktet eşleşecek demek. Arası ne olursa olsun izin ver dedik.
10.168.0.0/13 ge 24 Bu şu demek /24'ten daha büyük olabilir. 25,26,27.... vs. Bu durumda inceledğimizde 10.168.0.0/13 match etmiyor. 10.173.1.0/28 match ediyor çünkü /24ten büyük. 10.104.0.0 /24 burada /13 ge 24 adam diyorki ilk 13 biti 10.168'in biti neyse birebir eşlecek diyor. Yani 168-176 arasında.
Buradaki örnekte binaryleri yani 1 ve 0'ları açmış ve birebir aynı olması gerekiyor.
10.0.0.0/8 ge 22 le 26 buradaki örnekte senin networkünün sayısal değeri. Burada belirttiğime match etmek zorunda yani ilk 8 biti birebir aynı olmak zorunda yani ilk oktet mutlaka 10 ile başlayacak demek. 10 ile başlamıyorsa ne olursa olsun çöp.
Buradaki slashlı ifade subnet maskesi anlamına gelmiyor. Le(küçük ve küçük eşitse) burada sıkıntı yok ama büyük ol dediğinde işler biraz karışıyor. Eşleşmesi anlamına geliyor bir nevi.
Sequence numası 10'dan başlıyor. Bir şeye eşleştirme talebinde bulunuyoruz. Bu ip aralığı eşleşiyorsa gibi.
Eğer route map yazıp isim verip Enter'a basarsanız bunu permit olarak kabul ediyor ve sequnce numarasını 10 olarak yazıyor.
Bir route map yazarken bir match adresi yazıp, bir network adı ile ya da herhangi bir sayısal değerle de eşleştirebilirsiniz. Bu parametre ile eşleşiyorsa bunu öğretiyor. Eğer permit değil de deny yazarsanız bu ACL ile eşleşenleri öğretmiyor. Eğer hiçbir match yazmazsanız network prefix adresi ne olursa olsun eşleşiyordu.
set weight 100 dersek weight değerini artır ve sonrasında izin ver.
ip as-path access-list 10 permit ^$ ==> Bunu yazmamızın nedeni, origini biz olmadığımız hiçbir networkü ISP'lere öğretmemek adına yazmıştık. Yani bir transit area haline gelmemek için yazmıştık. Bunu route map ya da filter list ile uygulayabiliriz biz burada filter list ile uygulamıştık. Hangi yönde out yani millete öğrettiğim yönlerde sadece bana ait networkleri öğret.
Program yazar gibi and ve or kullanır gibi yazıyorsunuz.
Route map yazdığınız match yazdınız ve alt satırda tekrar bir match ifadesi yazdınız burası AND oluyor. Yani ikisine de eşleşmesi gerekiyor.
Buradaki deny 172.16.1.0 0.0.0.255 buna eşleşiyorsa bir şey yapma. Ignore et bu satırı umursama anlamında. permit 172.16.0.0 0.0.255.255 burasına eşleşiyorsa kabul. Accept et anlamında. Yani /16'yı kabul et /24'ü umursama.
deny 172.16.1.0 0.0.0.255 satırı route-map'lerden alttaki ile eşleştiği için metriği 20 olarak set edilir.
route-map Example permit 10 set ip next-hop 10.13.1.3 // Kalan kim varsa next-hop adresini 10.13.1.3 olarak yap.
Routingler artık hardware routing yapıyorlar. CEF diye bir süreçleri vardı. Routing tablosu hardware routing tablosuna yazılıyordu. FIB tablosu denilen ve ona bakıp anahtarlanıyordu.
Eskiden bu FIB tablosunda sadece hedef ip'lere göre FIB tablosu oluşuyordu. Sen kaynak ip'ye göre routing yapmaya kalkarsan FIB tablosunu kullanamazsın çünkü FIB hedefe bakıp karar veriyordu. Bu şu demek. Hardware routing yapamazsın demek.
Eskiden PBR, CPU anlamında yük getiriyordu. Ancak günümüzde çoğu cihazlarda flow tablosunda kaynak ip, kaynak port dahil var. O yüzden bu hardware sürecini de yapabiliyorlar. OpenFlow kullanıyorsan kesin yapıyorlar. OpenFlow destekli cihazsa hardware ram'ine elletiriyorsun. Orada protokolün adını, hedef, kaynak port numaralarını, Icmp tipini vs her şeyine baktırtırabiliyorsun hardware olarak. Hardware olarak yönlendirme tablosu varsa cihaz CPU harcamaz demek.
PBR'da protokole göre baktırtabiliyorsun. Tcp ise buradan gitsin, Tcp 23 ise burdan gitsin Icmp ise buradan gitsin vs.
delay down 10 up 1 ==>10 snde down olursa 1 sn bekle. Hat gelirse çat diye geçme 1 sn bekle.
Reachability ==>ping'e özgüdür. Ulaşılabilir demek.
10.10.20.1'den yolla demiş. BR1'den git demiş.
set ip next hop verify-availability ==>Önce erişip erişemediğini test et. Erişiliyorsa bu ipye (10.10.30.2)'ye next hop olarak at. Track 1 deki kurallara göre kontrol et.
Bu track up'mış. Erişiliyormuş buradan gidiyor.
1 tane SLA yazmış o da ping atıyormu ve atıyor.
En son 1 saniye önce ping atmış.
Last updated