بصمة — منصة عربية لتعليم البرمجة والشبكات والإلكترونيات

Switching mechanisms: ‏RIB وFIB والـ adjacency وCAM وTCAM

بنجهّز الشبكة…
01 / ملخص التجربة

Switching mechanisms: ‏RIB وFIB والـ adjacency وCAM وTCAM

مستخدمين مش واصلين لسيرفر رغم إن الـ route موجود. هتفرق بين الـ RIB والـ FIB والـ adjacency table وتلاقي المشكلة في الـ data plane، وتشغّل CEF load sharing على مسارين، وتشوف إزاي الـ switch بيستخدم الـ CAM للـ MACs والـ TCAM للـ routes والـ ACLs.

مدة التجربة 30 دقيقة · 3 مهام

الأجهزة في بداية التجربة

  • PC1 — كمبيوتر
  • PC2 — كمبيوتر
  • PRN — كمبيوتر
  • DSW — سويتش L3
  • R2 — راوتر
  • R3 — راوتر
  • R4 — راوتر
  • SRV — سيرفر

التوصيلات

  • PC1 eth0 ↔ DSW Gi1/0/3
  • PC2 eth0 ↔ DSW Gi1/0/4
  • PRN eth0 ↔ DSW Gi1/0/5
  • DSW Gi1/0/1 ↔ R2 Gi0/0/0
  • DSW Gi1/0/2 ↔ R3 Gi0/0/0
  • R2 Gi0/0/1 ↔ R4 Gi0/0/0
  • R3 Gi0/0/1 ↔ R4 Gi0/0/1
  • R4 Gi0/0/2 ↔ SRV eth0

العناوين المضبوطة مسبقًا

  • DSW vlan: 10.1.1.1/24
  • DSW gi1/0/1: 10.0.12.1/24
  • DSW gi1/0/2: 10.0.13.1/24
  • R2 g0/0/0: 10.0.12.2/24
  • R2 g0/0/1: 10.0.24.2/24
  • R3 g0/0/0: 10.0.13.3/24
  • R3 g0/0/1: 10.0.34.3/24
  • R4 g0/0/0: 10.0.24.4/24
  • R4 g0/0/1: 10.0.34.4/24
  • R4 g0/0/2: 10.9.9.1/24
02 / المهام التي ستطبقها
  1. 01
    PC1 مش واصل لـ SRV ‏(10.9.9.10) رغم إن الـ route موجود — لاقي المشكلة في جداول الـ CEF وصلّحها

    يتحقق المعمل من PC1 يصل إلى 10.9.9.10 (ping)، على DSW: الأمر show ip cef 10.9.9.0 يظهر فيه «»، على DSW: الأمر show adjacency يظهر فيه «»

    تلميح / الحل المقترح
    على DSW: show ip route 10.9.9.0 ← الـ route موجود في الـ RIB (control plane). show ip cef 10.9.9.0 ← الـ FIB (نسخة الـ data plane من الـ RIB) بيقول nexthop 10.0.12.20. show adjacency detail ← الـ adjacency لـ 10.0.12.20 ‏(incomplete): مفيش ARP، يعني مفيش rewrite (MAC الوجهة + MAC المصدر + 0800) فالباكتات بتتعمل punt (glean) وبتقع. الـ next hop مكتوب غلط: no ip route 10.9.9.0 255.255.255.0 10.0.12.20 ثم ip route 10.9.9.0 255.255.255.0 10.0.12.2. بعد كده show adjacency detail: الـ rewrite string فيه MAC الـ R2. ملحوظة: CEF = FIB + adjacency table متحضرين مسبقًا (مش زي process switching اللي بيدور في الـ RIB لكل باكت ولا fast switching اللي بيبني cache من أول باكت)
  2. 02
    خلّي DSW يوزّع الترافيك لـ 10.9.9.0/24 على R2 وR3 (CEF load sharing)

    يتحقق المعمل من على DSW: الأمر show ip cef 10.9.9.0 255.255.255.0 يظهر فيه «»، PC1 يصل إلى 10.9.9.10 (ping)، PC2 يصل إلى 10.9.9.10 (ping)

    تلميح / الحل المقترح
    ip route 10.9.9.0 255.255.255.0 10.0.13.3 (نفس الـ AD) ← show ip cef 10.9.9.0 255.255.255.0: اتنين nexthop. الـ CEF بيوزّع per-destination: hash على (source, destination) فكل flow بياخد نفس المسار دايمًا (مفيش out-of-order) — show ip cef exact-route 10.1.1.10 10.9.9.10 وshow ip cef exact-route 10.1.1.11 10.9.9.10 ← كل واحد خارج من بورت. (per-packet بيوزّع أحسن بس بيبوّظ ترتيب الـ TCP)
  3. 03
    CAM وTCAM على DSW: ‏entry ثابتة للطابعة PRN على Gi1/0/5، وACL ‏USERS-IN على VLAN 10 تمنع telnet لـ 10.9.9.0/24 — وشوف استهلاك الـ TCAM

    يتحقق المعمل من على DSW: الأمر show mac address-table static يظهر فيه «»، على DSW: الأمر show platform hardware fed switch active fwd-asic resource tcam utilization يظهر فيه «»، على DSW: الأمر show running-config يظهر فيه «»

    تلميح / الحل المقترح
    الـ CAM (show mac address-table) بيدوّر بـ exact match على (VLAN, MAC) — الطابعة ساكتة فالـ entry بتاعتها بتعمل aging وأي unicast ليها بيتعمل flood. mac address-table static <MAC بتاع PRN من ipconfig /all> vlan 10 interface gi1/0/5. الـ TCAM (Ternary: 0/1/X) بيدوّر على value + mask في نفس الوقت — ده اللي بيخلي longest-prefix match للـ routes والـ ACLs (wildcards) يتعمل في الـ hardware بسرعة الـ line rate. ip access-list extended USERS-IN ← deny tcp any 10.9.9.0 0.0.0.255 eq 23 ← permit ip any any ← interface vlan 10 ← ip access-group USERS-IN in. بعدين: show platform hardware fed switch active fwd-asic resource tcam utilization ← Security ACL زادت (الـ ACEs + الـ implicit deny)، وIP Route Table = عدد الـ routes