যখন কোনো WebRTC পরীক্ষার পাতা 172.20.4.15 ছাপে, তখন সে জেনেছে ওই নেটওয়ার্কে একটি স্থানীয় ইন্টারফেস আছে। এটি সত্যিকারের প্রকাশ, এবং এটি «মিডিয়া VPN এক্সিট দিয়ে বেরিয়েছে» — এই সিদ্ধান্ত নয়। প্রার্থী আবিষ্কার ও প্যাকেট রাউটিং আলাদা প্রক্রিয়া, আর বেশিরভাগ লিক প্রতিবেদন দুটিকে একটিমাত্র রায়ে মিলিয়ে দেয়। আপনি কোনটি দেখছেন, সেটিই সমাধান নির্ধারণ করে।

কিছু পাঠানোর আগেই সংগ্রহ চলে

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

আধুনিক ব্রাউজার হোস্ট প্রার্থীর আক্ষরিক ঠিকানাটি mDNS নাম .local দিয়ে বদলে দিতে পারে, ফলে পাতা ব্যক্তিগত IP পড়তে পারে না। স্থানীয় নেটওয়ার্ক তবুও ওই নাম সমাধানকারী মাল্টিকাস্ট কোয়েরি দেখে, অর্থাৎ ঠিকানাটি অ্যাপ্লিকেশন থেকে লুকানো, তারের থেকে সরানো নয়।

ক্রমও গুরুত্বপূর্ণ: নতুন করে পাতা লোড হলে নতুন একটি সেট সংগ্রহ হয়, ভিন্ন TURN অ্যালোকেশন এবং সম্ভবত ভিন্ন রিফ্লেক্সিভ ম্যাপিং নিয়ে। পরস্পরবিরোধী দুটি রান অবশ্যই দুটি ভিন্ন কনফিগারেশন নয়।

তিন ধরনের প্রার্থী, তিন ধরনের প্রমাণ

প্রতিটি লাইন ভিন্ন একটি পর্যবেক্ষণ থেকে আসে। প্রতিটি ধরন ভিন্ন প্রশ্নের উত্তর দেয়, আর সারণিটি তাদের আলাদা করে যা তারা প্রমাণ করতে পারে এবং পারে না তার ভিত্তিতে।

CandidateDerived fromWhat it establishesWhat it cannot establish
HostAn interface on the deviceA local address exists in that networkThat the peer can reach it
Server-reflexiveA STUN binding responseHow a NAT mapped this sourceWhich exit the media will use
Peer-reflexiveA connectivity check that arrivedAn address seen by the far sideThat it was ever advertised
RelayA TURN allocationThe relay server accepted the sessionThat the relay carries the call

রিলে প্রার্থীকে প্রায়ই ব্যবহারকারীর ইন্টারনেট ঠিকানা ভেবে ভুল করা হয়। এটি TURN সার্ভারের, আর এর উপস্থিতি দেখায় একটি রিলে পাওয়া যাচ্ছিল, ব্রাউজার সেটি বেছে নিয়েছিল তা নয়। একই বিভ্রান্তি হোস্ট প্রার্থীর ক্ষেত্রে উল্টো দিকে চলে, যেখানে mDNS নাম ঠিকানাটি পাতার কাছ থেকে লুকায়, অথচ নেটওয়ার্ক তখনো কোয়েরিগুলো বহন করে। মান পড়ার আগে ধরনটি পড়ুন।

নির্বাচিত জোড়াই রাউটিং প্রশ্নের উত্তর দেয়

ICE প্রতিটি স্থানীয় প্রার্থীকে প্রতিটি দূরবর্তী প্রার্থীর সঙ্গে জোড়া বাঁধে, প্রতিটি জোড়ায় কানেক্টিভিটি পরীক্ষা চালায় এবং একজন বিজয়ী মনোনীত করে। সেই মনোনীত জোড়াই, যা ব্রাউজারের নিজস্ব ডায়াগনস্টিকে দেখা যায়, মিডিয়া বহন করে। তালিকার বাকি সব সম্ভাবনা যা হেরে গেছে।

বিজয়ী আপনাকে পথের আকৃতি বলে দেয়। রিলে-থেকে-রিলে TURN সার্ভার দিয়ে যায়, হোস্ট জোড়া স্থানীয় নেটওয়ার্কেই থাকে, আর সার্ভার-রিফ্লেক্সিভ জোড়া NAT দিয়ে সোজা যায়। VPN যাচাইয়ের প্রয়োজনীয় তথ্য এটিই, এবং এটি ঠিকানা তালিকা থেকে ভিন্ন তথ্য। একই প্রার্থী তালিকা নিয়ে দুটি কল ভিন্ন জোড়া নিতে পারে।

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

নিয়ন্ত্রণ লক্ষ্যের সঙ্গে মেলে, লিক স্কোরের সঙ্গে নয়

WebRTC IP-হ্যান্ডলিং স্পেসিফিকেশন কয়েকটি নীতি বর্ণনা করে: কেবল যে ইন্টারফেস ডিফল্ট রুট বহন করে তা ব্যবহার, সব ইন্টারফেস ব্যবহার, এবং প্রক্সিবিহীন UDP বন্ধ করা যাতে ট্রাফিককে রিলে বা প্রক্সি দিয়ে যেতে হয়। প্রত্যেকটি কানেক্টিভিটি ও বিলম্বের বিনিময়ে ভিন্ন ধরনের প্রকাশ মেনে নেয়। ব্রাউজার কোনটি বাস্তবায়ন করে এবং কোন নামে, তা প্ল্যাটফর্ম ও সংস্করণভেদে বদলায়।

লক্ষ্য থেকে নীতি বেছে নিন। পাতার কাছ থেকে স্থানীয় ঠিকানা লুকানো একটি লক্ষ্য; সরাসরি পিয়ার-টু-পিয়ার ট্রাফিক আটকানো আরেকটি; প্রতিটি প্যাকেট টানেলের ভেতরে রাখা তৃতীয়টি। প্রথমটি মূলত অ্যাপ্লিকেশন কী জানছে তা নিয়ে, দ্বিতীয়টি কোন পথ অনুমোদিত তা নিয়ে, আর তৃতীয়টি প্ল্যাটফর্ম বা VPN সীমান্তেও প্রয়োগ করতে হয়।

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

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