VGW BGP বিজ্ঞপ্তি বনাম VPC রুট টেবিল: কী কী বদলায়
একটি VPC রুট টেবিল সাবনেট ফরওয়ার্ডিং নিয়ন্ত্রণ করে; এটি ভার্চুয়াল প্রাইভেট গেটওয়ে BGP-তে যা ঘোষণা করে তা বদলায় না। প্রতিটি দিক আলাদাভাবে অনুসরণ করুন।
একটি VPC সাবনেট রুট টেবিলে অনুপস্থিত প্রিফিক্স আর গ্রাহকের রাউটারে অনুপস্থিত প্রিফিক্স দুটি ভিন্ন ত্রুটি, এবং এর মধ্যে একটিই AWS রুট টেবিলের ভেতরে মেরামত হয়। ভার্চুয়াল প্রাইভেট গেটওয়ে তার VPC-এর সঙ্গে যুক্ত CIDR ব্লকগুলি ঘোষণা করে; সাবনেট রুট টেবিল ঠিক করে একটি ওয়ার্কলোড তার উত্তর কোথায় পাঠাবে। দ্বিতীয়টিকে প্রথমটি বদলানোর উপায় হিসেবে দেখা এই ডায়াগনোসিসে সবচেয়ে সাধারণ ভুল মোড়। নিচের পরীক্ষাগুলি ক্রমানুসারে চালান এবং দুই দিক আলাদা রাখুন।
যেকোনো টেবিল পড়ার আগে অ্যাটাচমেন্টের নাম নির্ধারণ করুন
একটি Site-to-Site VPN হয় ভার্চুয়াল প্রাইভেট গেটওয়েতে, নয়তো ট্রানজিট গেটওয়েতে শেষ হয়, এবং রিসোর্স আইডিগুলো ঠিক করে কোন রাউটিং মডেল প্রযোজ্য। প্রথমে সেগুলো পড়ুন: aws ec2 describe-vpn-connections --vpn-connection-ids vpn-0123456789abcdef0 --query 'VpnConnections[].{Tunnels:VgwTelemetry,Gateway:GatewayId,Transit:TransitGatewayId}'. উত্তরটি আপনাকে জানায় পরের যে টেবিলটি দেখতে হবে সেটি VPC রুট টেবিল, নাকি ট্রানজিট গেটওয়ে রুট টেবিল।
VPN যদি ট্রানজিট গেটওয়েতে যুক্ত থাকে, তবে VPC রুট টেবিলকে কন্ট্রোল প্লেন হিসেবে বিবেচনা করা বন্ধ করুন। সেখানে VPC টেবিল গেটওয়ে অ্যাটাচমেন্টের দিকে ইঙ্গিত করে, আর অ্যাসোসিয়েশন ও প্রক্যাগেশন ঘটে ট্রানজিট গেটওয়ে রুট টেবিলে। দুটি দৃষ্টিভঙ্গি মিশিয়ে ফেললে ভুল বস্তু সম্পর্কে আত্মবিশ্বাসী সিদ্ধান্তে পৌঁছানো হয়।
AWS থেকে অফিসের দিকটি একটি ঘোষণা
একটি VGW অ্যাটাচমেন্টের জন্য গেটওয়ে তার VPC-এর সঙ্গে যুক্ত CIDR ব্লকগুলি গ্রাহক গেটওয়েকে BGP-এর মাধ্যমে ঘোষণা করে। আলাদা একটি সাবনেট রুট যোগ করা, বা কোনো রুট পিয়ার করা VPC বা কোনো অ্যাপ্লায়েন্সের দিকে নির্দেশ করা, আরেকটি যুক্ত CIDR যোগ করে না এবং ওই ঘোষণায় দেখা যায় না। অফিসে কোনো প্রিফিক্স অনুপস্থিত থাকলে, যেকোনো রুট টেবিল সম্পাদনার আগে প্রাপ্ত রুটের তালিকা VPC অ্যাসোসিয়েশনগুলির সঙ্গে মিলিয়ে দেখুন।
সরল নিয়মটির ব্যতিক্রম আছে, তাই এটিকে সীমার মধ্যে রাখুন। একটি VPN CloudHub ব্যবস্থা গ্রাহক গেটওয়েগুলির মধ্যে সাইট প্রিফিক্স পুনরায় ঘোষণা করতে পারে, আর একটি ট্রানজিট গেটওয়ে নিজের প্রক্যাগেশন নিয়ম অনুসরণ করে। VGW কেবল তার নিজের VPC ঘোষণা করে — এই বক্তব্যটি একটি উপযোগী ডিফল্ট, আপনি যেসব টোপোলজি পাবেন সবগুলোকেই ঢেকে দেওয়া কোনো আইন নয়।
অফিস থেকে AWS-এর দিকটি প্রক্যাগেশন প্লাস সিলেকশন
বিপরীত দিকে VGW অফিসের প্রিফিক্স শেখে, কিন্তু কেবল তা দিয়ে কোনো ওয়ার্কলোড নড়ে না। সাবনেট রুট টেবিলে হয় অ্যাটাচমেন্টের জন্য প্রক্যাগেশন সক্রিয় থাকতে হবে, নয়তো একই গন্তব্যে একটি স্ট্যাটিক রুট থাকতে হবে। একই প্রিফিক্সের জন্য দুটোই থাকলে স্ট্যাটিক রুট জেতে, আর দীর্ঘতম প্রিফিক্স মিল তাদের দুটোরই আগে চলে।
অনুমান না করে উৎসটি পড়ুন: aws ec2 describe-route-tables --route-table-ids rtb-0123456789abcdef0 --query 'RouteTables[].Routes'. EnableVgwRoutePropagation উৎসের এন্ট্রি এসেছে BGP থেকে; CreateRoute উৎসের এন্ট্রি কোনো মানুষ টাইপ করেছে এবং কেউ এটি মুছে না ফেলা পর্যন্ত জিততে থাকবে।
দুই দিক আলাদা রাখে এমন একটি রানবুক
কিছু বদলানোর আগে AWS পক্ষে চারটি তথ্য লিপিবদ্ধ করুন: অ্যাটাচমেন্টের ধরন, যুক্ত VPC CIDRগুলি, প্রশ্নে থাকা প্রিফিক্সের জন্য সাবনেট রুটের উৎস, এবং টানেল ও BGP অবস্থা। একই describe কলে প্রতি টানেলে গৃহীত রুটের সংখ্যাসহ VgwTelemetry ফেরে, যা আপনাকে বলে AWS আদৌ কোনো রুট গ্রহণ করেছে কি না। তারপর সেটি গ্রাহক ডিভাইসটি প্রকৃতপক্ষে যা ইনস্টল করেছে তার সঙ্গে মিলিয়ে দেখুন। BGP-তে উপস্থিত কিন্তু ফরওয়ার্ডিং টেবিলে অনুপস্থিত প্রিফিক্স হলো স্থানীয় ইমপোর্ট বা সেরা-পথের সমস্যা, AWS রুট টেবিলের সমস্যা নয়।
সাবনেট টেবিলে প্রিফিক্সটি একেবারেই না থাকলে প্রক্যাগেশন চালু করুন বা একটি স্ট্যাটিক রুট যোগ করুন, তারপর পরিবর্তনটি তাৎক্ষণিক ছিল ধরে নেওয়ার বদলে প্রক্যাগেশন বিরতির পরে একই কোয়েরি আবার পড়ুন। প্রিফিক্স থাকলে এবং ট্রাফিক তখনও ব্যর্থ হলে কন্ট্রোল প্লেনকে একা রেখে ডেটা পাথে যান।
ওখানে থাকার সময় কী বদলাবেন না
একটি অনুপস্থিত প্রিফিক্স ঠিক করতে অসম্পর্কিত রুট টেবিলে প্রক্যাগেশন উল্টে দেবেন না, আর একটি অনুপস্থিত CIDR ঢেকে দিতে ডিফল্ট রুট যোগ করবেন না। দুটি পরিবর্তনই প্রভাবের পরিধি বাড়ায় এবং পরের ডায়াগনোসিসকে কঠিন করে। সম্পাদনাটি কেবল সেই টেবিলেই সীমাবদ্ধ রাখুন যা প্রশ্নে থাকা ওয়ার্কলোড সাবনেট সেবা দেয়।
ডেটা পাথ এই সবকিছু থেকে আলাদা। সিকিউরিটি গ্রুপগুলো স্টেটফুল, নেটওয়ার্ক ACL নয়, আর একটি হোস্ট ফায়ারওয়াল বা অসমমিত ফেরত পথ রাউটিং সঠিকভাবে পৌঁছে দেওয়া ট্রাফিক ফেলে দিতে পারে। ঘোষিত একটি অ্যাগ্রিগেট তার ভেতরের প্রতিটি সেবাকেও অনুমোদন দেয় না, তাই কোনো ঠিকানা কাকতালীয়ভাবে BGP ঘোষণায় আছে কি না তার উপর নির্ভর না করে নীতির সীমায় অ্যাক্সেস সীমিত করুন।
প্রতিটি রুট টেবিল কোয়েরির আগে ও পরের অবস্থা পরিবর্তন রেকর্ডে সংরক্ষণ করুন। পরিবর্তনটি পরিস্থিতি খারাপ করলে আগের রুটগুলি পুনরুদ্ধার করুন এবং একই কোয়েরি দিয়ে নিশ্চিত করুন, কারণ যে রোলব্যাক আপনি যাচাই করতে পারেন না তা কেবল একটি অনুমান।