নেটওয়ার্ক কনফিগারেশন ম্যানেজমেন্ট অটোমেশন¶
সংজ্ঞা: কোথায় আমরা?
“You’re either the one that creates the automation or you’re getting automated.”
— Tom Preston-Werner
কেন নেটওয়ার্ক কনফিগারেশন ম্যানেজমেন্ট দরকার?¶
নেটওয়ার্ক ম্যানেজ করতে গিয়ে আমরা যে জিনিসটা মাঝেমধ্যেই মিস করি সেটা হচ্ছে কনফিগারেশন ম্যানেজমেন্ট। আমরা যারা নেটওয়ার্ক চালাই তারা সাধারণত নেটওয়ার্কের কনফিগারেশন গুলো বিভিন্ন জায়গায় রাখি যা পরবর্তীতে আমাদের মাথাব্যথার কারণ হয়ে দাঁড়ায়।
নেটওয়ার্ক কনফিগারেশন কি এবং কেন এটা গুরুত্বপূর্ণ?¶
যেকোনো কনটেক্সটে নেটওয়ার্ক ডিভাইসের কনফিগারেশন হচ্ছে সেই ডিভাইস স্পেসিফিক সেটিং এবং দরকারি কমান্ড যেটা একটা ডিভাইসকে ঠিকমতো ফাংশন করার জন্য তৈরি করে দেয়। ধরা যাক কোন কারনে সেই ডিভাইসটাকে পরিবর্তন করার দরকার হলে সেই ডিভাইস স্পেসিফিক কনফিগারেশন ফাইলগুলোকে যাতে নতুন ডিভাইসে ঠিকমতো রেপ্লিকেট করা যায় যাতে আগের ডিভাইসের মতো সে ঠিকমতো ফাংশন করতে পারে।
কনফিগারেশন ম্যানেজমেন্ট এর আসল কাজ হচ্ছে কিভাবে একটা নেটওয়ার্ক ইকুইপমেন্ট কে তার সমস্যার সময়ে খুব তাড়াতাড়ি পরিবর্তন করা যায়। ওই মুহূর্তে যদি সেই ডিভাইসটার ফেইল হবার কাছাকাছি সময়ের ব্যাকআপ যদি না থাকে তাহলে নতুন ডিভাইস সেট আপ করার জন্য আমাদেরকে চুল ছিঁড়তে হতে পারে। সবচেয়ে ভালো হয় যদি কনফিগারেশন ম্যানেজমেন্ট সিস্টেম আমাদের এই ব্যাকআপ ফাইলগুলো মানুষের পড়ার মতো করে ফরমেটে রাখতে পারে বিভিন্ন টাইম স্টাম্পিং সহ তাহলে এটা চমৎকার কাজ করবে। এটা ঠিক যে কিছু কিছু ইকুপমেন্ট শুধুমাত্র বাইনারি কনফিগারেশন ফাইল রাখে যেটা নিয়ে আমি পরবর্তীতে আলাপ করব।
তবে মজার কথা হচ্ছে বেশিরভাগ নেটওয়ার্ক ডিভাইস যেমন সুইচ রাউটার ফায়ারওয়াল লোড ব্যালেন্স স্যার আমাদেরকে text file আকারে তাদের কনফিগারেশন ফাইলগুলো ডাউনলোড করতে দেয়। সে কারণে যেকোনো কনফিগারেশন ম্যানেজমেন্ট সিস্টেম সাধারণত একটা সার্ভার রাখে যেখানে নেটওয়ার্কের প্রতিটা ডিভাইস থেকে কিছু স্পেসিফিক সময় ব্যবধানে কনফিগারেশন ফাইলগুলো ডাউনলোড করে রাখে। আমরা দেখেছি বেশিরভাগ ক্ষেত্রে এ ধরনের ব্যাকআপ গুলো রাত্রেবেলা নেওয়া হয় কারণ ওই সময় নেটওয়ার্কের কনফিগারেশন সবচেয়ে কম পরিবর্তন হয়।
কনফিগারেশন ব্যাকআপ রাখার জন্য অনেক ধরনের সিস্টেম আমরা ব্যবহার করলেও আমরা বেসিক আন্ডারস্ট্যান্ডিং হিসেবে যেহেতু বেশিরভাগ ডিভাইস গুলো কমান্ড লাইন ইন্টারফেস এ কাজ করে সেখানে কিছু স্ক্রিপ্টেড সেশন দিয়ে ডিভাইস গুলোতে লগইন করে সেখানে কিছু স্পেসিফিক কমান্ড দিয়ে সেই ডিভাইসের কনফিগারেশন ফাইলগুলোকে কপি করে আনে সেন্ট্রাল কনফিগারেশন ম্যানেজমেন্ট সিস্টেমে। সেখানে পুরনো ডিভাইসের জন্য টেলনেট অথবা এস এস এইচ এবং নতুন ধরনের ডিভাইসের জন্য এপ্লিকেশন প্রোগ্রামিং ইন্টারফেস অর্থাৎ এপিআই ব্যবহার করা হয়ে থাকে।
কনফিগারেশন ম্যানেজমেন্ট এর সবচেয়ে বড় সুবিধা গুলো কি কি?¶
-
রিপোর্টিং: যেকোনো কনফিগারেশন ম্যানেজমেন্ট টুল গতকাল এবং আজকের ব্যাকআপের মধ্যে কি কি পরিবর্তন আছে সেটা খুব সহজেই রিপোর্টিং এ নিয়ে আসে। যদি কোন নীতিমালা বহির্ভূত কোন পরিবর্তন আসে সেটা সঙ্গে সঙ্গে বোঝার পাশাপাশি প্রতিটা ইউজারের লগইন ক্রেডেনশিয়াল দেখে বোঝা যায় কে কোথায় কখন কবে কোন জিনিসটা পরিবর্তন করেছিলেন। এর পাশাপাশি একটা সিডিউল মেইনটেনেন্স হওয়ার কথা ছিল সেটা কি আসলে হয়েছে কিনা সেটা যদি আমরা বের করতে চাই তাহলে এই রিপোর্টিং অনেক কাজে আসে।
-
নেটওয়ার্ক ধরে বিশাল পরিবর্তন: যেকোনো নতুন নেটওয়ার্ক রোল আউট করার সময় শুরুর বেশ লাইন কনফিগারেশন যদি আমরা একসাথে (ধরা যাক ৪০০ ডিভাইস) নিয়ে শুরু করতে চাই তাহলে সেটার জন্য এ ধরনের স্বয়ংক্রিয় কনফিগারেশন জেনারেশন খুব প্রয়োজনীয়। ধরা যাক আমাদের কাছে একটা নতুন সুইচের ব্যাচ এসেছে যেটা অনেকগুলো রিমোট সাইটে ডেপ্লয় করতে হবে। যেটা এর মাধ্যমে খুব সহজেই করা সম্ভব। নেটওয়ার্ক এডমিনিস্ট্রেশন গ্রুপে থাকা কেউ যদি কোম্পানি ছেড়ে অন্য কোথাও চলে যান তাহলে তার সিস্টেম ওয়াইড ক্রেডেনশিয়াল পরিবর্তন করতেও এ ধরনের কনফিগারেশন ম্যানেজমেন্ট অনেক সাহায্য করে। এখানে বিভিন্ন ধরনের প্রোগ্রামিং এনভারমেন্ট ডিনামিক ভাবে কনফিগারেশন সেটিং এ বিভিন্ন ধরনের ভেরিএবেল যোগ করে নেটওয়ার্কের ডিভাইসের নাম্বারিং থেকে শুরু করে অন্যান্য অনেকস্ট্রিম কিছুই অটোম্যাট করতে পারে।
-
অডিটিং এবং কনফিগারেশন রিভিউ করা: যদি কখনো নেটওয়ার্কের স্টেবিলিটি সমস্যা দেখা যায় অথবা কিছু কিছু আপডেট হবার কারণে নতুন করে সমস্যা তৈরি করে তাহলে সেই কনফিগারেশনগুলো দেখলে বিশেষ করে সেগুলোকে অডিট এবং রিভিউ করলে অনেক সমস্যা বের হয়ে আসে। ওই মুহূর্তে যদি আমাদের কাছে সর্বশেষ কনফিগারেশন গুলো না থাকে তাহলে কনফিগারেশন ম্যানেজমেন্ট সিস্টেম থেকে সবগুলো ডিভাইসে পুনরায় লগইন করে সেগুলোকে পাশাপাশি মেলানোর জন্য এ ধরনের সিস্টেম খুবই প্রয়োজনীয়। যদিও এ ধরনের কনফিগারেশন ম্যানেজমেন্ট সিস্টেম বেশ কিছু ডায়নামিক ইনফরমেশন রাখে না যেমন এআরপি টেবিল অথবা ইন্টারফেস এরর হিসেব অথবা সিপিইউ কত বেশি চলছে বা তার পাশাপাশি মেমোরি ঠিক আছে কিনা তবে এই কনফিগারেশন ম্যানেজমেন্ট যেকোন সমস্যা রিভিউ করার জন্য ভালো স্টারটিং পয়েন্ট হতে পারে।
-
যেকোনো সমস্যার role back: কেউ যদি কোন ধরনের কনফিগারেশন করার ফলে যদি সেটাকে মিস কনফিগারেশন হিসেবে প্রতিমান হয় তাহলে এ ধরনের কনফিগারেশন ম্যানেজমেন্ট টুল খুব সহজেই সেই সব ডিভাইস থেকে পূর্ববর্তী কনফিগারেশন স্টেটে সহজেই ফিরিয়ে আনতে পারে। এতে বেশ সময় এবং যে কারণে সমস্যা হয়েছিল সেই সমস্যাটা সমাধান হয়ে যায়।
-
কম ভুল অথবা মানুষজনিত ভুল রোধ করা: একটা অটোমেটেড নেটওয়ার্ক কনফিগারেশন ম্যানেজমেন্ট ট্যুল খুব সহজেই কনফিগারেশনের জন্য নেটওয়ার্কের আউটেজ কমিয়ে আনতে পারে। মানুষের দ্বারা যে ধরনের কনফিগারেশন এরর বা ভুল হতে পারে সে ধরনের চেক কনফিগারেশন ম্যানেজমেন্ট টুল খুব সহজেই দিতে পারে। কারণ যে কোনো কনফিগারেশন ম্যানেজমেন্ট টুল প্রতিটা পরিবর্তন আলাদা করে সনাক্ত করতে পারে, কনফিগারেশন গুলোকে অডিট করতে পারে, এর পাশাপাশি কিছু কিছু কাজগুলোকে খুব সহজেই ডকুমেন্টেশনে ফেলে দিতে পারে।
-
নেটওয়ার্কের প্রসেস স্স্ট্রিম লাইন করা: কনফিগারেশন ম্যানেজমেন্ট টুলের একটা বড় অংশ হচ্ছে যখন নেটওয়ার্ক বড় হতে থাকে তখন সেই নেটওয়ার্কের বেশ কিছু প্রসেসকে স্ট্রিমলাইন করে আনা যায়। নেটওয়ার্ক বড় হওয়ার সাথে সাথে নেটওয়ার্কের বিভিন্ন সিডিউল ব্যাকআপ কখন ব্যাকআপ ফেইল করছে সেগুলো অ্যালার্ট পাওয়া ইত্যাদি নেটওয়ার্কের ফাংশনালিটি বাড়ায়। পূর্বের প্রসেসগুলোকে যদি আমরা ঠিকমতো সার্চ করতে পারি যেখানে ব্যাকআপ এবং রেস্টোর কখন ঠিকমতো কাজ করেছে অথবা করেনি সেটা থেকেও আমাদের অনেক প্রসেস স্ট্রিম লাইন করা সম্ভব।