This site is best viewed using the updated version of Mozilla Firefox

EIGRP Concept

আসসালামু-আলাইকুম। এই টিউটোরিয়ালে আমরা রাউটিং প্রটোকল EIGRP সম্পর্কে শিখবো। EIGRP এর পূর্ণরূপ হলো Enhanced Interior Gateway Routing Protocol যা IGRP অর্থাৎ Interior Gateway Routing Protocol এর একটি উন্নত সংস্করণ। EIGRP হলো সিসকো’র একটি নিজস্ব প্রটোকল যা সিসকো ডিভাইস ব্যাতিত অন্য কোন ডিভাইসে কনফিগার করা যায় না।

EIGRP হলো একটি Distance Vector রাউটিং প্রটোকল যা HOP Count এর ভিত্তিতে কাজ করে। এর মধ্যে Link State রাউটিং প্রটোকলের কিছু বৈশিষ্ট্য বিদ্যমান থাকায় অনেকেই একে হাইব্রিড রাউটিং প্রটোকল বলে থাকেন। কিন্তু সিসকো তা মানতে নারাজ, তারা বলে এটি স্রেফ একটি Distance Vector রাউটিং প্রটোকল।

EIGRP এর কিছু বৈশিষ্ট্য নিম্নরূপঃ

১. Fast Convergence: EIGRP এর একটি অন্যতম বৈশিষ্ঠ্য হলো এর Fast Convergence সুবিধা। অন্যান্য রাউটিং প্রটোকলের তুলনায় এটি অনেক দ্রুততর সময়ে রাউটিং টেবিল আপডেট করে নেটওয়ার্ককে দ্রুত Converged করতে পারে।

২. Backup Route: অন্যান্য রাউটিং প্রটোকল রাউট ক্যালকুলেশন করে যদি কোন নির্দিষ্ট নেটওয়ার্কের জন্য একাধিক রাউট পায় তাহলে শুধুমাত্র Best রাউটটিকেই রাউটিং টেবিলে অন্তর্ভূক্ত করে। কিন্তু EIGRP রাউট ক্যালকুলেশন করে Best রাউটটিকেই রাউটিং টেবিলে অন্তর্ভূক্ত করার পাশাপাশি যদি কোন Backup/Alternate রাউট পায় তাহলে তা একটি আলাদা টপোলজি টেবিলে যোগ করে। যদি কোন কারণে Best রাউটটি Unavailable হয় তাহলে সাথে সাথে Backup/Alternate রাউটটিকে রাউটিং টেবিলে অন্তর্ভক্ত করে। এজন্য নতুন করে রাউট ক্যালকুলেশন করতে হয় না বলে ডাউন টাইমও কম থাকে।

৩. Loop Free Path: EIGRP রাউটিং প্রটোকল তার রাউটিং এ্যালগরিদমের সাহায্যে এমনভাবে রাউটিং টেবিল মেইনটেইন করে যার ফলে নেটওয়ার্কে কোন অনাকাঙ্খিত Loop সৃষ্টি হয় না।

৪. Bounded Update: অন্যান্য Distance Vector রাউটিং প্রটোকলের মতো EIGRP নিয়মিতভাবে Periodical Update দেয় না। এটা শুধুমাত্র তখনই তার Neighbour রাউটারের কাছে আপডেট পাঠায় যখন নেটওয়ার্কে কোন পরিবর্তন আসে অথবা তার Neighbour রাউটার নিজে থেকে তার কাছে আপডেট চায়। আবার রাউটিং আপডেটের সময় এটা পুরো রাউটিং টেবিল পাঠায় না। শুধুমাত্র প্রয়োজনীয় আপডেটটি (Partial Update) পাঠায়। এতে করে নেটওয়ার্কে ব্যান্ডউইথ থরচ কম হয়।

৫. Unequal Cost Load Balancing: অন্যান্য রাউটিং প্রটোকল যদি একই ডেস্টিনেশন নেটওয়ার্কের জন্য সমান Cost এ দুটি আলাদা রাউট পায় তাহলে ঐ নেটওয়ার্কে ডাটা পাঠানোর জন্য দুটি পাথকেই সমানভাবে ব্যবহার করে। একে Equal Cost Load Balancing বলে। কিন্তু EIGRP এক্ষেত্রে ব্যতিক্রম। এটি একই ডেস্টিনেশন নেটওয়ার্কের জন্য ভিন্ন Cost এ যদি দুটি আলাদা রাউট পায় তাহলে সেই পাথ দুটি ব্যবহার করে Unequal Cost Load Balance করতে পারে। এতে করে ব্যান্ডউইথের সর্বোচ্চ ব্যবহার নিশ্চিত করা সম্ভব হয়।

DUAL

অন্যান্য Distance Vector রাউটিং প্রটোকলসমূহ রাউটিং এ্যালগরিদম হিসেবে Bellman-Ford অথবা Fulkerson এ্যালগরিদম ব্যবহার করে থাকে। কিন্তু EIGRP তার রাউটিং এ্যালগরিদম হিসেবে DUAL ব্যবহার করে। DUAL এর পূর্ণরূপ হলো Diffusing Update Algorithm । DUAL হলো EIGRP এর কম্পিউটেশনাল ইঞ্জিনের হার্ট (Heart) স্বরূপ যা রাউট ক্যালকুলেশন করে Best Loop Free পাথ এবং Best Backup পাথ নির্ণয় করার কাজ করে। DUAL তার Finite State Machine (FSM) এর মাধ্যমে সমগ্র ক্যালকুলেশন প্রক্রিয়া সম্পন্ন করে থাকে।

এখন আমরা DUAL এর কয়েকটি গুরুত্বপূর্ণ Terminology সম্পর্কে জানবো। এই অংশ অনেকের কাছে একটু ঝামেলার মনে হতে পারে। কিন্তু একটু ঠান্ডা মাথায় বুঝলে ততটা কঠিন লাগবে না।

১. Feasible Distance (FD)

২. Advertised Distance (AD)

৩. Successor (S)

৪. Feasible Successor (FS)

প্রথমে উপরের চিত্রটি ভালভাবে লক্ষ্য করি। ধরি রাউটার R1 রাউট ক্যালকুলেট করে তার রাউটিং টেবিলে 10.0.0.0/24 নেটওয়ার্কটি অন্তর্ভূক্ত করবে। দেখা যাক কিভাবে কাজটি সম্পন্ন হয়। R1 থেকে 10.0.0.0/24 নেটওয়ার্কে যাওয়ার দুটি পাথ রয়েছে। একটি R3 এবং অপরটি R4 এর মাধ্যমে। এখন প্রশ্ন হলো, R1 কোন পাথটিকে বেছে নেবে? ধরি, R1 থেকে R3 পর্যন্ত 512 Kbps চ্যানেল এবং এর Cost হলো 100 । অপরদিকে R1 থেকে R4 পর্যন্ত 256 Kbps চ্যানেল এবং এর Cost হলো 200 । যেহেতু, 10.0.0.0/24 নেটওয়ার্কটি R3 এবং R4 উভয়েরই ডিরেক্টলি কানেক্টেড নেটওয়ার্ক, ধরে নিই এই নেটওয়ার্কের জন্য দুইটি রাউটারেরই Cost হলো 10 ।

এখন R3 এবং R4 উভয় রাউটারই রাউটিং আপডেট হিসেবে 10.0.0.0/24 নেটওয়ার্কটি R1 এর কাছে পাঠাবে। R3 এবং R4 উভয় রাউটারই রাউটিং আপডেট হিসেবে 10.0.0.0/24 নেটওয়ার্কটি R1 এর কাছে পাঠানোর সময় R1 কে বলবে 10.0.0.0/24 এর জন্য আমার Cost হলো 10 । এই 10 ভ্যালুটি হলো R1 এর জন্য Advertised Distance (AD) । এখন R1 দেখবে, R3 এবং R4 এ যাওয়ার জন্য তার নিজের Cost হলো যথাক্রমে 100 ও 200 । R1 তার নিজের Cost কে AD এর সাথে যোগ করবে এবং 110 ও 210 দুটি ভ্যালু পাবে। এই 110 ও 210 দুটি ভ্যালু হলো R1 এর জন্য Feasible Distance (FD) অর্থাৎ 10.0.0.0/24 নেটওয়ার্কে যাওয়ার Total Cost । যেহেতু R3 এর মাধ্যমে পাওয়া Cost 110 অপেক্ষাকৃত কম তাই R1 রাউটার R3 এর মাধ্যমে পাওয়া পাথটি তার রাউটিং টেবিলে এন্ট্রি দেবে এবং R3 হবে R1 এর Successor । অন্যদিকে R1 রাউটার R4 এর মাধ্যমে পাওয়া পাথটি Backup পাথ হিসেবে তার টপোলজি টেবিলে যোগ করবে এবং R4 হবে R1 এর Feasible Successor । অর্থাৎ যদি কোন কারণে Successor R3 ফেইল করে তাহলে R1 রাউটার Feasible Successor R4 কে Successor হিসেবে গ্রহণ করবে। এজন্য নতুন করে রাউট ক্যালকুলেশন করতে হবে না।

সুতরাং সার সংক্ষেপ হলোঃ

১. Feasible Distance (FD): কোন নেটওয়ার্কে যাওয়ার জন্য সর্বনিম্ন Cost ।
২. Advertised Distance (AD): একই নেটওয়ার্কে যাওয়ার জন্য Successor রাউটারের Cost ।
৩.Successor (S): কোন নেটওয়ার্কে যাওয়ার জন্য সবচেয়ে ভাল Neighbour রাউটার।
৪. Feasible Successor (FS): একই নেটওয়ার্কে যাওয়ার জন্য ব্যাকআপ Neighbor রাউটার।

Feasible Successor (FS) হওয়ার শর্তঃ

শুধুমাত্র Advertised Distance জানানোর মাধ্যমেই কোন একটি রাউটার অন্য আরেকটি রাউটারের Feasible Successor হতে পারবে না। এজন্য Feasible Successor এর AD ভ্যালু অবশ্যই Successor এর Feasible Distance অপেক্ষা ছোট হতে হবে। এখানে, R4 রাউটার R1 এর Feasible Successor এজন্যই হতে পেরেছে কেননা R4 এর AD ভ্যালু 10 যা R3 এর FD ভ্যালু 110 এর চেয়ে ছোট। যদি কোন কারণে R4 এর AD ভ্যালু 110 এর চেয়ে বড় হতো তাহলে R1 রাউটার R4 কে তার Feasible Successor হিসেবে গ্রহণ করতো না। এ নিয়মটিকে বলা হয় Feasibility Condition (FC)। এ নিয়মটি নেটওয়ার্কে অনাকাঙ্খিত Loop প্রতিহত করার জন্য সাহায্য করে।

ধরি, পাথ ক্যালকুলেট করে কোন রাউটার শুধু একটি রাউট পেল, কোন ব্যাকআপ রাউট বা FS পেল না। যদি কোন কারণে প্রাইমারী রাউট ডাউন হয় সেক্ষেত্রে DUAL কিছু সময় নিয়ে তার FSM এর মাধ্যমে রাউটিং টেবিল রি-ক্যালকুলেট করবে।

আবার ধরি, Successor ও Feasible Successor উভয়ই ডাউন হয়ে গেল। সেক্ষেত্রে রাউটার তার রাউটটিকে Active অবস্থায় রাখবে এবং অন্যান্য Neighbour রাউটারের কাছে রাউটটি পাওয়ার জন্য Query পাঠাবে। এজন্য তুলনামূলক একটু বেশি সময় লাগবে।

১. Active Route: এর অর্থ হলো রাউটার উক্ত রাউটটির জন্য নতুন পাথ খুঁজছে।

২. Passive Route: এর অর্থ হলো রাউটটি স্বাভাবিক আছে, আপাতত নতুন পাথ খোঁজ করার দরকার নেই।

EIGRP Neighbor Relationship, RTP, EIGRP Packets

আমরা এতক্ষন দেখলাম, EIGRP রাউটিং প্রটোকলের সাহায্যে কিভাবে রাউট ক্যালকুলেশন করা হয়। কিন্তু রাউট ক্যালকুলেশন বা রাউট আদান-প্রদান করা পরের ব্যাপার, প্রথমেই দুটি EIGRP এনাবলড রাউটারকে নিজেদের মধ্যে Neighbor রিলেশনশীপ তৈরী করতে হয়।

EIGRP হলো একটি Network Layer Independent রাউটিং প্রটোকল। এটা IP, IPX ও AppleTalk সবক্ষেত্রেই কাজ করে। যেহেতু IPX ও AppleTalk এ TCP/IP প্রটোকল সুইট ব্যবহৃত হয় না তাই EIGRP রাউটারসমূহ নিজেদের মধ্যে EIGRP প্যাকেট আদান প্রদানের জন্য Reliable Transport Protocol (RTP) ব্যবহার করে থাকে। এই প্যাকেটসমূহ হলোঃ Hello, Update, Acknowledge, Reply ও Query Packet ।

RTP এর “Reliable” শব্দটি কেবলই এর নামের একটি অংশ। কেননা RTP এর মাধ্যমে “Reliable” ও “Unreliable” দুই ভাবেই EIGRP প্যাকেটসমূহ লেনদেন হয়ে থাকে। Reliable RTP এর ক্ষেত্রে প্রেরক রাউটার যখন কোন EIGRP প্যাকেট পাঠায় গ্রাহক রাউটার তখন তার Acknowledgement দেয়। অন্য দিকে Unreliable RTP এর ক্ষেত্রে প্রেরক রাউটার যখন কোন EIGRP প্যাকেট পাঠায় গ্রাহক রাউটার তখন তার কোন Acknowledgement দেয় না।

এখন আমরা দেখবো কিভাবে দুইটি EIGRP রাউটারের মধ্যে Neighbor রিলেশনশীপ তৈরী হয়।

১. প্রথমে R1 রাউটার R2 এর কাছে একটি Hello Packet পাঠায় Neighbor ডিসকভারি ও রিলেশন তৈরীর জন্য। এই Hello Packet টি হলো একটি Multicast প্যাকেট যা মাল্টিকাস্ট রিসার্ভ আই.পি 224.0.0.10 ব্যবহার করে থাকে। Hello Packet হলো একটি Unreliable RTP প্যাকেট। বেশিরভাগ নেটওয়ার্কে এই Hello Packet প্রতি পাঁচ (৫) সেকেন্ড পর পর প্রেরিত হয়, কিন্তু NBMA (X.25, Frame Relay, ATM) নেটওয়ার্কে প্রতি ষাট (৬০) সেকেন্ড পর পর প্রেরিত হয়।

২. R2 রাউটার R1 এর কাছে নিজের রাউটিং টেবিল সম্বলিত একটি Update Packet পাঠায়। এই Update Packet টি হলো একটি Reliable RTP প্যাকেট। এজন্য R1 রাউটার R2 কে Acknowledgement পাঠায়।

৩. অতঃপর R1 রাউটার R2 কে তার নিজের রাউটিং টেবিল সম্বলিত একটি Update Packet পাঠায় এবং R2 তার Acknowledgement দেয়।

৪. R1 রাউটার R2 কে তখনই Query Packet পাঠায় যখন R1 এর কোন স্পেসিফিক রাউটের দরকার হয়। এক্ষেত্রে R2 রাউটার একটি Acknowledgement দেয়।

৫. যদি R2 রাউটারের কাছে সেই স্পেসিফিক রাউটটি থাকে তাহলে তা Reply Packet এর মাধ্যমে R1 এর কাছে পাঠায় এবং R1 তার Acknowledgement দেয়।

EIGRP Metric Calculation

Metric হলো এমন একটি ভ্যালু যা দ্বারা কোন একটি রাউটের দূরত্ব প্রকাশ করা হয়। এই ভ্যালু যত কম হবে দূরত্ব তত কম এবং ভ্যালু যত বেশি হবে দূরত্বও তত বেশি হয়। আমরা এই টিউটোরিয়ালের প্রথম দিকে EIGRP এর রাউট ক্যালকুলেশনের জন্য যে Metric/Cost দেখেছি তা ছিল উদাহরণ মাত্র। প্রকৃতপক্ষে EIGRP কিভাবে তার Cost বা Metric ক্যালকুলেশন করে এবার আমরা তা দেখবো।

EIGRP তার Best পাথ নির্ধারণের জন্য যে Composit Metric ক্যালকুলেট করে তার জন্য কয়েকটি মান ব্যবহৃত হয়। এগুলো হলঃ

১. Bandwidth ২. Load ৩. Delay ৪. Reliability ৫. MTU

বাই ডিফল্ট Metric ক্যালকুলেশনের সময় Bandwidth ও Delay এই দুটি মান ব্যবহৃত হয়। কিন্তু একজন এ্যাডমিনিষ্ট্রেটর চাইলে অন্যান্য মান গুলোও ব্যবহার করতে পারেন।

Bandwidth: Bandwidth বলতে এখানে লিংক এর মোট ক্যাপাসিটি বুঝায় না। এটি শুধুমাত্র Metric ক্যালকুলেশনের জন্য ব্যবহৃত একটি স্ট্যাটিক ভ্যালু যা Kbps আকারে থাকে। প্রয়োজন মাফিক রাউটারের ইন্টারফেস কমান্ডের মাধ্যমে এই ভ্যালুটি পরিবর্তন করা যায়।

Load: Load বলতে কোন একটি লিংক এ কি পরিমান ট্রাফিক চলাচল করছে তা বুঝায়। Load হলো একটি ডায়নামিক ভ্যালু যা 0 থেকে শুরু করে 255 পর্যন্ত হয়ে থাকে। Load ক্যালকুলেশনের সময় ডায়নামিকভাবে পাওয়া এই ভ্যালুটিকে 255 দ্বারা ভাগ করা হয়। সুতরাং Load = n/255 (এখানে, n এর মান 0 থেকে শুরু করে 255 পর্যন্ত যেকোন একটি সংখ্যা)। n এর মান যত কম হবে লিংক এর Load তত কম হবে। n এর মান যত বেশি হবে লিংক এর Load ও তত বেশি হবে। Load এর এই মানটি ইন্টারফেসের ট্রাফিকের পরিমাণের উপর ভিত্তি করে প্রতি পাঁচ মিনিট পর পর আপডেট হয়ে থাকে।

Delay: সাধারণভাবে Delay বলতে কোন একটি নেটওয়ার্ক থেকে অন্য একটি নির্দিষ্ট নেটওয়ার্কে প্যাকেট পৌছাতে যে সময় লাগে তা বোঝায়। কিন্তু EIGRP রাউট ক্যালকুলেশনের সময় এই ভ্যালুটি ভিন্ন অর্থ বহন করে। এখানে Delay হলো একটি স্ট্যাটিক ভ্যালু যা ইন্টারফেসের ধরণের উপর নির্ভর করে। এটি মাইক্রো সেকেন্ডে (usec) প্রকাশ করা হয়।

FastEthernet ---> 100 usec
Ethernet ---> 1000 usec
T1 (Serial) ---> 20,000 usec

Reliability: এটি একটি ডায়নামিক ভ্যালু যা 0 থেকে শুরু করে 255 পর্যন্ত হয়ে থাকে। Reliability ক্যালকুলেশনের জন্য ডায়নামিকভাবে পাওয়া ভ্যালুটিকে 255 দ্বারা ভাগ করা হয়। সুতরাং Reliability = n/255 (এখানে, n এর মান 0 থেকে শুরু করে 255 পর্যন্ত যেকোন একটি সংখ্যা)। n এর মান যত কম হবে লিংক তত Unreliable হবে, n এর মান যত বেশি হকে লিংক তত Reliable হবে।

MTU: MTU হলো Maximum Transfer Unit ।

Metric ক্যালকুলেশনের সময় উপরিউক্ত ভ্যালুসমূহকে K দ্বারা চিহ্নিত করা হয়।

K1 (Bandwidth) = 1
K2 (Load) = 0
K3 (Delay) = 1
K4 (Reliability) = 0
K5 (Reliability) = 0 (Reliability দুই বার গননা করা হয়।)

আমরা আগেই বলেছি, EIGRP Metric ক্যালকুলেশনের সময় বাই ডিফল্ট শুধুমাত্র Bandwidth ও Delay এই দুটি মান ব্যবহৃত হয় তাই এদের K ভ্যালু 1, বাকি সকগুলোর 0 । Complete Formula:

Metric = [K1*Bandwidth + (K2*Bandwidth)/(256-Load) + K3*Delay] * [K5/(Reliability+K4)]

যেহেতু, বাই ডিফল্ট শুধুমাত্র Bandwidth ও Delay এই দুটি মান ব্যবহৃত হয় তাই Default Formula:

Metric = [K1*Bandwidth + K3*Delay]

এখন আমরা Metric ক্যালকুলেশনের একটি প্র্যাকটিক্যাল উদাহরণ দেখবো। উপরে বর্নিত সুত্রটি যতটা না ঘোলাটে, মূল ক্যালকুলেশন তার চেয়েও বেশি ঘোলাটে।

EIGRP Metric Calculation: A Practical Example

এখন আমরা EIGRP Metric Calculation এর একটি উদাহরণ দেখবো। নিচের চিত্রটি ভালভাবে লক্ষ্য করুন।

R1 থেকে 10.1.2.0/24 নেটওয়ার্কে যেতে যে কয়টি রাউটার পার হয়ে যেতে হয় তার মধ্যে সর্বনিম্ন ব্যান্ডউইথ হলো 256 Kbps (R2 ও R3 এর মধ্যকার লিংক)। রাউট ক্যালকুলেশনের সময় যে Bandwidth ভ্যালু গননা করা হয় তাতে শুধুমাত্র এই Slowest Bandwidth - কেই হিসেবে ধরা হয়।

Bandwidth = 10^7 / Slowest BW
= 10,000,000 / 256 [ যেহেতু 10^7 = 10,000,000]
= 39,062.50
= 39,062 (রাউন্ড ফিগার ধরতে হবে সব সময়)

Delay = Sum of all Delay / 10
= (2,000 + 2,000 + 2,000) / 10
= 6,000 / 10
= 600

আমরা জানি, Metric = [K1*Bandwidth + K3*Delay]
= (1*39,062 + 1*600) [যেহেতু K1=1 ও K3=1]
= 39,662

এখন, EIGRP Metric = 39,662 * 256
= 1,01,53,472

এই 1,01,53,472 ভ্যালুটিই হলো R1 থেকে 10.1.2.0/24 নেটওয়ার্কে যাওয়ার মূল Metric বা Cost ।

এখন প্রশ্ন হলো যে, এই ভ্যালুটিকে শুধু শুধু 256 দিয়ে গুন করে এত বড় করার দরকার কি ছিল? এর উত্তর, যদি ক্যালকুলেশনটি EIGRP এর আগের ভার্সন IGRP তে করা হতো তাহলে ভ্যালুটি হতো 39,662 । যেহেতু এটি EIGRP এর মাধ্যমে করা হয়েছে তাই দুটি প্রটোকল থেকে প্রাপ্ত মেট্রিক ভ্যালুকে আলাদাভাবে চিহ্নিত করতে একে 256 দ্বারা গুন করা হয়েছে।

আশাকরি এই টিউটোরিয়ালটি দেখে আপনারা রাউটিং প্রটোকল EIGRP সম্পর্কে কিছু ধারণা পাবেন। ভাল থাকবেন। আল্লাহ হাফেজ।