সক্রিয় FTD সাইট VPN গণনা: কোন সংখ্যাটি বোঝাচ্ছেন?
কনফিগার করা পিয়ার, IKE সেশন, সিকিউরিটি অ্যাসোসিয়েশন ও মনিটর করা টানেল — এই চারটি আলাদা গণনা। কোড লেখার আগে একক ও ম্যানেজমেন্ট প্লেন বেছে নিন।
Ansible টাস্ক লেখার আগে ছোট একটি প্রশ্নের উত্তর দিন: কী গণনা করা হচ্ছে? কনফিগার করা পিয়ার, একটি IKE সেশন, একটি IPsec সিকিউরিটি অ্যাসোসিয়েশন এবং একটি মনিটর করা টানেল-স্ট্যাটাস রেকর্ড — এগুলো চারটি ভিন্ন একক, আর কী রিকি বা একাধিক সুরক্ষিত নেটওয়ার্ক তাদের মোটকে ভিন্ন করে তোলে। ড্যাশবোর্ড ও প্লেবুকের মতভেদ হলে তারা সাধারণত ভিন্ন জিনিস গণনা করছে, দুটির একটি ভুল নয়।
লোকে যাকে সক্রিয় বলে, সেই চারটি জিনিস
কনফিগার করা পিয়ার একটি টপোলজি অবজেক্ট: কেউ এটি সংজ্ঞায়িত করেছে বলেই এটি আছে। IKE সেশন হলো কন্ট্রোল-প্লেন সম্পর্ক, যা কোনো ট্রাফিক না চললেও আপ থাকতে পারে। IPsec SA হলো নির্দিষ্ট সিলেক্টর জোড়ার জন্য ডেটা-প্লেন অ্যাসোসিয়েশন, আর একটি টানেল একাধিক SA বহন করতে পারে। মনিটর করা টানেল স্ট্যাটাস হলো প্ল্যাটফর্মের নিজস্ব অপারেশনাল রায়, যা সাধারণত অপারেটরের ‘টানেল আপ আছে’ বলার সবচেয়ে কাছাকাছি।
কেবল শেষটিই অপারেশনাল গণনার যুক্তিসঙ্গত ভিত্তি। প্রথমটি একটি কনফিগারেশন ইনভেন্টরি, আর এটিকে সক্রিয় বলে রিপোর্ট করাই সেই উপায় যেখানে ড্যাশবোর্ড মঙ্গলবার থেকে ডাউন থাকা পিয়ারের জন্য সবুজ দেখায়। সংখ্যার ব্যবহারকারীর কোন একক দরকার তা ঠিক করুন, তারপর মেট্রিকের নিজের নামেই সেই একক লিখুন।
প্রথম সিদ্ধান্ত: কোন ম্যানেজমেন্ট প্লেন?
ডিভাইসটি FDM দিয়ে ম্যানেজ হলে প্রাসঙ্গিক পৃষ্ঠ হলো FTD REST API। যদি FMC দিয়ে ম্যানেজ হয়, তবে সেই API বিনিময়যোগ্য বিকল্প নয়, এবং অবজেক্টগুলো FMC-এর নিজস্ব API-এর পিছনে থাকে। একটি অনুরোধ লেখার আগেই এটি নিশ্চিত করুন, কারণ ভুল প্লেন একটি বিশ্বাসযোগ্য ত্রুটি ফেরত দেয় যা অনুমতি সমস্যার মতো দেখায়।
একটি ফ্লিটের ক্ষেত্রে উত্তরটি গণনাটি কোথায় থাকবে তাও ঠিক করে: FDM-এর মাধ্যমে প্রতি ডিভাইসে, নাকি FMC-এর মাধ্যমে প্রতি ডোমেইনে। এগুলো ভিন্ন পরিসর এবং একই ফ্লিটের জন্য ভিন্ন সংখ্যা দেয়।
দ্বিতীয় সিদ্ধান্ত: কোন রিসোর্স উত্তর দেয়?
সংস্করণ-সীমিত একটি উদাহরণের জন্য, FMC 7.3 API অবজেক্ট রেফারেন্স health পথের অধীনে GET রিসোর্স নথিভুক্ত করে:
/api/fmc_config/v1/domain/{domainUUID}/health/tunnelstatuses
/api/fmc_config/v1/domain/{domainUUID}/health/tunnelsummariesটানেল-স্ট্যাটাস রিসোর্স ডিভাইস ও স্ট্যাটাস ফিল্টার সমর্থন করে, যার মধ্যে TUNNEL_UP অন্তর্ভুক্ত। এটি সেই সংস্করণের জন্য যাচাই করার মতো প্রকৃত অপারেশনাল রিসোর্স দেয়, কোনো ফিল্ড নামের অনুমান নয়।
পার্সার তৈরি করার আগে ডিপ্লয় করা FMC-এর API Explorer-এ প্রাপ্যতা, অনুমতি, অনুরোধ প্যারামিটার ও প্রতিক্রিয়ার স্কিমা নিশ্চিত করুন। একটি সংস্করণের ডকুমেন্টেশন শুরুর বিন্দু, আপনি যে সংস্করণ চালাচ্ছেন তার চুক্তি নয়।
গণনার চুক্তি লিখুন
এক বাক্যে মেট্রিকটি বলুন: একটি নির্দিষ্ট ডিভাইস ও ডোমেইনের জন্য অনন্য অপারেশনাল টানেল রেকর্ড, যাদের রিপোর্ট করা অবস্থা TUNNEL_UP। তারপর নথিভুক্ত করুন কীভাবে অতিরিক্ত ডিভাইস ও একটি যৌক্তিক সাইটের একাধিক রেকর্ড উপস্থাপিত হয়, কারণ এই দুটি ক্ষেত্রেই ঠিক হয় আপনার সংখ্যা সভার সংখ্যার সাথে মেলে কি না।
এককটি নীরবে টানেল রেকর্ড থেকে রিমোট সাইটে বদলাবেন না। ব্যবসা সাইট চাইলে রেকর্ডগুলোকে স্পষ্টভাবে সাইটে ম্যাপ করুন এবং ম্যাপিং প্রকাশ করুন। যে গণনা নীরবে নিজেকে নতুন সংজ্ঞা দেয়, তা গণনা না থাকার চেয়ে খারাপ, কারণ কেউ বলতে পারে না কখন তা বদলেছে।
সারাংশ রিসোর্সকে সুবিধা হিসেবে বিবেচনা করুন কেবল এটি কী সারসংক্ষেপ করে তা নিশ্চিত করার পরে। এটি ঠিক আপনার প্রয়োজনীয় জিনিস একত্র করতে পারে, বা সূক্ষ্মভাবে ভিন্ন প্রশ্নের উত্তর দিতে পারে। এর স্কিমা একবার পড়ুন, পার্থক্য লিখে রাখুন, আর সারাংশ ব্যাখ্যা করা না গেলে স্ট্যাটাস রিসোর্স ব্যবহার করুন। যে সারাংশ আপনি বোঝেন না, তা এমন সংখ্যা যা পর্যালোচনায় রক্ষা করতে পারবেন না।
ওয়ার্কফ্লো অনিশ্চয়তা ধরে রাখুক
অনুমোদিত HTTPS API ব্যবহার করুন, সার্টিফিকেট যাচাই করুন, টোকেন টাস্ক আউটপুটের বাইরে রাখুন, এবং সংস্করণের সমর্থিত ফিল্টার ও পেজিনেশন দিয়ে পরিসর আনুন। তারপর কিছু গণনার আগে স্কিমা যাচাই করুন।
fetch intended domain/device runtime records
validate response, completeness and freshness
deduplicate by the documented tunnel identity
count records matching the approved up-state definition
report count with scope, timestamp and metric unitএটি ওয়ার্কফ্লো সিউডোকোড, পরীক্ষিত প্লেবুক নয়। active নামের একটি JSON কী উদ্ভাবনের বদলে ইনস্টল করা API থেকে প্রকৃত ফিল্ড নাম নিন।
গুরুত্বপূর্ণ নিয়ম হলো ব্যর্থতার আচরণ: অনুমোদন ত্রুটি, অসমর্থিত রিসোর্স, পুরোনো নমুনা বা অসম্পূর্ণ পৃষ্ঠা-সেট অবশ্যই unknown বা error দেবে, কখনো সফল শূন্য নয়। যে শূন্য বোঝায় ‘আমি জিজ্ঞাসা করতে পারিনি’, সেটি সবচেয়ে ব্যয়বহুল ধরনের ভুল।
প্ল্যাটফর্মের নিজস্ব দৃশ্যের বিপরীতে যাচাই করুন
প্রথম ফলাফলকে একই ডিভাইস ও মুহূর্তের জন্য সংস্করণের VPN মনিটরিং দৃশ্যের সাথে তুলনা করুন। ভিন্ন হলে, প্লেবুক বদলানোর আগে দেখুন কোনটি কোন একক ব্যবহার করে।
প্রতিটি রানের জন্য অসংবেদনশীল প্রসঙ্গ রাখুন: পরিসর, টাইমস্ট্যাম্প, মেট্রিকের একক ও রেকর্ড সংখ্যা। FMC 7.3 API অবজেক্ট রেফারেন্স হলো উপরোক্ত রিসোর্স পাথের উৎস, আর আপনার নিজের ডিপ্লয়মেন্টের API Explorer বাকি সবকিছুর উৎস।