PPP ইন্টারফেসের একটি লাইনই VPN বাক্সের বেশিরভাগ রাউটিং বিতর্ক মিটিয়ে দেয়: ভেতরের ঠিকানা এবং তার পাশে ছাপা peer। সেই জুটিকে ছোট সাবনেট হিসেবে পড়ুন এবং আপনি এমন গেটওয়ে খুঁজবেন যা নেই। এটিকে একই লিংকের দুই প্রান্ত হিসেবে পড়ুন এবং পরবর্তী হপ স্পষ্ট হয়ে যায়। এখানে তুলনাটি এই দুই পাঠের মধ্যে, কারণ পরে তৈরি প্রতিটি সারণি আপনার বেছে নেওয়াটাই উত্তরাধিকার পায়। বাইরের VPN এন্ডপয়েন্ট নিয়ে এর কোনোটিই কিছু নির্ধারণ করে না।

একটি ইন্টারফেস লাইনের দুই পাঠ

এমন একটি সেশন নিন যেখানে ইন্টারফেস inet 10.64.3.9 peer 10.64.3.1/32 জানায়। সাবনেট পাঠ 10.64.3.9-কে /32 দ্বীপে একা হোস্ট ধরে এবং তারপর তার বাইরে কিছুতে পৌঁছাতে রাউটার খোঁজে। যেহেতু লিংকে অন্য একমাত্র ঠিকানা peer, তাই সেই পাঠ শেষে 10.64.3.9-কেই গেটওয়ে প্রস্তাব করে, যা বৃত্তাকার।

এন্ডপয়েন্ট পাঠটিই নথিভুক্ত। পয়েন্ট-টু-পয়েন্ট ইন্টারফেসে peer সেই একক লিংকের দূরের প্রান্তের নাম বলে, তাই 10.64.3.1-ই ব্যবহারযোগ্য পরবর্তী হপ এবং 10.64.3.9 সর্বদা কেবল উৎস ঠিকানা।

এই পার্থক্যই ঠিক করে via-তে কী থাকতে পারে। সেখানে স্থানীয় ঠিকানা লিখলে এমন রুট তৈরি হয় যা কার্নেল প্রতিবেশী পর্যন্ত সমাধান করতে পারে না, তাই এন্ট্রিটি হয় যাচাইয়ে ব্যর্থ হয় নয়তো তালিকায় সম্পূর্ণ সুস্থ দেখাতে দেখাতে ট্রাফিক গিলে ফেলে। peer কাজ করে কারণ এটি লিংকে সত্যিকারের গন্তব্য। দুই পাঠই বাইরের VPN এন্ডপয়েন্ট নিয়ে একমত, যা সম্পূর্ণ আলাদা পরিচয়: সেখানে আন্ডারলে দিয়ে পৌঁছায়, যে টানেলটি এটি শেষ করে তার দিয়ে নয়।

সেশন ইতিমধ্যে কী ইনস্টল করেছে

নিজের সারণি লেখার আগে লিংকের সঙ্গে কী এসেছে তা প্রিন্ট করুন। সমর্থিত PPP ইন্টিগ্রেশন সাধারণত সেশন স্থাপনের সময় একটি ডিভাইস রুট ও একটি peer রুট ইনস্টল করে, এবং এই দুই এন্ট্রি ইতিমধ্যেই সঠিক পাঠটি সংকেত করে।

ip -4 addr show dev ppp0
ip route show dev ppp0
ip route show table main | head -n 5

10.64.3.1 dev ppp0 proto kernel scope link src 10.64.3.9-এর মতো ডিভাইস রুট কোনো গেটওয়ে বহন করে না কারণ ইন্টারফেস নিজেই পথ। via দিয়ে peer-এর নাম নেওয়া রুট ভিন্ন আয়ুর ভিন্ন বস্তু, এবং সেশন পড়লে তা অদৃশ্য হয়। দুই রূপের যেকোনোটি কীভাবে পুনঃস্থাপিত হয় তা না দেখে স্থায়ী সারণিতে কপি করাই চালু টানেল পুনঃসংযোগের পর তার রুট হারানোর সাধারণ কারণ।

স্মৃতিতে ভরসা না করে দুই তালিকা তুলনা করুন। peer রুট main-এ থাকলেও আপনার অতিরিক্ত সারণি খালি হলে, ঠিকানা লাইনটি যা কখনো বলেনি তা আপনি শিখলেন।

নিয়ম ও সারণি আলাদা সিদ্ধান্ত

সারণি বাছাই করা ও তা ভরা স্বাধীন ধাপ, এবং ডিবাগ করার সময় এই দুটি প্রায়ই গুলিয়ে যায় তাই এখানে তুলনাটি গুরুত্বপূর্ণ। চিহ্নিত ট্রাফিককে সারণি 100-এ পাঠানো নিয়ম সারণি 100-এ মিলে যাওয়া রুট না থাকলে কিছুই করে না, এবং ভালোভাবে ভরা সারণিও তার দিকে নির্দেশ করা নিয়ম না থাকলে পৌঁছনো যায় না।

অর্ধেক ডিফল্ট রুট ডিফল্ট রুট নয়। একটি 0.0.0.0/1 IPv4 স্থানের নিচের অর্ধেক ঢাকে, তাই সবকিছু ধরার ইচ্ছার নীতির মিলে যাওয়া 128.0.0.0/1 বা সত্যিকারের default-ও দরকার। চালু কনফিগ পড়ে দুই অর্ধের একটি কপি করাই মানুষকে এমন রাউটিং লুপে ফেলার পথ যেটি কেবল কিছু নির্দিষ্ট গন্তব্যে ভাঙে।

LAN-এ থাকতে হবে এমন ঠিকানার জন্য ইচ্ছাকৃত ব্যতিক্রম রেখে দিন, এবং নির্বাচিত সারণিতে খোঁজে কিছু না পেলে কী হবে তা ঠিক করুন। স্পষ্ট ফলব্যাক রুট খালি সারণির চেয়ে ভাবা সহজ, যা পৌঁছনো যায় না এমন ফল দেয় এবং অ্যাপটিকে ভুল রুটের বদলে ভাঙা দেখায়।

খোঁজকে আপনার অ্যাপ যে প্রশ্ন করে তা জিজ্ঞাসা করুন

ip route get একটি পথ সমাধান করে; ip route show সংরক্ষিত এন্ট্রি তালিকাভুক্ত করে, এবং দুটিই কোনোটিই ভুল না হয়েও মতভেদ করতে পারে। উৎসের প্রসঙ্গ অন্তর্ভুক্ত করুন, কারণ উৎসভিত্তিক নিয়ম কেবল তখনই মেলে যখন খোঁজ উৎস বহন করে।

ip route get 198.51.100.23 from 10.64.3.9
ip route get 198.51.100.23 from 10.64.3.9 iif ppp0
ip -4 rule show

প্রথম কমান্ডটি হোস্টের দিক থেকে প্রশ্ন করে। দ্বিতীয়টি একটি প্রবেশ ইন্টারফেস যোগ করে, যা সামনে পাঠানো ট্রাফিক যা অভিজ্ঞতা করে তার কাছাকাছি, এবং উত্তর প্রায়ই অন্য সারণির দিকে নির্দেশ করে। এর কোনোটিই সরাসরি পরীক্ষা-সেবা নয়; 198.51.100.23 একটি নথি-ঠিকানা, তাই আপনার অনুমোদিত হোস্ট দিয়ে তা বদলান।

সঠিক খোঁজও কেবল প্রমাণ করে যে একটি পথ বেছে নেওয়া হয়েছে। অন্য পক্ষ ট্রাফিক গ্রহণ করে কি না বা উত্তর একই যুক্তিতে ফিরতে পারে কি না, তা বলে না।

তুলনা কোথায় উল্টে যায়

হোস্ট ট্রাফিক ও সামনে পাঠানো ট্রাফিক কেবল আলাদা খোঁজ করে না; ফেরার পথে তারা আলাদা ফিল্টারের মুখোমুখি হয়। Linux সমস্ত ইন্টারফেস ও গ্রহণকারী ইন্টারফেসের সেটিংসের মধ্যে কঠোরটির ভিত্তিতে বিপরীত-পথ যাচাই প্রয়োগ করে, তাই একটি ইন্টারফেসের মান বদলালে দৃশ্যমান প্রভাব নাও থাকতে পারে। চিহ্নভিত্তিক রাউটিং src_valid_mark সম্পর্ক যোগ করে, যেখানে উৎস বৈধ গণ্য হতে হলে চিহ্ন মিলতে হবে।

বাইরের রাউটিং ঠিক দেখালেও উত্তর হারিয়ে গেলে, স্পর্শ করার আগে কার্যকর মান পড়ুন, এবং ঘোষিত নীতি-কারণ ছাড়া সেগুলো বদলাবেন না।

sysctl net.ipv4.conf.all.rp_filter
sysctl net.ipv4.conf.ppp0.rp_filter
sysctl net.ipv4.conf.all.src_valid_mark

দুই নকশার মধ্যে প্রমাণের ভিত্তিতে বাছুন: অ্যাপ যদি PPP ঠিকানায় বাঁধা থাকে, তবে উৎস নিয়ম ও peer রুট রাখা সারণিই যথেষ্ট। বাক্সটি যদি পেছনের LAN-এর জন্য সামনে পাঠায়, তবে প্রবেশ প্রসঙ্গ ও ফেরার পথও মিলতে হবে। না মিললে পুরো মেশিনের যাচাই শিথিল করার বদলে রুটের মালিকানা ঠিক করুন।

সম্পর্কিত নিবন্ধ