MTU 1420: কিছু সাইট কেন হ্যাং হতে পারে এবং কীভাবে ঠিক করবেন
MTU কী, 1420 কোথা থেকে আসে, “পেজ অর্ধেক লোড হয়ে হ্যাং” সমস্যাটি কেমন দেখায়, এবং এটি কীভাবে চেক ও ঠিক করবেন।
আপডেট: ২৩ আগস্ট, ২০২৬
MTU হলো নেটওয়ার্কে ফ্র্যাগমেন্টেশন ছাড়া পাঠানো যেতে পারে এমন সর্বোচ্চ প্যাকেট সাইজ। ইথারনেটে সাধারণ মান ১৫০০ বাইট। যখন ট্রাফিক কোনো টানেলের মধ্য দিয়ে যায়, তখন তার নিজস্ব হেডার কিছু জায়গা দখল করে, ফলে পেলোড কমে যায়: সাধারণত ১৪২০।
এটা নিজে থেকে কোনো সমস্যা নয়। সমস্যা শুরু হয় যখন এক পাশ মনে করে সে ১৫০০ পাঠাতে পারবে, কিন্তু পথে ১৪২০-এর একটি সেগমেন্ট থাকে এবং সেই বার্তাটি হারিয়ে যায়।
লক্ষণ কেমন দেখায়
- SSH কানেক্ট হয়, গ্রিটিং আসে, কিন্তু বড় ডিরেক্টরিতে
lsদিলে সেশন হ্যাং হয়ে যায়। - একটি পেজ লোড হওয়া শুরু হয় এবং অর্ধেক পথে আটকে যায়।
curl -I(শুধু হেডার) কাজ করে, কিন্তু সম্পূর্ণcurlহ্যাং হয়।apt updateসফল হয়,apt upgradeডাউনলোডের সময় আটকে যায়।- ছোট রিকোয়েস্ট উড়ে যায়, বড় রেসপন্স কখনো আসে না।
সাধারণ লক্ষণ একই: ছোট প্যাকেট পার হয়, বড় প্যাকেট কোনো এরর ছাড়াই উধাও হয়ে যায়। কানেকশন ড্রপ হয় না; শুধু চুপ হয়ে যায়।
এর কারণ হলো প্যাকেট সাইজ নেগোশিয়েশনের মেকানিজম ICMP সার্ভিস বার্তার উপর নির্ভর করে। পথে কেউ যদি সেগুলো ফিল্টার করে, তাহলে প্রেরক কখনো জানতে পারে না যে প্যাকেটটি অনেক বড়, আর সে বারবার সেটি পাঠাতেই থাকে।
চেক
don't-fragment বিট সেট করে একটি প্যাকেট পাঠান এবং পার না হওয়া পর্যন্ত সাইজ কমাতে থাকুন:
ping -M do -s 1472 -c 2 1.1.1.1
ping -M do -s 1392 -c 2 1.1.1.1
-s সাইজের সাথে ২৮ বাইট হেডার যোগ হয়: ১৪৭২ মানে MTU ১৫০০, আর ১৩৯২ মানে MTU ১৪২০। প্রথম অপশন ব্যর্থ হয়ে দ্বিতীয়টি সফল হলে, আপনি লিমিট খুঁজে পেয়েছেন।
ইন্টারফেসের বর্তমান মান:
ip link show
ip route get 1.1.1.1
কীভাবে ঠিক করবেন
একবারের জন্য চেক:
ip link set dev eth0 mtu 1420
স্থায়ীভাবে, systemd-networkd-এর মাধ্যমে — ফাইল /etc/systemd/network/10-eth0.network:
[Match]
Name=eth0
[Link]
MTUBytes=1420
systemctl restart systemd-networkd
যদি NetworkManager নেটওয়ার্ক ম্যানেজ করে:
nmcli connection modify "System eth0" 802-3-ethernet.mtu 1420
nmcli connection up "System eth0"
দ্বিতীয় একটি কৌশল, যা কাজে লাগে যখন আপনি MTU স্পর্শ করতে পারবেন না, তা হলো বাউন্ডারিতে TCP সেগমেন্ট সাইজ ক্ল্যাম্প করা। nftables-এ:
tcp flags syn tcp option maxseg size set rt mtu
কখন এটি আপনাকে প্রভাবিত করে
Millida VDS মেশিনে নেটওয়ার্ক ঠিকভাবে কনফিগার করা থাকে, এবং সাধারণত আপনাকে ম্যানুয়ালি MTU স্পর্শ করতে হয় না। আপনাকে এটি নিয়ে কাজ করতে হয় যখন আপনি নিজে একটি টানেল সেট আপ করেন: WireGuard, OpenVPN, GRE, অফিসের সাথে VPN, বা মেশিনগুলোর মধ্যে একটি লিংক। টানেলের ভিতরে MTU সবসময় ছোট হয়, এবং আপনাকে এটি স্পষ্টভাবে সেট করতে হবে।
WireGuard-এ [Interface] সেকশনে:
MTU = 1420
সাধারণ ভুল
| ভুল | পরিণতি |
|---|---|
| ফায়ারওয়ালে সম্পূর্ণ ICMP ব্লক করা | নিজের জন্যই প্যাকেট সাইজ নেগোশিয়েশন ভেঙে দেন |
| টানেলের শুধু এক পাশে MTU সেট করা | ট্রাফিক এক দিকে হ্যাং করে |
| এলোমেলোভাবে MTU পরিবর্তন করা | আসল কারণ ঢেকে ফেলেন: প্যাকেট লস বা সার্ভিস এরর |
ping -M doকমান্ড দিয়ে লক্ষণ রিপ্রোডিউস না করা পর্যন্ত MTU স্পর্শ করবেন না। সেই চেক ছাড়া আপনি একটি অনুমানের ভিত্তিতে কাজ করা কনফিগারেশন বদলাচ্ছেন — আর পুরোনো সমস্যার বদলে নতুন একটি সমস্যা পাচ্ছেন। ICMP সম্পূর্ণ ব্লক করবেন না; দেখুন nftables।