VPN-এ Google API: শুধু সাবনেট নয়, VIP-তে রুট করুন
VPC সাবনেটে রুট থাকলেও API VIP নির্বাচিত হয় না। সঠিক নাম রিজলভ করুন, VIP প্রিফিক্স অ্যাডভার্টাইজ করুন, VPC-তে ফেরার পথ রাখুন, তারপর HTTPS পরীক্ষা করুন।
SSH দিয়ে অন-প্রিমাইস সার্ভারে ঢুকে টানেল তুলুন, প্রাইভেট VM উত্তর দেয়; তারপর Google API-তে প্রথম কলটি কোনো রুট ছাড়াই ব্যর্থ হয়। VM-এর সাবনেট আর API VIP দুটি আলাদা গন্তব্য, তাই একটির রুট অন্যটিকে নির্বাচন করে না। প্রাইভেট API কল কাজ করার আগে তিনটি শর্ত পূরণ হতে হবে। API-এর নাম একটি VIP-তে রিজলভ হতে হবে, VIP প্রিফিক্স টানেলের ওপর দিয়ে অ্যাডভার্টাইজ হতে হবে, আর VPC-কে জানতে হবে উত্তরটি কীভাবে ফেরত পাঠাতে হয়। পিং এসবের কিছুই বলে না, সাবনেটের একটি মেশিনে কাজ করা SSH সেশনও বলে না।
API VIP-গুলো আলাদা গন্তব্য
Google অন-প্রিমাইস API অ্যাক্সেসের জন্য আলাদা VIP প্রকাশ করে, আর API নামের জন্য আপনার DNS-কে ঠিক সেই ঠিকানাগুলোই ফেরত দিতে হয়। দুটোই ছোট প্রিফিক্স এবং কোনোটিই RFC 1918 স্পেস নয়:
| Record | Resolves to | What it does not give you |
|---|---|---|
| private.googleapis.com | 199.36.153.8/30, the general front door for Google APIs | not a bypass around a service perimeter |
| restricted.googleapis.com | 199.36.153.4/30, reachable only for services a perimeter allows | not the whole API surface, so some names stay out of reach |
পাবলিক দেখতে এমন ঠিকানা মানে এই নয় যে রুটকে টানেল ছাড়তে হবে সাধারণ ইন্টারনেটের জন্য। প্রিফিক্সগুলো আছে যাতে অন-প্রিমাইস ক্লায়েন্ট কোনো ইচ্ছামতো এগ্রেস পয়েন্টের বদলে সমর্থিত পথে Google-এর ফ্রন্ট এন্ডে পৌঁছাতে পারে। এগুলোকে টানেলের অন্তর্গত গন্তব্য হিসেবে দেখুন, প্রোব করার হোস্ট হিসেবে নয়। ইন্টারনেট এগ্রেসের জন্য লেখা ফায়ারওয়াল নিয়ম সাধারণত এগুলো ফেলে দেয়, আর এটাই কল শুরুর আগেই ব্যর্থ হওয়ার একটি সাধারণ কারণ।
কোন এন্ডপয়েন্টে পৌঁছাবেন তা DNS ঠিক করে
বেছে নেওয়া এন্ডপয়েন্টের জন্য Google যে রেকর্ড নথিভুক্ত করে, সেগুলোতে অন-প্রিমাইস রিজলভার সেট করুন, যাতে অ্যাপ্লিকেশনের প্রয়োজনীয় নামগুলো সেই VIP দিয়ে উত্তর দেয়। শুধু googleapis.com ম্যাপ করাই কোনো ইনভেন্টরি নয়: প্যাকেজ রেজিস্ট্রি, কন্টেইনার রেজিস্ট্রি আর মাইগ্রেশন কানেক্টরগুলোর নিজস্ব নথিভুক্ত নাম আছে। সীমিত VIP-ও সব সার্ভিস বহন করে না, তাই রিজলভ হওয়া একটি নাম এখনো অসমর্থিত হতে পারে। রিজলভারে হাত দেওয়ার আগে অ্যাপ্লিকেশন আসলে যে ডোমেইনগুলোতে যোগাযোগ করে সেগুলো লিখে রাখুন।
সার্ভিস নামের বদলে VPC VM ঠিকানা অনুমান করা কোনো সমাধান নয়, আর এটি সাধারণত DNS-এর ফাঁক অন্য কোনো ক্লায়েন্ট ব্যর্থ হওয়ার আগ পর্যন্ত ঢেকে রাখে।
VIP প্রিফিক্স অ্যাডভার্টাইজ করুন, বাকিটা রাখুন
BGP-ভিত্তিক সংযোগে Cloud Router-কে নির্বাচিত VIP প্রিফিক্স অ্যাডভার্টাইজ করতে হয়, যাতে অন-প্রিমাইস রাউটার নির্ধারিত সেশনের ওপর দিয়ে সেই রেঞ্জ শিখতে পারে। শুধু VPC সাবনেট অ্যাডভার্টাইজ করলে সেই রেঞ্জ যোগ হয় না, আর অন-প্রিমাইস রাউটার ওই ঠিকানাগুলোর জন্য তার ডিফল্ট পথই ব্যবহার করতে থাকে। রাউটিং টেবিলে থাকা প্রিফিক্সই একমাত্র প্রমাণ যে অ্যাডভার্টাইজমেন্ট সেশন পেরিয়েছে।
যোগ করার সময় বিদ্যমান অ্যাডভার্টাইজমেন্টগুলো সংরক্ষণ করুন, কারণ রাউটার-স্তর ও পিয়ার-স্তরের অপশনের পরিধি আলাদা, আর সেট বদলে দিলে আগে কাজ করা নেটওয়ার্কও প্রত্যাহার হয়ে যেতে পারে। তারপর পুরো রাউটারে নয়, প্রতিটি সেশনে কার্যকর অ্যাডভার্টাইজমেন্ট দেখুন। অনুপস্থিত প্রিফিক্স আর প্রত্যাহৃত প্রিফিক্স অন-প্রিমাইস দিক থেকে একই রকম দেখায়, তাই বাদ পড়া আর রিগ্রেশন আলাদা করে সেশন ভিউই।
VPC-র দিকে নিজের রুট ও ফেরার পথ দরকার
VPC-র ভেতরে VIP-র পথে পরবর্তী হপ হিসেবে ডিফল্ট ইন্টারনেট গেটওয়ে ব্যবহার করতে হয়, আর নাম যেমনই হোক ওই ট্রাফিক Google-এর নেটওয়ার্কেই থাকে। VPC-র VPN দিয়ে অন-প্রিমাইস উৎসে ফেরার রুটও দরকার, যা অ্যাডভার্টাইজ করা প্রিফিক্স থেকে আলাদা একটি অবজেক্ট। টানেল আর ক্লায়েন্ট একই রিজিয়নে না থাকলে নথিভুক্ত আঞ্চলিক রাউটিং প্রয়োজনীয়তা হিসাবের মধ্যে রাখুন।
ফেরার পথ আলাদাভাবে পরীক্ষা করুন, কারণ কাজ করা রিকোয়েস্টের দিক ভাঙা রিপ্লাইয়ের দিক ঢেকে রাখতে পারে। দুই দিক, দুই রুট, আর প্রতিটি নিজের লক্ষণ নিয়ে ব্যর্থ হয়।
রিকোয়েস্ট পরীক্ষা করুন, তারপর প্রত্যাখ্যান পড়ুন
এই VIP-গুলো ICMP echo-তে উত্তর দেয় না, তাই ব্যর্থ পিং কিছুই প্রমাণ করে না, আর সফল পিং খুব অল্পই প্রমাণ করে। প্রকৃত ক্লায়েন্ট থেকে নামের উত্তর ও নির্বাচিত রুট দেখুন, তারপর যে সার্ভিসটি আপনার দরকার সেখানে অনুমোদিত একটি HTTPS রিকোয়েস্ট করুন। রিকোয়েস্ট সার্ভিসে পৌঁছে প্রত্যাখ্যাত হলে ক্রেডেনশিয়াল, IAM আর প্রযোজ্য সার্ভিস পেরিমিটার নীতি দেখুন।
প্রাইভেট রাউটিং API অনুমোদন দেয় না, আর আইডেন্টিটি কী করতে পারবে সেটিও বদলায় না। ট্রান্সপোর্টের সাফল্য আর অনুমোদিত উত্তর আলাদা ফল, আর আপনার দুটোই দরকার। IPv6-এর পথও স্পষ্ট রাখুন, কারণ IPv4 প্রিফিক্স কনফিগার করলে IPv6 পছন্দ করা ক্লায়েন্ট সম্পর্কে কিছুই বলা হয় না।
Google-এর অন-প্রিমাইস Private Google Access নির্দেশিকা DNS রেকর্ড আর রাউটিং প্রয়োজনীয়তা একসঙ্গে কভার করে, তাই আপনার রিজলভার ও অ্যাডভার্টাইজমেন্ট সেটিংস কোনো ফোরাম পোস্টের সঙ্গে নয়, এর সঙ্গে মিলিয়ে দেখুন। তারপর একই রিকোয়েস্ট আবার চালিয়ে উত্তর ও রুট একই টিকিটে লিখে রাখুন।