প্রশ্নটি একটি মাত্র খোঁজের মতো শোনায়, আসলে তিনটি সিদ্ধান্ত। binding request কোন পথ নেয়, কার্নেল সেই পথের জন্য কোন উৎস বেছে নেয় এবং পথে কিছু সেই উৎস পুনরায় লেখে কি না। এর যেকোনো একটি বদলান এবং STUN সার্ভার যে ঠিকানা জানায় সেটিও তার সাথে বদলে যায়। তাই VPN রাউটারে আছে বলে দেওয়া নিজে থেকে প্রায় কিছুই বলে না।

সিদ্ধান্ত তিনটি তথ্যে দাঁড়িয়ে আছে

প্রথমে পথ: নীতি নিয়ম ও রুটিং টেবিল ঠিক করে অনুরোধ সুড়ঙ্গ দিয়ে বেরোবে না সাধারণ WAN দিয়ে, এবং বাদ দেওয়া গন্তব্য সুড়ঙ্গ সক্রিয় থাকলেও দ্বিতীয় পথ নেয়। তারপর উৎস: কার্নেল নির্বাচিত পথের জন্য একটি উৎস বেছে নেয়, এবং এই নির্বাচন পথের পছন্দের উৎস ও মিলে যাওয়া যেকোনো নিয়মের উপর নির্ভর করে। শেষে অনুবাদ: পথে NAT নির্বাচিত উৎস প্রতিস্থাপন করে। প্রতিফলিত ঠিকানা তিনটির গুণফল, সুড়ঙ্গের বৈশিষ্ট্য নয়।

তিনটির একটি বদলান এবং উত্তর বদলে যায়, অথচ প্রতিটি উপাদান নিজের লগে এখনও সুস্থ দেখায়। এটাই এই রোগনির্ণয় আটকে যাওয়ার সাধারণ কারণ।

শুরু করার আগে যে প্রবাহ পরীক্ষা করছেন তার জন্য তিনটি তথ্য লিখে নিন। ইন্টারফেস, পথ ও অনুবাদ নিয়ম ফলাফল পূর্বাভাস দিতে যথেষ্ট, এবং এই পূর্বাভাসই একটি বিস্ময়কে তথ্যবহুল করে। তিনটির একটি পূরণ করতে না পারলে সেই ফাঁকই আসল প্রাপ্তি।

একটি binding request পথ ধরে অনুসরণ করুন

STUN-এর binding request সার্ভারকে পর্যবেক্ষিত উৎস পরিবহন ঠিকানা জানাতে বলে। উত্তরটি অনুরোধ যে পথ নিয়েছে তার বর্ণনা দেয়, ক্লায়েন্ট মেশিনের ইন্টারফেসের তালিকা নয়। দুই পথে দুই অনুরোধ সৎভাবে দুই ভিন্ন ঠিকানা জানাবে।

Path takenSource the reflector seesWhat it means
Tunnel to a public exit that translatesThe exit's public addressThe reflector learns nothing about the LAN
Tunnel to a private reflector, translated to the tunnel address, no later translationThat tunnel addressAn internal identifier is disclosed to that reflector
Excluded flow over the ordinary WANThe WAN addressThe tunnel was not used at all

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

হোস্ট প্রার্থী ও সার্ভার-প্রতিফলিত প্রার্থীরা ভিন্ন প্রক্রিয়া থেকে আসে, তাই প্রার্থীর তালিকা বলে না মিডিয়া আসলে কোন পথ ব্যবহার করেছে। সেশন কোথায় গেল জানতে চাইলে নির্বাচিত জোড়া পড়ুন, সংগ্রহ লগ নয়।

রাউটারের সুড়ঙ্গ ঠিকানা কী নয়

রাউটারকে দেওয়া সুড়ঙ্গ ঠিকানা রাউটারের একটি ইন্টারফেসের। LAN হোস্টে ব্রাউজারের নিজের ইন্টারফেস ঠিকানা থাকে এবং রাউটারের সুড়ঙ্গ ইন্টারফেসের সরাসরি দৃশ্য থাকে না। দুটিকে বিনিময়যোগ্য ধরলে ওয়েব পৃষ্ঠা কী শিখতে পারে সে বিষয়ে আত্মবিশ্বাসী ভুল উত্তর তৈরি হয়।

ফরওয়ার্ডিং হলো যা দুটিকে যুক্ত করে। অনুরোধ রাউটারকে রুটেড ট্রাফিক হিসেবে অতিক্রম করে, এবং তার উৎস হলো যা রুটিং ও অনুবাদ তৈরি করেছে।

সুড়ঙ্গের পথ LAN উৎস সংরক্ষণ করলে ব্যক্তিগত প্রতিফলক সেই LAN ঠিকানা জানতে পারে, যা সত্যিকারের প্রকাশ এবং সুড়ঙ্গ ঠিকানা থেকে ভিন্ন। পথ সুড়ঙ্গ ঠিকানায় অনুবাদ করলে প্রতিফলক বরং সুড়ঙ্গ ঠিকানা জানতে পারে। দুই ফলাফলই একই হোস্টে একই ব্রাউজারের সঙ্গে সামঞ্জস্যপূর্ণ, তাই পর্যবেক্ষণকে নির্দিষ্ট প্রবাহের সঙ্গে বাঁধতে হবে। অ্যাপকে দোষ দেওয়ার আগে কার্নেলকে জিজ্ঞাসা করুন কোন উৎস ব্যবহার করবে।

প্রকাশ বনাম বাইপাস: দুই প্রাপ্তি, দুই মেরামত

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

WebRTC এটি আরও দৃশ্যমান করে, ভুল না করেই, কারণ প্রার্থী সংগ্রহ করা তা নির্বাচন করার সমান নয়।

ip route get 203.0.113.7 from 192.0.2.25
ip rule show

প্রতিটি অনুমোদিত প্রতিফলক ঠিকানার জন্য পথ জিজ্ঞাসা সেই উৎসসহ চালান যা এই প্রবাহ বহন করবে বলে আশা করেন, তারপর বাদ দেওয়া পরিসরের জন্য আবার চালিয়ে দেখুন বিকল্প কী বেছে নেয়। দুই উত্তরকে আপনি যে নীতি লিখেছিলেন তার সঙ্গে তুলনা করুন। সেগুলো এমনভাবে ভিন্ন হলে যা আপনার অভিপ্রেত ছিল না, আপনি মেরামতের বিন্দু খুঁজে পেয়েছেন, ব্রাউজারের প্রার্থী তালিকা ব্যাখ্যা না করেই।

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