Operasi CEF pada saklar L3 vs router

21

Saya mengerti bahwa switch L3 menggunakan CEF untuk pengiriman paket yang lebih cepat. Namun, CEF tidak akan berfungsi untuk paket yang perlu menjalani NAT. Apakah ini berarti CEF tidak digunakan oleh router tepi dan switch tepi L3? Apakah kegunaan CEF terbatas pada LAN?

Michael May
sumber

Jawaban:

8

Tentu saja NAT dapat menggunakan CEF. Ini dari panduan Cisco sendiri di sini: http://www.cisco.com/en/US/tech/tk648/tk361/technologies_q_and_a_item09186a00800e523b.shtml

Q. What kind of routing performance can be expected when using Cisco IOS NAT?

    A. Cisco IOS NAT supports Cisco Express Forwarding switching, fast switching, and process switching. For 12.4T release and later, fast-switching path is no longer supported. For Cat6k platform, the switching order is Netflow (HW switching path), CEF, process path.

    Performance depends on several factors:

        The type of application and its type of traffic

        Whether IP addresses are embedded

        Exchange and inspection of multiple messages

        Source port required

        The number of translations

        Other applications running at the time

        The type of hardware and processor

Platform yang lebih besar yang menjalankan IOS-XR, di mana FIB didistribusikan ke kartu garis, juga mendukung NAT tingkat operator, jadi kegunaannya tidak terbatas pada LAN saja.

Juga banyak switch L3 Cisco tidak melakukan NAT sama sekali

mellowd
sumber
2
Secara teknis pada jalur CEF dari masuk ke jalan keluar Anda memiliki titik penyisipan untuk fitur (seperti NAT). Jika titik penyisipan ini ada, fitur berfungsi dengan CEF diaktifkan. Tetapi tidak seperti pencarian L3, mungkin tidak ada keuntungan kinerja yang dapat diamati untuk fitur ini, karena CEF hanya memberikan data untuk fitur tersebut, bukan mengubah fitur itu sendiri. Tetapi sebagian besar ini adalah detail yang tidak penting, detail penting adalah, biarkan CEF diaktifkan.
ytti
18

CEF adalah kata Cisco untuk FIB mereka. Ketika di saklar L3 Anda melakukan 'sh ip cef', tidak ada informasi ini yang benar-benar digunakan untuk mendorong paket sama sekali, ini hanya perangkat lunak trie yang digunakan untuk mengisi ASIC perangkat keras.

CEF hanyalah istilah yang digunakan Cisco untuk menggambarkan kode penyimpanan / pengambilan data yang dioptimalkan, itu bukan teknologi spesifik dengan fungsi spesifik.

Di sebagian besar platform HW Anda tidak dapat menjalankan kotak tanpa CEF, karena struktur data CEF diperlukan untuk mengkompilasi informasi spesifik HW.
Beberapa fitur seperti MPLS juga memiliki ketergantungan pada struktur data CEF dan karenanya tidak akan berfungsi tanpanya.

Pergantian LAN (L2) tidak diabstraksi melalui CEF, jadi tidak bergantung pada CEF sama sekali.

Saya merekomendasikan buku ini untuk informasi terkini tentang CEF (ditulis setelah CEF utama menulis ulang sekitar 12.2S)

Jika Anda membatasi definisi CEF dari IP Trie FIB, maka jelas bahwa itu tidak dapat digunakan untuk NAPT, karena Anda tidak dapat menentukan sebelumnya apa yang dinotasikan dan di mana. Tetapi seperti yang dijelaskan, CEF bukanlah teknologi spesifik, itu konsep yang lebih luas, dan karena itu dapat diperdebatkan apakah CEF adalah fitur NAT atau bukan, saya akan salah menganggapnya sebagai fitur CEF:

bu.ip.fi#sh cef features global  | b Local
  Global Local features not attached to a specific interface:
     NAT
bu.ip.fi#

Saya tidak akan pernah menjalankan apa pun tanpa CEF dan itu mungkin hanya karena alasan warisan pilihan untuk menonaktifkannya bahkan ada. Pertimbangkan Juniper, mereka tidak memiliki istilah khusus yang mereka gunakan untuk menggambarkan konsep yang sama, karena mereka tidak perlu membedakannya dari beberapa metode alternatif, karena alternatif inferior seperti itu tidak ada.

ytti
sumber
5
Hanya untuk menambahkan ini - CEF sedang beralih jalur, pohon informasi untuk meneruskan informasi dan sebagainya, sehingga nama 'CEF' dapat digunakan dalam banyak cara dan menambah kebingungan. Sebenarnya, NAT didukung di jalur CEF (seperti juga ribuan fungsi lainnya), tetapi tabel yang dibuat CEF tidak mengandung beberapa informasi yang diperlukan untuk beralih paket murni dengan menggunakannya seperti yang ditunjukkan oleh ytti, entri tambahan perlu dikonsultasikan (mereka dibangun dan dikelola oleh kode NAT). Lagi pula, jika paket dapat diaktifkan di jalur CEF tanpa kembali ke proses switching, itu masih fitur yang didukung oleh CEF.
Łukasz Bromirski
9

Apakah ini berarti CEF tidak digunakan oleh router tepi dan switch tepi L3? Apakah kegunaan CEF terbatas pada LAN?

CEF berguna karena memungkinkan router untuk dengan cepat menulis ulang informasi Layer2 selama operasi penerusan Layer3. Router WAN harus menulis ulang informasi header Layer2 seperti halnya switch LAN ... CEF sangat berguna untuk kedua jenis router.

Pada tingkat tinggi CEF melakukan dua fungsi:

  • Berisi bayangan-salinan tabel routing, yang memetakan awalan diarahkan ke hop berikutnya
  • Berisi referensi ke tabel adjacency Layer2, yang menyediakan informasi cache tentang header Layer2 yang diperlukan untuk menulis ulang paket IP melalui jalan keluar hop berikutnya yang disebutkan dalam peluru pertama.

Contoh:

Pertimbangkan router ini yang memiliki tautan WAN HDLC pada Serial1 / 0, dan koneksi LAN melalui FastEthernet0 / 0 ...

R1#show adjacency internal
Protocol Interface                 Address
IP       Serial1/0                 point2point(5)
                                   0 packets, 0 bytes
                                   0F000800             <--------- HDLC Header rewrite info
                                   CEF   expires: 00:02:17
                                         refresh: 00:00:17
                                   Epoch: 0
                                   Fast adjacency disabled
                                   IP redirect enabled
                                   IP mtu 1500 (0x0)
                                   Fixup disabled
                                   Adjacency pointer 0x6663D3E0, refCount 5
                                   Connection Id 0x000000
                                   Bucket 6

Misalkan paket IPv4 menuju ke 192.0.2.1 memasuki router dari FastEthernet0 / 0 pada LAN, dan harus keluar dari Serial1 / 0 pada WAN (fakta bahwa ia keluar dari Serial1 / 0 ditemukan dalam tabel CEF ... dan CEF tabel referensi tabel kedekatan).

Ketika router menerima paket IPv4 dari FastEthernet0 / 0, router harus menghapus header ethernet dan menambahkan header HDLC , yang merupakan 0F000800tujuan IPv4 ( 0x0800apakah ada nilai "jenis" HDLC untuk mengatakan header berikutnya adalah IPv4).

Jika CEF tidak menembolok informasi penulisan ulang tajuk (sepele) untuk Serial1 / 0, CEF harus mencari informasi secara manual pada level proses-switch (yang sangat lambat). Nilai tabel adjacency ini tidak akan berubah selama enkapsulasi pada Serial1 / 0 tidak berubah; Oleh karena itu, Cisco IOS menyimpan informasi penulisan ulang adjacency di tabel adjacency.

Informasi penulisan ulang menjadi lebih terlibat ketika Anda melihat frame-relay atau PVC ATM.

Dokumen ini pada CCO (Document ID: 17812) dapat menjelaskan hal-hal yang lebih baik daripada yang saya bisa dengan mengulangi banyak konten CCO

Mike Pennington
sumber
Tidak akankah operasi layer 2 dikonsultasikan oleh CAM saja? Operasi-operasi Layer 3 akan berkonsultasi dengan FIB yang merupakan tempat CEF beroperasi dan jika perlu ada pemeriksaan paket yang lebih dalam pada lapisan 3 (dalam kasus sebuah paket yang perlu menjalani NAT) bukankah itu membuat CEF tidak berguna untuk router WAN?
Michael
1
CEF secara khusus tidak digunakan untuk / cache / adjacency atau l3 lookup, ini adalah 'fast-switching' (yang tidak lagi didukung sama sekali). CEF adalah pra-bangun, sehingga semua data yang mungkin Anda perlukan untuk adjacency atau l3 lookup, sudah dalam struktur yang optimal untuk mencari dengan batasan yang ditetapkan oleh platform yang diberikan.
ytti
@ytti, saya minta maaf, tetapi CEF melakukan informasi cache adjacency, saya pikir Anda semakin bingung tentang bagaimana cache dihuni (IMHO Anda menganggap paket harus disuntikkan untuk di-cache, tetapi ini tidak benar) ... Satu dari perbedaan substansial antara CEF dan metode switching lainnya (seperti fast-switching) adalah bahwa CEF sudah dihitung sebelumnya. Namun, CEF masih harus menyimpan informasi, jika tidak maka harus dilihat pada level proses-switch ... sangat lambat, dan alasan mengapa kita membutuhkan CEF untuk antarmuka LAN dan WAN.
Mike Pennington
Saya pikir kita hanya tidak setuju tentang apa artinya 'caching', tapi ya intinya adalah, ini adalah pra-bangun dan untuk banyak fitur (seperti MPLS) itu hanya struktur untuk data, tidak ada penyimpanan 'proses pengalihan' untuk mundur untuk.
ytti
@ChristianDelapena, Anda mengacaukan implementasi perangkat keras dari tabel pencarian perangkat keras (memori CAM) dengan proses perangkat lunak IOS yang mengisi tabel pencarian perangkat keras (yaitu CEF). CEF ada sehingga Anda dapat memetakan entri awalan layer3 ke informasi penulisan ulang protokol yang diperlukan di layer2 ... namun, layer2 bisa berupa banyak protokol yang berbeda, seperti frame-relay, atm, packet-over-sonet, hdlc, ppp atau ethernet. .. semua protokol ini dapat membawa IPv4, tetapi mereka membutuhkan bidang khusus yang diisi header sebelum Anda dapat mengambil paket IP tersebut dan merangkumnya untuk diproses router WAN berikutnya
Mike Pennington