Cisco CCNA · 200-301 v2.0

Ethernet Frame و Forwarding در Switch

Switching را زمانی واقعاً می‌فهمی که مسیر یک Ethernet Frame را از لحظه ورود به Port تا لحظه Forward یا Drop شدن دنبال کنی. لازم نیست تمام بیت‌های Ethernet Header را حفظ کنی؛ باید بدانی Source MAC، Destination MAC، Type/Length و FCS چه اطلاعاتی می‌دهند و Switch در هر مرحله از کدام بخش Frame استفاده می‌کند.

در پایان این درس باید بتوانی
  • Frame را از Packet جدا کنی و فیلدهای لازم برای Switching را بشناسی
  • فرایند Ingress، Source Learning، Destination Lookup و Forwarding را دنبال کنی
  • Unicast، Broadcast و Multicast را از روی مقصد Layer 2 تشخیص بدهی
  • Collision Domain و Broadcast Domain را در شبکه Switch شده از هم جدا کنی
  • اثر FCS و Store-and-Forward را در تشخیص Frame خراب توضیح بدهی

ساختار Ethernet Frame و تفاوت Frame با Packet

Ethernet Frame واحدی است که روی یک Link لایه دوم جابه‌جا می‌شود. داخل Payload آن معمولاً یک Packet لایه سوم مثل IPv4 یا IPv6 قرار دارد. Router هنگام عبور بین شبکه‌ها Header لایه دوم را برای Link بعدی عوض می‌کند، اما Packet IP تا زمانی که نیاز به تغییرات معمول مسیریابی نداشته باشد همان اطلاعات لایه سوم را حمل می‌کند.

نمای ساده Encapsulation
Ethernet Frame
├─ Destination MAC
├─ Source MAC
├─ Type/Length
├─ Payload -> IP Packet
└─ FCS

برای تصمیم Layer 2، Source MAC و Destination MAC حیاتی‌اند. EtherType نیز مشخص می‌کند Payload چه پروتکلی دارد و FCS برای تشخیص خرابی Frame در مسیر استفاده می‌شود. این تفکیک کمک می‌کند در عیب‌یابی بدانیم مشکل مربوط به Frame، IP Packet یا سرویس بالاتر است.

داده‌ای که روی Ethernet جابه‌جا می‌شود در قالب Frame قرار می‌گیرد. Frame اطلاعات کنترلی لازم برای تحویل داده در شبکه محلی را همراه خودش دارد. دو فیلدی که برای Switching خیلی مهم هستند Source MAC و Destination MAC هستند.

Source MAC آدرس فرستنده Frame است. Destination MAC مشخص می‌کند Frame در Layer 2 برای چه مقصدی ساخته شده است. Switch از اولی برای یادگیری استفاده می‌کند و از دومی برای تصمیم Forwarding. همین دو نقش ساده را اگر درست نگه داری، بسیاری از خروجی‌های Switch قابل فهم می‌شوند.

برای Switching لازم نیست کل Ethernet Header را بیت‌به‌بیت حفظ کنی، اما چند فیلد مهم هستند: Destination MAC، Source MAC، Type/Length و FCS. Destination و Source را برای Forwarding و Learning شناختیم. Type به دستگاه می‌گوید Payload مربوط به چه پروتکل بالاتری است؛ مثلاً IPv4 یا IPv6. FCS برای تشخیص خطای Frame استفاده می‌شود.

این ترتیب کمک می‌کند وقتی در Packet Capture یا خروجی Interface با Frame Error روبه‌رو می‌شوی، بدانی Switch فقط «آدرس» نمی‌بیند؛ Frame ساختار مشخصی دارد و سلامت آن هم بررسی می‌شود.

Packet معمولاً واژه‌ای است که برای داده Layer 3 مثل IPv4 Packet استفاده می‌کنیم. Ethernet Frame ظرف Layer 2 است که Packet را در خودش حمل می‌کند. وقتی Packet از Router عبور می‌کند، Header Layer 2 قبلی برداشته می‌شود و برای Link بعدی Frame جدیدی ساخته می‌شود. IPهای اصلی مسیر ممکن است ثابت بمانند، ولی Source و Destination MAC در هر Segment تغییر می‌کنند.

فرق مسیر IP و MAC
PC-A -> Switch -> Router -> Switch -> Server
IP src/dst: end-to-end
MAC src/dst: changes per Layer-2 segment

این تفاوت بعداً در Routing بسیار مهم می‌شود. Switch داخل VLAN به MAC نگاه می‌کند؛ Router برای انتخاب مسیر به IP و Routing Table تکیه می‌کند.

فرایند Forwarding داخل Switch

وقتی Frame وارد Port می‌شود، Switch ابتدا وضعیت خود Frame را بررسی می‌کند، Source MAC را یاد می‌گیرد و سپس Destination MAC را در جدول همان VLAN جست‌وجو می‌کند. نتیجه Lookup مشخص می‌کند Frame Forward، Flood یا Filter شود.

الگوریتم ساده Switch
Ingress Frame
   ↓
بررسی FCS و اطلاعات FrameLearn Source MAC + VLAN + PortLookup Destination MAC در همان VLANKnown? → Forward
Unknown? → Flood
Destination روی همان Port ورودی؟ → Filter

Filtering یعنی Switch لازم نمی‌بیند Frame را از Port دیگری خارج کند. مثلاً اگر Source و Destination پشت همان Segment یا همان Port منطقی شناخته شوند، ارسال دوباره Frame از Portهای دیگر بی‌معنا است.

وقتی Frame وارد Switch می‌شود، ترتیب منطقی را این‌طور دنبال کن: اول Switch Source MAC را با Port و VLAN ورودی یاد می‌گیرد یا Entry موجود را تازه می‌کند. بعد Destination MAC را بررسی می‌کند. اگر مقصد شناخته‌شده باشد، Frame به Port مربوط Forward می‌شود. اگر Unknown Unicast باشد، Flood می‌شود. اگر Broadcast باشد، در همان VLAN Flood می‌شود.

ترتیب تصمیم
1) Learn Source MAC
2) Look up Destination MAC
3) Forward / Flood / Filter

گاهی نتیجه تصمیم این است که Frame از Port دیگری بیرون نرود. مثلاً اگر Source و Destination از نظر جدول MAC پشت همان Interface باشند، Switch دلیلی ندارد Frame را از Portهای دیگر ارسال کند. به این حذف ارسال غیرضروری می‌توان Filtering گفت. در شبکه عادی، این رفتار کمک می‌کند Traffic فقط جایی برود که لازم است.

بسیاری از Switchهای امروزی Frame را دریافت و قبل از Forward کردن صحت آن را بررسی می‌کنند. این مدل معمولاً Store-and-Forward نامیده می‌شود. مدل‌های دیگری هم وجود دارند، ولی برای CCNA مهم است بدانی Switch می‌تواند Frame خراب را براساس FCS تشخیص دهد و از Forward کردن آن جلوگیری کند.

اگر Interface Counterها FCS/CRC Error زیادی نشان دهند، مشکل را در لایه فیزیکی و Ethernet بررسی می‌کنیم؛ تغییر DNS یا VLAN در چنین شرایطی علت اصلی را حل نمی‌کند.

Unicast، Broadcast و Multicast در Forwarding

نوع Destination MAC رفتار Frame را شکل می‌دهد. Unicast برای یک مقصد مشخص است. Broadcast با Destination MAC برابر ffff.ffff.ffff برای همه اعضای همان Broadcast Domain در نظر گرفته می‌شود. Multicast برای گروهی از گیرنده‌هاست و رفتار دقیق آن می‌تواند به قابلیت‌های Switch و پروتکل‌های کنترل Multicast وابسته باشد.

نمونه Destination MAC
Unicast:   00a1.b2c3.d402
Broadcast: ffff.ffff.ffff
Multicast: آدرس گروه Multicast

در CCNA مهم است بتوانی Unknown Unicast را از Broadcast جدا کنی: Unknown Unicast مقصد مشخص دارد ولی Switch هنوز Port آن را نمی‌داند؛ Broadcast از ابتدا برای همه اعضای Broadcast Domain طراحی شده است.

Unicast یعنی Frame برای یک مقصد مشخص ساخته شده است. اگر PC-A بخواهد به PC-B داخل همان LAN داده بفرستد، Destination MAC معمولاً MAC مربوط به PC-B است. وقتی Switch این MAC را در جدول داشته باشد، Frame فقط به Port مرتبط با PC-B ارسال می‌شود.

نمونه ساده
Source:      00a1.b2c3.0001
Destination: 00a1.b2c3.0002
Type:        Unicast

Broadcast برای همه اعضای همان Broadcast Domain است. Destination MAC آن ffff.ffff.ffff است. Switch چنین Frameای را از Portهای مناسب همان VLAN بیرون می‌فرستد، به‌جز Portی که Frame از آن وارد شده است.

ARP Request در IPv4 مثال مهمی است. Client می‌داند IP مقصد داخل همان Subnet است اما MAC آن را ندارد. ARP Request را Broadcast می‌فرستد تا صاحب IP پاسخ بدهد. Switch این درخواست را در همان VLAN پخش می‌کند.

Multicast برای گروهی از دریافت‌کننده‌هاست، نه یک دستگاه و نه همه دستگاه‌ها. Ethernet برای Multicast هم MACهای مخصوص دارد. جزئیات Multicast Switching موضوع جداگانه‌ای است؛ فعلاً کافی است بدانی Destination MAC می‌تواند Unicast، Broadcast یا Multicast باشد و رفتار Switch به نوع مقصد وابسته است.

سه PC روی Gi1/0/1 تا Gi1/0/3 در VLAN 10 هستند. PC-A برای اولین بار به PC-B Frame می‌فرستد. Switch Source MAC مربوط به A را روی Port 1 یاد می‌گیرد. اگر MAC مربوط به B هنوز ناشناخته باشد، Frame در VLAN 10 به Portهای دیگر Flood می‌شود. PC-B پاسخ می‌دهد و Switch MAC آن را روی Port 2 یاد می‌گیرد. از این به بعد ارتباط Unicast بین A و B می‌تواند مستقیم‌تر Forward شود.

PC-C ممکن است Frame اول را به دلیل Flooding دریافت کند، ولی چون Destination MAC مربوط به C نیست، کارت شبکه آن Frame را به‌عنوان داده Unicast خودش قبول نمی‌کند.

Collision Domain و Broadcast Domain

هر Port فیزیکی Switch معمولاً Collision Domain جداگانه‌ای ایجاد می‌کند؛ در Ethernet Full-Duplex مدرن Collision عملاً بخشی از عملکرد عادی نیست. Broadcast Domain مفهوم متفاوتی دارد: محدوده‌ای است که Broadcast Layer 2 می‌تواند در آن پخش شود و VLAN مرز اصلی آن را تعیین می‌کند.

مرزها در یک Switch
Gi1/0/1  VLAN 10 -> Collision Domain جدا
Gi1/0/2  VLAN 10 -> Collision Domain جدا
Gi1/0/3  VLAN 20 -> Collision Domain جدا

Broadcast Domain VLAN 10: Gi1/0/1 و Gi1/0/2
Broadcast Domain VLAN 20: Gi1/0/3

در Ethernet Switch شده، هر Port Switch یک Collision Domain جدا ایجاد می‌کند. Collision به برخورد ارسال‌ها در Ethernet قدیمی Half-Duplex مربوط بود. امروزه روی لینک‌های Full-Duplex معمولی Collision انتظار نمی‌رود. با این حال مفهوم Collision Domain در CCNA کمک می‌کند تفاوت Hub و Switch را بفهمی.

Hub همه Portها را در یک محیط مشترک قرار می‌داد. Switch هر Link را جدا می‌کند و به همین دلیل هر Port یک Collision Domain مستقل است. این موضوع را با Broadcast Domain یکی نکن. VLAN است که مرز Broadcast Domain را مشخص می‌کند.

Broadcast Domain مجموعه دستگاه‌هایی است که Broadcast Layer 2 یکدیگر را دریافت می‌کنند. اگر همه Access Portهای یک Switch در یک VLAN باشند، Broadcast آن VLAN می‌تواند به اعضای همان VLAN برسد. با ایجاد VLANهای جدا، Broadcast Domainهای جدا ساخته می‌شوند.

تحلیل Frame در چند Switch و عیب‌یابی

در یک مسیر چندسوئیچی، هر Switch MAC Table خودش را دارد. Switch اول ممکن است MAC مقصد را روی Uplink یاد گرفته باشد، Switch دوم آن را روی یک Access Port. بنابراین برای ردیابی Endpoint باید جدول MAC را در هر Hop بررسی کنی و انتظار نداشته باشی همه Switchها محل نهایی Endpoint را مستقیماً بدانند.

تحلیل مسیر
PC-A -- Gi1/0/5 [SW1] Gi1/0/24 -- Gi1/0/24 [SW2] Gi1/0/8 -- PC-B

SW1: MAC PC-B -> Gi1/0/24
SW2: MAC PC-B -> Gi1/0/8

اگر Counterهای CRC/FCS روی Interface افزایش می‌یابند، موضوع با «MAC مقصد در جدول نیست» فرق دارد. اولی می‌تواند نشانه مشکل Physical/Link باشد؛ دومی بیشتر به Learning و Forwarding مربوط است. عیب‌یابی دقیق یعنی هر نشانه را در همان Layer تفسیر کنیم.

دستورها
show mac address-table
show mac address-table dynamic
show interfaces status

CLI به تو اجازه می‌دهد پیش‌بینی خودت را با وضعیت واقعی مقایسه کنی. اگر فکر می‌کنی MAC مقصد روی Gi1/0/2 است ولی جدول چیز دیگری نشان می‌دهد، قبل از تغییر Configuration باید بفهمی چرا وضعیت واقعی با انتظار تو فرق دارد.

در انتهای Ethernet Frame مقداری برای بررسی خطا قرار دارد که Frame Check Sequence یا FCS نامیده می‌شود. فرستنده آن را بر اساس محتوای Frame محاسبه می‌کند. گیرنده دوباره محاسبه را انجام می‌دهد و اگر نتیجه هماهنگ نباشد، Frame خراب تشخیص داده می‌شود.

در خروجی Cisco معمولاً با CRC Error روبه‌رو می‌شوی. CRC نام روش محاسبه‌ای است که برای این بررسی استفاده می‌شود. افزایش CRC می‌تواند با کابل معیوب، Connector بد یا بعضی مشکلات فیزیکی مرتبط باشد. این موضوع را با Collision یا IP Error یکی نکن.

اگر PC-A و PC-B در یک VLAN باشند ولی به دو Switch متفاوت وصل شوند، هر Switch MACهای مرتبط را از روی Portهای خودش یاد می‌گیرد. Switch اول ممکن است MAC مقصد را روی Uplink به Switch دوم یاد بگیرد، نه مستقیماً روی Port کاربر. این رفتار طبیعی است.

برای حمل همان VLAN بین دو Switch، لینک میان آن‌ها باید VLAN را منتقل کند. Trunk و 802.1Q در فصل بعد دقیق آموزش داده می‌شود. اینجا فقط ارتباط مفهوم را نگه دار: MAC Table همیشه «جهت رسیدن» به مقصد را نشان می‌دهد، نه لزوماً Portی که خود Endpoint مستقیم به آن وصل است.

سناریوی عملی

PC-A و PC-B در VLAN 10 هستند. در شروع MAC مربوط به PC-B در SW1 وجود ندارد. اولین Frame از PC-A به PC-B به‌عنوان Unknown Unicast در VLAN 10 Flood می‌شود. PC-B پاسخ می‌دهد؛ SW1 از Source MAC پاسخ، محل PC-B را یاد می‌گیرد. از آن لحظه Frameهای بعدی به PC-B به‌صورت Known Unicast فقط از Port مناسب خارج می‌شوند. همین سناریو نشان می‌دهد Learning و Forwarding دو مرحله جدا هستند.

اشتباهات رایج

خطاهایی که باید تشخیص بدهی

  • یکی دانستن Frame و Packet و استفاده از این دو واژه بدون توجه به لایه
  • یکی دانستن Collision Domain و Broadcast Domain
  • تصور اینکه Switch قبل از یادگیری Source MAC فقط Destination را بررسی می‌کند
  • فکر کردن به اینکه Broadcast به VLANهای دیگر هم عبور می‌کند
  • حفظ کردن اصطلاح Forwarding بدون توانایی پیش‌بینی Port خروجی
تمرین عملی

تمرین عملی

  1. در Packet Tracer یک Switch و سه PC بساز و Simulation Mode را فعال کن؛ اولین Ping و Pingهای بعدی را از نظر Flood و Unicast مقایسه کن
  2. یک Broadcast مثل ARP Request را مشاهده کن و مشخص کن کدام Portها آن را دریافت می‌کنند
  3. Frame و Packet را برای یک Ping روی کاغذ رسم کن و Source/Destination MAC و Source/Destination IP را جدا بنویس
  4. برای دو Switch متصل، MAC مقصد را روی هر دو Switch جست‌وجو کن و توضیح بده چرا Port گزارش‌شده متفاوت است
  5. Counterهای Interface را با show interfaces بررسی کن و فرق خطای CRC با Unknown Unicast را توضیح بده

نکته‌هایی که باید با خودت ببری

  • Frame واحد Layer 2 و Packet واحد Layer 3 است
  • Switch از Source MAC برای Learning و از Destination MAC برای تصمیم Forwarding استفاده می‌کند
  • Known Unicast، Unknown Unicast و Broadcast رفتار یکسان ندارند
  • VLAN مرز Broadcast Domain را مشخص می‌کند
  • هر Switch MAC Table مستقل خودش را نگه می‌دارد
  • FCS برای تشخیص خرابی Frame است و در Store-and-Forward اهمیت عملی دارد
  • Collision Domain با Broadcast Domain یک مفهوم نیست
خودسنجی

خودت را محک بزن

چرا Packet و Frame را نباید یکی بدانیم؟

Packet داده Layer 3 است که داخل Payload یک Frame Layer 2 حمل می‌شود؛ Header Layer 2 روی Linkهای مختلف می‌تواند عوض شود.

Switch بعد از ورود Frame ابتدا کدام MAC را برای Learning استفاده می‌کند؟

Source MAC.

Broadcast Domain را چه چیزی در یک شبکه سوئیچ‌شده تقسیم می‌کند؟

VLANها مرز Layer 2 Broadcast Domain را ایجاد می‌کنند.

اگر MAC مقصد روی Uplink دیده شود چه برداشتی داریم؟

Endpoint احتمالاً پشت تجهیز دیگری در آن مسیر است و باید روی Switch بعدی ادامه جست‌وجو دهیم.

FCS چه کمکی می‌کند؟

برای تشخیص خرابی Frame استفاده می‌شود و Switchهای Store-and-Forward می‌توانند قبل از ارسال Frame آن را بررسی کنند.

منابع رسمی

منابع مرجع این درس

مطالعه همیشه آزاد است

برای ذخیره پیشرفت وارد حساب شو

حساب کاربری برای آزمون و ثبت مرحله‌ها استفاده می‌شود

ورود یا ثبت‌نام