MTU , آموزش پیدا کردن Max MTU توسط روتر سیسکو – MTU Discovery

اینترنت وصل است، ping جواب می‌دهد، سایت‌های سبک باز می‌شوند؛ اما بعضی صفحه‌ها نیمه‌کاره می‌مانند، ایمیل با پیوست ارسال نمی‌شود، VPN وصل می‌شود ولی ترافیکی از آن رد نمی‌شود. این علائم تقریباً همیشه یک اسم دارند: مشکل MTU. خبر خوب این است که با یک ping ساده از روتر یا سوئیچ لایه ۳ سیسکو، می‌توانید حداکثر MTU مسیر تا هر مقصدی را اندازه بگیرید و مشکل را پیدا کنید.

در این مطلب MTU و MSS ، Path MTU Discovery و دلیل شکستن آن، روش اندازه‌گیری MTU مسیر با ping در IOS ، مقادیر رایج (PPPoE ، GRE ، IPsec) و راه‌حل‌ها روی روتر سیسکو را مرور می‌کنیم.

MTU در لایه‌های مختلف شبکه
MTU و سربار لایه‌های مختلف روی بسته IP

MTU در یک نگاه

MTU بزرگ‌ترین بسته IP که بدون تکه شدن از یک لینک عبور می‌کند؛ اترنت ۱۵۰۰ بایت
MSS بزرگ‌ترین داده TCP در یک segment ؛ معمولاً MTU منهای ۴۰ بایت
PMTUD کشف کوچک‌ترین MTU مسیر با بیت DF و پیام ICMP «Fragmentation Needed»
علت رایج خرابی بستن کامل ICMP در فایروال‌ها (سیاه‌چاله PMTUD)
ابزار اندازه‌گیری ping … size … df-bit و Extended Ping با Sweep
راه‌حل رایج روی روتر ip tcp adjust-mss و ip mtu روی اینترفیس یا تانل

MTU ، MSS و Fragmentation

MTU (Maximum Transmission Unit) بزرگ‌ترین اندازه بسته IP است که یک لینک می‌تواند منتقل کند. در اترنت ۱۵۰۰ بایت است. هر جا لایه‌ای به بسته اضافه شود (PPPoE ، VLAN ، GRE ، IPsec ، MPLS) ، فضای مفید کم می‌شود:

نوع اتصال سربار MTU مؤثر IP MSS متناظر
اترنت ساده — 1500 1460
PPPoE (ADSL ، VDSL ، FTTH) 8 بایت 1492 1452
GRE 24 بایت 1476 1436
GRE + IPsec بسته به الگوریتم سیسکو 1400 را پیشنهاد می‌کند 1360

اگر بسته‌ای بزرگ‌تر از MTU لینک بعدی باشد، روتر یا آن را تکه (Fragment) می‌کند، که کند و پرهزینه است، یا اگر بیت DF (Don’t Fragment) روشن باشد، آن را دور می‌ریزد و یک پیام ICMP نوع ۳ کد ۴ (Fragmentation Needed) با MTU مجاز به فرستنده برمی‌گرداند.

Path MTU Discovery و سیاه‌چاله آن

سیستم‌عامل‌های امروزی بسته‌های TCP را با بیت DF می‌فرستند و منتظرند اگر جایی از مسیر MTU کوچک‌تر بود، پیام ICMP بگیرند و اندازه بسته را کم کنند. به این سازوکار Path MTU Discovery (PMTUD) می‌گویند.

مشکل از جایی شروع می‌شود که یک مدیر شبکه به خیال امنیت، همه ICMP را روی فایروال یا روتر ببندد. در این حالت بسته بزرگ دور ریخته می‌شود، پیام ICMP به فرستنده نمی‌رسد و فرستنده بارها همان بسته بزرگ را دوباره می‌فرستد. نتیجه همان علائم آشناست: ping (که بسته کوچک است) کار می‌کند، اتصال TCP برقرار می‌شود، اما به محض اینکه داده بزرگ جابه‌جا شود، ارتباط می‌خوابد. این را PMTUD Black Hole می‌نامند.

ICMP را کامل نبندید. دست‌کم پیام‌های ICMP نوع ۳ (Unreachable ، به‌خصوص کد ۴ Fragmentation Needed) و نوع ۱۱ (Time Exceeded) را اجازه دهید. برای مقابله با سیل ICMP به‌جای بستن، از محدودسازی نرخ و CoPP استفاده کنید.

اندازه‌گیری MTU مسیر با ping روی روتر سیسکو

ایده ساده است: بسته‌های ICMP با اندازه‌های مختلف و بیت DF روشن می‌فرستیم؛ بزرگ‌ترین اندازه‌ای که جواب می‌گیرد، MTU مسیر است. توجه کنید در IOS ، عدد size کل اندازه بسته IP است (با هدرها).

R1# ping 8.8.8.8 size 1500 df-bit
Type escape sequence to abort.
Sending 5, 1500-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
Packet sent with the DF bit set
M.M.M
Success rate is 0 percent (0/5)
R1# ping 8.8.8.8 size 1492 df-bit
!!!!!
Success rate is 100 percent (5/5)

حرف M یعنی روتری در مسیر پیام «Fragmentation Needed» برگردانده؛ یعنی MTU مسیر از ۱۵۰۰ کمتر است. نقطه (.) یعنی جوابی نیامد؛ ممکن است ICMP در مسیر بسته باشد.

برای پیدا کردن عدد دقیق، از Extended Ping با قابلیت Sweep استفاده کنید که اندازه را خودکار بالا می‌برد:

R1# ping
Protocol [ip]:
Target IP address: 8.8.8.8
Repeat count [5]: 1
Datagram size [100]:
Timeout in seconds [2]: 1
Extended commands [n]: y
Source address or interface: GigabitEthernet0/0/0
Type of service [0]:
Set DF bit in IP header? [no]: yes
Validate reply data? [no]:
Data pattern [0x0000ABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]: y
Sweep min size [36]: 1450
Sweep max size [18024]: 1510
Sweep interval [1]: 1
Sending 61, [1450..1510]-byte ICMP Echos to 8.8.8.8, timeout is 1 seconds:
Packet sent with the DF bit set
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!MMMMMMMMMMMMMMMMMM
Success rate is 70 percent (43/61)

در این نمونه ۴۳ بسته اول (۱۴۵۰ تا ۱۴۹۲ بایت) جواب گرفته‌اند؛ پس MTU مسیر ۱۴۹۲ است، دقیقاً همان مقدار رایج PPPoE. از ویندوز هم می‌توانید همین آزمایش را با ping -f -l 1464 8.8.8.8 انجام دهید (در ویندوز عدد -l فقط داده است و ۲۸ بایت هدر به آن اضافه می‌شود).

راه‌حل روی روتر سیسکو

۱) تنظیم MSS ؛ مؤثرترین راه

با ip tcp adjust-mss ، روتر در بسته‌های شروع اتصال TCP (SYN) که از آن عبور می‌کنند، مقدار MSS را کم می‌کند؛ یعنی دو طرف از همان ابتدا بسته‌های کوچک‌تر می‌فرستند و به PMTUD نیازی نیست:

interface Dialer1
 description PPPoE to ISP
 ip mtu 1492
 ip tcp adjust-mss 1452
!
interface Tunnel0
 ip mtu 1400
 ip tcp adjust-mss 1360
 tunnel path-mtu-discovery

این دستور فقط روی TCP اثر دارد. برای UDP (مثل بعضی VPNها و صدا) باید MTU خود برنامه یا تانل را تنظیم کنید.

۲) تنظیم MTU اینترفیس

ip mtu اندازه بسته IP روی اینترفیس را تعیین می‌کند و روتر برای بسته‌های بزرگ‌تر پیام PMTUD می‌فرستد. دستور mtu (بدون ip) اندازه فریم لایه ۲ است و روی سوئیچ‌ها با system mtu تنظیم می‌شود؛ این دو را قاطی نکنید.

۳) PMTUD روی ترافیک خود روتر

ip tcp path-mtu-discovery

این دستور برای اتصال‌های TCP خود روتر (مثل نشست‌های BGP) PMTUD را فعال می‌کند تا به‌روزرسانی‌های بزرگ BGP در مسیرهای با MTU کمتر گیر نکنند.

پرسش‌های متداول

MTU اینترنت PPPoE من چند است؟
معمولاً ۱۴۹۲؛ با ping sweep مطمئن شوید. MSS را روی ۱۴۵۲ بگذارید.

ping جواب نمی‌دهد (نقطه) نه M ؛ یعنی چه؟
یا مقصد به ping جواب نمی‌دهد یا جایی در مسیر ICMP بسته است. با یک مقصد دیگر یا با اندازه کوچک امتحان کنید.

Jumbo Frame کمک می‌کند؟
در دیتاسنتر و بین سرورها و storage بله؛ در مسیر اینترنت نه، چون MTU اینترنت ۱۵۰۰ است. برای شبکه‌های VXLAN ، MTU underlay باید بزرگ‌تر باشد؛ ببینید آشنایی با سیسکو VXLAN.

منابع رسمی

مطالب مرتبط: سیسکو GRE چیست و کانفیگ روتر سیسکو PPPoE Dialer.

مشاوره با AKA NET

برای عیب‌یابی مشکلات MTU ، VPN و کندی ارتباطات روی شبکه‌های سیسکو با آکانت (AKA NET) تماس بگیرید.

تلفن: 09121308444  |  ایمیل: aka@aka.ir  |  aka.ir

3 فکر می‌کنند “MTU , آموزش پیدا کردن Max MTU توسط روتر سیسکو – MTU Discovery”

  1. بازتاب: آموزش پیدا کردن Max MTU توسط روتر سیسکو – Cisco Router MTU Discovery | مرکز آموزش یوسرور - هاست اشتراکی - سرور مجای با کیفیت

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *