Router mimarileri

Anatomy of Internet Routers : https://www.ciscolive.com adresinden BRKSPG-2772 – Anatomy of Internet Routers (2013 London) isimli session videosu oldukça yararlı.

IOS Routing Internals – BRKARC-2350

Control Plane ve Data Plane / ASIC vs NP :

Genel olarak ağ cihazlarında şu an ki yaklaşım, control plane ve data plane olarak iki şekilde görmek üzerine kuruluyor. Data plane, hızlı veri transferi ve veri üzerinde hızlı işlem yapmak üzeredir. Control Plane ise daha çok data plane üzerinde veri iletimine yönelik değişimleri yapmak için kullanılır (routing change, feature change vb.). Control plane router’dan kaynaklanan trafiğide içerir (management, snmp, telemetry etc). Dolayısı ile data plane için kullanılacak işlemcilerin hızlı olması gerekir.

Software tabanlı router’lar da bu iki görev aynı CPU tarafından yapılır. Dolayısı ile genel amaçlı CPU’lar kullanılarak yapılırlar. Dolayısı ile data işlemi sırasında ne kadar fazla işlem yapılırsa, veya başka bir deyişle ne kadar fazla özellik kullanlır ise, kapasite o kadar azalır. Çünkü CPU gücü paket iletiminden özellik işlemeye kalır.

Hardware tabanlı routerlar’da ise bu iki işlem farklı CPU’lar aracı ile yapılır. Control plane işlemleri için CPU kullanılır iken, data plane için ASIC (Application Specific Integrated Circuit) kullanılır. ASIC sadece paket iletimi ile ilgilenen basit işlemcidir. Önemli olan özellik işleme değil paket iletimidir. ASIC iletemediği (bir sonraki gidiş noktası, çıkış noktası bilemediği, layer 2 için mac learning) durumlarda paket CPU gönderilir (punt paketler).

Hardware tabanlı cihazlarda ayrıca CAM/TCAM kullanılır. Bunlar data ASIC gönderilmeden önce hızlıca data’nın ne yapılacağını bulmak için kullanılar hafıza modülleridir.

CAM :

Normal bir memory DRAM şu sorgu ile çalışır su index’de ne var? Fakat CAM farklıdır. Her bir hücre kendi karşılaştırma işlemini yapar ve CAM şu sorgu gider sende bu veri var mı? Bu durumda aynı CPU cycle içerisinde tüm hücreler karşılaştırmayı yapar ve 0 veya 1 döner. Bu şekilde eşleşen hücreler bulunur. Hücre uzunluğu sabitdir. Genellikle switchlerde kullanılır, MAC adress tablosu gibi.

IPv4 için kullanılabilir mi? TCAM versiyonu.

TCAM :

IPv4 uzunluğu sabit değildir. Dolayısı ile yapılacak sorgu uzunluğu sabit olmıyabilir. /17, /26 prefix arama gibi. Bunun için hücrelerin dikkate al dikkate alma özelliği bulunur. Bu şekilde her hücre karşılaştırmasını yapar ve 0 1 veya dont care (bit) olarak geri dönüş yapar. FIB lookeplarına veya bazı routerlarda sadece hızlandırılmış ACL vb gibi amaçlar için kullanılır.(Bir cycleda ACL sonucu vb almak için).

ASIC’ler önceden belirlenen işlemleri yapmak için tasarlanırlar. Dolayısı ile yeni bir özellik uygulanmak istenir ise;

  • Bu özelliği control plane üzerinde yapmak ki bu durumda control plane işlevleri aksıyabilir.
  • Bu özellik için kendi ASIC bulununan yeni bir servis kartı yapılıp, bu işleve tabi tutulması gereken paketler bu karta yönlendirilebilir. Buda bu özelliğin uygulanmasında zaman sorununu ortaya çıkartabilir.

Software tabanlı ve hardware tabanlı router mimarisi arasında hybrid routerlar yer almaktadır. Bu tip routerlar’da ASIC yerine NP (network processor) kullanılmaktadır. NP’ler ise göreceli olarak hızlı paket iletimi sağlarlar ve software upgrade ile yeni özelliklerin eklenmesi mümkün olmaktadır. Dolayısı ile yeni bir özelliğin uygulanması daha hızlı ve daha az maliyetli olmaktadır.

Process Switching / CEF Switching :

Process switching her paketin işlenmek için CPU gönderilmesi işlenmesi demektir. Dolayısı ile process scheduling çok fazla önem kazanmaktır. Process switching’den bir sornaki adım ise CEF (Cisco Express Forwarding) swtiching’dir. CEF’e benzer method bir çok vendor tarafından uygulanmaktadır. Genel olarak anlamı paket iletimini veri tablolarına bakarak yapmaktır. Basitçe ilk paketi CPU gönder ne yapılacağını öğren ve hızlı bir veri tablosuna yaz ve bir sonraki paketi CPU göndermeden ilet.  FIB CPU üzerinde CEF tablosu routing’den kaynaklanan, iken CEF ise NP/ASIC üzerindeki iletim tablosu olarak anlandırılabilir. CEF üzerinde punt olarak işaretlemiş paket CPU gönder demektir. CEF tablosunda genel olarak bulunan bilgi, paket için eşleşme olarak kullanılacak route bilgisi, çıkış interface ve gideceği L2 next-hop bilgisidir.

Packet Lookup Unit and Table Lookup Unit :

Hızlı yakınsama için paket iletiminde ve tablo aramalarında işaretçiler ve birden fazla tablo kullanılır. Routing protokolleri ilk olarak RIB tablosunu oluşturur. Daha sonra routing tablosundan CEF tablosu oluşturulur. Burada tablolar arındaki geçişte basitçe pointerlar kullanılarak yapılabilir.

Örnek ile anlatır isek, bir EBGP Next-hop’larını ait routeları update etmek gerektiğinde normalde ona ait tüm prefixlerin ADJ bilgisini uptade etmek gerekir. Prefix sayısı kadar update işlemi. Bunun yerine o prefixleirn NH bilgisi artı bir tabloya yazılır ve orası işaret edilir ise, sadece işaret edilen alanın update edilmesi sonucu daha hızlı bir update işlemi yapılabilir.

Ayrıca load-balancing, polorization, fast convegence gibi diğer paket iletim konuları da ayrıca incelenmelidir.