- آموزش تحلیل Packet با Wireshark؛ از Capture تا عیبیابی حرفهای شبکه
- Wireshark چیست؟
- چرا تحلیل Packet اهمیت دارد؟
- Packet چیست؟
- نصب Wireshark
- اولین Packet Capture در Wireshark
- ساختار محیط Wireshark
- اولین قانون تحلیل Packet
- تحلیل Ethernet Frame
- تحلیل IP Packet
- تحلیل TCP؛ یکی از مهمترین بخشهای Wireshark
- فیلترهای کاربردی Wireshark
- چگونه DNS را با Wireshark تحلیل کنیم؟
- پیدا کردن TCP Retransmission
- TCP Duplicate ACK چیست؟
- TCP Reset چیست؟
- پیدا کردن Packet Loss با Wireshark
- Follow TCP Stream؛ یکی از قابلیتهای جذاب Wireshark
- بررسی HTTP با Wireshark
- آیا Wireshark میتواند HTTPS را بخواند؟
- تحلیل ARP با Wireshark
- استفاده از Wireshark برای تحلیل امنیت شبکه
- یک سناریوی واقعی Troubleshooting
- اشتباهات رایج هنگام تحلیل Packet
- یک روش حرفهای برای تحلیل Packet
آموزش تحلیل Packet با Wireshark؛ از Capture تا عیبیابی حرفهای شبکه
وقتی یک کاربر میگوید «اینترنت کند شده»، «یک سایت باز نمیشود» یا «ارتباط با سرور قطع و وصل میشود»، حدس زدن معمولاً کمکی نمیکند. برای پیدا کردن علت واقعی مشکل باید بتوانیم ببینیم در شبکه دقیقاً چه اتفاقی در حال رخ دادن است.
اینجاست که Wireshark وارد میشود.
Wireshark یکی از قدرتمندترین ابزارهای تحلیل ترافیک شبکه و Packet Capture است که به Network Engineerها و متخصصان امنیت اجازه میدهد Packetهای عبوری از یک Interface را مشاهده، فیلتر و تحلیل کنند.
در این آموزش یاد میگیریم چگونه با Wireshark یک Packet را از لایه Ethernet تا TCP و Application بررسی کنیم، مشکلات رایج شبکه را پیدا کنیم و از روی Packetها به Root Cause برسیم.
Wireshark چیست؟
Wireshark یک Network Protocol Analyzer متنباز است که برای Capture و تحلیل ترافیک شبکه استفاده میشود.
به زبان ساده، Wireshark به شما اجازه میدهد بهجای اینکه فقط بگویید:
«شبکه مشکل دارد.»
ببینید:
«ارتباط TCP برقرار شده، اما Server به بعضی Packetها پاسخ نمیدهد و Retransmission اتفاق افتاده است.»
این تفاوت، همان چیزی است که Network Troubleshooting حرفهای را از آزمون و خطا جدا میکند.
Wireshark میتواند Protocolهای مختلفی مانند موارد زیر را تحلیل کند:
- Ethernet
- ARP
- IPv4 / IPv6
- ICMP
- TCP
- UDP
- DNS
- DHCP
- HTTP
- TLS
- SMB
- و بسیاری از پروتکلهای دیگر
چرا تحلیل Packet اهمیت دارد؟
فرض کنید کاربر میگوید:
«اینترنت من خیلی کند شده.»
این جمله بهتنهایی اطلاعات زیادی در اختیار شما قرار نمیدهد.
ممکن است مشکل از یکی از موارد زیر باشد:
- DNS
- Packet Loss
- افزایش Latency
- TCP Retransmission
- MTU
- Firewall
- Routing
- Server
- Application
- یا حتی خود سیستم کاربر
Wireshark کمک میکند این فرضیهها را یکییکی بررسی کنیم.
Packet چیست؟
قبل از شروع کار با Wireshark باید بدانیم Packet چیست.
وقتی یک سیستم اطلاعاتی را از طریق شبکه ارسال میکند، دادهها به بخشهای کوچکتری تقسیم میشوند و در قالب Packet یا Frame در شبکه منتقل میشوند.
برای مثال وقتی کاربر یک سایت را باز میکند، ممکن است این مسیر را داشته باشیم:
Application
↓
TCP / UDP
↓
IP
↓
Ethernet
↓
Network
هر لایه اطلاعات مخصوص خودش را به داده اضافه میکند.
به همین دلیل وقتی یک Packet را در Wireshark باز میکنیم، معمولاً با چندین لایه مواجه میشویم.
نصب Wireshark
برای شروع باید Wireshark را روی سیستم نصب کنیم.
پس از نصب، برنامه Interfaceهای شبکه سیستم را نمایش میدهد.
برای مثال:
- Ethernet
- Wi-Fi
- Loopback
- Virtual Adapter
اگر سیستم شما از طریق کابل به شبکه متصل است، معمولاً باید Interface مربوط به Ethernet را انتخاب کنید.
اگر از Wi-Fi استفاده میکنید، Interface مربوط به Wireless را انتخاب کنید.
اولین Packet Capture در Wireshark
برای شروع:
- Wireshark را باز کنید.
- Interface فعال شبکه را انتخاب کنید.
- روی آن Double Click کنید.
- Capture آغاز میشود.
اکنون Wireshark شروع به دریافت Packetها میکند.
در نگاه اول ممکن است صفحه بسیار شلوغ به نظر برسد.
اما نگران نباشید.
قرار نیست همه Packetها را یکییکی بررسی کنیم.
قدرت اصلی Wireshark در Filtering است.
ساختار محیط Wireshark
محیط Wireshark را میتوان به سه قسمت اصلی تقسیم کرد.
- Packet List
در قسمت بالایی، Packetهای Capture شده را میبینیم.
معمولاً اطلاعاتی مانند این موارد نمایش داده میشود:
- شماره Packet
- زمان
- Source
- Destination
- Protocol
- Length
- Info
مثلاً: No. Source Destination Protocol
192.168.1.10 192.168.1.1 ARP192.168.1.10 8.8.8.8 DNS192.168.1.10 142.250.x.x TCP
- Packet Details
با انتخاب یک Packet، اطلاعات داخلی آن نمایش داده میشود.
مثلاً ممکن است ساختار زیر را ببینید:
Frame
Ethernet II
Internet Protocol Version 4
Transmission Control Protocol
هر بخش را میتوان باز کرد و جزئیات آن را دید.
- Packet Bytes
در قسمت پایین، داده خام Packet بهصورت Hexadecimal و ASCII نمایش داده میشود.
برای تحلیلهای حرفهایتر این قسمت بسیار کاربردی است.
اولین قانون تحلیل Packet
یکی از مهمترین نکات در Wireshark این است:
از بالا به پایین حرکت کنید.
یعنی ابتدا مشخص کنید:
Frame
↓
Ethernet
↓
IP
↓
TCP / UDP
↓
Application
و در هر لایه بپرسید: آیا این قسمت همان چیزی است که انتظار داریم؟
تحلیل Ethernet Frame
اولین لایهای که معمولاً مشاهده میکنیم Ethernet است.
در این بخش اطلاعاتی مانند:
- Source MAC
- Destination MAC
- EtherType
را مشاهده میکنیم.
مثلاً:
Source: AA:BB:CC:11:22:33
Destination: FF:EE:DD:44:55:66
این اطلاعات به شما میگوید Frame در سطح Layer 2 از کجا به کجا در حال حرکت است.
تحلیل IP Packet
در بخش IPv4 معمولاً موارد زیر را بررسی میکنیم:
- Source IP
- Destination IP
- TTL
- Protocol
- Fragmentation
مثلاً:
Source IP: 192.168.1.20
Destination IP: 8.8.8.8
Protocol: UDP
TTL: 64
در این مرحله باید بتوانیم به چند سؤال پاسخ دهیم:
- چه کسی Packet را ارسال کرده؟
- مقصد کجاست؟
- Packet از چه پروتکلی استفاده میکند؟
تحلیل TCP؛ یکی از مهمترین بخشهای Wireshark
اگر با شبکه سروکار دارید، باید TCP را بهخوبی بشناسید.
یکی از اولین چیزهایی که در یک ارتباط TCP بررسی میکنیم، Three-Way Handshake است.
این فرآیند معمولاً به شکل زیر انجام میشود:Client Server
SYN -------------------->
<-------------------- SYN, ACK
ACK -------------------->
اگر این فرآیند بهدرستی انجام شود، ارتباط TCP برقرار میشود.
اما اگر Packetها گم شوند یا Server پاسخ ندهد، Wireshark میتواند این مشکل را نشان دهد.
فیلترهای کاربردی Wireshark</span>
یکی از مهمترین مهارتها در Wireshark استفاده از Display Filter است.
مشاهده
Packetهای یک IP
ip.addr == 192.168.1.10
مشاهده Packetهای خروجی از یک IP
ip.src == 192.168.1.10
مشاهده Packetهای ورودی به یک IP
ip.dst == 192.168.1.10
مشاهده TCP
tcp
مشاهده UDP
udp
مشاهده DNS
dns
مشاهده HTTP
http
مشاهده ترافیک HTTPS
tcp.port == 443
مشاهده ICMP
icmp
مشاهده TCP SYN
tcp.flags.syn == 1
این فیلترها فقط شروع کار هستند.
وقتی با Syntax فیلترهای Wireshark آشنا شوید، میتوانید Captureهای بسیار بزرگ را در چند ثانیه محدود کنید.
چگونه DNS را با Wireshark تحلیل کنیم؟
یکی از بهترین تمرینها، تحلیل یک DNS Query است.
فرض کنید کاربر میخواهد:
example.com
را باز کند.
سیستم ابتدا باید IP مربوط به Domain را پیدا کند.
در Wireshark میتوانیم Packetهای DNS را با فیلتر زیر مشاهده کنیم:
dns
سپس بررسی کنیم:
Client
↓
DNS Query
↓
DNS Server
↓
DNS Response
↓
IP Address
اگر Query ارسال شود اما Response دریافت نشود، باید احتمال وجود مشکل در DNS، Firewall، Routing یا دسترسی به DNS Server را بررسی کنیم.
پیدا کردن TCP Retransmission
یکی از قابلیتهای بسیار مهم Wireshark، نمایش TCP Retransmission است.
وقتی یک TCP Segment به مقصد نمیرسد یا ACK مورد انتظار دریافت نمیشود، فرستنده ممکن است آن Segment را دوباره ارسال کند.
Wireshark معمولاً چنین Packetهایی را بهعنوان:
TCP Retransmission
مشخص میکند.
برای پیدا کردن آنها میتوان از فیلتر زیر استفاده کرد:
tcp.analysis.retransmission
اما یک نکته مهم وجود دارد:
هر Retransmission الزاماً به معنی خرابی شبکه نیست.
باید شرایط Capture، Latency، Packet Loss و رفتار TCP را در کنار یکدیگر بررسی کنیم.
TCP Duplicate ACK چیست؟
Duplicate ACK زمانی رخ میدهد که Receiver یک Segment را دریافت کند، اما منتظر Segment دیگری باشد.
در چنین شرایطی ممکن است ACK تکراری ارسال شود.
در Wireshark میتوان آن را با:
tcp.analysis.duplicate_ack
بررسی کرد.
وجود تعداد زیادی Duplicate ACK میتواند نشانهای از Packet Loss یا مشکلات مسیر باشد.
TCP Reset چیست؟
گاهی در Capture با مواردی مانند:
TCP RST
مواجه میشویم.
TCP Reset میتواند به دلایل مختلف رخ دهد.
برای مثال:
- Application اتصال را بسته است.
- Server اتصال را قبول نمیکند.
- Firewall ارتباط را مسدود کرده است.
- Port موردنظر باز نیست.
- Application در سمت مقصد مشکل دارد.
بنابراین دیدن RST بهتنهایی کافی نیست.
باید ببینیم:
چه کسی RST را ارسال کرده و دقیقاً قبل از آن چه اتفاقی افتاده است؟
پیدا کردن Packet Loss با Wireshark
Packet Loss یکی از مشکلات رایج شبکه است.
علائم آن میتواند شامل موارد زیر باشد:
- کندی ارتباط
- Retransmission
- افزایش Latency
- قطع و وصل شدن Connection
- کاهش Throughput
در Wireshark میتوان با بررسی TCP Analysis، Duplicate ACK و Retransmissionها سرنخهایی از Packet Loss پیدا کرد.
اما برای تشخیص قطعی باید Capture را در نقطه مناسب شبکه انجام داد.
Follow TCP Stream؛ یکی از قابلیتهای جذاب Wireshark
یکی از قابلیتهای بسیار کاربردی Wireshark:
Follow TCP Stream
است.
با استفاده از آن میتوان ارتباط یک TCP Session را بهصورت یک جریان واحد مشاهده کرد.
این قابلیت برای بررسی ارتباط بین Client و Server بسیار مفید است.
مثلاً بهجای اینکه صدها Packet را جداگانه بررسی کنیم، میتوانیم یک Conversation مشخص را دنبال کنیم.
بررسی HTTP با Wireshark
در صورتی که ترافیک HTTP رمزنگاری نشده باشد، Wireshark میتواند اطلاعات قابل مشاهدهای از ارتباط را نمایش دهد.
برای مثال:
GET /login
Host: example.com
اما در HTTPS، محتوای Application Layer رمزنگاری میشود.
بنابراین نباید انتظار داشته باشیم که صرفاً با Capture کردن HTTPS بتوانیم محتوای رمزنگاریشده را ببینیم.
آیا Wireshark میتواند HTTPS را بخواند؟
در حالت عادی:
خیر، محتوای HTTPS رمزنگاری شده است.
اما در برخی شرایط و با در اختیار داشتن اطلاعات لازم برای Decryption میتوان ترافیک TLS را برای تحلیل مشاهده کرد.
این موضوع برای Troubleshooting و تحلیل امنیتی بسیار مهم است.
تحلیل ARP با Wireshark
ARP یکی دیگر از پروتکلهایی است که در Troubleshooting شبکه بسیار مهم است.
برای مشاهده ARP:
arp
را در Display Filter وارد کنید.
میتوانیم درخواستهایی مانند:
Who has 192.168.1.1?
و پاسخ مربوط به MAC Address را مشاهده کنیم.
اگر در شبکه رفتارهای غیرعادی ARP مشاهده شود، باید احتمال مشکلاتی مانند:
- ARP Spoofing
- ARP Poisoning
- Gateway Conflict
را بررسی کرد.
استفاده از Wireshark برای تحلیل امنیت شبکه
Wireshark فقط ابزار Troubleshooting نیست.
متخصصان امنیت نیز از آن برای بررسی رفتارهای مشکوک استفاده میکنند.
برای مثال میتوان به دنبال موارد زیر بود:
- Port Scanning
- ARP Spoofing
- DNS Tunneling
- ارتباطات غیرعادی
- ارتباط با IPهای مشکوک
- Beaconing
- حجم غیرطبیعی Traffic
- رفتارهای غیرعادی DNS
برای مثال اگر یک سیستم تعداد زیادی DNS Query غیرمعمول ارسال کند، بررسی دقیقتر Traffic میتواند اطلاعات ارزشمندی درباره رفتار آن سیستم در اختیار تحلیلگر قرار دهد.
یک سناریوی واقعی Troubleshooting
فرض کنید کاربر اعلام میکند:
«یک سایت برای من خیلی کند باز میشود، اما برای سایر کاربران مشکلی ندارد.»
بهجای تغییر DNS یا Restart کردن سیستم، ابتدا Capture میگیریم.
اگر DNS سریع پاسخ دهد اما TCP Retransmission زیادی مشاهده شود، فرضیه DNS ضعیف میشود.
اگر TCP Handshake مدت زیادی طول بکشد، باید مسیر شبکه و Firewall را بررسی کنیم.
اگر Handshake سریع باشد اما Server دیر پاسخ دهد، احتمالاً باید Server یا Application را بررسی کنیم.
این دقیقاً همان جایی است که Wireshark از یک نرمافزار ساده به یک ابزار Root Cause Analysis تبدیل میشود.
اشتباهات رایج هنگام تحلیل Packet
<strong>اشتباه اول: بررسی همه Packetها</span>
Capture ممکن است شامل هزاران یا حتی میلیونها Packet باشد.
بدون Filter، تحلیل بسیار دشوار میشود.
اشتباه دوم: تمرکز فقط روی رنگ Packetها
رنگها کمک میکنند، اما نباید صرفاً بر اساس رنگ تصمیم بگیریم.
باید Headerها و Flags را بررسی کنیم.
اشتباه سوم: تصور اینکه هر Retransmission مشکل جدی است
Retransmission یک Signal است، نه الزاماً Root Cause.
اشتباه چهارم: Capture از نقطه اشتباه
اگر Capture را در جای نامناسب بگیرید، ممکن است Packet Loss را در نقطهای مشاهده کنید که واقعاً مشکل آنجا نیست.
محل Capture اهمیت بسیار زیادی دارد.
Wireshark در کنار FortiGate
در شبکههای سازمانی، تحلیل Wireshark زمانی قدرتمندتر میشود که آن را در کنار ابزارهای دیگر استفاده کنیم.
برای مثال:
Client
↓
Switch
↓
FortiGate
↓
Internet
↓
Server
در چنین معماری میتوان Capture را در نقاط مختلف انجام داد و رفتار Packet را مقایسه کرد.
مثلاً:
Packet در سمت LAN دیده میشود اما در سمت WAN دیده نمیشود.
در این شرایط باید بررسی کنیم Packet در کدام بخش مسیر Drop شده است.
این نوع تحلیل میتواند در Troubleshooting Firewall، Routing، NAT و Security Policy بسیار مفید باشد.
یک روش حرفهای برای تحلیل Packet</h5>
=”color: #333333;”>هر زمان Capture میگیریم، این ترتیب را دنبال کنیم:
<s
trong>مرحله 1 — مشخص کردن مشکل</span>
=”color: #333333;”>مثلاً:
سایت باز نمیشود.
مرحله 2 — مشخص کردن Client و Server
Client IP
Server IP
Server Port
مرحله 3 — فیلتر کردن Traffic
ip.addr == CLIENT_IP
مرحله 4 — بررسی DNS
آیا Name Resolution انجام شده؟
مرحله 5 — بررسی TCP
آیا SYN ارسال شده؟
آیا SYN/ACK برگشته؟
آیا ACK ارسال شده؟
مرحله 6 — بررسی Application
آیا Server پاسخ Application را ارسال کرده؟
مرحله 7 — بررسی Retransmission
tcp.analysis.retransmission
مرحله 8 — پیدا کردن
در نهایت باید بتوانیم پاسخ دهیم:
مشکل دقیقاً در کدام بخش مسیر اتفاق افتاده است؟
Wireshark یکی از مهمترین ابزارهایی است که هر Network Engineer، Security Engineer و متخصص Troubleshooting باید با آن آشنا باشد.
اما یادگیری واقعی Wireshark به معنی حفظ کردن صدها Filter نیست.
مهمتر از Syntax فیلترها، توانایی خواندن رفتار شبکه از روی Packetها است.
وقتی بتوانید از روی یک Capture تشخیص دهید که:
- DNS درست کار میکند یا نه؛
- TCP Handshake کامل شده یا نه؛
- Packet Loss وجود دارد یا نه؛
- Retransmission اتفاق افتاده یا نه؛
- Server پاسخ میدهد یا نه؛
- Firewall در مسیر چه نقشی دارد؛
- و مشکل در کدام قسمت شبکه قرار دارد؛
در واقع قدم مهمی در مسیر تبدیل شدن به یک Network Troubleshooting حرفهای برداشتهاید.
Wireshark به شما اجازه میدهد بهجای حدس زدن درباره مشکل شبکه، خود Packetها را بهعنوان شواهد بررسی کنید.



