Route-map 1. kısım

Merhaba,

Bu yazımda advanced routing’de çok kullanışlı bir araç olarak karşımıza çıkan route-map’ten bahsedeceğim. Özellikle routing işlemiyle öğretilecek ve öğrenilecek rotaları belirleme (route filtering), bir rota bilgisini bir kaynaktan başka bir routing protokolüne aktarırken (route redistribution) ve rota seçimini geleneksel “destination-based” routing’den başka daha karmaşık yöntemlerle yapmak istediğimizde (path control) sıklıkla route-map’lerden yararlanırız. Route-map aslında access-list benzeri bir araçtır: “match” ve “set” komutlarından oluşan satırlar sırayla kontrol edilir, bir satırda match gerçekleşirse sonraki satırlara bakılmaz. Hiç bir satıra eşleşmeyen trafik veya rota bilgisi implicit deny’a düşer.

Route-map’in bu tekniklerde nasıl kullanıldığına bakmadan önce sentaksını inceleyelim:

Router(config)#route-map deneme permit 10
Router(config-route-map)#

Bu komut deneme adlı bir route-map oluşturur ve route-map konfigürasyon moduna girer. Bu modda yazılan komutlar sadece 10 no lu satır için geçerli olacaktır. Farklı sayılar yazarak aynı route-map için farklı satırlar oluşturabiliriz. Tahmin edebileceğiniz üzere permit yerine deny da yazabilirdik (route-map’te permit ve deny’ın ne anlama geldiğinden bahsedeceğim). Eğer permit veya deny yazmazsak route-map satırı varsayılanda permit olarak cialis 20 mg duration oluşur.

Router#sh route-map
route-map deneme, permit, sequence 10
Match clauses:
Set clauses:
Policy routing matches: 0 packets, 0 bytes

Yukarıda sh route-map komutunun çıktısını görmekteyiz. Gördüğümüz gibi Match clauses ve Set clauses satırlarının karşısında şu anda bir şey yazmıyor çünkü bu komutları henüz kullanmadık. match komutu ile eşleşecek trafik veya rota bilgisi tarif edilir, set komutuyla da bu eşleşme halinde varsa uygulanacak eylemler belirlenir. Route-map’in kullanışlılığını sağlayan bu komutların parametrelerinin çeşitliliğidir.

Route-map’in çalışma mekanizması kullanım alanına göre farklılık göstermektedir. Bu yazıda route filtering’de nasıl kullanıldığını inceleyeceğiz.

Route filtering işlemi router’ın öğretmemesini veya öğrenmemesini istediğimiz rotaları filtrelememizi sağlar. Bunun için router config modunda distribute-list komutu kullanılır. Aslında distribute-list komutuyla direk ACL veya prefix-list belirtebiliriz. Örneğin

Router(config)#access-list 50 deny 10.0.0.0 0.0.0.255
Router(config)#access-list 50 permit any
Router(config)#router eigrp 1
Router(config-router)#distribute-list 50 out

Yukarıdaki yapılandırma eigrp’nin 10.0.0.0/24 network’ünü hiç bir interface’inden öğretmemesini sağlar. ACL’nin sonundaki permit any satırı gereklidir aksi takdirde sondaki implicit deny yüzünden hiç bir rota öğretilmez.

distribute-list route-map ile de kullanılabilir. Öncelikle bilmemiz gereken route-map’te match komutlarıyla IP adresleri tarif edilirken de bir ACL veya prefix-list kullanılmalıdır:

match ip address <ACL_no> | <ACL_ismi> | prefix-list <prefix_list_ismi>

Yukarıda ACL ile yaptığımız filtrelemeyi route-map ile yapmak istersek:

Router(conf propecia success ig)#access-list 60 permit 10.0.0.0 0.0.0.255
Router(config)#route-map FILTRE deny 10
Router(config-route-map)#match ip address 60
Router(config-route-map)#exit
Router(config)#router eigrp 1
Router(config-router)#distribute-list route-map FILTRE out

Dikkat edilirse yukarıda 50 no’lu ACL’de 10.0.0.0/24 network’ünü deny ederken burda 60 no’lu ACL’de permit ettik. Fakat route-map satırının kendisi deny. Bunu şu şekilde açıklayalım: Route filtering’de route-map kullandığımızda belirttiğimiz ACL tarafından permit edilen satırlarda eşleşme aranır. Eşleşme bulunduğunda route-map satırı permit ise öğretilir, deny ise öğretilmez. Eğer ACL tarafından deny ediliyorsa route-map satırının permit veya deny olması önemli değildir, bir sonraki route-map satırına geçilir. İşte tam da bu sebepten dolayı bu konfigürasyonda router hiç bir rotayı öğretmez 🙂 Hatırlarsanız yazımın başında route-map’in de ACL gibi olduğunu, sonunda implicit deny olduğunu söylemiştim. Yani 10 no lu route-map satırına eşleşmeyen rota bilgisi implicit deny’a düşecektir. Implicit deny’ın match parametresini de permit any şeklinde bir ACL olarak düşünebiliriz. Yani tüm rota bilgileri deny edilecektir. Bu yüzden önceki konfigürasyonda ACL’nin sonuna permit any yazdığımız gibi bu konfigürasyonda da

Router(config)#route-map FILTRE permit 20

Yazıp route-map’in sonuna bir permit satırı eklemeliyiz.

Diğer bazı önemli match parametreleri şunlardır:

match ip next-hop … : Next-hop IP’si belirtilen IP olan rotaları tarif eder.
match ip route-source … : Belirtilen IP tarafından öğretilen rotaları tarif eder.

Bu komutlarda da ACL veya prefix-list belirtmemiz gerekmektedir.

match interface … : Çıkış interface’i belirtilen rotaları tarif eder.

Eğer aynı komutta birden fazla ACL, prefix-list veya interface belirtirsek bu ACL, prefix-list veya interface’lerin bir tanesine eşleşmesi yeterlidir. Birden fazla match komutu kullanırsak bu match komutlarının hepsine eşleşmesi gerekmektedir.

match metric metrik [+|– tolerans] : belirtilen metriğe – istenirse belli bir hata payıyla – sahip rotaları tarif eder.

match tag etiket : tag’lenen rotaları tarif eder.
match length min max : paket boyutu byte cinsinden belirtilen değerler arasında olan trafikle eşleşir (Path Control’de kullanılabilir).

Route filtering yaparken route-map’te set komutlarını kullanmamıza gerek yoktur. Set komutları route redistribution ve path control de sıklıkla kullanılır. Yazımın ikinci kısmında route-map’in bu tekniklerde kullanımından bahsedeceğim.

“Route-map 1. kısım” için 2 cevap

Bir Cevap Yazın

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