Katman 3 yönlendirici cihazları (Layer3 Switch veya Router) paket iletimi için “Forwarding” işlemini gerçekleştirir. Forwarding ise ağ içerisindeki yönlendirici cihazın kendisine gelen paketi iletmek için en iyi yolu (best path) nasıl belirlediğini ifade eder.

Her yönlendirici, kendi IP yönlendirme tablosundaki (Routing Table) bilgilere dayanarak paket iletimine dair kararını verir. Bir yönlendiricinin yönlendirme tablosunda belirli bilgilere sahip olması, diğer yönlendiricilerin de aynı bilgilere sahip olduğu anlamına gelmez.
Forwarding, birbirinden bağımsız üç farklı yapıdan oluşur. Bunlar;
- Routing
- Switching (Load-Balancing Methodes)
- Encapsulation
Switching, çalışma yapısı gereği basitçe düşünüldüğünde, yönlendiricinin bir arayüzünden (interface) aldığı paketi aynı yönlendiricinin farklı bir arayüzüne iletmesi işlemidir. Routing, çalışma yapısı gereği farklı ağlarda bulunan cihazların birbirleri ile haberleşmesi için hangi yolu kullanacağına dair, IP adresleri aracılığı ile sağlanmasıdır. Encapsulation ise, iletilecek olan veriye ait paketin ve paket başlıklarının saklanmasını, erişiminin sınırlandırılmasını sağlayarak iletimin korunmasına yardımcı olur.
OSI katmanlarından Katman 3 üzerinden gerçekleştirilen IP paket yönlendirmelerinde paket switching yöntemleri kullanılır. Bu yöntemler “Layer 3 Load-Balance” metotları olarak da bilinir. Paket iletiminde başlıca sorumluluklardan biri, iletilecek olan paketlerin veri bağlantısına uygun olarak kapsüllenmesidir. Bu işlem yönlendirici cihaz tarafından ne kadar verimli gerçekleştirilirse, paket iletim hızı da doğru oranda artar. Yönlendiriciler için gerçekleştirilen ilk teknik, zamanla gelişerek bugün kullanılan halini almıştır. Bu sürede daha ölçeklendirilebilir, hızlı, verimli iletişimi sağlayan ve önbelleğe dayalı yöntemler geliştirilmiştir. Gelişmeler, paketlerin fark edilir bir gecikme olmadan iletilebilmesini sağlar. Verimli ve hızlı iletişimin gerçekleştirilebilmesi için 3 farklı paket iletim tekniği kullanılmaktadır.
1. Process Switching
Process Switching en eski ve en güçlü paket switching tekniklerinden biridir. Yönlendirici cihazın işlemcisi, paketlerin iletim kararlarına doğrudan dâhil olur. İşlemci bu aşamada iletilecek olan paketin işlenmesi, iletim için uygun zamanın belirlenmesi, iletileceği arayüz seçimi ve iletim sürecinin doğru çalışmasını programlamaktan sorumludur. Process switching yapısında bütün paketler işlemciden geçmek zorundadır.

Pakete uygulanacak olan işlemler, yönlendirici cihazın işlemcisi tarafından gerçekleştirilir. İşlemci, bir diğer adı ile CPU (Central Processing Unit), yani Türkçesi ile MİB (Merkezi İşlem Birimi). İşlemci, konumu bakımından Control Plane içerisinde bulunur. Control Plane, giden IP paketlerini Data Plane’e iletebilir veya next-hop IP adresini belirlemek için kendi yönlendirme mekanizmasını kullanabilir. Data Plane iletim için aksiyonların alındığı, Control Plane ise konfigürasyon ve cihaz yönetiminin sağlandığı cihaz mimarisinin parçasıdır. İletilecek olan veriye ait paketler birbirinden bağımsız olarak mutlaka işlemci üzerinde işlenir. Aynı veriye ait birden fazla paket akışı için hedef aynı olsa bile bu işlem her paket için teker teker uygulanır.
Ek olarak problem yaşanan durumlarda, işlemci matematiksel hesaplamalar yaparak iletilecek paket üzerinde yaşanan problemi çözebilir. Bu nedenle, kullanılmayan bağlantılar arasında yük paylaşımına izin verir ve denge sağlar.
İşlemci üzerinde gerçekleşen işlemler, paketin yönlendirici cihazın arayüzünden yönlendirici cihaza gelmesi ve işlemciye iletilmesi ile başlar. İşlemciye iletilen paketler, okunur ve belleğe kaydedilir. Paketin hedef IP adresi için yönlendirme (route) tablosu kontrol edilecek şekilde bir tarama gerçekleştirilir. Taramanın sonucuna bağlı olarak, önce paket başlığındaki TTL değeri ve IP header üzerinde bulunan, döngüsel denetimi gerçekleştiren CRC değerleri yeniden hesaplanarak güncel hale getirilir. Daha sonrasında hedefe yönelik IP adresi (next-hop) bulunur ve yönlendirici üzerinden next-hop adrese ulaşım sağlayan interface, fiziksel katman header’ı sayesinde belirlenir. Belirlenen bilgiler, hedefe iletime yardımcı olabilmesi için paket başlığı üzerine işlenir. Uygulanan bu işlem sonrasında, ARP tablosu kontrol edilir ve next-hop iletimi için gerekli olan tüm bilgiler, fiziksel katman başlığı üzerine yazılır. Tüm bilgiler doğrultusunda veri bağlantısına uygun olarak kapsülleme işlemi gerçekleştirilir ve paket iletime hazır hale getirilir.
Process Switching için dezavantajlar bulunmaktadır. Her paket tek tek işlendiği için CPU kullanımı artar, özellikle yoğun trafiğe sahip ağlarda bu durum problem yaratacaktır. Ek olarak, birden fazla arayüz üzerinden gelen paketler, işlemciye belirli bir sıra olmadan iletilir. Paketlerin belirli bir sıra olmaksızın işlemciye iletilmesi, iletim sonunda paketleri alan hedef cihazın bir buffer veya kendi işlemcisi yardımı ile paketleri doğru sıraya sokmasına sebep olacaktır. Böylece hedef cihazlar iletimde daha fazla işlem yapmak zorunda kalacak ve hem CPU kullanımı artacak hem de zaman kayıpları yaşanacaktır. Böylece iletim performansı düşecektir.
2. Fast Switching
Yönlendiricilerin, yoğun trafiğe sahip yapılarda işlemci üzerinde daha fazla paket işlemesi gerekir. Sürecin daha pratik ve verimli gerçekleşmesi için geliştirilen Fast Switching yönteminde, sadece iletilecek olan veriye ait gelen ilk paket işlemciye iletilir. İlk paketten sonra kalan tüm paketler işlemciye uğramadan Data Plane üzerinden gider. Böylece CPU üzerine daha az yük binmiş olur.

Fast Switching teknolojisinde, gelen pakete dair adres ve next-hop bilgileri kopyalanarak kaydedilir. Bilgilerin depolanması ve iletimin hızlı gerçekleşmesini sağlayan geçici bir önbellek kullanılır. İletilecek aynı veriye ait ilk paketin işlemci üzerinden iletimi sağlanır. CPU ve Yönlendirme Tablosu kullanılarak gerekli bilgiler bir kez hesaplanır ve veri iletimi tamamlanana dek önbellek üzerinde saklanır. Böylece aynı veriye ait diğer paketler için tekrar tekrar hesaplama yapılması gerekmez. Kalan paketlerin, Control Plane’e uğrayıp CPU müdahalesi olmadan, yönlendiricinin önbelleği üzerinde depolanmış bilgileri referans alarak iletimi sağlanır. Eğer gelen paket, önceki paket ile aynı veriye sahip değilse, matematiksel işlemler tekrar CPU ve Routing Tablosu kullanılarak hesaplanır ve geçici olarak hızlı önbelleğe kaydedilir. Birbirinden bağımsız veriler için iletilen paket gruplarının her biri için bu işlem gerçekleştirilir.
3. CEF Switching (Cisco Express Forwarding)
Gelişen ağ yapısı ve trafiğin kompleks yapıya sahip olduğu büyük yapılardaki paket iletimlerinden dolayı ortaya çıkan CEF (Cisco Express Forwarding), en yeni IP paket switching teknolojisidir. Kullanıcılara gelişmiş performans, ölçeklendirilebilirlik ve tutarlılık sağlar. Günümüzde yönlendirici cihazlar tarafından varsayılan olarak kullanılmaktadır. Fast Switching içerisinde kullanılan önbellek depolama yapısına benzer bir yapı, CEF içerisinde FIB (Forwarding Information Base) ve Komşuluk Tablosu (Adjency Table) aracılığı ile uygulanmaktadır.

CEF kullanımı ile daha az işlemci yükü oluşur, kullanılan her bir hat tam kapasite ve yüksek verim ile çalışır. Ayrıca sürekli değişen yapıya sahip ağlarda yönlendirme tablolarında oluşacak olan değişikliklerin sebep olacağı trafik yoğunluğu ve yüksek işlemci kullanımını önler. Ek olarak CEF, muhtemel çoğu sorunu önceden çözer.

FIB (Yönlendirme Bilgi Tabanı) genel yapısı itibari ile Yönlendirme Tablosu (Routing Table) ile aynı çalışma şekline sahiptir. CEF, yönlendirme tablosunu, Yönlendirme Bilgi Tabanı’na (FIB) kopyalar. Böylece yönlendirme tablosunun paketleri iletmek için ihtiyaç duyduğu adres bilgilerinin aynıları FIB içerisinde de tutulur. Yönlendirme tablosunda oluşan adres değişiklikleri eşzamanlı olarak FIB tablosuna da yansır. Aralarındaki fark, yönlendirme tablosunda tüm rota bilgileri tutulurken, FIB tablosu içerisinde, kullanılmayan rota bilgileri tutulmaz. Bu sebeple, IP Yönlendirme Tablosu’na kıyasla daha hızlı arama yapılır ve daha hızlı sonuç alınır.
Birbirine tek link aracılığı ile bağlı cihazlar komşu cihazlar olarak adlandırılır. CEF içerisinde kullanılan Komşuluk Tablosu (Adjency Table), ağdaki birbirine bağlı cihazların Katman 2 MAC adres bilgilerini bulundurur. Komşuluk tablosu, ARP Tablosu referans alınarak oluşturulur.

İletim sırasında ortaya çıkacak olan herhangi bir problem veya bilinmeyen bir rota iletimi sebebi ile eğer diğer tablolara bakılmak zorunda kalınırsa, CEF tablosu bozulduğu için yeniden oluşturulmalıdır. CEF tablosu yeniden oluşmalı ki, FIB ve Komşuluk Tablosu da yeniden oluşturulsun. Bu aşamada yönlendirici cihazın işlemcisine iletilen belirli paketler sebebi ile işlem sürecinde değişiklik yaşanabilir. Bu paketler; ARP, PPP, ICMP, TTL, MTU, DHCP, Route Update, CDP, NAT paketleri veya FIB üzerinde bulunamamış veya farklı CEF çeşitlerine ait paketler için geçerlidir. CEF Tablosu üzerinde bulunmayan bilgiler için tablo yeniden oluşturulacaktır. Süreçte yaşanacak değişiklik, işlemci üzerinde yapılacak yeni hesaplamalar ile değişebilir. Ancak yine de paketker hiçbir şekilde işlemciye uğramaz.
NOT: Debug komutu çalıştırıldığında router üzerinden geçen tüm paketlerin incelenebilmesi gerekir. Paketler CPU üzerinden geçmediği için, “#no ip route-cache” komutu girilir. Böylece Fast Switching ve CEF Switching devre dışı (disable) kalır, Process Switching aktif (enable) olur ve tüm paketler CPU üzerinden yönlendirilir. Böylece transit trafik gözlemlenebilir. Yönlendirme tablosundaki değişiklikler çok hızlı gerçekleşirse, Fast Switching ile işlenen paket yüzdesi çok düşer ve önbellekleme mekanizmasından verim alınamaz. Ayrıca yüksek trafiğe sahip ağlarda RAM işlemciye destek vermeye başlar. RAM kullanımı artar, işlemci kullanımı azalır. Bu durumda kullanılan cihaz için gereksinim duyulan RAM miktarı da artar.
CEF ÇEŞİTLERİ
Detaylarına inildiğinde, “CEF” içerisinde Yazılım Temelinde CEF ve Donanım Temelinde CEF olmak üzere iki farklı yapı çalışmaktadır.
Yazılım Tabanlı CEF diğer adı ile sCEF (Software CEF), kendi içerisinde iki farklı unsurdan oluşur. Bunlardan birincisi FIB ve ikincisi Komşuluk Tablosu. Control Plane üzerine uğramadan Data Plane üzerinden geçecek olan tüm paketler, tablolar aracılığı ile kontrol edilir ve iletimi gerçekleştirilir. Yazılım CEF’in rolü yalnızca donanım CEF’ini güncellemek ve paket iletimini kontrol etmektir.
Packet Switching işlemleri aslen donanım üzerinde gerçekleştirildiği için, Donanım Tabanlı CEF diğer adı ile hCEF (Hardware CEF), çok daha etkili bir yöntemdir. Daha hızlı ve daha yüksek verim ile çalışmaktadır. Donanım Temelinde CEF kendi içerisinde çalışma yapısına bağlı olarak, Accelerated CEF (aCEF-Hızlandırılmış CEF), Centralized CEF Mode (Merkezi CEF Modu) ve Distributed CEF Mode (dCEF-Dağıtılmış CEF Modu) olmak üzere ayrılır.
MAC adresleri, yönlendirme tablosu veya Access List gibi bilgiler CAM (Content Adressable Memory) ve TCAM içerisinde saklanır. CAM tablosu, Katman 2 bilgilerini depolamak için kullanılırken, TCAM tablosu üst katman bilgilerini özet halinde tek tabloda birleştirerek, yönlendirme kararlarının çok daha hızlı alınmasını sağlar.
Donanım tabanlı CEF kullanıldığında, yönlendiricilerin daha hızlı yönlendirme kararı alabilmesi için kararlar çoğunlukla TCAM tablosu kullanılarak alınır. TCAM, Ternany Content Address Memory. TCAM oluşurken, yönlendiricinin hızlı karar verebilmesi için birden fazla tablo kullanır. Böylelikle; FIB, Komşuluk Tablosu, Access List ve QoS için sahip olunan detaylara dayalı olarak oluşturulur.
- Yönlendirme kararı, Yönlendirici İşlemcisi (RP – Router Processor) üzerinde bulunduğunda, tüm yönlendirme kararları RP tarafından verilir. Bu, merkezi yönlendirmedir. Centralized CEF modunda, CEF için kullanılan FIB ve Komşuluk Tablosu, Route Processor yani Control Plane üzerinde işlemcide bulunur. Böylece işlemci ekspres yönlendirmeyi gerçekleştirir. Centralized CEF modu genellikle hat kartları (line cards) CEF için uygun olmadığı durumlarda kullanılır. Etkinleştirmek için, “R1(config)#ip cef“ komutu kullanılır.
- Distributed CEF etkinleştirildiğinde, yönlendirme kararları RP’den ayrıldığında ve hat kartlarına yerleştirildiğinde, yönlendirme kararı hat kartları aracılığı ile verilir ve rota ile ilgili işlemler, yönlendirici işlemcisine iletilmez. Hat kartları (line cards) üzerinde FIB ve Komşuluk Tablosu’nun özdeş bir kopyası tutulur. Paket yönlendirmeleri, özdeş kopyalara bakılarak gerçekleştirilir. Böylece işlemci üzerindeki yük azalmış olur. dCEF, işlemci üzerinde tutulan kopyalanmış tablolarının güncel ve doğru olması için IPC (Inter-Process Communication yani İşlemler Arası İletişim) mekanizmasını kullanır. Etkinleştirmek için, “R1(config)#ip cef distributed“ komutu kullanılır. Aynı yönlendirici üzerinde bulunan hat kartlarının bir kısmı CEF destekliyorken bir kısmı desteklemiyor olabilir. Bu durumda dCEF desteklemeyen hat kartı, yönlendirme için paketleri mecburen işlemciye yönlendirilir.