cisco

Understanding Cisco Express Forwarding

Cisco Express Forwarding (CEF) adalah salah satu teknologi forwarding yang didevelopment oleh cisco yang memungkinkan sebuah perangkat jaringan layer 3 melakukan forwarding packet dengan cepat.

Sebelum mendalami CEF, mari kita bahas terlebih dahulu tentang routing, switching, dan forwarding.  Pengertian forwarding secara umum adalah proses perpindahan data dalam suatu perangkat dari input ke output. Routing sendiri adalah proses forwarding yang terjadi dilayer 3 dimana switching adalah proses forwarding yang terjadi di layer 2. Jadi dapat disimpulkan bahwa routing dan switching termasuk kedalam proses forwarding.

Untuk memahami CEF seluruhnya, mari kita bahas terlebih dahulu bagaimana proses forwarding (routing) di layer 3.

Routing Process

  • Sebuah frame memasuki sebuah interface pada router
  • Router melakukan pengecekan dengan melihat FCS (Frame Check Sequence), jika ada kesalahan, maka frame akan didrop.
  • Jika tidak, maka frame akan didekapsulasi menjadi packet
  • Router akan melakukan pengecekan pada checksum di header, jika ada kesalahan, maka packet akan didrop.
  • Router akan melakukan pengecekan pada destination ip address
    1. Jika ditujukan kepada router, maka router akan menerima packet tersebut dan melanjutkannya ke layer diatas.
    2. Jika tidak ditujukan kepada router (remote network), maka router akan mengecek TTL (time to life) terlebih dahulu pada header, jika lebih dari 1, maka akan dilanjutkan ke proses selanjutnya.
  • Jika tidak ditujukan kepada router, maka router akan mengecek routing table untuk mencari network tujuan yang paling spesifik. Jika ditemukan, maka router akan mencari next hop dan exit interface dari next hop tersebut.
  • Setelah itu, router akan mencari destination mac address dengan mengecek tabel ARP, jika tidak ditemukan, maka harus dilakukan terlebih dahulu proses ARP.
  • Dengan semua informasi seperti next hop ip address dan destination mac address, router dapat membuat frame baru dengan terlebih dahulu mengurangi 1 TTL dari layer 3 header.
  • Frame keluar dari exit interface.

Jari proses routing ini tidaklah mudah karena membutuhkan banyak pencarian seperti pencarian network di table routing dan juga perncarian ARP dan ini dilakukan setiap packet yang masuk ke router, bayangkan berapa packet yang harus melewati proses ini jika diimplementasikan di dunia nyata. Proses routing ini juga berjalan di software based yang sangat membebani processor router dan sangat tidak efisien.

Solution

Cisco telah mengembangkan beberapa cara (dalam hal ini 2 cara) untuk meningkatkan efisiensi dari proses forwarding packet diatas. Tapi sebelum kita mengenal lebih jauh tentang solusi tersebut, mari kita bahas tentang control plane, data plane, ASIC, TCAM dan CAM terlebih dahulu.

Control Plane

Control plane bertanggung jawab untuk membuat routing tabel pada router, selain itu control plane juga bertugas membuat ARP table dan tempat berjalannya protokol routing. Jika sebuah packet ditujukan kepada router, maka packet tersebut akan memasuki control plane.

Data Plane

Data plane atau forwarding plane betanggung jawab untuk melewatkan trafik yang tidak ditujukan kepada router. Di data plane terdapat ASIC (yang dalam hal ini adalah CAM dan TCAM) yang digunakan untuk melewatkan trafik sehingga tidak perlu membaca routing dan ARP table di control plane.

control-vs-data-plane

ASIC

ASIC atau Application-specific integrated circuit adalah sebuah chip yang didesain untuk menjalankan sebuah fungsi spesifik tertentu. ASIC sendiri dalam jaringan banyak digunakan untuk menyimpan sebuah CAM dan TCAM table. Berikut video yang menjelaskan lebih dalam tentang ASIC.

CAM Table

CAM table atau Content Addressable Memory adalah tabel pada ASIC yang digunakan untuk menyimpan informasi dari layer 2 seperti :

  • Source MAC Address,
  • Interface dimana MAC Address tersebut dipelajari,
  • dan termasuk VLAN yang mana MAC Address tersebut.

CAM table sangatlah cepat karena hanya menghasilkan antara 1 (match) atau 0 (not match).

TCAM Table

TCAM table atau Ternary Content Addressable Memory adalah tabel pada ASIC yang digunakan untuk menyimpan informasi layer 3 seperti :

  • Tabel routing
  • Access lists

Ada dua solusi untuk mengatasi dan mempercepat proses forwarding di layer 3, sebuah metode forwarding lain yaitu Fast Switching dan Cisco Express Forwarding.

Fast Switching

Fast switching adalah metode forwarding yang sama seperti metode forwarding layer 3 biasa, dimana packet pertama yang melewati router akan memasuki control plane dan diproses oleh processor, setelah itu data-data akan di duplikat kedalam hardware didalam data plane. Jika ada packet yang masih berkaitan dengan packet yang pertama, maka hanya perlu melewati data plane saja untuk sampai ke tujuannya.

fast switchingKonsep ini tidak terlalu efisien karena jika banyaknya packet yang berbeda-beda jenisnya akan melalui control plane terlebih dahulu.

Cisco Express Forwarding

Berbeda dengan fast switching, cisco express forwarding atau yang biasa di singkat CEF adalah konsep dimana data-data di control plane seperti routing table dan arp table akan diduplikasi terlebih dahulu kedalam data plane. Sesaat setelah routing table terbentuk, maka data di routing table (RIB table) akan diduplikasi kedalam CEF table (atau FIB table), sedangkan arp table akan diduplikasi kedalam adjacency table.

cisco express forwarding

CEF table dan adjacency table terletak di data plane didalam sebuah ASIC (TCAM dan CAM).

cef

CEF adalah metode forwarding yang tercepat karena packet tidak perlu melewati control plane terlebih dahulu. Kemampuan pembacaan didalam forwarding table sangat cepat karena adanya TCAM dan CAM. TCAM mampu membaca database secara paralel dan terpisah dari processor.

CEF in Cisco IOS

Mari buat sebuah kasus dan mempelajari bagaimana CEF bekerja di router cisco, berikut topologinya :cef topologyPada dasarnya, CEF akan otomatis aktif jika kita menjalankan router. Untuk memverifikasi CEF pada cisco, dapat menggunakan beberapa perintah berikut :

  • show ip cef
  • show adjanecy
  • show ip route
  • show arp

Dengan sebuah routing protokol, maka seperti inilah tampilan routing table pada R1

Mari kita lihat tabel CEFnya, ada beberapa kondisi seperti receive, attached,dan drop.

  • Attached berarti merupakan network atau host yang terhubung secara langsung dengan router.
  • Receive berarti prefix tersebut ditujukan kepada router,dimana akan dilanjutkan ke control plane.
  • Drop berarti  packet tersebut di drop.

Sekarang fokus ke local network terlebih dahulu. jika kita mengecek tabel ARP,bisa dilihat kita mempunyai 3 entry arp dimana 2 diantaranya merupakan ip address router R1,sedangkan yang lain merupakan ip address router tetangga (didapatkan karena mengaktifkan routing table).

Begitu juga dengan adjacency table, kita hanya melihat satu entry dimana entry tersebut merupakan database dari router tetangga. (database yang disalin dari arp table ke adjacency table hanyalah database remote network atau host, bukan database arp interface sendiri).

Jika kita melakukan ping ke client local pertama kalinya, akan terlihat satu kali error, kenapa? karena disitulah proses ARP berjalan.

Mari kita lihat tabel ARP, ARP akan mencatat ip address dan mac address dari client local.

Lalu bagaimana dengan adjacency table?

Mari kita lihat secara detail entry dari client local,

Salah satu yang penting adalah beberapa susun hexa,dalam hal ini adalah 005079666803AABBCC0010100800, hexa tersebut terdiri dari destinasi mac address, source mac address, dan ethertype.

  • 005079666803 adalah destination mac address
  • AABBCC001010 adalah source mac address

  • 0800 adalah ethertype

Mari kita lihat lagi CEF tablenya,

bisa kita lihat, ada tambahan informasi tentang host 192.168.1.2 di table cef.

Terima kasih kepada CEF table dan Adjacency table yang mempunyai informasi lengkap tentang layer 3 dan layer 2 seperti next hop address, source mac address, destination mac address sehingga router dapat melakukan proces forwarding dengan sangat cepat.

Berikut video yang disarankan untuk mempelajari CEF

Sumber :

  1. Difference Between Control Plane & Data Plane
  2. How can router decide so fast?
  3. CAM vs Adjacency Table
  4. What is the difference between the RIB and FIB?
  5. CEF (Cisco Express Forwarding)