নেটওয়ার্ক সোর্স অফ ট্রুথ (NSoT)
এখন প্রশ্ন - স্ট্রাকচার্ড নেটওয়ার্ক বানাবেন কীভাবে? কোথা থেকে শুরু করবেন? কোন কোন ডেটা আগে সংগ্রহ করতে হবে? কীভাবে লেয়ার করে নেটওয়ার্ক সাজাতে হয়? কোন কোন জায়গায় এলএলএম বসানো যায়? ১ মিলিয়নের রোডম্যাপ আসলে কেমন দেখতে? এই প্রশ্নগুলোর উত্তরই আসছে দ্বিতীয় খণ্ডে। সেখানে থাকবে নেটওয়ার্ক সোর্স অফ ট্রুথ বানানোর গাইডলাইন, থাকবে প্র্যাক্টিক্যাল স্টেপ, থাকবে রিয়েল লাইফ এক্সাম্পল। কারণ শুধু থিওরি দিয়ে কিছু হয় না - দরকার হয় হাতে-কলমে কাজ করার রাস্তা।
আর সেই রাস্তার একদম শুরুতেই আসে একটা জিনিস - নেটওয়ার্ক সোর্স অফ ট্রুথ।
নেটওয়ার্ক সোর্স অফ ট্রুথ - আধুনিক নেটওয়ার্কের ভিত্তি¶
আপনি যদি ১ মিলিয়ন কাস্টমার সার্ভ করতে চান, তাহলে প্রথমেই আপনার নেটওয়ার্ককে চিনতে হবে। শুনতে সহজ মনে হলেও এটা আসলে সবচেয়ে কঠিন কাজগুলোর একটা। বেশিরভাগ আইএসপিতে গিয়ে যদি জিজ্ঞেস করেন, "আপনার নেটওয়ার্কে ঠিক কতগুলো রাউটার আছে? কোন রাউটার কোন এরিয়া সার্ভ করছে? কোন আইপি রেঞ্জ কোথায় ইউজ হচ্ছে?" - তাহলে দেখবেন উত্তর দিতে কয়েক ঘণ্টা লেগে যাবে। কেউ এক্সেল শিট খুলবে, কেউ পুরোনো ডায়াগ্রাম খুঁজতে শুরু করবে, কেউ বলবে "আরে এই জিনিসটা তো আহসান ভাই জানে, উনাকে ফোন দেই।" এই যে অবস্থা, এটাই হলো আনস্ট্রাকচার্ড নেটওয়ার্কের লক্ষণ।
আধুনিক নেটওয়ার্ক অপারেশনের মূল ভিত্তি হলো নেটওয়ার্ক সোর্স অফ ট্রুথ। একে সংক্ষেপে বলা হয় NSoT। এটা হলো আপনার সম্পূর্ণ নেটওয়ার্কের সমস্ত তথ্যের একমাত্র, কেন্দ্রীয় এবং বিশ্বস্ত ভান্ডার। এটা শুধু একটা ডেটাবেস নয়। এটা একটা মৌলিক নীতি যা আপনার নেটওয়ার্কের পরিকল্পনা, কনফিগারেশন এবং অটোমেশনকে চালিত করে। সহজ কথায়, NSoT নির্ধারণ করে "নেটওয়ার্কের আসলে কেমন হওয়া উচিত।"
একটা উদাহরণ দিই। ধরুন আপনার একটা রেস্তোরাঁ আছে। রেস্তোরাঁর মেনু কার্ড হলো আপনার NSoT। সেখানে লেখা আছে কী কী খাবার আছে, কত দামে পাওয়া যাবে। কিন্তু রান্নাঘরে আসলে যা রান্না হচ্ছে, সেটা হলো আপনার অ্যাকচুয়াল স্টেট। এখন যদি মেনুতে লেখা থাকে "চিকেন বিরিয়ানি ৩০০ টাকা" কিন্তু রান্নাঘর থেকে বেরিয়ে আসে ভিন্ন রঙের বিরিয়ানি, তাহলে কাস্টমার অখুশি হবে। ঠিক এভাবেই নেটওয়ার্কে যখন NSoT বলে একটা জিনিস হওয়ার কথা, কিন্তু আসলে ডেলিভার হয় অন্য জিনিস, তখন সমস্যা হয়।
ইনটেন্ডেড স্টেট বনাম অ্যাকচুয়াল স্টেট - দুই অবস্থার গল্প¶
NSoT-এর প্রয়োজনীয়তা বোঝার জন্য নেটওয়ার্কের দুটা গুরুত্বপূর্ণ স্টেট মানে স্থিতিকে বুঝতে হবে। প্রথমটা হলো ইনটেন্ডেড স্টেট, আর দ্বিতীয়টা হলো অ্যাকচুয়াল স্টেট।
ইনটেন্ডেড স্টেট মানে হলো নেটওয়ার্কের পরিকল্পিত বা কাঙ্ক্ষিত অবস্থা। এটা সেই অবস্থা যেমনটা হওয়া উচিত। এটাই হলো একমাত্র সত্য। এই ইনটেন্ডেড স্টেট থাকে NSoT-এর মধ্যে, যেমন Nautobot বা NetBox এর মতো টুলে। এটার ভূমিকা হলো নেটওয়ার্ক কনফিগারেশন এবং ডিজাইনের আদর্শ রূপরেখা দেওয়া।
অন্যদিকে অ্যাকচুয়াল স্টেট মানে হলো নেটওয়ার্ক ডিভাইসগুলোতে বর্তমানে কী কনফিগার করা আছে। অর্থাৎ নেটওয়ার্কের বাস্তব বা বর্তমান অবস্থা। এটা থাকে নেটওয়ার্ক ডিভাইসের রানিং কনফিগারেশনে। এটা হলো নেটওয়ার্কের লাইভ কনফিগারেশন, যা পরিবর্তনশীল হতে পারে।
NSoT-এর প্রধান লক্ষ্য হলো নিশ্চিত করা যে অ্যাকচুয়াল স্টেট যেন সর্বদা ইনটেন্ডেড স্টেট-এর সাথে মিলে যায়। এটা অনেকটা এমন যে, আপনার পরিকল্পনা আর বাস্তবায়ন যেন একই থাকে। কিন্তু বাস্তবে এটা প্রায়ই হয় না। কারণ মানুষ ম্যানুয়ালি কাজ করে, আর মানুষ ভুল করে।
কনফিগারেশন ড্রিফ্ট - নেটওয়ার্কের সাইলেন্ট শত্রু¶
এখন একটা সিচুয়েশন কল্পনা করুন। রাত ২টা বাজে। একজন নেটওয়ার্ক ইঞ্জিনিয়ার ঘুম থেকে উঠে ফোন ধরলেন। জরুরি সমস্যা। একটা এরিয়ায় নেট ডাউন। তাড়াহুড়ো করে তিনি ল্যাপটপ খুলে রাউটারে লগইন করলেন। দ্রুত একটা কনফিগ চেঞ্জ করলেন। সমস্যা সমাধান হলো। কাস্টমাররা খুশি। কিন্তু একটা জিনিস করতে ভুলে গেলেন - NSoT-এ এই চেঞ্জটা আপডেট করতে। কারণ তখন তো ইমার্জেন্সি, সময় কোথায়?
এই যে ঘটনা, এটাই হলো কনফিগারেশন ড্রিফ্ট। যখন কোনো নেটওয়ার্ক অ্যাডমিনিস্ট্রেটর ম্যানুয়ালি ডিভাইসে লগইন করে কনফিগারেশন পরিবর্তন করেন, তখন অ্যাকচুয়াল স্টেট NSoT-তে সংরক্ষিত ইনটেন্ডেড স্টেট থেকে ভিন্ন হয়ে যায়। এই ভিন্নতাকেই বলা হয় কনফিগারেশন ড্রিফ্ট।
কনফিগারেশন ড্রিফ্ট একটা সাইলেন্ট শত্রু। এটা ধীরে ধীরে জমা হতে থাকে। একদিন একটা চেঞ্জ, আরেকদিন আরেকটা চেঞ্জ। কয়েক মাস পরে দেখা যাবে আপনার NSoT-এ যা লেখা আছে, আর নেটওয়ার্কে যা আছে - দুইটা সম্পূর্ণ আলাদা জিনিস। তখন যদি কোনো অটোমেশন স্ক্রিপ্ট চালান, সেটা ভুল ডেটা নিয়ে কাজ করবে। ফলাফল? বড় ধরনের আউটেজ। আর সিস্টেমে এআই নিলে সবাই বলবে, এআই কাজ করে না।
ড্রিফ্ট-এর সমস্যাগুলো একটু খুলে বলি। প্রথমত, ড্রিফ্টের কারণে ডিভাইসের ডেটা NSoT-এর ডেটার সঙ্গে মেলে না। ফলে ট্রাবলশুটিং অর্থাৎ সমস্যা সমাধান করা কঠিন হয়ে যায়। আপনি যখন কোনো সমস্যা ডিবাগ করতে যাবেন, NSoT দেখে মনে করবেন একটা কনফিগ আছে, কিন্তু আসলে ডিভাইসে অন্য কনফিগ। এতে সময় নষ্ট হয়, আর সমস্যা আরও জটিল হয়ে যায়।
দ্বিতীয়ত, অটোমেশনের ফেইলুর দেখায়। অটোমেশন স্ক্রিপ্ট যখন NSoT থেকে ভুল ডেটা নিয়ে ডিভাইসে কনফিগারেশন প্রয়োগ করে, তখন বড় ধরনের ত্রুটি তৈরি হতে পারে। একটা ভুল স্ক্রিপ্ট হয়তো হাজার খানেক কাস্টমারের কানেকশন নামিয়ে দেবে।
তৃতীয়ত, নিরাপত্তার ঝুঁকি বাড়ে। অনিচ্ছাকৃত বা ভুল কনফিগারেশনের কারণে নেটওয়ার্কের সিকিউরিটি দুর্বল হয়ে পড়তে পারে। হয়তো কেউ জরুরি অবস্থায় একটা পোর্ট ওপেন করে রেখে দিয়েছে, আর সেটা বন্ধ করতে ভুলে গেছে। এই ধরনের ছোট ছোট ভুল বড় সিকিউরিটি হোল তৈরি করে।
NSoT-এর চূড়ান্ত লক্ষ্য - স্থিরতা ও দক্ষতা¶
একটা কার্যকর NSoT, বিশেষ করে Nautobot/NetBox-এর মতো প্ল্যাটফর্ম ব্যবহার করে, নেটওয়ার্ক টিমগুলো ম্যানুয়াল ত্রুটি অনেকটাই কমিয়ে আনতে পারে। আর নেটওয়ার্ক পরিবর্তনগুলো দ্রুত ও নির্ভরযোগ্যভাবে প্রয়োগ করতে পারে।
NSoT-এর মাধ্যমে প্রথমে নেটওয়ার্কের ইনটেন্ডেড স্টেটকে সংজ্ঞায়িত করা হয়। আপনি ঠিক করেন নেটওয়ার্ক কেমন হবে। তারপর অটোমেশনের মাধ্যমে ইনটেন্ডেড স্টেটকে অ্যাকচুয়াল স্টেটে রূপান্তর করা হয়। মানে, আপনার পরিকল্পনাকে বাস্তবায়িত করা হয়। এরপর নিরীক্ষণের মাধ্যমে অ্যাকচুয়াল স্টেটকে ইনটেন্ডেড স্টেট-এর সাথে মিলিয়ে দেখা হয়। এভাবে একটা চক্র চলতে থাকে।
এভাবেই NSoT আধুনিক নেটওয়ার্ক পরিচালনায় একটা অপরিহার্য সত্যের উৎস হিসেবে কাজ করে। এটা নেটওয়ার্কে সর্বোচ্চ স্ট্যবিলিটি আর দক্ষতা নিশ্চিত করে। যখন আপনার নেটওয়ার্ক ১০ হাজার কাস্টমার থেকে ১ লাখে যাবে, তারপর ১০ লাখে যাবে - তখন NSoT ছাড়া এই স্কেলিং প্রায় অসম্ভব। কারণ আপনি জানবেন না কোথায় কী আছে। কিন্তু NSoT থাকলে, আপনি যেকোনো সময় পুরো নেটওয়ার্কের একটা ক্লিয়ার পিকচার পাবেন। আর সেই পিকচার দেখেই সিদ্ধান্ত নিতে পারবেন - কোথায় নতুন ডিভাইস লাগবে, কোথায় ব্যান্ডউইথ বাড়াতে হবে, কোন এরিয়ায় সমস্যা বেশি।
১ মিলিয়নের যাত্রা শুরু হয় এই NSoT থেকেই। এটা হলো ফাউন্ডেশন। এই ফাউন্ডেশন মজবুত না হলে, উপরে যত তলাই তৈরি করেন না কেন, সেটা টিকবে না।