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 রাউটার।
২. 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
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 দুই বার গননা করা হয়।)
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 (রাউন্ড ফিগার ধরতে হবে সব সময়)
= 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
= (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
= (1*39,062 + 1*600) [যেহেতু K1=1 ও K3=1]
= 39,662
এখন, EIGRP Metric = 39,662 * 256
= 1,01,53,472
= 1,01,53,472
এই 1,01,53,472 ভ্যালুটিই হলো R1 থেকে 10.1.2.0/24 নেটওয়ার্কে যাওয়ার মূল Metric বা Cost ।
এখন প্রশ্ন হলো যে, এই ভ্যালুটিকে শুধু শুধু 256 দিয়ে গুন করে এত
বড় করার দরকার কি ছিল? এর উত্তর, যদি ক্যালকুলেশনটি EIGRP এর আগের ভার্সন
IGRP তে করা হতো তাহলে ভ্যালুটি হতো 39,662 । যেহেতু এটি EIGRP এর মাধ্যমে
করা হয়েছে তাই দুটি প্রটোকল থেকে প্রাপ্ত মেট্রিক ভ্যালুকে আলাদাভাবে
চিহ্নিত করতে একে 256 দ্বারা গুন করা হয়েছে।
আশাকরি এই টিউটোরিয়ালটি দেখে আপনারা রাউটিং প্রটোকল EIGRP সম্পর্কে কিছু ধারণা পাবেন। ভাল থাকবেন। আল্লাহ হাফেজ।


