রুট রিফ্লেক্টর যোগ করার পরে কিছু L2VPN রুট হারিয়ে যায়
সেশন চালু থাকে, অথচ কয়েকটি L2VPN রুট কখনো পৌঁছায় না। পুনর্ব্যবহৃত ক্লাস্টার আইডি, ক্লায়েন্ট সম্পর্ক এবং রিফ্লেকশন গ্রাফ এই নির্বাচিত ক্ষয় ব্যাখ্যা করে।
সেশন চালু থাকে, IGP স্থিতিশীল, তবুও চারটি প্রোভাইডার প্রান্তের দুটিতে কয়েকটি L2VPN রুট কখনো দেখা যায় না। এই ধরনটি পরিবহন সমস্যার নয়, রিফ্লেকশন সমস্যার, কারণ ভাঙা সেশন সম্পূর্ণভাবে ব্যর্থ হয়, আর পুনর্ব্যবহৃত রিফ্লেকশন সীমা ব্যর্থ হয় নির্বাচিতভাবে। ভৌত রিংয়ের সঙ্গে এর কোনো সম্পর্ক নেই; যৌক্তিক বিতরণ গ্রাফই সেই জায়গা যেখানে এই রুটগুলি থেমে গেছে। সেই বিন্দু খুঁজে পেতে কন্ট্রোল প্লেন পুনর্নির্মাণের দরকার নেই।
ক্ষয় নির্বাচিত, যা অনুসন্ধান সংকুচিত করে
ভৌত রিংয়ের উপর চারটি প্রোভাইডার প্রান্তের পূর্ণ মেশের জন্য ছয়টি যৌক্তিক সেশন দরকার, কারণ প্রতিটি রাউটার বাকি তিনটির সঙ্গে জোড়া তৈরি করে। এই সেশনগুলি রাউটেড পরিবহনের উপর চলে, তাই কেবলিং কিছুই বলে না কতগুলি সন্নিহিত সম্পর্ক আছে বা তাদের মধ্যে কোনটি রিফ্লেক্ট করে। যখন দুটি প্রান্ত নির্দিষ্ট কিছু প্রিফিক্স বাদ দেয় অথচ বাকি সবকিছু কনভার্জ করে, তখন তারটিই সন্দেহভাজন নয়।
নির্বাচিত ক্ষয় লুপ প্রতিরোধ, নীতি বা সম্পর্কের দিক নির্দেশ করে, যেখানে কিছু রুট সীমা অতিক্রম করে আর কিছু পথেই বাদ পড়ে। সম্পূর্ণ ক্ষয় সেশন বা ঠিকানা পরিবারকে নির্দেশ করে। এই দুটির মধ্যে কোনটি আপনি দেখছেন তা ঠিক করা প্রথম কাজে লাগা ধাপ, আর তাতে একটি কমান্ডই লাগে।
রিফ্লেকশন আসলে কী বদলায়
রুট রিফ্লেকশন সেই নিয়মটি শিথিল করে যে একটি iBGP স্পিকার অন্য একটি iBGP স্পিকারের কাছ থেকে শেখা রুট পুনরায় বিজ্ঞাপিত করতে পারে না। RFC 4456 এই ব্যতিক্রমটি স্পিকার ও রুটের উৎসের মধ্যকার সম্পর্ক দিয়ে প্রকাশ করে, এবং সেই সম্পর্কের দিকটি বেশিরভাগ সারাংশে যা ইঙ্গিত করা হয় তার চেয়ে বেশি গুরুত্বপূর্ণ। ক্লায়েন্টের কাছ থেকে শেখা রুট অন্য ক্লায়েন্টদের এবং অ-ক্লায়েন্টদের কাছে রিফ্লেক্ট করা যায়, অথচ অ-ক্লায়েন্টের কাছ থেকে শেখা রুট কেবল ক্লায়েন্টদের কাছে রিফ্লেক্ট করা যায়। এই অসমতা দুবার পড়ুন, কারণ এটি ব্যাখ্যা করে কীভাবে একটি ক্লায়েন্ট সম্পর্ক যোগ করা একটি নকশা ত্রুটি লুকাতে পারে: এটি এমন একটি পথ খোলে যা টপোলজি কখনো ইচ্ছা করেনি।
CLUSTER_LIST অ্যাট্রিবিউট রিফ্লেকশনের ইতিহাস লিখে রাখে, এবং যে রিফ্লেক্টর সেই তালিকায় নিজের ক্লাস্টার আইডি দেখে, তাকে বিজ্ঞাপনটি উপেক্ষা করতে হবে। এটি লুপ প্রতিরোধ, আর এটি সেই ব্যবস্থাও যা শনাক্তকারক ভুলবশত পুনর্ব্যবহৃত হলে রুট মুছে দেয়। ORIGINATOR_ID সম্পর্কিত ভূমিকা পালন করে, যে রাউটারটি প্রথম রুটটি বিজ্ঞাপিত করেছিল তার নাম বলে।
পুনর্ব্যবহৃত ক্লাস্টার আইডিই রুট হারিয়ে যাওয়ার উপায়
ছোট নেটওয়ার্ক একটি শর্টকাটের আমন্ত্রণ দেয়: প্রতিটি রাউটারকে তার লুপব্যাকের সমান ক্লাস্টার আইডি দিন, পরে আরেকটি রিফ্লেক্টর যোগ করুন, এবং সুবিধাজনক বলে বিদ্যমান একটি লুপব্যাক পুনর্ব্যবহার করুন। সেই শনাক্তকারকটি যদি এখন দুটি স্বতন্ত্র রিফ্লেকশন স্তরে দেখা দেয়, দ্বিতীয় স্তরটি CLUSTER_LIST-এ নিজের আইডি দেখে রুটটি ফেলে দেয়। কিছুই ত্রুটি লগ করে না, কারণ ফেলে দেওয়াই লুপের প্রতি সঠিক প্রতিক্রিয়া।
একটি ক্লাস্টার পরিবেশনকারী অরক্ষিত রিফ্লেক্টর হল বৈধ ব্যতিক্রম: তারা ইচ্ছাকৃতভাবে একটি আইডি ভাগ করে, যাতে দুজনের যে কেউ একই ক্লায়েন্টদের সেবা দিতে পারে। শনাক্তকারকটিকে চেসিসের নামের পার্থক্য করার বদলে রিফ্লেকশন নকশার সঙ্গে মিলতে হবে।
কোনো কনফিগারেশন স্পর্শ করার আগে অভীষ্ট গ্রাফটি আঁকুন: কে প্রিফিক্সটির উৎস, কোন ক্লায়েন্ট সম্পর্ক প্রথম রিফ্লেকশনের অনুমতি দেয়, কোন রিফ্লেক্টর এটি পরের স্তরে নিয়ে যায়, আর শেষ ক্লায়েন্ট কোথায় বসে। সেই গ্রাফের প্রতিটি হপ এমন জায়গা যেখানে পুনর্ব্যবহৃত শনাক্তকারক, অনুপস্থিত ক্লায়েন্ট সম্পর্ক বা নীতি ফিল্টার রুটটি থামাতে পারে। গ্রাফ আঁকা থাকলে অনুপস্থিত রুটের একটি অবস্থান থাকে, রহস্য নয়।
প্রতিটি প্রতিবেশীকে ক্লায়েন্ট বানানো প্রতিরোধ করুন
অনুপস্থিত রুটের দ্রুত মেরামত হলো প্রতিটি প্রতিবেশীকে প্রতিটি রিফ্লেক্টরের ক্লায়েন্ট বানানো। প্রচার ফিরে আসে, আর নকশা আপনাকে কিছুই বলা বন্ধ করে দেয়: এটি প্রতিটি স্পিকারের বহন করা রুট বাড়িয়ে দেয় এবং একই সঙ্গে লুকায় কোন সম্পর্কটি কাজটি করার কথা ছিল।
ছোট নেটওয়ার্কের সাধারণত দুটি আকৃতির একটি দরকার। পূর্ণ iBGP মেশ চারটি রাউটারের জন্য ছয়টি সেশন এবং কোনো রিফ্লেকশন নেই, আর অবশিষ্ট প্রান্তগুলি পরিবেশনকারী নির্ধারিত রিফ্লেক্টর জোড়া হলো অন্যটি। প্রতিটি রাউটার অল্প অল্প রিফ্লেক্ট করে এমন আংশিক মেশের চেয়ে দুটিই সহজে ভাবা যায়। আকারটি মাপ ও ব্যর্থতার আচরণ দিয়ে বাছুন, কেবলিং চিত্র দিয়ে নয়।
রিফ্লেকশনকে দোষ দেওয়ার আগে ঠিকানা পরিবার পরীক্ষা করুন
পোর্ট 179-এ একটি TCP সেশন প্রমাণ করে দুটি স্পিকার কথা বলতে পারে, কিন্তু VPN ঠিকানা পরিবার একটি রুটও বিনিময় করেছে কি না সে সম্পর্কে কিছুই বলে না। প্রথমে সেশন অবস্থা, তারপর পরিবার, তারপর পৃথক প্রিফিক্স নিশ্চিত করুন।
vtysh -c "show bgp summary"
vtysh -c "show bgp l2vpn evpn summary"
vtysh -c "show bgp l2vpn evpn"
এই তিনটি আউটপুট সন্নিহিত সম্পর্কের সমস্যা, বিনিময় সমস্যা এবং অনুপস্থিত-প্রিফিক্স সমস্যাকে আলাদা করে। পরিবার যদি আদৌ কোনো প্রিফিক্স না দেখায়, রিফ্লেকশনের দিকে তাকানোর আগে প্রতিবেশীর সক্রিয়করণ অবস্থা ও রপ্তানি নীতি পরীক্ষা করুন। প্রিফিক্স যদি এক প্রান্তে দেখা যায় কিন্তু অন্যটিতে না, গ্রহণকারী দিকে ক্লাস্টার তালিকা ও উৎস তুলনা করুন, তারপর আগের অংশের গ্রাফ ধরে হাঁটুন।
পরবর্তী হপের পৌঁছানোযোগ্যতা ও ফরওয়ার্ডিং অবস্থা সেই পরীক্ষার বাইরে রাখুন। অগম্য পরবর্তী হপ সহ একটি রিফ্লেক্ট করা রুট উপস্থিত কিন্তু অব্যবহারযোগ্য, যা পরবর্তী হপের কলাম না দেখা পর্যন্ত রিফ্লেকশন ব্যর্থতার মতো মনে হয়। পরবর্তী হপ সমাধান করুন, ফরওয়ার্ডিং এন্ট্রি নিশ্চিত করুন, তারপরেই ঠিক করুন বিতরণ গ্রাফের আরেকটি রিফ্লেক্টর দরকার কি না।