آموزش جامع عیبیابی شبکه لایه ۲ تا لایه ۴
نسخه نهایی کامل – تمام نکات (نسخه بازبینی شده)
مستند کامل برای دانشجویان مهندسی شبکه، امنیت سایبری، CCNA/CCNP/CCIE
تاریخ انتشار: ۱ آذر ۱۴۰۴ (۲۱ نوامبر ۲۰۲۵)
۱. ICMP — یک پروتکل مستقل لایه ۳
توضیح آموزشی (مختصر و کاربردی): ICMP برای گزارش خطا و تبادل پیامهای کنترلی استفاده میشود — مانند پاسخ پینگ (Echo) یا پیامهای «Destination Unreachable» و «Time Exceeded». وقتی با ابزارهایی مانند ping یا traceroute کار میکنید، معمولاً با ICMP سر و کار دارید.
Ethernet Header → IP Header (Protocol: 1 = ICMP) → ICMP Header → Payload
منابع: RFC 792 (ICMPv4) – RFC 4443 (ICMPv6)
راهنمای عملی: اگر پینگ کار نمیکند ولی IP لایهٔ شبکه بهنظر درست است، از Capture پکت (با Wireshark یا tcpdump) بررسی کنید که آیا بسته ICMP ارسال میشود و آیا پاسخ برمیگردد. به فیلترهای فایروال و سیاستهای ACL در مسیر توجه داشته باشید: بسیاری از فایروالها ICMP را مسدود میکنند.
۲. ARP قبل از اولین Ping (فرایند حل آدرس)
۱. ARP Request (Broadcast) (شامل Gratuitous ARP)
۲. ARP Reply (Unicast)
۳. ICMP Echo Request → Echo Reply
اولین پینگ همیشه ۱–۱۰ میلیثانیه کندتر است زیرا فرآیند ARP باید انجام شود.
توضیح آموزشی: ARP آدرس لایهٔ ۳ (IPv4) را به MAC لایهٔ ۲ نگاشت میکند. وقتی میزبان میخواهد برای اولین بار برای آدرس مقصد در همان LAN پینگ بفرستد، ابتدا ARP برای بهدست آوردن آدرس MAC مقصد ارسال میکند. اگر ARP کش موجود نباشد، تا پاسخ ARP منتظر میماند — همین باعث تأخیر اولیه میشود.
No. Time Source Destination Protocol Info 1 0.000000 00:1a:2b:3c:4d:5e ff:ff:ff:ff:ff:ff ARP Who has 192.168.1.10? Tell 192.168.1.5 2 0.002145 00:5e:6f:78:90:ab 00:1a:2b:3c:4d:5e ARP 192.168.1.10 is at 00:5e:6f:78:90:ab 3 0.002500 192.168.1.5 192.168.1.10 ICMP Echo (ping) request 4 0.004100 192.168.1.10 192.168.1.5 ICMP Echo (ping) reply
RFC 826 (Address Resolution Protocol)
راهنمای عملی: برای مشکلزدایی:
- ابتدا جدول ARP روی مبدا و مقصد را بررسی کنید (`arp -a`, `ip neigh show`).
- اگر ARP نادرست یا دوبارهسازی (flapping) مشاهده شد، به بررسی duplicate IP، مشکلات VLAN، یا سوئیچهای misconfigured بپردازید.
- در مواردی از Gratuitous ARP برای اطلاعرسانی تغییر MAC استفاده کنید (مثلاً پس از failover).
۳. حداکثر ظرفیت دستگاه در سوئیچ و روتر (بر اساس دیتاشیت)
• Cisco Catalyst 9200/9300: تا ۳۲٬۰۰۰ MAC
• Cisco Catalyst 9400/9600 (Core/Distribution): تا ۲۵۶٬۰۰۰ MAC
• Cisco Nexus 9000 (Data Center): تا ۱٬۰۰۰٬۰۰۰ MAC
روترها (ARP Table / Route Table):
• Cisco ISR 4000 Series: تا ۱۲۸٬۰۰۰ ورودی ARP
• Cisco ASR 1000/9000: تا ۴٬۰۰۰٬۰۰۰ ورودی جدول مسیریابی (Routing Table)
منبع: Cisco Official Data Sheets – Catalyst & Nexus Series
توضیح آموزشی: ظرفیتهای CAM/ARP/RIB مهم هستند تا بدانیم چه تعداد میزبان یا مسیر یک دستگاه میتواند اداره کند. وقتی تعداد ورودیها به آستانهٔ سختافزاری میرسد، دستگاه ممکن است ورودیها را ریاستور کند یا وارد حالت software fallback شود که عملکرد شبکه را کند میکند.
راهنمای عملی:
- وقتی با مشکل «MAC table full» یا «ARP table full» روبرو شدید، باید بررسی کنید که آیا تعداد غیرطبیعی MAC یا ARP (مثلاً بهخاطر loop یا device flood) وجود دارد.
- برای محیطهای دیتاسنتر از سوئیچهایی با CAM بالا استفاده کنید و ARP/ND snooping و rate-limit را تنظیم کنید.
۴. TCP 3-Way Handshake، حالات اتصال و پایان
شرح کوتاه: TCP برای اتصالهای قابل اطمینان از الگوی 3-way handshake استفاده میکند (SYN → SYN-ACK → ACK). پایان اتصال معمولاً ۴-way انجام میشود (FIN/ACK/FIN/ACK) مگر اینکه RST صادر شود.
| مرحله | پکت | فلگها | Seq / Ack | توضیح |
|---|---|---|---|---|
| ۱ | SYN | SYN=1 | Seq = x | Client: درخواست اتصال |
| ۲ | SYN-ACK | SYN=1, ACK=1 | Seq = y, Ack = x+1 | Server: موافقم و آمادهام |
| ۳ | ACK | ACK=1 | Ack = y+1 | اتصال ESTABLISHED شد |
پایان اتصال (Graceful Shutdown – ۴-Way)
Client → FIN → Server (پایان ارسال) Client ← ACK ← Server (تایید FIN) Client ← FIN ← Server (پایان دریافت) Client → ACK → Server → CLOSED
حالات اتصال TCP (کلیدی برای netstat)
- LISTEN: سرور منتظر SYN است.
- SYN-SENT: کلاینت SYN فرستاده و منتظر پاسخ است.
- ESTABLISHED: اتصال فعال است.
- TIME-WAIT: اتصال پس از بسته شدن برای مدتی نگهداری میشود (۲×MSL).
رد اتصال (Reset - RST)
- اگر پورت بسته باشد → سرور RST میفرستد.
- اگر فایروال پکت را بیدرنگ در مسیر بلاک کند، ممکن است پیام ICMP Destination Unreachable (Type 3 Code 3) مشاهده کنید.
RFC 793 (Transmission Control Protocol)
راهنمای عملی: برای عیبیابی اتصال TCP:
- از
netstat -anیاss -tnlpوضعیت سوکتها را بررسی کنید. - با ابزارهای capture بررسی کنید که آیا SYN ارسال میشود و آیا پاسخ (SYN-ACK یا RST) دریافت میشود.
- اگر SYN ارسال میشود ولی هیچ پاسخی نیست، مسیر، ACL، یا فایروال را بررسی کنید.
۵. TTL (Time To Live) و حداکثر تعداد Hop
| سیستمعامل / تجهیز | TTL پیشفرض |
|---|---|
| Microsoft Windows | ۱۲۸ |
| Linux / macOS / BSD | ۶۴ |
| Cisco IOS / IOS-XE / NX-OS | ۲۵۵ |
| Juniper JunOS | ۶۴ یا ۲۵۵ |
رفتار تجهیزات مختلف با TTL
| تجهیز | کاهش TTL | تولید ICMP Time Exceeded |
|---|---|---|
| روتر (Router) | بله (همیشه) | بله (پیشفرض) |
| سوئیچ لایه ۲ | خیر | خیر |
| سوئیچ لایه ۳ | بله (فقط هنگام مسیریابی) | بله |
| فایروال | بله (معمولاً) | اغلب بلاک میشود |
RFC 791 (Internet Protocol)
راهنمای عملی: برای تشخیص مشکلات مسیر از traceroute استفاده کنید و به hopهایی که پاسخ نمیدهند یا زمان زیادی مصرف میکنند توجه کنید. اگر hopها نشاندهنده loop باشند، بررسی تنظیمات مسیر (static route / BGP / IGP) لازم است.
۶. انواع پیامهای ICMP (کامل)
| Type | نام | Code مهم | کاربرد |
|---|---|---|---|
| 0 | Echo Reply | 0 | پاسخ پینگ |
| 8 | Echo Request | 0 | درخواست پینگ |
| 3 | Destination Unreachable | 0: Net, 1: Host, 3: Port, 4: Frag Needed, 13: Admin Prohibited | مقصد در دسترس نیست |
| 11 | Time Exceeded | 0: TTL expired | Traceroute |
| 5 | Redirect | 0–3 | مسیر بهتر وجود دارد |
| 13 | Timestamp Request | 0 | درخواست زمان (سنجش تاخیر) |
| 14 | Timestamp Reply | 0 | پاسخ زمان |
راهنمای عملی: هنگام مواجهه با پیامهای ICMP «Destination Unreachable» به کد آن توجه کنید — مثلاً Code 3 (Port Unreachable) به شما میگوید که پورت مقصد بسته است و نیاز به بازبینی سرویس/فایروال دارد.
۷. دستورات Ping و Traceroute/Tracert – سوئیچها
سوئیچهای مهم Ping
| ویندوز | Linux/macOS | توضیح |
|---|---|---|
| -t | (Ctrl+C برای توقف) | مداوم |
| -n count | -c count | تعداد بسته |
| -l size | -s size | اندازه payload |
| -f | -M do | Don't Fragment (DF-bit) |
| -i TTL | -t TTL | تنظیم TTL |
پیادهسازی Traceroute
tracert(ویندوز): معمولاً از ICMP Echo Request استفاده میکند.traceroute(لینوکس پیشفرض): بهطور پیشفرض UDP به پورت 33434+ میفرستد.traceroute -I: استفاده از ICMP Echo.traceroute -T: استفاده از TCP SYN (مناسب برای مسیرهایی که ICMP/UDP بلاک است).
دستورات مدیریت ARP Cache
| ویندوز | Linux/macOS | توضیح |
|---|---|---|
arp -a | ip neigh show | نمایش جدول کش |
arp -d * | ip neigh flush all | پاک کردن کل کش |
arp -s IP MAC | ip neigh add IP lladdr MAC dev eth0 | ورودی استاتیک |
راهنمای عملی: اگر traceroute مسیر نشاندار ندارد (یا پاسخ نمیدهد)، سعی کنید تکنیکهای مختلف (ICMP، UDP، TCP) را امتحان کنید تا ببینید کدام پروتکل در مسیر مجاز است.
۸. Neighbor Discovery Protocol (NDP) در IPv6
| Type ICMPv6 | نام | کاربرد |
|---|---|---|
| 135 | Neighbor Solicitation (NS) | معادل ARP Request |
| 136 | Neighbor Advertisement (NA) | معادل ARP Reply |
| 133 | Router Solicitation (RS) | درخواست روتر |
| 134 | Router Advertisement (RA) | اعلام پیشوند، Gateway، DNS |
RFC 4861 (Neighbor Discovery for IP version 6)
نکتهٔ عملی: برای دیباگ IPv6 همیشه به پیامهای NDP نگاه کنید — بهویژه RS/RA که اطلاعات پیکربندی خودکار (SLAAC) را فراهم میکند. ابزارهایی مثل ndisc6 و rdisc6 در لینوکس مفیدند.
۹. NSLOOKUP، DIG و انواع رکوردهای DNS
ابزارهای پرسوجو DNS
nslookup google.com 8.8.8.8 dig @1.1.1.1 MX microsoft.com host -t AAAA ipv6.google.com
انواع رکوردهای مهم DNS
| رکورد | توضیح |
|---|---|
| A | IPv4 Address |
| AAAA | IPv6 Address |
| MX | Mail Exchanger (میل سرور) |
| CNAME | Canonical Name (نام مستعار) |
| TXT | Text (مثلاً برای SPF و DKIM) |
| PTR | Reverse DNS (برعکسسازی IP به Name) |
راهنمای عملی: برای بررسی تاخیرهای DNS و علت خطاها، از dig +trace استفاده کنید تا ببینید پرسوجو از کدام سرورهای سطحی عبور میکند. رکوردهای TTL بالاتر/پایینتر میتوانند تأثیر بسزایی روی سرعت و propagation داشته باشند.
جمعبندی نهایی – ترتیب کامل ارتباط در شبکه محلی
ARP Request → ARP Reply → ICMP Echo Request (TTL=128/64) → هر روتر TTL-- → Echo Reply
IPv6 (مثل Ping):
NS (Multicast solicited-node) → NA → ICMPv6 Echo Request
TCP (وب/SSH):
ARP/NS → TCP SYN → SYN-ACK → ACK (اتصال ESTABLISHED) → انتقال داده → FIN/FIN/ACK/ACK
این نسخه کاملترین و جامعترین مستند عیبیابی شبکه است — تهیهشده برای دانشجویان مهندسی شبکه ایران.
منابع اصلی: RFC 791, 792, 793, 826, 1035, 4443, 4861 • Data Sheets Cisco/Juniper
تهیهشده برای دانشجویان مهندسی شبکه ایران – ۱ آذر ۱۴۰۴