ডোমেইন ফ্রন্টিং কোনো VPN নয়: দুটি নাম, একটি অনুরোধ
একটি HTTPS অনুরোধে দুটি নাম কোনো টানেল নয়। ফ্রন্টিং প্রোভাইডারের রাউটিং নিয়মের উপর নির্ভর করে; VPN ঠিক করে কোন প্যাকেট কোন পথে যায়। এদের আলাদা করে আঁকুন।
দুটি কৌশল একসাথে তালিকাভুক্ত হয় কারণ দুটিতেই একটি মধ্যস্থকারী জড়িত এবং দুটিই লুকানোর মতো শোনায়। কিন্তু তারা ভিন্ন বস্তুর উপর কাজ করে। ডোমেইন ফ্রন্টিং হলো একটি HTTPS অনুরোধের কোন স্তরে কোন নাম দেখা যায় সে বিষয়ে। VPN হলো কোন প্যাকেটগুলো একটি নির্দিষ্ট পথ ধরে পিয়ারের কাছে যায় সে বিষয়ে। ফ্রন্টিংকে এক ধরনের VPN বলা এমন ডিজাইনে পৌঁছে দেয় যা কাজ করতে পারে না, আর এমন পর্যালোচনায় পৌঁছে দেয় যা ভুল প্রশ্ন করে।
দুটি নাম, দুটি স্তর
একটি TLS সংযোগ তার হ্যান্ডশেকে একটি সার্ভার নাম বহন করতে পারে। সংযোগ তৈরি হওয়ার পর HTTP অনুরোধটি যে কর্তৃত্ব চায় তা চিহ্নিত করে, সাধারণত Host হেডারে। এগুলো দুটি ফিল্ড, যা দুটি ভিন্ন মুহূর্তে দুটি ভিন্ন সফটওয়্যার অংশ পড়ে।
| Layer | What carries the name | Who reads it |
|---|---|---|
| TLS handshake | Server name indication | The TLS terminator in front of the service |
| HTTP request | Authority or Host header | The routing layer that picks a backend |
| Network path | Destination address and port | Routers, and the VPN peer if one is in use |
ডোমেইন ফ্রন্টিং প্রথম দুটির মধ্যে একটি পার্থক্য কাজে লাগায়, যাতে একটি ফ্রন্টিং সেবা সংযোগ গ্রহণ করে এবং তারপর অনুরোধটি অন্যত্র রুট করে। এটি কেবল সেখানেই কাজ করে যেখানে সেই সেবা তা রুট করতে রাজি, যা প্রোটোকল কৌশলের বদলে প্রোভাইডারের নীতির প্রশ্ন।
ফ্রন্টিং প্রোভাইডারের উপর নির্ভর করে, কৌশলের উপর নয়
একটি সীমিত উদাহরণ হিসেবে, Azure-এর Front Door এর সাধারণ প্রশ্নোত্তর ডকুমেন্টে ডোমেইন ফ্রন্টিং প্রতিরক্ষা বর্ণিত আছে। এতে একই সাবস্ক্রিপশন ও কনফিগার করা রুটের মধ্যে ডোমেইনগুলোর জন্য একটি অনুমোদিত অমিলের কথা বলা হয়েছে, এবং অমিল প্রতিরক্ষা কোনো অনুরোধ আটকালে একটি 421 Misdirected Request প্রতিক্রিয়ার কথা বলা হয়েছে।
এই একটি নথিভুক্ত নীতি একসাথে দুটি স্লোগানই নাকচ করে। ভিন্ন নামের প্রতিটি জোড়া কাজ করে না, আবার প্রতিটি অমিলও নিষিদ্ধ নয়। অন্য সেবাগুলোর নিজস্ব যাচাই, নিজস্ব স্থাপনার প্রয়োজনীয়তা এবং নিজস্ব ত্রুটি কোড আছে।
এটি অন্য নেটওয়ার্কের বিধিনিষেধ এড়ানোর নির্দেশও নয়। একটি প্রোভাইডারের রাউটিং নিয়ম পড়ে বোঝা যে সে কী অনুমোদন করে, তা স্থাপত্যের কাজ; সেই নিয়মগুলোকে এড়ানোর রেসিপি হিসেবে ধরা ভিন্ন কাজ, যার ফলাফলও ভিন্ন। আপনি যে নথি লিখছেন সেখানে এই দুই কাজ আলাদা রাখুন। দ্বিতীয়টিই পর্যালোচনায় একটি ডিজাইন প্রত্যাখ্যাত করায়।
একটি VPN আসলে কী নির্বাচন করে
একটি নেটওয়ার্ক VPN-এ রাউটিং ও প্ল্যাটফর্ম নীতি পিয়ারের দিকে একটি টানেলের জন্য ভেতরের ট্র্যাফিক নির্বাচন করে। বিন্যাস অনুসারে এটি কয়েকটি অ্যাপ্লিকেশন বা একটি নির্দিষ্ট উপসেট কভার করতে পারে, এবং এমন প্রোটোকল বহন করতে পারে যেগুলোর কোনো HTTP অনুরোধই নেই।
ফ্রন্টিং এর কোনোটিই করে না। একটি ফ্রন্টিং সেবার মাধ্যমে একটি HTTPS অনুরোধ সাজানো কোনো ব্যক্তিগত নেটওয়ার্ক রুট ইনস্টল করে না, ইচ্ছেমতো UDP অ্যাপ্লিকেশন বহন করে না, এবং ডিভাইসের প্রতিটি প্রোগ্রামকে সেবাটি ব্যবহার করতে বাধ্য করে না। আপনার যদি সেই কভারেজ দরকার হয়, তবে প্রক্সি বা টানেল দরকার, নামের কৌশল নয়।
এই কারণেই পর্যালোচনায় দুটিকে গুলিয়ে ফেলা হয়: দুটিকেই মধ্যস্থকারী হিসেবে বর্ণনা করা হয়, আর দুটিই অ্যাক্সেস নিয়ে নথিতে দেখা যায়। প্রত্যেকটি যে ইন্টারফেস দেয় তা সম্পূর্ণ ভিন্ন, এবং তাদের একটিই নেটওয়ার্ক পথ।
দৃশ্যমানতা দ্বিমুখী নয়
তুলনাটিও কেবল লুকানো বনাম দৃশ্যমান নয়। DNS অনুসন্ধান, গন্তব্য ঠিকানা, হ্যান্ডশেকের বৈশিষ্ট্য, প্যাকেটের আকার ও সময় — সবই সেই ব্যক্তির কাছে পর্যবেক্ষণযোগ্য থাকে যে সেগুলো দেখার অবস্থানে আছে, আর সেই পর্যবেক্ষক কী শেখে তা নির্ভর করে সে কোথায় বসে আছে তার উপর।
অ্যাপ্লিকেশন ডেটাও সেই প্রান্তবিন্দুগুলোতে দৃশ্যমান যেগুলো তা সমাপ্ত করে। যে ফ্রন্টিং সেবা আপনার অনুরোধ রুট করে তা সেই প্রান্তবিন্দুগুলোর একটি, আর একটি VPN পিয়ার আরেকটি। কোনোটিই সেই পক্ষের কাছে বিষয়বস্তু অস্পষ্ট করে না, যাকে আপনাকে সেবা দিতে তা পড়তে হয়।
তিনটি বাক্স আঁকুন
একটি স্থাপত্য পর্যালোচনার জন্য TLS প্রান্তবিন্দু, HTTP রাউটিং সেবা এবং চূড়ান্ত অ্যাপ্লিকেশনকে তিনটি আলাদা বাক্স হিসেবে আঁকুন, তারপর যেকোনো VPN পিয়ারকে আবার অন্য কোথাও আঁকুন। যে জায়গাটি একটি ওয়েব গন্তব্য বেছে নেয় আর যে জায়গাটি ব্যক্তিগত নেটওয়ার্কের প্যাকেট পরিবহন করে, তাদের একই সিস্টেম হওয়ার দরকার নেই, এবং সাধারণত হয় না।
বাক্সগুলো আলাদা হয়ে গেলে প্রশ্নগুলোর উত্তর দেওয়া যায়: এই প্রোভাইডার কোন নাম গ্রহণ করে, কোন প্রোটোকলের পরিবহন দরকার, এবং কোন পক্ষ কী দেখতে পারে। যে ডায়াগ্রাম এগুলোকে মিলিয়ে দেয়, তা এমন ডিজাইন তৈরি করে যা কেউ বাস্তবায়ন করতে পারে না, আর এমন পর্যালোচনা যা শব্দভাণ্ডার নিয়ে তর্ক করে।