Linux-এ প্রতি-রুট MTU: তিনটি আকার নিয়ন্ত্রণ, একটি রুট
ইন্টারফেস MTU, রুট MTU এবং MSS ক্ল্যাম্প ভিন্ন স্তরে কাজ করে। লুকআপে যে রুট জেতে তার সাথে বাজেট যুক্ত করুন এবং পরিবর্তনটি ফিরিয়ে আনার উপযোগী রাখুন।
Linux ক্লায়েন্টে তিনটি সেটিংস শুনতে একই রকম «প্যাকেটগুলো ছোট করুন» মনে হয়, কিন্তু সেগুলো ভিন্ন স্তরে কাজ করে। ইন্টারফেস MTU ডিভাইসের পাঠানো প্রতিটি প্যাকেট সীমিত করে। রুট MTU সেই রুট ব্যবহার করা প্যাকেট সীমিত করে, যা একটি VPN গন্তব্যের জন্য প্রায়ই আপনার আসলে যা দরকার। TCP MSS ক্ল্যাম্প দুই প্রান্ত কী নিয়ে দরকষাকষি করে তা বদলায়, এবং UDP-এর জন্য কিছুই করে না।
তিনটি নিয়ন্ত্রণ যা একই নবের মতো দেখায়
বেছে নেওয়ার আগে সেগুলো পাশাপাশি রাখুন, কারণ ভুল সারি বেছে নেওয়াই বেশিরভাগ কাজ-না-করা পরামর্শ ব্যাখ্যা করে:
| Control | Scope | What it cannot fix |
|---|---|---|
| Interface MTU | Every packet the device sends | Nothing, but it over-constrains unrelated traffic |
| Route MTU | Packets using that route | A send that the lookup never routes there |
| MSS clamp | TCP handshake on that path | UDP payload sizes and ICMP |
পুরো মেশিনের জন্য Ethernet MTU কমানো এই সমাধানের মোটা সংস্করণ। এটি কাজ করে, এবং হোস্টের প্রতিটি অন্য অ্যাপ্লিকেশনকেও ক্ষতি করে, যাদের পথ ঠিক ছিল সেগুলোসহ। প্রতি-রুট মান একই অভিপ্রায় পার্শ্বব্যয় ছাড়াই প্রকাশ করে।
তুলনাটি কেবল হোস্টের তৈরি ট্র্যাফিকের জন্য প্রযোজ্য। অন্য ক্লায়েন্টের জন্য প্যাকেট ফরওয়ার্ড করা সেই ক্লায়েন্টের নিজের পথ এবং টানেলের বাইরের বাজেট জড়িত করে, আর এই হোস্টের রুট মেট্রিক সেই সীমা পেরোয় না।
বাজেটটি লুকআপে জেতা রুটের সাথে যুক্ত করুন
একটি দৃষ্টান্তমূলক IPv4 রুট রেকর্ড এমন দেখায়:
ip -4 route get 10.60.0.20
ip -4 route add 10.60.0.0/16 dev tun-office src 10.90.0.2 mtu 1380
রেকর্ডটি পেস্ট করার মান নয়, অভিপ্রায়ের বর্ণনা হিসেবে পড়ুন। প্রিফিক্স, ডিভাইস এবং পছন্দের সোর্স আসল কনফিগারেশনের সাথে মিলতে হবে, এবং সংখ্যাটি ব্লগ পোস্ট থেকে নয়, এনক্যাপসুলেটেড পথ সম্পর্কে প্রমাণ থেকে আসতে হবে। রুট MTU ভেতরের IP প্যাকেট সীমিত করে, যা 1380 বাইটের TCP পেলোড বা 1380 বাইটের এনক্রিপ্টেড বাইরের প্যাকেটের সমান নয়।
কিছু যোগ করার আগে লুকআপ আসলে কোথায় সমাধান হয় দেখুন। নীতি নিয়ম থাকা হোস্ট একটি নির্দিষ্ট গন্তব্য main-এর বদলে অন্য টেবিল দিয়ে রুট করতে পারে, এবং কেবল main টেবিলে থাকা মেট্রিক ওই অনুরোধের কাছে অদৃশ্য। তুলনা করুন ip -4 route show table all এর সাথে ip route get-এর উত্তর মিলিয়ে দেখুন, নিয়মগুলো ব্যবহার করলে মার্ক বা নেমস্পেস প্রসঙ্গসহ। দুটি না মিললে, যে টেবিল উত্তর দিয়েছে সেটিই মেট্রিক দরকার, দেখতে বেশি গোছানোটি নয়।
mtu আর mtu lock এক নয়
ডিফল্টভাবে কার্নেল ICMP ফিডব্যাক থেকে পাথ MTU এখনো হালনাগাদ করতে পারে, পাথ MTU ডিসকভারি এজন্যেই। lock যোগ করা তা থামায়। এটি ভিন্ন সিদ্ধান্ত, একই সংখ্যা বাঁচানোর আরও জোরালো উপায় নয়, এবং IPv4-এর জন্য এটি «ভাঙো না» বিটের নথিভুক্ত ব্যবহার বদলে দেয়।
পথ মেপে থাকলে এবং যা-ই আসুক মানটি অপরিবর্তিত থাকতে চাইলে লক করা যুক্তিসঙ্গত। নেটওয়ার্ক বৈধ আকার-ফিডব্যাক পাঠালে এটি খারাপ ডিফল্ট, কারণ কার্নেল আর সমন্বয় করতে পারে না এবং ব্যর্থতা অন্য উপসর্গে সরে যায়।
পথের কোথাও ICMP ফিল্টার হলে কোনো রুট সেটিং তা ঠিক করে না। সমাধানটি ফিল্টারের জায়গায়, আর ছোট MTU হলো একটি কাজ-চালানো উপায় যা পরবর্তী পথ পরিবর্তন পর্যন্ত আসল ত্রুটি লুকায়।
টানেল সফটওয়্যার নিজস্ব আকার-নব যোগ করে
OpenVPN-এর mssfix তার নথিভুক্ত UDP টানেল ক্ষেত্রে TCP সেগমেন্টের আকার সমন্বয় করে। এটি TCP আলাপে কাজ করে, তাই এটি অপারেটিং সিস্টেমের রুট MTU-এর আরেক বানান নয়, এবং দরকষাকষি উপেক্ষা করা UDP পরিষেবাকে সাহায্য করতে পারে না।
একই পরিবর্তন-জানালায় রুট MTU, ইন্টারফেস MTU পরিবর্তন এবং MSS ক্ল্যাম্প একসাথে রাখবেন না। সমস্যা না থাকলে কোনটি কাজে লেগেছিল জানবেন না, আর যা রাখবেন তা বছরের পর বছর ট্র্যাফিক সীমিত করবে এমন কারণে যা কেউ মনে রাখে না।
এটি ফিরিয়ে আনার উপযোগী করুন, তারপর প্রমাণ করুন
রুটের আসল মালিক ঠিক করে পরিবর্তনটি পুনঃসংযোগের পর টেকে কি না। রুট গতিশীলভাবে বসানো VPN ক্লায়েন্ট সাধারণত আপনার মেট্রিক ছাড়াই তা আবার গড়ে, আর হাতে করা ip route add তখন এক দিন পরে ব্যর্থ হওয়া সমাধানের মতো দেখায়। মানটি ম্যানেজারের কনফিগারেশনে রাখুন, এবং অস্থায়ী পরীক্ষা দরকার হলে আগে আসল রুট লিখে রাখুন।
যে কাজটি আটকে গিয়েছিল তা করে এমন নতুন সংযোগ দিয়ে পরীক্ষা করুন, তারপর নিশ্চিত করুন যে অভীষ্ট ব্যক্তিগত রুট এখনো জেতে এবং অসম্পর্কিত গন্তব্য অপরিবর্তিত। টানেল আবার সংযুক্ত করে রুট আবার পড়ুন, কারণ পুনঃসংযোগে হারিয়ে যাওয়া মান সমাধান নয়।
প্রমাণ পরিবর্তন সমর্থন না করলে ম্যানেজারের মাধ্যমে ওভাররাইড সরিয়ে রুট মুছে ফেলার বদলে আসল রুট বৈশিষ্ট্য ফিরিয়ে আনুন। তারপর কী মেপেছেন, কোন পথে, লিখে রাখুন, যাতে পরের ব্যক্তি আসল উন্নতি আর চালু রেখে দেওয়া পরীক্ষার পার্থক্য বুঝতে পারে।