DNS Server Work

Network Communication (নেটওয়ার্ক যোগাযোগ)

আমরা সবাই কম-বেশী নেটওয়ার্ক বা নেটওয়ার্কিং কথাটির সাথে পরিচিত। নেটওয়ার্ক হলো এমন একটি ব্যবস্থা যেখানে লোকজন দূরবর্তী অন্য কারো সাথে যোগাযোগ করতে পারে বা তথ্য আদান-প্রদান করাতে পারে। একমাত্র কার্যক্ষম ও নির্ভরযোগ্য টেকনোলজিই মানুষের সমস্ত চাহিদা মিটিয়ে নেটওয়ার্ককে মানুষের সর্বোচ্চ ব্যবহার উপযোগী করে গড়ে তুলতে পারে। আর এজন্য বিভিন্ন সময়ে বিভিন্ন ব্যক্তি ও প্রতিষ্ঠান এই খাতের উন্নয়নে নানা ধরণের নতুন প্রযুক্তি ও নতুন ডিভাইস তৈরী করেছে এবং এখনো করে যাচ্ছে। এই নতুন প্রযুক্তি ও নতুন ডিভাইসগুলোর সফল ব্যবহারই পারে একটি নেটওয়ার্ককে মানুষের ব্যবহার উপযোগী করে গড়ে তুলতে।

Network Component

নেটওয়ার্ক যোগাযোগ শুরু হয় একটি ছোট তথ্য বা ম্যাসেজ থেকে যা একজন প্রেরক পাঠায় কোন প্রাপকের নিকট। এবং এই প্রেরক ও প্রাপকের মাঝখানে থাকে একটি মিডিয়া যার মধ্য দিয়ে এই তথ্য আদান-প্রদান হয়ে থাকে। সুতরাং আমরা বলতে পারি, নেটওযার্কে যোগাযোগের তিনটি প্রধান উপাদান হলো প্রেরক, প্রাপক ও মিডিয়া বা মাধ্যম। মিডিয়াম বলতে এখানে বোঝানো হয়েছে ক্যাবল বা ওয়্যারলেস ট্রান্সমিশনকে।

নেটওয়ার্কের এই উপাদানসমূহ আবার দুটি শ্রেণীতে বিভক্ত। একটি হলো হার্ডওয়্যার উপাদান এবং অন্যটি সফটওয়্যার উপাদান। ডিভাইস এবং মিডিয়া হলো হার্ডওয়্যার উপাদান, যেমনঃ পি.সি, সুইচ, হাব, ক্যাবল ইত্যাদি। অন্যদিকে সফটওয়্যার উপাদান হলো কিছু সার্ভিস বা প্রসেস (এককথায় সফটওয়্যার) যা ডিভাইসসমূহের মধ্যে রান করে (চলমান থাকে)।

End Device and Intermediary Device

নেটওয়ার্ক ডিভাইসসমূহকে আবার দুইভাগে ভাগ করা হয়। এক. End Device দুই. Intermediary Device

End Device গুলো হলো কম্পিউটার, ল্যাপটগ, সার্ভার, প্রিন্টার, আই.পি ফোন, আই.পি ক্যামেরা, পি.ডি.এ ইত্যাদি। End Device গুলোকে আবার Host ও বলা হয়ে থাকে। আর এই Host ই হলো নেটওয়ার্ক যোগাযোগের প্রেরক ও প্রাপক, এবং এদের প্রত্যেকের আলাদা পরিচয় বা এ্যাড্রেস থাকে। যখন কোন প্রেরক Host অন্য কোন প্রাপক Host এর নিকট তথ্য/ডাটা পাঠায় তখন এই এ্যাড্রেস ব্যবহৃত হয়।

End Device এর পাশাপাশি নেটওয়ার্কে কিছু Intermediary Device ও ব্যবহৃত হয়ে থাকে যা End Device সমূহকে নেটওয়ার্কে সংযুক্ত করে এবং ডিভাইসসমূহের মধ্যে ডাটার আদান-প্রদান নিয়ন্ত্রন করে থাকে। যেমনঃ সুইচ, হাব, রাউটার, ওয়্যারলেস একসেস পয়েন্ট ইত্যাদি।

Network Media

আমরা আগেই বলেছি নেটওয়ার্কে তথ্য আদান-প্রদান হয় মিডিয়ার মধ্য দিয়ে। আধুনিক কম্পিউটার নেটওয়ার্কে প্রধানত তিন ধরণের মিডিয়া ব্যবহৃত হয়।
১. Metallic Wire
২. Glass or Fiber
৩. Wireless Transmission

শ্রেণীভেদে এই মিডিয়ামগুলোর তথ্য আদান=প্রদানের ক্ষমতা বিভিন্ন হয়ে থাকে। একজন নেটওয়ার্ক প্রফেশনাল যখন তার কাজের জন্য মিডিয়াম নির্বাচন করবেন তখন তাকে নিম্নোক্ত কয়েকটি বিষয় বিবেচণায় রাখতে হবে।
১. নেটওয়ার্কের দূরত্ব।
২. নেটওয়ার্কের পরিবেশ।
৩. ডাটার পরিমাণ এর্ং ডাটা ট্রান্সমিশনের গতি।
৪. ইন্সটলেশনের খরচ।

LAN, WAN and Internetworks

নেটওয়ার্ক কাঠামো কয়েকটি বিষয়ের উপর ভিত্তি করে বিভিন্ন ধরণের হয়ে থাকে। বিষয়গুলো হলোঃ
১. নেটওয়ার্কের আকার
২. ইউজার সংখ্যা
৩. নেটওয়ার্ক সার্ভিসের সংখ্যা ও তার ধরণ

একটি ছোট এলাকা বা ভবন নিয়ে যে নেটওয়ার্ক গঢ়ড় উঠে তাকে LAN (Local Area Network) বলে। এখানে Host সংখ্যা দুই থেকে শুরু করে একটি সীমিত সংখ্যা পর্যন্ত হতে পারে।

যথন কোনো কোম্পানির বিভিন্ন স্থান ও দূরত্বে একাধিক অফিস থাকে তখন তারা ইন্টারসেট সার্ভিস প্রোভাইডার (আই.এস.পি) এর মাধ্যমে বিভিন্ন স্থানের অফিসকে সংযুক্ত করে একটি নেটওয়ার্ক গড়ে তোলে। এই ধরণের নেটওয়ার্ককে WAN (Wide Area Network) বলে। একটি WAN হলো একাধিক LAN এর সমষ্টি। এই WAN কে ম্যানেজ করার জন্য একজন দক্ষ নেটওয়ার্ক প্রফেশনাল এর প্রয়োজন হয়।

LAN ও WAN এর যোগাযোগ ছাড়াও দৈনন্দিন জীবনে আমাদের আরো অনেক প্রয়োজন রয়েছে। যেমনঃ আমেরিকায় থাকা কোন বন্ধুকে ই-মেইল করা, কোন ওয়েব সাইট ব্রাউজ করা, অনলাইনে কারো সাথে চ্যাট করা ইত্যাদি। আর এজন্য আমাদেরকে যে নেটওয়ার্কের সাথে যুক্ত হতে হয় তা হলো Internet. Internet হলো বিশ্বের সবচেয়ে বড় ও বহুল ব্যবহৃত নেটওয়ার্ক।

Common Data Network Symbols

Protocol

কম্পিউটার নেটওয়ার্ক বা আমাদের দৈনন্দিন জীবন – দুই জায়গাতেই সব ধরণের যোগাযোগগুলো হয়ে থাকে কিছু নির্দিষ্ট নিয়ম অনুসারে। আর এ নিয়মসমূহকে আমরা প্রটোকল বলতে পারি। ব্যক্তিগত যোগাযোগের ক্ষেত্রে আমরা প্রতিদিন বিভিন্ন নিয়ম অনুসরণ করে থাকি। টেলিফোন যোগাযোগের ক্ষেত্রে যে নিয়ম মানা হয় পত্র যোগাযোগের ক্ষেত্রে আর সে নিয়ম কাজ করে না। তাহলে একবার চিন্তা করে দেখুন এরকম কত শত নিয়ম পৃথিবীতে বিদ্যমান। যেমন: আমরা যখন কারো সাথে ফেস-টু-ফেস কথা বলি তখন বিভিন্ন দিক খেয়াল রাখতে হয়। যার সাথে কথা বলি সে যে ভাষা জানে আমাকেও সেই ভাষায় কথা বলতে হবে, কথার ভলিউম এমন হতে হবে যাতে করে সে কথা শুনতে পায়, কথা বলার সময় তার চোখের দিকে তাকিয়ে বলতে হবে, শুধু নিজে কথা বললেই হবে না তাকেও কথা বলার সুযোগ দিতে হবে। ঠিক এমনি নেটওয়ার্ক যোগাযোগের ক্ষেত্রেও এরকম অসংখ্য নিয়ম বা প্রটোকল বিদ্যমান।

একটি প্রেরক ও প্রাপক ডিভাইসের মধ্যে সফলভাবে ডাটা আদান-প্রদানের জন্য একাধিক প্রটোকলের প্রয়োজন হতে পারে। আর পরষ্পর সম্পর্কযুক্ত একাধিক প্রটোকলের একটি গ্রুপকে বলা হয় প্রটোকল সুইট (Protocol Suite)। আবার নেটওয়ার্ক যোগাযোগের ক্ষেত্রে সবগুলো প্রটোকল একই সাথে ব্যবহৃত হয় না বরং একটির কাজ শেষ হলে অন্যটির কাজ শুরু হয়। ব্যাপারটিকে আমরা “একের পর এক” অর্থাৎ এক Stack আকারে কল্পনা করতে পারি।

প্রটোকল সুইট এর একটি উৎকৃষ্ট উদাহরণ হতে পারে একটি Web Server ও একটি Web Browser এর মধ্যকার যোগাযোগ। যখন কোন কম্পিউটার এর Browser থেকে কোন Web Server এর নিকট রিকোয়েষ্ট পাঠানো হয় তখন এই কাজ সফলভাবে সম্পন্ন করার জন্য বিভিন্ন প্রটোকলসমূহ কাজ করে। যেমনঃ প্রথমে Application লেয়ারের HTTP প্রটোকলের মাধ্যমে ডাটা ট্রান্সমিশনের সূচনা হয়। তা পরবর্তীতে Transport লেয়ারে এসে TCP প্রটোকলের মাধ্যমে ছোট ছোট খন্ড বা Segment এ বিভক্ত হয়। পরবর্তীতে Internet লেয়ারের IP প্রটোকলের মাধ্যমে এ্যাড্রেস সংযুক্ত করে এবং Network Access লেয়ারের MAC প্রটোকলের মাধ্যমে উপযুক্ত মিডিয়ামের মধ্য দিয়ে ডাটা প্রবাহিত হয়।

এই লেয়ারভিত্তিক নেটওয়ার্ক যোগাযোগের জন্য একটি বহুল ব্যবহৃত Layered Model হলো TCP/IP মডেল। TCP/IP মডেল হলো এমন একটি প্রাটোকল মডেল যা প্রতিটি লেয়ারের প্রটোকলসমূহের কার্যবলী নির্ধারণ করে। আর TCP/IP মডেলকে আরো ভালোভাবে বুঝার জন্য পরবর্তীতে আবির্ভূত হয়েছে একটি Reference Model যা OSI Model হিসেবে পরিচিত। ডাটা ন্টেওয়ার্ক ডিজাইন ও ট্রাবলশ্যুটিং এর কাজে এই OSI Model ব্যবহৃত হয়।

Data Communication Process

TCP/IP মডেল অনুসারে একটি সফল নেটওয়ার্ক যোগাযোগের প্রয়োজনীয় ধাপগুলো হলোঃ

১. প্রেরক ডিভাইসের Application লেয়ারে ডাটা ট্রান্সমিশনের সূচনা হয়। অতঃপর তা Transport লেয়ারে পাঠায়।
২. Transport লেয়ার এ ডাটাকে Segment এ বিভক্ত করে এবং Internet লেয়ারে পাঠায়।
৩. Internet লেয়ার প্রতিটি Segment কে Packet এ বিভক্ত করে এবং প্রতিটি Packet এর সাথে প্রেরক ও প্রাপকের ঠিকানা (আই.পি এ্যাড্রেস) সংযুক্ত করে।
৪. সবশেষে Network Access লেয়ার Packet সমূহকে Frame এ বিভক্ত করে এবং উপযুক্ত মিডিয়ামের মধ্য দিয়ে bits আকারে ডাটা প্রবাহিত করে।

উপরিউক্ত প্রক্রিয়াটিকে বলা হয় Encapsulation.

যখন প্রেরক ডিভাইস থেকে প্রেরিত কোন Frame প্রাপক ডিভাইসে পৌছায় তখন ঘটে বিপরীত ঘটনা।

১. প্রথমে Network Access লেয়ার Frame গুলোকে Packet এ পরিণত করে।
২. তারপর Internet লেয়ার Packet গুলোকে Segment এ পরিণত করে।
৩. Transport লেয়ার Segment গুলোকে একত্রিত করে Data তে পরিণত করে।
৪. এবং সবশেষে Application লেয়ার উক্ত Data কে উপযুক্ত প্রোগ্রামের মাধ্যমে ব্যবহারকারীর নিকট তুলে ধরে।

এ প্রক্রিয়াটিকে বলা হয় Decapsulation. ইহা Encapsulation এর ঠিক বিপরীত কাজ করে।

সুতরাং Encapsulation হলো Data —> Segment —> Packet —> Frame —> Bits
এবং Decapsulation হলো Bits —> Frame —> Packet —> Segment —> Data

ধন্যবাদ সবাইকে।

 

Application Layer

আজকের টিউটোরিয়ালে আমরা TCP/IP এর Application Layer ও এর কয়েকটি প্রটোকল সম্বন্ধে জানবো।

আমরা পূর্বের টিউটোরিয়ালে জেনেছি যে, এই Application Layer এ নেটওয়ার্ক যোগাযোগের সূচনা হয়। এবং Application Layer এর প্রটোকলসমূহ প্রেরক ও গ্রাহক হোষ্টের মধ্যে ডাটার আদান-প্রদান করে থাকে। TCP/IP মডেলের এই Application Layer কে আরো ভালোভাবে বুঝার জন্য OSI রেফারেন্স মডেলে এটিকে Application Layer, Presentation Layer ও Session Layer এই তিনটি লেয়ারে ভাগ করা হয়েছে।

Presentation Layer এর কাজঃ

১। প্রেরক হোষ্টের Application Layer এর ডাটাকে এমনভাবে কোডিং করা যাতে গ্রাহক হোষ্ট তা সহজেই ডিকোড করতে পারে।
২। ডাটাকে এমনভাবে কম্প্রেস করা যাতে গ্রাহক হোষ্ট তা সহজেই ডিকম্প্রেস করতে পারে।
৩। ডাটাকে ট্রান্সমিশনের জন্য এমনভাবে এনক্রিপ্ট করা যা কিনা গ্রাহক হোষ্ট সহজেই ডিক্রিপ্ট করতে পারে।

Session Layer এর কাজঃ

নাম থেকেই বুঝা যায় যায়, Session Layer এর কাজ হলো প্রেরক ও গ্রাহক হোষ্টের এ্যাপ্লিকেশনসমূহের মধ্যে ডাটা ট্রান্সমিশনের জন্য সেশন তৈরী করা এবং তা মেইনটেইন করা। ইহা সেশনকে প্রয়োজনীয় সময় পর্যন্ত সচল রাখে, দরকারমতো সেশন ক্লোজ করে এবং প্রয়োজন হলে পুনরায় সেশন তৈরী করে।

বহুল পরিচিত Application Layer এর প্রটোকলসমূহ হলোঃ

১। Domain Name System (DNS) – ইহা ডোমেইন নেমকে আই.পি এ্যাড্রেসে রিসল্ভ করে।
২। Hypertext Transfer Protocol (HTTP) – ইহার মাধ্যমে কোন সার্ভারের ওয়েব পেজকে ব্রাউজ করা যায়।
৩। Simple Mail Transfer Protocol (SMTP) – ইহা ই-মেইল ও এ্যাটাচমেন্ট পাঠানোর জন্য ব্যবহৃত হয়।
৪। Post Office Protocol (POP) – ইহা ই-মেইল রিসিভ করার জন্য ব্যবহৃত হয়।
৫। File Transfer Protocol (FTP) – ইহা দুইটি হোষ্টের মধ্যে ফাইল আদান-প্রদানের জন্য ব্যবহৃত হয়।
৬। Secured Shell (SSH) – ইহা কোন সার্ভারে কমান্ড লাইনের মাধ্যমে রিমোট লগইনের জন্য ব্যহৃত হয়।

 

The Client/Server Model

Client/Server মডেলে যে হোষ্ট কোন তথ্যের জন্য অন্য কোন হোষ্টকে অনুরোধ করে তাকে Client বলে এবং যে হোষ্ট কোন তথ্য প্রদান করে তাকে Server বলে। এই Client/Server প্রসেস Application Layer এ কাজ করে। কারণ এই লেয়ারেই একটি ক্লায়েন্ট কোন তথ্যের জন্য সার্ভারের নিকট রিকোয়েষ্ট পাঠানোর সূচনা করে। যখন সার্ভার থেকে ক্লায়েন্ট এর নিকট ডাটা আসে তখন সেটাকে আমরা Download বলি আর যখন ক্লায়েন্ট থেকে সার্ভারের নিকট ডাটা যায় তখন আমরা সেটিকে Upload বলি।

ধন্যবাদ সবাইকে।

 

Transport Layer

আজকের টিউটোরিয়ালে আমরা TCP/IP এর Transport Layer ও এর কয়েকটি প্রটোকল সম্বন্ধে জানবো।

আমরা ইতিমধ্যে জেনেছি যে, TCP/IP মডেলে Application Layer এর কাজ শেষ হলে ডাটা ঐ লেয়ার থেকে পরবর্তী Transport Layer এ যায়। Transport Layer ডাটাকে ভেঙ্গে সেগমেন্ট এ পরিণত করে এবং এর সাথে এমন একটি মেকানিজম যুক্ত করে যাতে গ্রাহক হোস্ট এই সেগমেন্টগুলোকে একত্রিত করে আবার ডাটাতে রূপান্তরিত করতে পারে। এছাড়াও Transport Layer এর আরো কিছু কাজ আছে। যেমনঃ

১। Tracking Application – প্রেরক ও গ্রাহক উভয় হোস্টের এ্যাপ্লিকেশনসমূহের মধ্যকার প্রতিটি কমিউনিকেশনের উপর নজর রাখে।

২। Identifying Each Application – প্রতিটি এ্যাপ্লিকেশনকে আলাদাভাবে চিহ্নিত করে যাতে এক এ্যাপ্লিকেশনের তথ্য অন্য এ্যাপ্লিকেশনে না ঢুকে যায়। এই এ্যাপ্লিকেশনসমূহকে আলাদাভাবে চিহ্নিত করতে প্রতিটি এ্যাপ্লিকেশনের জন্য স্বতন্ত্র পোর্ট নম্বর ব্যবহৃত হয়। এই পোর্ট নম্বর সম্পর্কে আমরা পরবর্তীতে বিস্তারিত জানবো।

৩। Segmentation and Reassembly – বেশিরভাগ নেটওয়ার্কের একটি সীমাবদ্ধতা আছে। যেমনঃ নেটওয়ার্কের মধ্য দিয়ে প্রবাহিত প্যাকেটগুলোর সাইজ বেশি বড় হওয়া যাবে না। এজন্য Transport Layer প্রথমে ডাটাকে ছোট ছোট Segment এ বিভক্ত করে যাতে নেটওয়ার্কের মধ্য দিয়ে তা সহজেই যাতায়াত করতে পারে, এই প্রক্রিয়াকে Segmentation বলে। আবার গ্রাহক হোষ্টের Transport Layer ঠিক বিপরীত কাজটি করে যাকে Reassembly বলে।

Segmentation and Reassembly প্রক্রিয়ার সাথে সাথে Transport Layer নিচের কাজগুলো হয়ে থাকে।

Connection Oriented Conversation – Transport Layer দুইটি হোস্ট এর মধ্যে Connection Oriented যোগাযোগ স্থাপন করে। Connection Oriented যোগাযোগ বলতে বুঝায়, কোন ডাটা যোগাযোগের আগেই দুইটি হোস্টকে সতর্ক করা এবং প্রস্তুত করা। এজন্য Transport Layer একটি সেশন তৈরী করে এবং সে সেশনের সমস্ত যোগাযোগ কঠোরভাবে নিয়ন্ত্রন করে।

Acknowledgement – আমরা কারো কাছে কোন জিনিস পাঠানোর পর ঐ জিনিস পেয়ে প্রাপক জিনিসটি পেয়েছে এই মর্মে যে নিশ্চিতকরণ বার্তা পাঠায় তাকেই Acknowledgement বলে। নেটওয়ার্ক যোগাযোগের ক্ষেত্রে Transport Layer ঠিক এই কাজটিই করে থাকে। এতে করে গ্রাহক হোস্টের নিকট পাঠানো সেগমেন্টগুলো ঠিকভাবে পৌছালো কি পৌছালো না তা নিশ্চিত হওয়া যায়।

Relaible Delivery – যেকোন কারণেই নেটওয়ার্কের মধ্য দিয়ে প্রবাহিত ডাটা প্যাকেটগুলো গ্রাহক হোস্টে পৌছানোর আগেই পথিমধ্যে নষ্ট হয়ে যেতে পারে বা হারিয়ে যেতে পারে। এজন্য প্রেরক ও গ্রাহক এর মধ্যে যোগায়োগের ব্যাঘাত ঘটে এবং যোগাযোগের ক্ষেত্রে সময় বেশি লাগে। এসমস্য থেকে পরিত্রানের জন্য Transport Layer গ্রাহক হোস্টের নিকট কোন প্যাকেট না পৌছালে তা পুনরায় পাঠায়। এতে করে নেটওয়ার্ক যোগাযোগ অনেক রিলায়েবল হয়।

Same Order Delivery – গ্রাহক ও প্রেরক হোস্টের মধ্যে যোগায়োগের জন্য একাধিক নেটওয়ার্ক পাথ থাকতে পারে। এক একটি পাথে সময় কম বা বেশি লাগাটাই স্বাভাবিক। এক্ষেত্রে প্রেরক হোস্ট থেকে পাঠানো সেগমেন্টগুলো ঠিক ক্রমানুসারে না আসলে গ্রাহক হোস্টের রিএ্যাসেম্বল প্রক্রিয়া বিলম্বিত হয়। এজন্য Transport Layer প্রেরিত সেগমেন্টগুলোকে একটি সংখ্যা দ্বারা সিকোয়েন্স করে যাতে যথাযথ ক্রমানুযায়ী সেগমেন্টগুলো গ্রাহক হোস্টের নিকট পৌছায়।

Flow Control – অনেক হোস্টের বিভিন্ন সীমাবদ্ধতা থাকে যেমনঃ মেমরী কম বা ব্যান্ডউইথ কম। একারণে অনেক সময় এমন পরিষ্থিতির উদ্ভব হতে পারে, যেমনঃ প্রেরক হোস্ট যে গতিতে ডাটা পাঠাচ্ছে গ্রাহ হোস্ট সে গতিতে ডাটা গ্রহণ করতে পারছে না। এতে করে নেটওয়ার্ক যোগাযোগ বিঘ্নিত হয়। এজন্য Transport Layer হোস্টদ্বয়ের মধ্যে ডাটা প্রবাহ নিয়ন্ত্রন করে থাকে।

TCP and UDP

Transport লেয়ার প্রটোকলসমূহের মধ্যে উল্লেখযোগ্য দুইটি প্রটোকল হলোঃ

১। TCP এবং ২। UDP

TCP = Transmission Control Protocol

UDP = User Datagram Protocol

UDP – UDP হলো একটি সাধারণ কানেকশনলেস প্রটোকল। গ্রাহক হোস্টে ডাটা পৌছাবে কি পৌছাবে না তা এই প্রটোকলের মাধ্যমে নিশ্চিত করা যায় না। এর হেডারে সামান্য কিছু তথ্য থাকে তাই এই প্রটোকলের মাধ্যমে যোগাযোগের গতি গতি কিছুটা দ্রুততর হয়ে থাকে। যে সমস্ত এ্যাপ্লিকেশন UDP প্রটোকল ব্যবহার করে সেগুলো হলোঃ

১। Domain Name System (DNS)
২। Vedio Streaming
৩। Voice Over IP (VoIP)

TCP – TCP হলো একটি কানেশন ওরিয়েন্টেড প্রটোকল যা হোস্টদ্বয়ের মধ্যে ডাটার প্রাপ্যতা নিশ্চিত করে। এর জন্য TCP এর হেডারে কিছু অতিরিক্ত তথ্য থাকে। একারণে TCP প্রটোকলের মাধ্যমে যোগাযোগের গতি UDP প্রটোকলের তুলনায় কিছুটা কম হয়ে থাকে। যে সমস্ত এ্যাপ্লিকেশন TCP প্রটোকল ব্যবহার করে সেগুলো হলোঃ

১। Web browser
২। E-mail
৩। File Transfer

Port Addressing

ধরুন, আপনার কম্পিউটারে বসে আপনি একই সময়ে বেশ কয়েকটি কাজ করছেন। যেমনঃ অফিসের বস কে মেইল পাঠাচ্ছেন, আরেকটি ব্রাউজারে কোন একটি ওয়েব পেজ ব্রাউজ করছেন, আবার ফেসবুকে আপনার বন্ধুর সাথে চ্যাট করছেন। এই তিনটি এ্যাপ্লিকেশন আপনার কম্পিউটারে একইসাথে চলছে। এখন আপনার কম্পিউটারে আসা সেগমেন্টগুলোর কোনটি কোন এ্যাপ্লিকেশনের মাধ্যমে ওপেন হবে তা নিশ্চিত করার জন্য এ পোর্ট নম্বর ব্যবহৃত হয়, যাতে করে একটি এ্যাপ্লিকেশনের ডাটা আরেকটি এ্যাপ্লিকেশনে চলে না যায়। প্রতিটি এ্যাপ্লিকেশনকে পৃথকভাবে চিহ্নিত করার জন্য আলাদা আলাদা পোর্ট নম্বর থাকে। এই পোর্ট নম্বরসমূহ নির্ধারণ করে দেয় International Assigned Number Authority (IANA) নামের একটি সংগঠন।

পোর্ট নম্বরসমূহকে প্রধানত তিনটি ভাগে ভাগ করা হয়।

১। Well Known Ports (0 – 1023)
২। Registered Ports (1024 – 49151)
৩। Dynamic or Private Ports (49152 – 65535)

বহুল ব্যবহৃত কিছু পোর্ট নম্বরঃ

FTP                 20, 21
SSH                 22
Telnet  23
SMTP  25
DNS                53
DHCP 67
HTTP  80
POP                 110
SNMP 161
ইত্যাদি।

ধন্যবাদ সবাইকে।

 

IP Addressing and Sub-netting (আই.পি এ্যাড্রেসিং ও সাব-নেটিং)

নেটওয়ার্কের প্রতিটি End Device এর একটি স্বতন্ত্র (ইউনিক) পরিচয় থাকতে হয়। TCP/IP এর Network Layer এ প্যাকেটসমূহকে একটি Source Address এবং একটি Destination Address দ্বারা চিহ্নিত করা হয়। IPv4 এর প্রতিটি Network Layer Packet এ একটি ৩২ বিটের Source Address ও একটি ৩২ বিটের Destination Address থাকে। এই এ্যাড্রেসসমূহ Binary প্যাটার্ণ হিসেবে ব্যবহৃত হয়। একজন মানুষের পক্ষে এই ৩২ বিটের স্ট্রিং মনে রাখা কঠিন, তাই এই এ্যাড্রেসসমূহকে Dotted Decimal ফরম্যাটে রিপ্রেজেন্ট করা হয়।

Dotted Decimal

Binary প্যাটার্ণের প্রতিটি Byte (1 Byte = 8 bit) কেএকটি ডট (.) দ্বারা আলাদা করা হয়। এই আলাদা অংশগুলোর প্রতিটিকে Octet বলা হয়।

যেমনঃ 10101100000100000000010000010100 কে Dotted Decimal এ 172.16.4.20 দ্বারা প্রকাশ করা হয়।

এখানে Binary ৩২ বিটকে প্রতিটি ৮ বিটের চারটি Octet এ বিভক্ত করা হয়েছে। মনে রাখবেন, ডিভাইসসমূহ তাদের অপারেশনের সময় Binary প্যাটার্ণ ব্যবহার করে। Dotted Decimal ফরম্যাট শুধুমাত্র মানুষের বুঝার ও মনে রাখার সুবিধার্থে ব্যবহৃত হয়।

Network Portion and Host Portion (নেটওয়ার্ক অংশ এবং হোষ্ট অংশ)

প্রতিটি IPv4 এ্যাড্রেসের ৩২ বিটকে Network Portion ও Host Portion নামে দুইটি অংশে ভাগ করা হয়। এই ৩২ বিটের মধ্যে বাম দিক থেকে কিছু বিট দ্বারা Network Portion কে এবং অবশিষ্ট বিসমূহ দ্বারা Host Portion কে রিপ্রেজেন্ট করা হয়। এই Host Portion এর বিটসংখ্যা দ্বারা নির্ণয় করা হয় ঐ নেটওয়ার্কের Host সংখ্যা কত।

Binary to Decimal Conversion (বাইনারী টু ডেসিমাল কনভার্সন)

বাইনারী থেকে ডেসিমাল কনভার্সন বুঝতে হলে প্রথমে আমাদের গাণিতিক সংখ্যাত্বত্তের Positional Notation বুঝতে হবে। Positional Notation দ্বারা বুঝায়, কোন একটি ডিজিট (Digit) তার অবস্থানভেদে বিভিন্ন মান প্রকাশ করে।

উদাহরণস্বরূপঃ ডেসিমাল সংখ্যা 245 এর 2 দ্বারা 2*10^2 (2*100) বা 200 প্রকাশ করা হয়। কারণ, 2 এর অবস্থান হলো শতক এর ঘরে। সুতরাং,

245 = (2*10^2)+(4*10^1)+(5*10^0) বা
245 = (2*100)+(4*100)+(5*1)

Binary Numbering System (বাইনারী নম্বর পদ্ধতি)

বাইনারী পদ্ধতিতে ভিত্তি হলো 2 । এর মাত্র দুইটি ডিজিট আছেঃ 0 ও 1 ।
অবস্থানভেদে বাইনারী প্রতিটি ডিজিটের মান নিম্নরূপঃ

2^7    2^6    2^5    2^4    2^3    2^2    2^1    2^0
128    64     32     16       8       4       2       1

যখন আমরা কোন বাইনরী সংখ্যাকে ডেসিমালে কনভার্ট করি, তখন যে পজিশনের ডিজিটের মান 1 হয় শুধুমাত্র সে পজিশনের মানসমূহ যোগ করি। আর যে পজিশনের ডিজিটের মান 0 হয় সে পজিশনের মান 0 বিবেচনা করি। যেমনঃ

1         1       1       1        1       1       1       1     ( বাইনারী ডিজিট )

128    64     32     16       8       4       2       1     ( বাইনারী ডিজিটের মান )

প্রতিটি পজিশনে 1 দ্বারা বুঝায় ঐ পজিশনের মানকে মোট মানের সাথে যোগ করতে হবে। সে হিসেবে উপরিউক্ত বাইনারী সংখ্যার ডেসিমাল মান হলোঃ
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

আবার,

0         0       0       0        0       0       0       0     ( বাইনারী ডিজিট )
128    64     32     16       8       4       2       1     ( বাইনারী ডিজিটের মান )

প্রতিটি পজিশনে 0 দ্বারা বুঝায় ঐ পজিশনের মানকে মোট মানের সাথে যোগ করা যাবে না। যেমনঃ
0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 0

বাইনারী থেকে ডেসিমাল কনভার্সনের জন্য নিচের চিত্রটি ভালভাবে বুঝার চেষ্টা করুন।

মনে রাখবেনঃ
১। ৩২ বিটকে চারটি Octet এ বিভক্ত করতে হবে।
২। প্রতিটি Octet কে ডেসিমালে রূপান্তর করতে হবে।
৩। প্রতিটি Octet এর মধ্যে একটি ডট (.) বসাতে হবে।

Types of Addresses

IPv4 এ তিন ধরণের এ্যাড্রেস আছে।

১। Network Address : Network Address দ্বারা একটি নেটওয়ার্ককে বুঝানো হয়।

২। Broadcast Address : Broadcast Address হলো একটি বিশেষ এ্যাড্রেস যা দ্বারা একটি নেটওয়ার্কের সকল Host এর সাথে কমিউনিকেট করা যায়। Broadcast Address হিসেবে Network Range এর শেষ এ্যাড্রেসটি ব্যবহৃত হয়।

৩। Host Address : আমি আগেই বলেছি, যদি কোন Host একটি নেটওয়ার্কে কমিউনিকেট করতে চায় তাহলে তার একটি স্বতন্ত্র এ্যাড্রেস থাকা প্রয়োজন। আর সেই এ্যাড্রেসটিকেই Host Address বলে। একটি Network Range এর Network Address ও Broadcast Address এর মধ্যবর্তী সকল এ্যাড্রেসসমূহকে Host Address হিসেবে ব্যবহার করা হয়।

Network Prefix

একটি গুরুত্বপূর্ণ প্রশ্নঃ একটি ৩২ বিট এ্যাড্রেসের কতগুলো বিট নেটওয়ার্ক অংশের এবং কতগুলো বিট হোষ্ট অংশের, তা আমরা কিভাবে জানবো?

যখন আমরা IPv4 এ্যাড্রেস নিয়ে কাজ করি, তখন আমরা নেটওয়ার্ক এ্যাড্রেসের সাথে একটি Prefix যুক্ত করি। যেমনঃ 10.0.0.1/24 । এই শেষোক্ত /24 ই হলো Prefix আর এই /24 Prefix দ্বারা বুঝায়, ৩২ বিট এ্যাড্রেসের প্রথম থেকে ২৪টি বিট হলো নেটওয়ার্ক অংশের এবং অবশিষ্ট ৮টি বিট হলো হোষ্ট অংশের।

Network Class

Dotted Decimal ফরম্যাটে IPv4 এ্যাড্রেস ব্লক/রেঞ্জ হলো 0.0.0.0 থেকে 255.255.255.255 পর্যন্ত। এই এ্যাড্রেস ব্লককে কয়েকটি Class এ বিভক্ত করা হয়।

Class – A (0.0.0.0 – 127.255.255.255)
Class – B (128.0.0.0 – 191.255.255.255)
Class – C (192.0.0.0 – 223.255.255.255)
Class – D (224.0.0.0 – 239.255.255.255)
Class – E (240.0.0.0 – 255.255.255.255)

শুধুমাত্র Class – A, Class – B ও Class – C এর এ্যাড্রেসসমূহ Host Address হিসেবে ব্যবহৃত হয়। আর Class – D এর এ্যাড্রেসসমূহ Multicast Address হিসেবে এবং Class – E এর এ্যাড্রেসসমূহ Experimental Address হিসেবে ব্যবহৃত হয়।

Loopback Address

IPv4 এ 127.0.0.1 এই এ্যাড্রেসটি Loopback এ্যাড্রেস হিসেবে ব্যবহৃত হয়। এই Loopback এ্যাড্রেস হলো একটি বিশেষ এ্যাড্রেস যা দ্বারা প্রত্যেকটি কম্পিউটার/হোষ্ট তাদের নিজেদেরকেই চিনে থাকে। এই Loopback এ্যাড্রেসকে PING করে কোনো কম্পিউটারের TCP/IP কনফিগারেশন টেষ্ট করা হয়।

Link-local Address

IPv4 এ 169.254.0.0 হতে 169.254.255.255 (অর্থাৎ 169.254.0.0/16) এই এ্যাড্রেস ব্লকটি Link-local Address এ্যাড্রেস হিসেবে ব্যবহৃত হয়। Link-local Address এ্যাড্রেস হলো একটি বিশেষ এ্যাড্রেস ব্লক যদি কোন কম্পিউটারে কোন আই.পি কনফিগারেশন করা না থাকে তাহলে কম্পিউটারের অপারেটিং সিস্টেম এই এ্যাড্রেস ব্লকের যেকোন একটি আই.পি কে ঐ কম্পিউটারের আ.পি এ্যাড্রেস হিসেবে অটোমেটিকভাবে এ্যাসাইন করে দেয়।

Public Address and Private Address

IPv4 এ্যাড্রেস ব্লকের (0.0.0.0 থেকে 255.255.255.255) যেসকল এ্যাড্রেসসমূহ ইন্টারনেট থেকে এ্যাকসেস করা যায় তাদেরকে Public Address বলে এবং যেসকল এ্যাড্রেসসমূহ ইন্টারনেট থেকে এ্যাকসেস করা যায় না তাদেরকে Private Address বলে। অধিকাংশ IPv4 হোষ্ট এ্যাড্রেসই হলো Public Address । নিম্নে Private Address এর ব্লকসমূহ দেওয়া হলোঃ

১। 10.0.0.0 থেকে 10.255.255.255 (10.0.0.0/8)
২। 172.16.0.0 থেকে 172.31.255.255 (172.16.0.0/12)
৩। 192.168.0.0 থেকে 192.168.255.255 (192.168.0.0/24)

চিত্রে দেখানো হয়েছে, Private এ্যাড্রেসসমূহ সাধারণ Private নেটওয়ার্কের কম্পিউটার সমূহে ব্যবহৃত হয়, যে কম্পিউটারসমূহকে সচরাচর ইন্টারনেটের মাধ্যমে এ্যাকসেস করা যায় না। তবে Private এ্যাড্রেসবিশিষ্ট কোন কম্পিউটার বিশেষ প্রয়োজনে ইন্টারনেটের সাথে যুক্ত হতে পারে। সেজন্য Network Address Translation (NAT) নামক একটি সার্ভিসের প্রয়োজন হয়। NAT সম্পর্কে আমরা অন্য কোন টিউটোরিয়ালে বিস্তারিত শিখবো ইনশা-আল্লাহ্। ধন্যবাদ সবাইকে।

 

 

Address Resolution Protocol (ARP)

দুই বা ততোধিক নেটওয়ার্ক ডিভাইস যখন কোন একটি সুইচের সাহায্যে সংযুক্ত থাকে তখন আমরা তাকে একটি LAN হিসেবে বিবেচনা করি। একটি LAN এ প্রতিটি ডিভাইস আদান-প্রদানকৃত বিভিন্ন Frame রিসিভ করে। এখন প্রশ্ন হলো, কোন একটি ডিভাইস কিভাবে বুঝবে যে, তার নিকট আসা Frame টি আসলে তার নিজের জন্য এসেছে নাকি অন্য কোন ডিভাইসের। LAN এর ডিভাইসসমূহ যাতে বুঝতে পারে তার কাছে আসা Frame টি তার নাকি অন্য কারো, এজন্য Ethernet নেটওয়ার্কে একটি বিশেষ এ্যাড্রেস ব্যবহৃত হয়, একে MAC Address বলে।

MAC Address হলো একটি Unique Identifier যা একটি Ethernet নেটওয়ার্কের প্রতিটি সোর্স এবং ডেষ্টিনেশন ডিভাইসকে আলাদাভাবে চিহ্নিত করে। MAC Address হলো একটি 48 বিটের বাইনারী ভ্যালু যা 12 টি Hexadecimal ডিজিট দ্বারা প্রকাশ করা হয়। MAC Address সমূহ নেটওয়ার্ক ডিভাইসের Network Interface Card (NIC) এর ROM Chip এর মধ্যে Burned অবস্থায় থাকে যা কোনভাবেই পরিবর্তন করা যায় না। এজন্য একে Burned-in Address (BIA) ও বলা হয়ে থাকে। কিন্তু বর্তমান কম্পিউটার অপারেটিং সিস্টেমগুলোতে সফটওয়্যার লেভেলে এই MAC Address সমূহ পরিবর্তন করে বিভিন্ন কাজ করা যায়।

IEEE এর নিয়ম অনুযায়ী, প্রতিটি NIC এর MAC সমূহ স্বতন্ত্র হওয়া আবশ্যক। যে সকল প্রতিষ্ঠান NIC প্রস্তুত করে থাকে তাদেরকে অবশ্যই IEEE তে রেজিষ্টার্ড হতে হয়। IEEE এই সকল প্রতিষ্ঠানসমূহকে 24 বিটের একটি স্বতন্ত্র Organizational Unique Identifier (OUI) প্রদান করে। এই 24 বিটের OUI হলো 48 বিট MAC Address এর প্রথম 24 বিট। IEEE এর নিয়ম অনুযায়ী NIC প্রস্তুতকারক প্রতিষ্ঠানসমূহ প্রাপ্ত 24 বিট OUI এর সাথে নিজেদের মতো করে আরো 24 বিটের স্বতন্ত্র নম্বর যোগ করে একটি 48 বিটের পূর্ণাঙ্গ MAC Address তৈরী করে যা Global Unique Identifier হিসেবে বিবেচিত হয়।

একটি MAC এ্যাড্রেসকে বিভিন্নভাবে লিখা যায়। যেমনঃ

  • 00-05-9A-3C-78-00
    • 00:05:9A:3C:78:00
    • 0005.9A3C.7800

একটি উইন্ডোজ অপারেটিং সিস্টেম কম্পিউটারের Command Prompt এ ipconfig /all কমান্ডের মাধ্যমে ঐ কম্পিউটারের সাথে সংযুক্ত NIC সমূহের MAC Address দেখা যায়।

MAC Address সমূহ তিন ধরণের। এগুলো হলোঃ

  1. i) Unicast Address: একটি Unicast MAC Address হলো এমন একটি এ্যাড্রেস যার উপর ভিত্তি করে Ethernet নেটওয়ার্কে একটি সোর্স ডিভাইস থেকে আরেকটি নির্দিষ্ট ডেষ্টিনেশন ডিভাইসের নিকট ডাটা পাঠানো হয়।
  2. ii) Broadcast Address: যখন একটি সোর্স ডিভাইস থেকে নেটওয়ার্কের অন্যান্য সকল ডিভাইসের নিকট Broadcast প্যাকেট পাঠানো হয় (আই.পি এ্যাড্রেসের হোষ্ট বিটসমূহের all 1 ব্যবহার করে) তখন Data Link লেয়ারের Frame হেডারে ডেষ্টিনেশন MAC হিসেবে FF:FF:FF:FF:FF:FF (All F) বসানো হয় যাতে LAN এর প্রতিটি ডিভাইসের কাছেই উক্ত Frame টি পৌছায়। এই All F বিশিষ্ট MAC টি কে Broadcast MAC Address বলে।

iii) Multicast Address: Multicast MAC Address ব্যবহার করে একটি সোর্স ডিভাইস থেকে LAN এর কিছু সংখ্যক ডিভাইসের নিকট ডাটা পাঠানো হয়।

IP-MAC Combination: The ARP Table

ARP এর পূর্ণরূপ হলো Address Resolution Protocol । ARP এমন এক ধরণের প্রটোকল যার সাহায্যে একটি নেটওয়ার্ক ডিভাইস Ethernet নেটওয়ার্কে অন্য কোন ডিভাইসের কাছে ডাটা পাঠানোর সময ডেষ্টিনেশন ডিভাইসের MAC Address সংগ্রহ করে। LAN এ একটি সোর্স ডিভাইস থেকে আরেকটি ডেষ্টিনেশন ডিভাইসে ডাটা পাঠানোর ক্ষেত্রে IP Address ও MAC Address উভয়ই ব্যবহৃত হয়। সোর্স ডিভাইস যখন ডাটা পাঠানোর সূচনা করে তখন ইহা Network লেয়ারের Packet হেডারে Source IP Address ও Destination IP Address যুক্ত করে। Encapsulation প্রক্রিয়ায় Packet টি যখন Data Link লেয়ারে যায় তখন তা Frame এ পরিণত হয় এবং Frame হেডারে Source ও Destination MAC Address যুক্ত হয়। এক্ষেত্রে সোর্স ডিভাইসকে অবশ্যই তার ডেষ্টিনেশন ডিভাইসের IP Address এর সাথে MAC Address ও জানতে হয়। কম্পিউটারসমূহ IP ও MAC এর সমন্বয়ে একটি বিশেষ ARP Table বা ARP Cache মেইনটেইন করে। ARP Table হলো এক ধরণের Mapping Table যার মধ্যে LAN এর বিভিন্ন ডিভাইসসমূহের IP-MAC এর কম্বিনেশন থাকে। এই ARP Table ডিভাইসসমূহের RAM এ জমা থাকে। IP-MAC কম্বিনেশন ব্যবহার করে সোর্স ডিভাইস যখন ডাটা পাঠায় তখন ডেষ্টিনেশন ডিভাইস সহজেই বুঝতে পারে যে ডাটাটি তার নিজের জন্য এসেছে কি না। যে প্রক্রিয়ায় একটি ডিভাইস LAN এর অন্যান্য ডিভাইসসমূহের IP-MAC কম্বিনেশন তার নিজের ARP Table এ যোগ করে তাকে ARP Process বলে।

ARP Process: An example

ধরি, PC1 কোন একটি ডাটা PC3 এর কাছে পাঠাবে। Encapsulation প্রক্রিয়ায় PC1 সোর্স ও ডেষ্টিনেশন IP ও MAC Address ব্যবহার করে তা PC3 এর কাছে পাঠায়। যদি PC1 এর ARP Table এ PC3 এর IP-MAC কম্বিনেশন না থাকে তাহলে PC1 তা সংগ্রহ করার জন্য একটি ARP Request পাঠায়। ARP Request টি যখন সুইচের F0/1 ইন্টারফেসে আসে তখন সুইচ এটিকে অন্যান্য সকল ইন্টারফেস দিয়ে Broadcast করে দেয়। অর্থাৎ PC1 এর ARP Request টি LAN এর অন্যান্য সকল ডিভাইসের কাছে পৌছায়। এসময় শুধুমাত্র PC3 এই ARP Request এর বিপরীতে PC1 এর কাছে ARP Reply পাঠায় আর অন্যান্য সকল PC ARP Request টি ড্রপ করে দেয়। ARP Reply পাওয়ার পর PC1 তার ARP Table এ PC3 এর IP-MAC কম্বিনেশনটি যোগ করে নেয় এবং পরবর্তীতে PC3 এর সাথে যোগাযোগের সময় ARP Table এর রেকর্ড ব্যবহার করে তা সম্পন্ন করে থাকে। এজন্য নতুন করে আর ARP Process এর দরকার হয় না। ARP Process এর সময় সুইচ তার নিজস্ব একটি MAC Address Table তৈরী করে এবং তা মেইনটেইন করে থাকে। MAC Address Table হলো সুইচের RAM এ সংরক্ষিত একটি বিশেষ তালিকা যার মধ্যে সুইচের সাথে সংযুক্ত প্রতিটি ডিভাইসের MAC Address থাকে এবং কোন MAC Address টি কোন ইন্টারফেস দিয়ে এসেছে তাও চিহ্নিত থাকে।

Why does Switch Maintain MAC Address Table?

ধরি, PC1 কোন একটি ডাটা PC3 এর কাছে পাঠাবে। এই ডাটা আদান-প্রদানের সময় PC1 ও PC3 মধ্যবর্তী ডিভাইস হিসেবে সুইচটিকে ব্যবহার করবে। ডাটা প্যাকেট যখন PC1 এর কাছ থেকে সুইচের কাছে পৌছাবে তখন সুইচ সিদ্ধান্ত নিবে যে, সে ডাটাকে তার কোন ইন্টারফেস দিয়ে কাঙ্খিত ডেষ্টিনেশন ডিভাইসের কাছে পৌছাবে। এক্ষেত্রে সুইচ তার MAC Address Table চেক করে PC3 যে ইন্টারফেসের সাথে সংযুক্ত আছে সেই ইন্টারফেস দিয়ে PC3 এর নিকট ডাটা পাঠিয়ে দিবে। সুইচ যদি MAC Address Table মেইনটেইন না করে তাহলে ইহা প্রতিবার ডাটা ট্রান্সফারের সময় ঐ ডাটা প্রতিটি ডিভাইসের কাছে Broadcast করবে (হাব এর মতো)। এতে নেটওয়ার্কে Broadcast Traffic বৃদ্ধি পাবে এবং পারফরম্যান্সও হ্রাস পাবে। আর সুইচ যদি MAC Address Table মেইনটেইন করে তাহলে ARP Process এর সময় প্রথমবার Broadcast হবে এবং পরবর্তীতে প্রতিবার ইহা নির্দিষ্ট ইন্টারফেস দিয়ে শুধুমাত্র কাঙ্খিত ডিভাইসের কাছেই ডাটা ডেলিভারী দিবে। এটিই সুইচ ও হাব এর মধ্যকার প্রধান পার্থক্য।

একটি সুইচের MAC Address Table দেখার জন্য আমাদের নিচের কমান্ড দিতে হবে।

Switch#show mac address-table           Mac Address Table——————————————-Vlan    Mac Address       Type        Ports—-    ———–       ——–    —–   1    000d.88c7.9a24    DYNAMIC     Fa0/1   1    0012.3fd4.6d1b    DYNAMIC     Fa0/3

 

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

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 সম্পর্কে কিছু ধারণা পাবেন। ভাল থাকবেন। আল্লাহ হাফেজ।

 

EIGRP Basic Configuration

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

EIGRP কনফিগার করার শুরুতে আমরা চিত্রের টপোলজিটি এবং কনফিগারেশন অবজেকটিভগুলো ভালভাবে দেখে নিই। এই টপোলজি ও অবজেকটিভ অনুসারেই আমরা পুরো ল্যাবটি সম্পন্ন করবো। এই ল্যাবটি GNS3 দিয়ে করা হয়েছে।

চিত্রে তিনটি রাউটার রয়েছে। ধরি রাউটার R1 একটি প্রতিষ্ঠানের হেড অফিসের Core রাউটার। এর সাথে দূরবর্তী কোন একটি শাখা অফিসের দুইটি রাউটার R2 ও R3 যুক্ত। R1 এর সাথে R2 একটি 256 Kbps ব্যান্ডউইথের লিংক দিয়ে যুক্ত আর R3 একটি 512 Kbps ব্যান্ডউইথের একটি লিংক দিয়ে যুক্ত। অনেক প্রতিষ্ঠান তাদের দূরবর্তী শাখা অফিস সমূহকে এভাবে একাধিক লিংক দিয়ে যুক্ত করে। এটি করা হয় মূলত Redundancy এর জন্য, যাতে একটি লিংক ডাউন হলেও অন্য লিংক দিয়ে কানেকশন সচল থাকে। চিত্রে R2 এবং R3 হলো একই শাখা অফিসের দুইটি রাউটার এবং এরা নিজেরা পরষ্পরের সাথে যুক্ত। R2 রাউটারের f0/0 ইন্টারফেসে একটি LAN (10.60.0.0/24) রয়েছে। যেহেতু GNS3 তে কাজ করার ক্ষেত্রে আমাদের কিছু রিসোর্সের সীমাবদ্ধতা আছে তাই আমরা হেড অফিস থেকে শাখা অফিসে রাউটিং আপডেট কিভাবে যাচ্ছে তা ভালভাবে বুঝার জন্য R1 এ অনেকগুলো Loopback ইন্টারফেস রেখেছি।

এখন আমরা এই ল্যাবটির কনফিগারেশন অবজেকটিভগুলো ভালোভাবে দেখে নিই।

অবজেকটিভ-১: EIGRP কনফিগার করার জন্য প্রতিটি রাউটারে Autonomous System (AS) নম্বর হিসেবে 10 ব্যবহার করতে হবে।

অবজেকটিভ-২: রাউটারগুলোতে EIGRP এমনভাবে কনফিগার করতে হবে যাতে ইহা Classfull রাউটিং প্রটোকল হিসেবে কাজ না করে।

অবজেকটিভ-৩: R1 এ 192.168.1.0/24 নেটওয়ার্কের দিকে একটি Static Route থাকবে যে রাউটটিকে ইহা R2 ও R3 এর কাছে আপডেট হিসেবে পাঠাবে (EIGRP Redistribution ছাড়া)।

অবজেকটিভ-৪: R1 এর Null 0 ইন্টারফেসে যে 192.168.1.0/24 নেটওয়ার্কটি যুক্ত আছে সেই 192.168.1.0/24 নেটওয়ার্কের দিকে R2 ও R3 রাউটারে একটি Default Route থাকবে। তবে এক্ষেত্রে R2 ও R3 এ কোন Static Route (0.0.0.0/0) ব্যবহার করা যাবে না।

অবজেকটিভ-৫: EIGRP রাউটিং আপডেটের নিরাপত্তা বাড়ানোর জন্য রাউটারসমূহের যে ইন্টারফেসসমূহ অন্য কোন রাউটারের সাথে যুক্ত নয় সেই ইন্টারফেসগুলো দিয়ে যাতে কোন Neighbor Relationship তৈরী না হতে পারে তা নিশ্চিত করতে হবে।

অবজেকটিভ-৬: নেটওয়ার্কের রাউটিং ইফিসিয়েন্সি বৃদ্ধির জন্য R1 যাতে তার 10.10.0.0 থেকে 10.10.7.0 নেটওয়ার্কসমূহকে সামারাইজ করে R2 ও R3 এর কাছে পাঠাতে পারে সে ব্যবস্থা করতে হবে।

অবজেকটিভ-৭: ব্যান্ডউইথের সর্বোচ্চ ব্যবহার নিশ্চিত করার লক্ষ্যে R1 যাতে 192.168.0.0/24 নেটওয়ার্কে যাওয়ার জন্য Unequal Cost Load Balance করতে পারে তার জন্য প্রয়োজনীয় ব্যবস্থা গ্রহণ করতে হবে।

Configuration

আমরা চিত্রে প্রদত্ত টপোলজি অনুযায়ী রাউটার R1, R2 ও R3 এর বিভিন্ন ইন্টারফেসসমূহের আই.পি এ্যাড্রেস, সাবনেট মাস্ক, হোষ্ট নেম, লিংক ব্যান্ডউইথ ইত্যাদি আগেই কনফিগার করে রেখেছি। প্রথমে আমরা রাউটারের ইন্টারফেসসমূহের স্ট্যাটাস দেখে নিই।

R1#show ip interface briefInterface           IP-Address      OK? Method Status                ProtocolFastEthernet0/0     unassigned      YES unset  administratively down downSerial0/0           172.16.10.1     YES manual up                    downFastEthernet0/1     unassigned      YES unset  administratively down downSerial0/1           172.16.20.1     YES manual up                    downLoopback1           10.10.0.1       YES manual up                    upLoopback2           10.10.1.1       YES manual up                    upLoopback3           10.10.2.1       YES manual up                    upLoopback4           10.10.3.1       YES manual up                    upLoopback5           10.10.4.1       YES manual up                    upLoopback6           10.10.5.1       YES manual up                    upLoopback7           10.10.6.1       YES manual up                    upLoopback8           10.10.7.1       YES manual up                    upLoopback9           10.10.8.1       YES manual up                    upR2#show ip interface briefInterface           IP-Address      OK? Method Status                ProtocolFastEthernet0/0     10.60.0.1       YES manual up                    upSerial0/0           172.16.10.2     YES manual up                    upFastEthernet0/1     192.168.0.1     YES manual up                    upSerial0/1           unassigned      YES unset  administratively down downR3#show ip interface briefInterface           IP-Address      OK? Method Status                ProtocolFastEthernet0/0     unassigned      YES unset  administratively down downSerial0/0           172.16.20.2     YES manual up                    upFastEthernet0/1     192.168.0.2     YES manual up                    upSerial0/1           unassigned      YES unset  administratively down down

 

কনফিগারেশন-১:

এখন আমরা আমাদের অবজেকটিভ-১ সম্পন্ন করার জন্য রাউটারসমূহে পর্যায়ক্রমে নিচের কমান্ডগুলো দিব।

R1#conf terminalR1(config)#router eigrp 10R1(config-router)#network 172.16.10.0 0.0.0.3R1(config-router)#network 172.16.20.0 0.0.0.3R1(config-router)#network 10.10.0.0 0.255.255.255

প্রথমত, আমরা R1 এ এর ডিরেক্টলি কানেক্টেড নেটওয়ার্কগুলো EIGRP #network কমান্ডের মাধ্যমে যোগ করলাম। যেহেতু অন্যান্য রাউটারে আমরা এখনো কোন EIGRP #network কমান্ড দেই নি তাই এখনো কোন রাউটারের সাথে R1 এর Neighbor Relationship তৈরী হয় নি।

R2#configure terminalR2(config)#router eigrp 10R2(config-router)#network 172.16.10.0 0.0.0.3*Mar  1 00:26:30.591: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor172.16.10.1 (Serial0/0) is up: new adjacencyR2(config-router)#network 192.168.0.0 0.0.0.255R2(config-router)#network 10.60.0.0 0.0.0.255

দ্বিতীয়ত, আমরা R2 এ এর ডিরেক্টলি কানেক্টেড নেটওয়ার্কগুলো EIGRP #network কমান্ডের মাধ্যমে যোগ করলাম। যখনই আমরা R2 তে 172.16.10.0 নেটওয়ার্কটি যোগ করলাম তখন সাথে সাথে R2 রাউটার R1 এর সাথে Neighbor Relationship তৈরী করলো। কারণ 172.16.10.0 নেটওয়ার্কটিও R1 এ ইতিমধ্যে যোগ করা হয়েছে।

R3#configure terminalEnter configuration commands, one per line.  End with CNTL/Z.R3(config)#router eigrp 10R3(config-router)#network 172.16.20.0 0.0.0.3*Mar  1 00:25:47.591: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor172.16.20.1 (Serial0/0) is up: new adjacencyR3(config-router)#network  192.168.0.0 0.0.0.255*Mar  1 00:26:28.787: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 10: Neighbor192.168.0.1 (FastEthernet0/1) is up: new adjacency

সবশেষে আমরা R3 এ এর ডিরেক্টলি কানেক্টেড নেটওয়ার্কগুলো EIGRP #network কমান্ডের মাধ্যমে যোগ করলাম। এতে করে R1 রাউটার R2 ও R3 এর সাথে, R2 রাউটার R1 ও R3 এর সাথে, R3 রাউটার R1 ও R2 এর সাথে Neighbor Relationship তৈরী করলো।

এখানে আমরা প্রতিটি রাউটারে EIGRP এর AS হিসেবে 10 ব্যবহার করেছি। লক্ষ্য করি, এখানে আমরা R1 এ EIGRP Network যোগ করার সময় সব Loopback ইন্টারফেসসমূহকে একটি মাত্র কমান্ডের মাধ্যমে যোগ করেছি (যেহেতু 10.10.*.*/24 এই ধরণের কোন নেটওয়ার্ক অন্য কোন রাউটারে নেই)।

একটি EIGRP রাউটারে Network কমান্ডের মাধ্যমে কোন নেটওয়ার্ক ব্লক যোগ করার অর্থ হলো:
(i) রাউটার ঐ নেটওয়ার্কের ইন্টারফেস দিয়ে Neighbor Relationship তৈরীর জন্য Hello Packet পাঠাবে এবং
(ii) ঐ নেটওয়ার্কটিকে অন্যান্য EIGRP রাউটারের কাছে রাউটিং আপডেট হিসেবে পাঠাবে।

ব্যাপারটি ভালভাবে বুঝার জন্য আমরা R1 এ নিচের কমান্ডটি দিব।

R1#show ip protocolsRouting Protocol is “eigrp 10”  Outgoing update filter list for all interfaces is not set  Incoming update filter list for all interfaces is not set  Default networks flagged in outgoing updates  Default networks accepted from incoming updates  EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0  EIGRP maximum hopcount 100  EIGRP maximum metric variance 1  Redistributing: eigrp 10  EIGRP NSF-aware route hold timer is 240s  Automatic network summarization is in effect  Automatic address summarization:    172.16.0.0/16 for Loopback1, Loopback2, Loopback3      Loopback4, Loopback5, Loopback6      Loopback7, Loopback8, Loopback9      Summarizing with metric 2169856    10.0.0.0/8 for Serial0/0, Serial0/1      Summarizing with metric 128256  Maximum path: 4  Routing for Networks:    10.0.0.0    172.16.10.0/30    172.16.20.0/30  Routing Information Sources:    Gateway         Distance      Last Update    (this router)         90      00:02:05    172.16.20.2           90      00:02:06    172.16.10.2           90      00:02:06  Distance: internal 90 external 170

লক্ষ্য করি, এখানে R1 রাউটারটি 10.0.0.0, 172.16.10.0/30 ও 172.16.20.0/30 নেটওয়ার্কসমূহকে অন্যান্য রাউটারের কাছে রাউটিং আপডেট হিসেবে পাঠাবে। এখানে উল্লেখ্য যে, R1 রাউটিং আপডেট শুধুমাত্র R2 (172.16.10.2) ও R3 (172.16.20.2) এর কাছ থেকে পাবে। এছাড়া আমরা নিচের কমান্ডের মাধ্যমে R1 রাউটারের EIGRP Neighbor এর তালিকা দেখতে পারি।

R1#show ip eigrp neighborsIP-EIGRP neighbors for process 10H   Address         Interface       Hold Uptime   SRTT   RTO  Q  Seq                                    (sec)         (ms)       Cnt Num1   172.16.20.2     Se0/1             14 00:17:22   27   200  0  28O   172.16.10.2     Se0/0             14 00:21:57   13   200  0  25

এখানে R1 যে রাউটারের সাথে Neighbor Relationship আগে তৈরী করবে তার ক্রমিক নম্বর হবে 0 এবং পরেরটির হবে 1 । অনুরূপভাবে আমরা R2 ও R3 রাউটারে এই একই কমান্ডের মাধ্যমে এদের EIGRP Neighbor সমূহ দেখে নিতে পারি।

এখন আমরা #show ip route কমান্ডের মাধ্যমে প্রতিটি রাউটারের রাউটিং টেবিল দেখে নিই।

R1#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masksC       172.16.20.0/30 is directly connected, Serial0/1C       172.16.10.0/30 is directly connected, Serial0/0D       172.16.0.0/16 is a summary, 00:04:48, Null0     10.0.0.0/8 is variably subnetted, 10 subnets, 2 masksC       10.10.0.0/24 is directly connected, Loopback1C       10.10.1.0/24 is directly connected, Loopback2C       10.10.2.0/24 is directly connected, Loopback3C       10.10.3.0/24 is directly connected, Loopback4C       10.10.4.0/24 is directly connected, Loopback5C       10.10.5.0/24 is directly connected, Loopback6C       10.10.6.0/24 is directly connected, Loopback7C       10.10.7.0/24 is directly connected, Loopback8C       10.10.8.0/24 is directly connected, Loopback9D       10.0.0.0/8 is a summary, 00:03:42, Null0D    192.168.0.0/24 [90/5537536] via 172.16.20.2, 00:03:44, Serial0/1

রাউটার R1 এর রাউটিং টেবিলে দেখা যাচ্ছে যে, এটি EIGRP আপডেটের মাধ্যমে R3 এর 192.168.0.0/24 নেটওয়ার্কটি রাউটিং টেবিলে যোগ করেছে। কিন্তু R1 রাউটার R2 এর 10.60.0.0/24 নেটওয়ার্কটি গ্রহণ করে নাই। কারণ হলো EIGRP এখানে Classfull Routing Protocol হিসেবে আচরণ করছে। যেহেতু 10.0.0.0/8 নেটওয়ার্কটি R1 এর ডিরেক্টলি কানেক্টেড নেটওয়ার্ক, তাই এটি R2 এর 10.60.0.0/24 নেটওয়ার্কটি আপডেট হিসেবে গ্রহণ করবে না। এখানে আরেকটি বিষয় উল্লেখ্য যে, 192.168.0.0/24 নেটওয়ার্কটি R2 ও R3 উভয়েরই ডিরেক্টলি কানেক্টেড নেটওয়ার্ক, তাহলে R1 এই আপডেটটি R2 থেকে গ্রহণ না করে R3 থেকে গ্রহণ করলো কেন? আসলে কারণটি হলো, লিংক ব্যান্ডউইথ। যেহেতু R1 ও R3 এর মধ্যবর্তী লিংকটি 512 Kbps এর, তাই এটি অপেক্ষাকৃত ধীরগতির লিংক (256 Kbps) দিয়ে R2 থেকে Second Best Route গ্রহণ করবে না।

R2#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masksD       172.16.20.0/30 [90/11023872] via 172.16.10.1, 00:07:26, Serial0/0C       172.16.10.0/30 is directly connected, Serial0/0D       172.16.0.0/16 is a summary, 00:06:17, Null0     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masksD       10.0.0.0/8 is a summary, 00:07:26, Null0C       10.60.0.0/24 is directly connected, FastEthernet0/0C    192.168.0.0/24 is directly connected, FastEthernet0/1R3#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masksC       172.16.20.0/30 is directly connected, Serial0/0D       172.16.10.0/30 [90/11023872] via 172.16.20.1, 00:08:09, Serial0/0D       172.16.0.0/16 is a summary, 00:08:05, Null0D    10.0.0.0/8 [90/307200] via 192.168.0.1, 00:08:05, FastEthernet0/1C    192.168.0.0/24 is directly connected, FastEthernet0/1

অনুরূপভাবে আমরা যখন R2 ও R3 এর রাউটিং টেবিল দেখবো তখনো দেখা যাবে Classfull Routing Behavior এর কারণে এরা অনেক রাউট আপডেটই গ্রহণ করবে না। আর এ সমস্যা সমাধানের উপায় হলো রাউটারসমূহের Auto-summary অপশন ডিসএ্যাবল রাখা।

 

কনফিগারেশন-২:

আমাদের অবজেকটিভ-২ এ বলা আছে যে, রাউটারগুলোতে EIGRP এমনভাবে কনফিগার করতে হবে যাতে ইহা Classfull রাউটিং প্রটোকল হিসেবে কাজ না করে। আর এ কাজ করার জন্য আমরা রাউটারসমূহের Auto-summary অপশন ডিসএ্যাবল রাখবো। এজন্য আমরা রাউটারসমূহে পর্যায়ক্রমে নিচের কমান্ডগুলো দিব।

R1#configure terminalR1(config)#router eigrp 10R1(config-router)#no auto-summaryR2#configure terminalR2(config)#router eigrp 10R2(config-router)#no auto-summaryR3#configure terminalR3(config)#router eigrp 10R3(config-router)#no auto-summary

এখন R1 এর রাউটিং টেবিলে দেখা যাবে এটি R2 এর সব আপডেটই গ্রহণ করছে। কিন্তু আপডেটগুলো এসেছে R3 এর মাধ্যমে, যেহেতু এখানে লিংক ব্যান্ডউইথ একটি বিবেচ্য বিষয়।

R1#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/30 is subnetted, 2 subnetsC       172.16.20.0 is directly connected, Serial0/1C       172.16.10.0 is directly connected, Serial0/0     10.0.0.0/24 is subnetted, 10 subnetsC       10.10.0.0/24 is directly connected, Loopback1C       10.10.1.0/24 is directly connected, Loopback2C       10.10.2.0/24 is directly connected, Loopback3C       10.10.3.0/24 is directly connected, Loopback4C       10.10.4.0/24 is directly connected, Loopback5C       10.10.5.0/24 is directly connected, Loopback6C       10.10.6.0/24 is directly connected, Loopback7C       10.10.7.0/24 is directly connected, Loopback8C       10.10.8.0/24 is directly connected, Loopback9D       10.60.0.0 [90/5563136] via 172.16.20.2, 00:05:55, Serial0/1D    192.168.0.0/24 [90/5537536] via 172.16.20.2, 01:11:14, Serial0/1

অনুরূপভাবে আমরা R2 ও R3 এর রাউটিং টেবিলও দেখে নিতে পারি।

R2#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/30 is subnetted, 2 subnetsD       172.16.20.0 [90/5537536] via 192.168.0.2, 01:17:34, FastEthernet0/1C       172.16.10.0 is directly connected, Serial0/0     10.0.0.0/24 is subnetted, 10 subnetsD       10.10.0.0/24 [90/5665536] via 192.168.0.2, 00:11:08, FastEthernet0/1D       10.10.1.0/24 [90/5665536] via 192.168.0.2, 00:11:08, FastEthernet0/1D       10.10.2.0/24 [90/5665536] via 192.168.0.2, 00:11:10, FastEthernet0/1D       10.10.3.0/24 [90/5665536] via 192.168.0.2, 00:11:10, FastEthernet0/1D       10.10.4.0/24 [90/5665536] via 192.168.0.2, 00:11:10, FastEthernet0/1D       10.10.5.0/24 [90/5665536] via 192.168.0.2, 00:11:10, FastEthernet0/1D       10.10.6.0/24 [90/5665536] via 192.168.0.2, 00:11:10, FastEthernet0/1D       10.10.7.0/24 [90/5665536] via 192.168.0.2, 00:11:10, FastEthernet0/1D       10.10.8.0/24 [90/5665536] via 192.168.0.2, 00:11:11, FastEthernet0/1C       10.60.0.0 is directly connected, FastEthernet0/0C       10.60.0.0 is directly connected, FastEthernet0/0C    192.168.0.0/24 is directly connected, FastEthernet0/1R3#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/30 is subnetted, 2 subnetsC       172.16.20.0 is directly connected, Serial0/0D       172.16.10.0 [90/10537472] via 192.168.0.1, 01:16:56, FastEthernet0/1     10.0.0.0/24 is subnetted, 10 subnetsD       10.10.0.0/24 [90/5639936] via 172.16.20.1, 00:11:35, Serial0/0D       10.10.1.0/24 [90/5639936] via 172.16.20.1, 00:11:35, Serial0/0D       10.10.2.0/24 [90/5639936] via 172.16.20.1, 00:11:35, Serial0/0D       10.10.3.0/24 [90/5639936] via 172.16.20.1, 00:11:37, Serial0/0D       10.10.4.0/24 [90/5639936] via 172.16.20.1, 00:11:37, Serial0/0D       10.10.5.0/24 [90/5639936] via 172.16.20.1, 00:11:37, Serial0/0D       10.10.6.0/24 [90/5639936] via 172.16.20.1, 00:11:37, Serial0/0D       10.10.7.0/24 [90/5639936] via 172.16.20.1, 00:11:37, Serial0/0D       10.10.8.0/24 [90/5639936] via 172.16.20.1, 00:11:38, Serial0/0D       10.60.0.0 [90/307200] via 192.168.0.1, 00:11:38, FastEthernet0/1C    192.168.0.0/24 is directly connected, FastEthernet0/1

আমরা EIGRP Concept এর থিওরীটিক্যাল আলোচনার সময় জেনেছিলাম যে, রাউটিং প্রটোকল EIGRP একটি রাউটিং টেবিল মেইনটেইন করার পাশাপাশি একটি টপোলজি টেবিলও মেইনটেইন করে। এই টপোলজি টেবিলে সবগুলো ডেস্টিনেশন নেটওয়ার্কে যাওয়ার Best Path ছাড়াও একটি Backup Path উল্লেখ থাকে (যদি থাকে)। এখানে উদাহরণস্বরূপ আমরা R1 এর টপোলজি টেবিলটি দেখে নিই।

R1#show ip eigrp topologyIP-EIGRP Topology Table for AS(10)/ID(10.10.8.1) Codes: P – Passive, A – Active, U – Update, Q – Query, R – Reply,       r – reply Status, s – sia Status P 10.10.0.0/24, 1 successors, FD is 128256        via Connected, Loopback1P 10.10.1.0/24, 1 successors, FD is 128256        via Connected, Loopback2P 10.10.2.0/24, 1 successors, FD is 128256        via Connected, Loopback3P 10.10.3.0/24, 1 successors, FD is 128256        via Connected, Loopback4P 10.10.4.0/24, 1 successors, FD is 128256        via Connected, Loopback5P 10.10.5.0/24, 1 successors, FD is 128256        via Connected, Loopback6P 10.10.6.0/24, 1 successors, FD is 128256        via Connected, Loopback7P 10.10.7.0/24, 1 successors, FD is 128256        via Connected, Loopback8P 10.10.8.0/24, 1 successors, FD is 128256        via Connected, Loopback9P 10.60.0.0/24, 1 successors, FD is 5563136        via 172.16.20.2 (5563136/307200), Serial0/1        via 172.16.10.2 (10537472/281600), Serial0/0P 192.168.0.0/24, 1 successors, FD is 5537536        via 172.16.20.2 (5537536/281600), Serial0/1        via 172.16.10.2 (10537472/281600), Serial0/0P 172.16.20.0/30, 1 successors, FD is 5511936        via Connected, Serial0/1P 172.16.10.0/30, 1 successors, FD is 10511872        via Connected, Serial0/0

লক্ষ্য করি, R1 এর টপোলজি টেবিলে প্রতিটি ডেস্টিনেশন নেটওয়ার্কে যাওয়ার জন্য একটি করে Successor রয়েছে। শুধুমাত্র 10.60.0.0/24 ও 192.168.0.0/24 এ দুইটি নেটওয়ার্কে যাওয়া্র জন্য একটি Successor এর পাশাপাশি একটি Feasible Successor রয়েছে। R1 থেকে 10.60.0.0/24 ও 192.168.0.0/24 এ দুইটি নেটওয়ার্কে R3 (via 172.16.20.2) ও R2 (via 172.16.10.2) এর মধ্য দিয়ে যাওয়া যায়। কিন্তু R1 এর রাউটিং টেবিলে শুধুমাত্র R3 (via 172.16.20.2) থেকে প্রাপ্ত আপডেটটিই আছে। কারণ R3 এর Feasible Distance (5563136) R2 এর Feasible Distance (10537472) থেকে কম। যদি কোন কারণে R3 ফেইল করে তখন R1 রাউটার R2 এর আপডেটটি নিজের রাউটিং টেবিলে যুক্ত করবে। এজন্য নতুন করে রাউটিং ক্যালকুলেশন করার প্রয়োজন হবে না।

টপোলজি টেবিলে কোন রাউটের আগে P (Passive) দ্বারা বুঝায় এই রাউটটি একটি Consistent Route অর্থাৎ রাউটটি নিয়ে কোন ঝামেলা নেই। আর A (Active) দ্বারা বুঝায় রাউটটি নিয়ে কোন ঝামেলা আছে অর্থাৎ রাউটার ঠিক এই মুহূর্তে উক্ত নেটওয়ার্কে যাওয়ার জন্য নতুন করে পাথ খোঁজ করছে।

 

কনফিগারেশন-৩:

আমাদের অবজেকটিভ-৩ এ বলা আছে যে, R1 এ 192.168.1.0/24 নেটওয়ার্কের দিকে একটি Static Route থাকবে যে রাউটটিকে ইহা R2 ও R3 এর কাছে আপডেট হিসেবে পাঠাবে (EIGRP Redistribution ছাড়া)।

প্রথমেই আমরা R1 এ 192.168.1.0/24 নেটওয়ার্কের জন্য একটি Static Route যোগ করবো।

R1#configure terminalR1(config)#ip route 192.168.1.0 255.255.255.0 null 0

এই Static Route টি Null 0 ইন্টারফেসে যোগ করা হয়েছে। এই Null 0 ইন্টারফেসটি কোন ফিজিক্যাল ইন্টারফেস নয়, শুধুমাত্র উদাহরণ হিসেবে ব্যবহার করা হয়েছে। অতঃপর R1 রাউটারে #show ip route কমান্ড দিয়ে দেখবো Static Route টি যোগ হয়েছে কি না।

R1#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/30 is subnetted, 2 subnetsC       172.16.20.0 is directly connected, Serial0/1C       172.16.10.0 is directly connected, Serial0/0     10.0.0.0/24 is subnetted, 10 subnetsC       10.10.0.0 is directly connected, Loopback1C       10.10.1.0 is directly connected, Loopback2C       10.10.2.0 is directly connected, Loopback3C       10.10.3.0 is directly connected, Loopback4C       10.10.4.0 is directly connected, Loopback5C       10.10.5.0 is directly connected, Loopback6C       10.10.6.0 is directly connected, Loopback7C       10.10.7.0 is directly connected, Loopback8C       10.10.8.0 is directly connected, Loopback9D       10.60.0.0 [90/5563136] via 172.16.20.2, 00:28:49, Serial0/1D    192.168.0.0/24 [90/5537536] via 172.16.20.2, 00:49:48, Serial0/1S    192.168.1.0/24 is directly connected, Null0

এখন আমরা EIGRP #network কমান্ডের মাধ্যমে 192.168.1.0/24 নেটওয়ার্কটিকে EIGRP রাউটিং প্রসেসে যুক্ত করবো।

R1#configure terminalR1(config)#router eigrp 10R1(config-router)#network 192.168.1.0 0.0.0.255

যখন আমরা 192.168.1.0/24 নেটওয়ার্কটিকে R1 রাউটারের EIGRP রাউটিং প্রসেসে যুক্ত করলাম তখন R1 রাউটার এই 192.168.1.0/24 নেটওয়ার্কটির আপডেট R2 ও R3 এর কাছে পাঠায়। আমরা R2 ও R3 এ #show ip route কমান্ড দিয়ে দেখে নিই 192.168.1.0/24 নেটওয়ার্কটির আপডেট তারা পেয়েছে কি না।

R2#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/30 is subnetted, 2 subnetsD       172.16.20.0 [90/5537536] via 192.168.0.2, 00:06:20, FastEthernet0/1C       172.16.10.0 is directly connected, Serial0/0     10.0.0.0/24 is subnetted, 10 subnetsD       10.10.0.0 [90/5665536] via 192.168.0.2, 00:28:13, FastEthernet0/1D       10.10.1.0 [90/5665536] via 192.168.0.2, 00:28:13, FastEthernet0/1D       10.10.2.0 [90/5665536] via 192.168.0.2, 00:28:13, FastEthernet0/1D       10.10.3.0 [90/5665536] via 192.168.0.2, 00:28:13, FastEthernet0/1D       10.10.4.0 [90/5665536] via 192.168.0.2, 00:28:14, FastEthernet0/1D       10.10.5.0 [90/5665536] via 192.168.0.2, 00:28:14, FastEthernet0/1D       10.10.6.0 [90/5665536] via 192.168.0.2, 00:28:14, FastEthernet0/1D       10.10.7.0 [90/5665536] via 192.168.0.2, 00:28:14, FastEthernet0/1D       10.10.8.0 [90/5665536] via 192.168.0.2, 00:28:14, FastEthernet0/1C       10.60.0.0 is directly connected, FastEthernet0/0C    192.168.0.0/24 is directly connected, FastEthernet0/1D    192.168.1.0/24 [90/5537536] via 192.168.0.2, 00:00:13, FastEthernet0/1R3#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/30 is subnetted, 2 subnetsC       172.16.20.0 is directly connected, Serial0/0D       172.16.10.0 [90/10537472] via 192.168.0.1, 00:30:33, FastEthernet0/1     10.0.0.0/24 is subnetted, 10 subnetsD       10.10.0.0 [90/5639936] via 172.16.20.1, 00:51:32, Serial0/0D       10.10.1.0 [90/5639936] via 172.16.20.1, 00:51:32, Serial0/0D       10.10.2.0 [90/5639936] via 172.16.20.1, 00:51:32, Serial0/0D       10.10.3.0 [90/5639936] via 172.16.20.1, 00:51:32, Serial0/0D       10.10.4.0 [90/5639936] via 172.16.20.1, 00:51:33, Serial0/0D       10.10.5.0 [90/5639936] via 172.16.20.1, 00:51:33, Serial0/0D       10.10.6.0 [90/5639936] via 172.16.20.1, 00:51:33, Serial0/0D       10.10.7.0 [90/5639936] via 172.16.20.1, 00:51:33, Serial0/0D       10.10.8.0 [90/5639936] via 172.16.20.1, 00:51:33, Serial0/0D       10.60.0.0 [90/307200] via 192.168.0.1, 00:30:35, FastEthernet0/1C    192.168.0.0/24 is directly connected, FastEthernet0/1D    192.168.1.0/24 [90/5511936] via 172.16.20.1, 00:01:50, Serial0/0

উপরে দেখা গেল R2 ও R3 রাউটার 192.168.1.0/24 নেটওয়ার্কটির আপডেট ইতিমধ্যে পেয়েছে। এতে করে আমাদের অবজেকটিভ-৩ কনফিগার করা শেষ হলো।

 

কনফিগারেশন-৪:

আমাদের অবজেকটিভ-৪ এ বলা আছে যে, R1 এর Null 0 ইন্টারফেসে যে 192.168.1.0/24 নেটওয়ার্কটি যুক্ত আছে সেই 192.168.1.0/24 নেটওয়ার্কের দিকে R2 ও R3 রাউটারে একটি Default Route থাকবে। তবে এক্ষেত্রে R2 ও R3 এ কোন Static Route (0.0.0.0/0) ব্যবহার করা যাবে না।

কোন একটি রাউটারের রাউটিং টেবিলে কোন নির্দিষ্ট ডেস্টিসেশনের জন্য স্পেসিফিক রাউট ছাড়াও 0.0.0.0/0 নেটওয়ার্কের জন্য যে রাউট থাকে তাকে Default Route বলে।

এখন আমরা R1 রাউটারে 192.168.1.0/24 এর দিকে একটি ডিফল্ট রাউট দিবো যে রাউটটিকে ইহা R2 ও R3 এর নিকট EIGRP আপডেটের মাধ্যমে পাঠাবে। এজন্য আমরা R1 এ শুধুমাত্র নিচের একটি কমান্ড দিব।

R1#configure terminalR1(config)#ip default-network 192.168.1.0

উপরিউক্ত কমান্ডটি দেওয়ার পর R1 রাউটার 192.168.1.0/24 নেটওয়ার্কটি তার নিজের রাউটিং টেবিলে যোগ করে।

R1#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/30 is subnetted, 2 subnetsC       172.16.20.0 is directly connected, Serial0/1C       172.16.10.0 is directly connected, Serial0/0     10.0.0.0/24 is subnetted, 10 subnetsC       10.10.0.0 is directly connected, Loopback1C       10.10.1.0 is directly connected, Loopback2C       10.10.2.0 is directly connected, Loopback3C       10.10.3.0 is directly connected, Loopback4C       10.10.4.0 is directly connected, Loopback5C       10.10.5.0 is directly connected, Loopback6C       10.10.6.0 is directly connected, Loopback7C       10.10.7.0 is directly connected, Loopback8C       10.10.8.0 is directly connected, Loopback9D       10.60.0.0 [90/5563136] via 172.16.20.2, 00:28:49, Serial0/1D    192.168.0.0/24 [90/5537536] via 172.16.20.2, 00:49:48, Serial0/1S*   192.168.1.0/24 is directly connected, Null0

অতঃপর R1 রাউটার এই রাউটটিকে R2 ও R3 এর কাছে EIGRP আপডেটের মাধ্যমে পাঠিয়ে দিয়েছে। R2 ও R3 এই রাউটটিকে Default Route হিসেবে নিজেদের রাউটিং টেবিলে যুক্ত করে। আমরা R2 ও R3 রাউটারে #show ip route কমান্ডের মাধ্যমে দেখে নিই রাউটার দুইটি এই আপডেট পেয়েছে কি না।

R2#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is 192.168.0.2 to network 192.168.1.0      172.16.0.0/30 is subnetted, 2 subnetsD       172.16.20.0 [90/5537536] via 192.168.0.2, 00:06:20, FastEthernet0/1C       172.16.10.0 is directly connected, Serial0/0     10.0.0.0/24 is subnetted, 10 subnetsD       10.10.0.0 [90/5665536] via 192.168.0.2, 00:28:13, FastEthernet0/1D       10.10.1.0 [90/5665536] via 192.168.0.2, 00:28:13, FastEthernet0/1D       10.10.2.0 [90/5665536] via 192.168.0.2, 00:28:13, FastEthernet0/1D       10.10.3.0 [90/5665536] via 192.168.0.2, 00:28:13, FastEthernet0/1D       10.10.4.0 [90/5665536] via 192.168.0.2, 00:28:14, FastEthernet0/1D       10.10.5.0 [90/5665536] via 192.168.0.2, 00:28:14, FastEthernet0/1D       10.10.6.0 [90/5665536] via 192.168.0.2, 00:28:14, FastEthernet0/1D       10.10.7.0 [90/5665536] via 192.168.0.2, 00:28:14, FastEthernet0/1D       10.10.8.0 [90/5665536] via 192.168.0.2, 00:28:14, FastEthernet0/1C       10.60.0.0 is directly connected, FastEthernet0/0C    192.168.0.0/24 is directly connected, FastEthernet0/1D*   192.168.1.0/24 [90/5537536] via 192.168.0.2, 00:02:19, FastEthernet0/1R3#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is 172.16.20.1 to network 192.168.1.0      172.16.0.0/30 is subnetted, 2 subnetsC       172.16.20.0 is directly connected, Serial0/0D       172.16.10.0 [90/10537472] via 192.168.0.1, 00:30:33, FastEthernet0/1     10.0.0.0/24 is subnetted, 10 subnetsD       10.10.0.0 [90/5639936] via 172.16.20.1, 00:51:32, Serial0/0D       10.10.1.0 [90/5639936] via 172.16.20.1, 00:51:32, Serial0/0D       10.10.2.0 [90/5639936] via 172.16.20.1, 00:51:32, Serial0/0D       10.10.3.0 [90/5639936] via 172.16.20.1, 00:51:32, Serial0/0D       10.10.4.0 [90/5639936] via 172.16.20.1, 00:51:33, Serial0/0D       10.10.5.0 [90/5639936] via 172.16.20.1, 00:51:33, Serial0/0D       10.10.6.0 [90/5639936] via 172.16.20.1, 00:51:33, Serial0/0D       10.10.7.0 [90/5639936] via 172.16.20.1, 00:51:33, Serial0/0D       10.10.8.0 [90/5639936] via 172.16.20.1, 00:51:33, Serial0/0D       10.60.0.0 [90/307200] via 192.168.0.1, 00:30:35, FastEthernet0/1C    192.168.0.0/24 is directly connected, FastEthernet0/1D*   192.168.1.0/24 [90/5511936] via 172.16.20.1, 00:03:15, Serial0/0

লক্ষ্য করি, R2 ও R3 উভয় রাউটারই এই 192.168.1.0/24 নেটওয়ার্কটিকে নিজেদের Default Route অর্থাৎ Gateway of last resort হিসেবে গ্রহণ করেছে।

 

কনফিগারেশন-৫:

আমাদের অবজেকটিভ-৫ এ বলা আছে যে, EIGRP রাউটিং আপডেটের নিরাপত্তা বাড়ানোর জন্য রাউটারসমূহের যে ইন্টারফেসসমূহ অন্য কোন রাউটারের সাথে যুক্ত নয় সেই ইন্টারফেসগুলো দিয়ে যাতে কোন Neighbor Relationship তৈরী না হতে পারে তা নিশ্চিত করতে হবে।

চিত্রে প্রদত্ত টপোলজিতে লক্ষ্য করলে দেখা যাবে যে, R1, R2 ও R3 রাউটারের প্রতিটি ডিরেক্টলি কানেক্টেড ইন্টারফেসই কিন্তু অন্য রাউটারের সাথে যুক্ত নয়। কিছু কিছু ইন্টারফেস দিয়ে এই রাউটারসমূহ তাদের ল্যান এর সাথে যুক্ত হয়েছে। যেহেতু EIGRP #network কমান্ডের মাধ্যমে আমরা প্রতিটি রাউটারের ডিরেক্টলি কানেক্টেড ইন্টারফেসগুলো EIGRP রাউটিং প্রসেসে যুক্ত করেছি তাই রাউটারসমূহ ডিরেক্টলি কানেক্টেড প্রতিটি ইন্টারফেস দিয়েই (ল্যান এর ইন্টারফেস সহ) EIGRP Neighbor ডিসকভারির জন্য Hello Packet পাঠাবে। কখনো কখনো এমনও হতে পারে একজন এ্যাটাকার ল্যান এর কোন একটি কম্পিউটারে বিশেষ ধরণের সফটওয়্যার দিয়ে রাউটারের সাথে Neighbor Relationship তৈরী করলো এবং নেটওয়ার্কের রাউটিং আপডেট হাতিয়ে নিল বা রাউটারের কাছে এমন আপডেট পাঠালো যা গ্রহণ করার পর নেটওয়ার্কে রাউটিং ব্ল্যাকহোল এর সৃষ্টি হলো। এমন অনাকাঙ্খিত পরিস্থিতি এড়ানোর জন্য রাউটারের সকল ল্যান ইন্টারফেসসমূহ Passive মুডে রাখা হয়, যাতে করে ঐ ল্যান ইন্টারফেস দিয়ে কোন Neighbor Relationship তৈরী না হতে পারে।

এটা করার জন্য আমরা প্রতিটি রাউটারে পর্যায়ক্রমে নিচের কমান্ডগুলো দিব।

যেহেতু R2 রাউটারের শুধুমাত্র FastEthernet 0/0 ইন্টারফেসটি ল্যান এর সাথে যুক্ত তাই আমরা এটিকে শুধু Passive Interface হিসেবে কনফিগার করবো।

R2#configure terminalR2(config)#router eigrp 10R2(config-router)#passive-interface fastEthernet 0/0

R1 রাউটারে যেহেতু অনেকগুলো ইন্টারফেসকে Passive Interface হিসেবে কনফিগার করতে হবে, তাই আমরা প্রথমে #passive-interface default কমান্ড দিয়ে সবগুলো ইন্টারফেসকে Passive মুডে নিব। এবং পরে শুধুমাত্র serial 0/0 ও serial 0/1 কে #no passive-interface কমান্ডের মাধ্যমে পুনরায় EIGRP প্রসেসে যোগ করবো।

R1#conf terminalR1(config)#router eigrp 10R1(config-router)#passive-interface defaultR1(config-router)#no passive-interface serial 0/0R1(config-router)#no passive-interface serial 0/1

এখন R1 ও R2 তে নিচের কমান্ডের মাধ্যমে দেখা যাবে কোন কোন ইন্টারফেসমূহ Passive মুডে রয়েছে। যেহেতু R3 রাউটারে কোন ল্যান ইন্টারফেস নেই তাই এতে কোন Passive Interface কনফিগার করার দরক্র নেই।

R1#show running-config | section eigrprouter eigrp 10 passive-interface default no passive-interface Serial0/0 no passive-interface Serial0/1 network 10.0.0.0 network 172.16.10.0 0.0.0.3 network 172.16.20.0 0.0.0.3 network 192.168.1.0 no auto-summaryR2#show running-config | section eigrprouter eigrp 10 passive-interface FastEthernet0/0 network 10.60.0.0 0.0.0.255 network 172.16.10.0 0.0.0.3 network 192.168.0.0 no auto-summary

 

কনফিগারেশন-৬:

আমাদের অবজেকটিভ-৬ এ বলা আছে যে, নেটওয়ার্কের রাউটিং ইফিসিয়েন্সি বৃদ্ধির জন্য R1 যাতে তার 10.10.0.0 থেকে 10.10.7.0 নেটওয়ার্কসমূহকে সামারাইজ করে R2 ও R3 এর কাছে পাঠাতে পারে সে ব্যবস্থা করতে হবে। রাউটসমূহকে সামারাইজড করার মূল উদ্দেশ্য হলো রাউটিং আপডেট পাঠানোর সময় এর আকার ও প্যাকেট সংখ্যা সীমিত রাখা। R1 যখন R2 বা R3 এর নিকট তার 10.10.0.0, 10.10.1.0, 10.10.2.0, 10.10.3.0, 10.10.4.0, 10.10.5.0, 10.10.6.0, 10.10.7.0 ও 10.10.8.0 নেটওয়ার্কসমূহের আপডেট পাঠাবে তখন প্রতিটি নেটওয়ার্কের জন্য আলাদা আলাদা আপডেট পাঠানোর জন্য অপেক্ষাকৃত বেশি সময় ও বেশি ব্যান্ডউইথ লাগবে। কিন্তু R1 যদি তার এই নেটওয়ার্ক সমূহকে সামারাইজ করে একটি মাত্র নেটওয়ার্কে পরিণত করে এবং শুধূমাত্র সেই একটি রাউটকেই আপডেট হিসেবে পাঠায় তাহলে অপেক্ষাকৃত কম সময় ও কম ব্যান্ডউইথ লাগবে।

10.10.0.0      00001010.00001010.00000000.0000000010.10.1.0      00001010.00001010.00000001.0000000010.10.2.0      00001010.00001010.00000010.0000000010.10.3.0      00001010.00001010.00000011.0000000010.10.4.0      00001010.00001010.00000100.0000000010.10.5.0      00001010.00001010.00000101.0000000010.10.6.0      00001010.00001010.00000110.0000000010.10.7.0      00001010.00001010.00000111.0000000010.10.8.0      00001010.00001010.00001000.00000000

সামারী নেটওয়ার্ক 10.10.0.0/20

এখানে উল্লেখ্য যে, R1 রাউটার তার Loopback নেটওয়ার্কসমূহকে যদি ইফিসিয়েন্টভাবে সামারাইজ করতে চায় তাহলে 10.10.0.0 থেকে 10.10.7.0 নেটওয়ার্কসমূহকেই শুধু সামারাইজ করবে। এখানে 10.10.8.0 নেটওয়ার্কটি সামারী রাউটের মধ্যে পড়বে না। যদি 10.10.8.0 নেটওয়ার্কটিকে সামারী রাউটের মধ্যে পেলা হয় তাহলে 10.10.8.0 এর সাথে সাথে 10.10.9.0 – 10.10.15.0 এই নেটওয়ার্কগুলোও সেই সামারী রাউটের মধ্যে পড়ে যাবে। সুতরা আমাদের ইফিসিয়েন্ট সামারী রাউট হবে নিম্নরূপঃ

10.10.0.0      00001010.00001010.00000000.0000000010.10.1.0      00001010.00001010.00000001.0000000010.10.2.0      00001010.00001010.00000010.0000000010.10.3.0      00001010.00001010.00000011.0000000010.10.4.0      00001010.00001010.00000100.0000000010.10.5.0      00001010.00001010.00000101.0000000010.10.6.0      00001010.00001010.00000110.0000000010.10.7.0      00001010.00001010.00000111.0000000010.10.8.0      00001010.00001010.00001000.00000000

ইফিসিয়েন্ট সামারী নেটওয়ার্ক 10.10.0.0/21 (10.10.0.0 থেকে 10.10.7.0) ও 10.10.8.0

কিভাবে রাউট সামারাইজেশন করা হয় তা আমাদের এই টিউটোরিয়ালের মূল উদ্দেশ্য নয় তাই এ সম্পর্কে বিস্তারিত বলা হলো না।

প্রথমে আমরা R1 রাউটারে সামারী রাউট এনাবল করার জন্য R1 এ নিচের কমান্ড প্রয়োগ করবো।

R1#configure terminalR1(config)#interface serial 0/0R1(config-if)#ip summary-address eigrp 10 10.10.0.0 255.255.248.0R1(config-if)#int serial 0/1R1(config-if)#ip summary-address eigrp 10 10.10.0.0 255.255.248.0

এই রাউট সামারাইজেশনটি ম্যানুয়ালী করা হয়েছে। যেহেতু রাউটার R1 তার দুইটি ইন্টারফেস (s0/0 ও s0/1) দিয়ে রাউটিং আপডেট পাঠাবে তাই এই দুইটি ইন্টারফেসেই সামারী রাউট এনাবল করা হয়েছে।

এখন R2 ও R3 এর রাউটিং টেবিল দেখলে দেখা যাবে যে, এ দুইটি রাউটার R1 এর কাছ থেকে তার Loopback ইন্টারফেসগুলোর জন্য সামারী রাউট রিসিভ করছে।

R2#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is 192.168.0.2 to network 192.168.1.0      172.16.0.0/30 is subnetted, 2 subnetsD       172.16.20.0 [90/5537536] via 192.168.0.2, 00:11:14, FastEthernet0/1C       172.16.10.0 is directly connected, Serial0/0     10.0.0.0/8 is variably subnetted, 3 subnets, 2 masksD       10.10.0.0/21 [90/5665536] via 192.168.0.2, 00:00:04, FastEthernet0/1D       10.10.8.0/24 [90/5665536] via 192.168.0.2, 00:11:13, FastEthernet0/1C       10.60.0.0/24 is directly connected, FastEthernet0/0C    192.168.0.0/24 is directly connected, FastEthernet0/1D*   192.168.1.0/24 [90/5537536] via 192.168.0.2, 00:11:14, FastEthernet0/1R3#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is 172.16.20.1 to network 192.168.1.0      172.16.0.0/30 is subnetted, 2 subnetsC       172.16.20.0 is directly connected, Serial0/0D       172.16.10.0 [90/10537472] via 192.168.0.1, 00:11:16, FastEthernet0/1     10.0.0.0/8 is variably subnetted, 3 subnets, 2 masksD       10.10.0.0/21 [90/5639936] via 172.16.20.1, 00:00:14, Serial0/0D       10.10.8.0/24 [90/5639936] via 172.16.20.1, 00:11:23, Serial0/0D       10.60.0.0/24 [90/307200] via 192.168.0.1, 00:11:16, FastEthernet0/1C    192.168.0.0/24 is directly connected, FastEthernet0/1D*   192.168.1.0/24 [90/5511936] via 172.16.20.1, 00:11:24, Serial0/0

 

কনফিগারেশন-৭:

আমাদের অবজেকটিভ-৭ এ বলা আছে যে, ব্যান্ডউইথের সর্বোচ্চ ব্যবহার নিশ্চিত করার লক্ষ্যে R1 যাতে 192.168.0.0/24 নেটওয়ার্কে যাওয়ার জন্য Unequal Cost Load Balance করতে পারে তার জন্য প্রয়োজনীয় ব্যবস্থা গ্রহণ করতে হবে।

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

প্রথমে আমরা R1 রাউটারে দেখে নিই, এটি 192.168.0.0/24 নেটওয়ার্কে যাওয়ার জন্য কোন পাথ ব্যবহার করছে।

R1#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/30 is subnetted, 2 subnetsC       172.16.20.0 is directly connected, Serial0/1C       172.16.10.0 is directly connected, Serial0/0     10.0.0.0/8 is variably subnetted, 11 subnets, 2 masksC       10.10.0.0/24 is directly connected, Loopback1D       10.10.0.0/21 is a summary, 00:29:20, Null0C       10.10.1.0/24 is directly connected, Loopback2C       10.10.2.0/24 is directly connected, Loopback3C       10.10.3.0/24 is directly connected, Loopback4C       10.10.4.0/24 is directly connected, Loopback5C       10.10.5.0/24 is directly connected, Loopback6C       10.10.6.0/24 is directly connected, Loopback7C       10.10.7.0/24 is directly connected, Loopback8C       10.10.8.0/24 is directly connected, Loopback9D       10.60.0.0/24 [90/5563136] via 172.16.20.2, 00:40:24, Serial0/1D    192.168.0.0/24 [90/5537536] via 172.16.20.2, 00:40:32, Serial0/1S*   192.168.1.0/24 is directly connected, Null0

এখানে দেখা যাচ্ছে R1 রাউটার 192.168.0.0/24 নেটওয়ার্কে যাওয়ার জন্য শুধুমাত্র R3 (172.16.20.2) কেই ব্যবহার করছে। যেহেতু R1 ও R3 এর মধ্যবর্তী লিংকটি 512 Kbps এর, তাই এটি অপেক্ষাকৃত ধীরগতির লিংক (256 Kbps) দিয়ে R2 থেকে Second Best Route গ্রহণ করবে না। EIGRP তে Variance কমান্ডের মাধ্যমে Unequal Cost Load Balance করা হয়। বাই ডিফল্ট এই Variance এর মান হলো 1 । এর অর্থ হলো যদি কোন নেটওয়ার্কে যাওয়ার জন্য দুইটি সমান Cost এর পাথ পাওয়া শুধুমাএ তখনই EIGRP সেই পাথ দুইটি ব্যবহার করে Load Balance করবে। এখন আমরা R1 রাউটারে Unequal Cost Load Balance এনাবল করার জন্য এর Variance এর মান 2 করে দিব। Variance এর মান 2 করার অর্থ হলো R1 রাউটার 192.168.0.0/24 নেটওয়ার্কে যাওয়ার জন্য তার বেষ্ট পাথ এবং অপেক্ষাকৃত দ্বিগুন Cost এর পাথ দিয়ে Load Balance করবে।

R1#configure terminalR1(config)#router eigrp 10R1(config-router)#variance 2

এখন আমরা যদি R1 এর রাউটিং টেবিল দেখি তাহলে দেখা যাবে যে, R1 রাউটার 192.168.0.0/24 নেটওয়ার্কে যাওয়ার জন্য দুইটি ভিন্ন Cost এর পাথ ব্যবহার করে Unequal Cost Load Balance করছে।

R1#show ip routeCodes: C – connected, S – static, R – RIP, M – mobile, B – BGP       D – EIGRP, EX – EIGRP external, O – OSPF, IA – OSPF inter area       N1 – OSPF NSSA external type 1, N2 – OSPF NSSA external type 2       E1 – OSPF external type 1, E2 – OSPF external type 2       i – IS-IS, su – IS-IS summary, L1 – IS-IS level-1, L2 – IS-IS level-2       ia – IS-IS inter area, * – candidate default, U – per-user static route       o – ODR, P – periodic downloaded static route Gateway of last resort is not set      172.16.0.0/30 is subnetted, 2 subnetsC       172.16.20.0 is directly connected, Serial0/1C       172.16.10.0 is directly connected, Serial0/0     10.0.0.0/8 is variably subnetted, 11 subnets, 2 masksC       10.10.0.0/24 is directly connected, Loopback1D       10.10.0.0/21 is a summary, 00:02:09, Null0C       10.10.1.0/24 is directly connected, Loopback2C       10.10.2.0/24 is directly connected, Loopback3C       10.10.3.0/24 is directly connected, Loopback4C       10.10.4.0/24 is directly connected, Loopback5C       10.10.5.0/24 is directly connected, Loopback6C       10.10.6.0/24 is directly connected, Loopback7C       10.10.7.0/24 is directly connected, Loopback8C       10.10.8.0/24 is directly connected, Loopback9D       10.60.0.0/24 [90/5563136] via 172.16.20.2, 00:02:12, Serial0/1                     [90/10537472] via 172.16.10.2, 00:02:12, Serial0/0D    192.168.0.0/24 [90/5537536] via 172.16.20.2, 00:02:12, Serial0/1                    [90/10537472] via 172.16.10.2, 00:02:12, Serial0/0S*   192.168.1.0/24 is directly connected, Null0

এখন রাউটার R1 192.168.0.0/24 নেটওয়ার্কে প্যাকেট পাঠানোর সময় প্রতি তিনটি প্যাকেটের মধ্যে দুইটি প্যাকেট R3 (172.16.20.2) এর মাধ্যমে এবং একটি প্যাকেট R2 (172.16.10.2) এর মাধ্যমে পাঠিয়ে Load Balance করবে।

GNS3 দিয়ে করা পুরো ল্যাবটির RAR ফাইল এর লিংক দেওয়া হলো। আপনারা চাইলে ডাউনলোড করে দেখে নিতে পারেন।

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

 

Link State Routing Protocol Concept

বৈশিষ্ঠ্যের উপর ভিত্তি করে রাউটিং প্রটোকলসমূহকে দুই ভাগে ভাগ করা হয়।
১. Distance Vector রাউটিং প্রটোকল
২. Link State রাউটিং প্রটোকল

Link State রাউটিং প্রটোকলসমূহ হলো:
i. Open Shortest Path First (OSPF)
ii. Intermediate System-to-Intermediate System (IS-IS)

Link State রাউটিং প্রটোকলসমূহ Shortest Path First (SPF) এ্যালগরিদমের মাধ্যমে রাউট ক্যালকুলেশন করে থাকে। এই SPF এ্যালগরিদমটি Edsger Dijkstra নামক একজন ব্যাক্তি লিখেছিলেন। এজন্য SPF কে Dijkstra’s Algorithm (ডাইজ্কস্ট্রা’স এ্যালগরিদম) ও বলা হয়। এই এ্যালগরিদমের মাধ্যমে একটি সোর্স নেটওয়ার্ক থেকে কোন একটি ডেস্টিনেশন নেটওয়ার্কে যাওয়ার সম্ভাব্য প্রতিটি পাথকে Cost সহ হিসেব করা হয়।

চিত্রে প্রতিটি পাথের একটি করে Random Cost উল্লেখ করা হয়েছে। R2 রাউটার থেকে R3 এর LAN এ যাওয়ার Cost হলো 27 । লক্ষ্য করি, R3 এর LAN এ যাওয়ার জন্য প্রতিটি রাউটারের Cost ই কিন্তু 27 নয়। প্রতিটি রাউটার এজন্য তার নিজের অবস্থানের ভিত্তিতে এই Cost টি কে নিজের মতো করে নির্ণয় করে। অন্য কথায়, প্রতিটি রাউটারই তার নিজের মতো করে SPF এ্যালগরিদম ক্যালকুলেশন করে থাকে।

নিচে R1 রাউটার থেকে প্রতিটি LAN এ যাওয়ার Shortest পাথগুলো Cost সহ দেওয়া হল:

এখানে উল্লেখ্য যে Link State রাউটিং প্রটোকলের ক্ষেত্রে Shortest পাথ বলতে কোন নেটওয়ার্কে যেতে কম সংখ্যক Hop কে বুঝায় না। যদি তাই হতো তাহলে R1 থেকে R4 এর LAN এ যাওয়ার জন্য R4 কেই সরাসরি বেছে নেওয়া হতো, কারণ R4 এর মাধ্যমেই সবচেয়ে কমসংখ্যক Hop বিদ্যমান। কিন্তু এক্ষেত্রে পাথ সিলেকশনের জন্য Hop গণনার পরিবর্তে সর্বনিম্ন Cost কেই বেছে নেওয়া হয়েছে। R1 রাউটার থেকে R4 এর LAN এ সরাসরি যেতে Cost হলো 22 । কিন্তু R3 এর মাধ্যমে যেতে মোট Cost হলো 17 । সুতরাং R1 রাউটার থেকে R4 এ যাওযার সবচেয়ে ভাল পাথ হলো R1 to R3 to R4 ।

Link State Routing Process

এখন আমরা দেখবো Link State রাউটিং প্রটোকল কিভাবে কাজ করে। Link State রাউটিং প্রটোকলের মাধ্যমে সমগ্র রাউটিং প্রসেস কয়েকটি ধাপে সম্পন্ন হয়।

ধাপ-১. প্রতিটি রাউটার প্রথমে তার নিজের লিংক অর্থাৎ ডিরেক্টলি কানেক্টেড নেটওয়ার্ক সম্পর্কে জানে। যখন একটি রাউটারের কোন ইন্টারফেসে আই.পি এ্যাড্রেস ও সাবনেট মাস্ক কনফিগার করে ইন্টারফেসটিকে এনাবল করো হয় তখন রাউটার তার ঐ ইন্টারফেসের নেটওয়ার্কটিকে ডিরেক্টলি কানেক্টেড নেটওয়ার্ক হিসেবে বিবেচনা করে এবং নেটওয়ার্কটিকে তার রাউটিং টেবিলে অন্তর্ভূক্ত করে। চিত্রে R1 রাউটারের চারটি ডিরেক্টলি কানেক্টেড নেটওয়ার্ক নিম্নরূপ:

  • FastEthernet 0/0 interface on the 10.1.0.0/16 network
    • Serial 0/0/0 network on the 10.2.0.0/16 network
    • Serial 0/0/1 network on the 10.3.0.0/16 network
    • Serial 0/0/2 network on the 10.4.0.0/16 network

ধাপ-২. প্রতিটি রাউটার তার ডিরেক্টলি কানেক্টেড নেটওয়ার্কের অন্যান্য Neighbor এর সাথে রিলেশনশীপ তৈরী করে। এজন্য রাউটারসমূহ নিজেদের মধ্যে Hello প্যাকেট বিনিময় করে। চিত্রে R1 রাউটার তার Neighbor R2, R3 ও R4 এর কাছে Hello প্যাকেট পাঠায় এবং R2, R3 ও R4 রাউটার তাদের নিজেদের Hello প্যাকেট R1 এর কাছে পাঠায়। R1 এর সাথে R2, R3 ও R4 রাউটারসমূহের adjacency তৈরী হয়। এখানে R1 রাউটার তার Fa0/0 ইন্টারফেস দিয়ে যে Hello প্যাকেট পাঠায় সেই ইন্টারফেস দিয়ে কোন Hello Reply আসে নাই তাই Fa0/0 ইন্টারফেসে R1 এর কোন Neighbor ও নেই।

ধাপ-৩. প্রতিটি রাউটার তার ডিরেক্টলি কানেক্টেড নেটওয়ার্কগুলোকে একত্রিত করে একটি Link State Packet (LSP) তৈরী করে। আমরা পরবর্তীতে OSPF এর আলোচনার সময় LSP এবং অন্যান্য প্যাকেট সম্পর্কে বিস্তারিত জানবো। এই LSP এর মধ্যে Neighbor রাউটারসমূহের Router ID, Link Type ও Bandwidth উল্লেখ করা থাকে। চিত্রে R1 রাউটারের একটি LSP এর নমুনা দেওয়া হল:

  1. R1 -> R2; Serial point-to-point network; 10.2.0.0/16; Cost 20
    2. R1 -> R3; Serial point-to-point network; 10.3.0.0/16; Cost 5
    3. R1 -> R4; Serial point-to-point network; 10.4.0.0/16; Cost 20
    4. R1; Ethernet network 10.1.0.0/16; Cost 2

ধাপ-৪. প্রতিটি রাউটার তার Neighbor সমূহের কাছে এই LSP পাঠায় এবং Neighbor সমূহ প্রাপ্ত সকল LSP গুলো কে তাদের Link State Database এ সংরক্ষন করে। Neighbor রাউটারসমূহ প্রাপ্ত এই LSP গুলোকে আবার তাদের Neighbor দের কাছে পাঠায়।

চিত্রে R1 রাউটারের একটি Link State Database এর নমুনা দেওয়া হলোঃ

এভাবে একটি রাউটিং এরিয়ার সর্বশেষ রাউটারটি এই LSP না পাওয়া পর্যন্ত LSP Flooding চলতে থাকে। এই LSP সমূহ Periodically পাঠানো হয় না। শুধুমাত্র দুটি ক্ষেত্রে এই LSP পাঠানো হয়:

  1. i) রাউটার অথবা রাউটিং প্রটোকলের স্টার্টআপের সময়
    ii) যখন টপোলজিতে কোন পরিবর্তন আসে, যেমন: কোন লিংক ডাউন বা আপ হলে, দুটি রাউটারের মধ্যে রিলেশনশীপের পরিবর্তন ঘটলে।

ধাপ-৫. এই Link State Database ব্যবহার করে প্রতিটি রাউটার পুরো রাউটিং এরিয়ার SPF Tree অর্থাৎ একটি টপোলজি তৈরী করে এবং প্রতিটি ডেস্টিনেশনে যাওয়ার জন্য Best পাথ ক্যালকুলেট করে।

 

Building SPF Tree

আমরা ইতিমধ্যে দেখেছি কিভাবে একটি রাউটার তার ডিরেক্টলি কানেক্টেড নেটওয়ার্কগুলো নিয়ে LSP তৈরী করে এবং অন্যান্য রাউটারসমূহের LSP এর সমন্বয়ে Link State Database তৈরী করে। এখন আমরা দেখবো একটি রাউটিং এরিয়ার কোন একটি রাউটার (উদাহরণস্বরূপ: রাউটার R1) তার নিজের LSP এবং অন্যান্য রাউটারসমূহের LSP ক্যালকুলেট করে কিভাবে SPF Tree তৈরী করে। এজন্য রাউটার R1 তার Link State ডাটাবেসে রক্ষিত অন্যান্য রাউটারের LSP গুলো চেক করে।

রাউটার R2 এর LSP:
1. Connected to neighbor R1 on network 10.2.0.0/16, cost of 20
2. Connected to neighbor R5 on network 10.9.0.0/16, cost of 10
3. Has a network 10.5.0.0/16, cost of 2

এখন দেখা যাক, R2 এর কাছ থেকে LSP পেয়ে R1 কি করে।

R1 রাউটার R2 এর কাছ থেকে পাওয়া প্রথম LSP টি Ignore করে, কারণ R1 রাউটার 10.2.0.0/16 নেটওয়ার্ক সম্পর্কে ইতিমধ্যে জানে কেননা এটি তার ডিরেক্টলি কানেক্টেড নেটওয়ার্ক। R1 দ্বিতীয় ও তৃতীয় LSP টি রিসিভ করে এবং 10.9.0.0/16 ও 10.5.0.0/16 নেটওয়ার্কে যাওয়ার জন্য এই LSP দুটি তার Partial SPF Tree তে জমা করে।

রাউটার R3 এর LSP:
1. Connected to neighbor R1 on network 10.3.0.0/16, cost of 5
2. Connected to neighbor R4 on network 10.7.0.0/16, cost of 10
3. Has a network 10.6.0.0/16, cost of 2

R1 রাউটার R3 এর কাছ থেকে পাওয়া প্রথম LSP টি Ignore করে, কারণ R1 রাউটার 10.3.0.0/16 নেটওয়ার্ক সম্পর্কে ইতিমধ্যে জানে কেননা এটি তার ডিরেক্টলি কানেক্টেড নেটওয়ার্ক। R1 দ্বিতীয় ও তৃতীয় LSP টি রিসিভ করে এবং 10.7.0.0/16 ও 10.6.0.0/16 নেটওয়ার্কে যাওয়ার জন্য এই LSP দুটি তার Partial SPF Tree তে জমা করে।

রাউটার R4 এর LSP:
1. Connected to neighbor R1 on network 10.4.0.0/16, cost of 20
2. Connected to neighbor R3 on network 10.7.0.0/16, cost of 10
3. Connected to neighbor R5 on network 10.10.0.0/16, cost of 10
4. Has a network 10.8.0.0/16, cost of 2

R1 রাউটার R4 এর কাছ থেকে পাওয়া প্রথম ও দ্বিতীয় LSP টি Ignore করে, কারণ R1 রাউটার 10.4.0.0/16 ও 10.7.0.0/16 নেটওয়ার্ক সম্পর্কে ইতিমধ্যে জানে কেননা 10.4.0.0/16 এটি তার ডিরেক্টলি কানেক্টেড নেটওয়ার্ক এবং 10.7.0.0/16 নেটওয়ার্ক সম্পর্কে সে ইতিমধ্যে R3 রাউটারের কাছ থেকে কম Cost (10) এ জেনেছে। R1 তৃতীয় ও চতুর্থ LSP টি রিসিভ করে এবং 10.10.0.0/16 ও 10.8.0.0/16 নেটওয়ার্কে যাওয়ার জন্য এই LSP দুটি তার Partial SPF Tree তে জমা করে।

রাউটার R5 এর LSP:
1. Connected to neighbor R2 on network 10.9.0.0/16, cost of 10
2. Connected to neighbor R4 on network 10.10.0.0/16, cost of 10
3. Has a network 10.11.0.0/16, cost of 2

R1 রাউটার R5 এর কাছ থেকে পাওয়া প্রথম ও দ্বিতীয় LSP টি Ignore করে, কারণ R1 রাউটার 10.9.0.0/16 ও 10.10.0.0/16 নেটওয়ার্ক সম্পর্কে ইতিমধ্যে জানে কেননা এ দুটি নেটওয়ার্ক সম্পর্কে সে ইতিমধ্যে যথাক্রমে R3 ও R4 রাউটারের কাছ থেকে জেনেছে। R1 তৃতীয় LSP টি রিসিভ করে এবং 10.11.0.0/16 নেটওয়ার্কে যাওয়ার জন্য এই LSP টি তার Partial SPF Tree তে জমা করে।

এখন উপরিউক্ত SPF ক্যালকুলেশনের মাধ্যমে রাউটার R1 যে Complete SPF Tree তৈরী করে সেটি নিম্নরূপ:

Network 10.5.0.0/16 via R2 serial 0/0/0 at a cost of 22
Network 10.6.0.0/16 via R3 serial 0/0/1 at a cost of 7
Network 10.7.0.0/16 via R3 serial 0/0/1 at a cost of 15
Network 10.8.0.0/16 via R3 serial 0/0/1 at a cost of 17
Network 10.9.0.0/16 via R2 serial 0/0/0 at a cost of 30
Network 10.10.0.0/16 via R3 serial 0/0/1 at a cost of 25
Network 10.11.0.0/16 via R3 serial 0/0/1 at a cost of 27

সবশেষে, রাউটার R1 SPF Tree এর সাহায্যে বের করা প্রতিটি পাথকে তার রাউটিং টেবিলে যোগ করে।

  • 10.5.0.0/16 via R2 Serial 0/0/0, cost = 22
    • 10.6.0.0/16 via R3 Serial 0/0/1, cost = 7
    • 10.7.0.0/16 via R3 Serial 0/0/1, cost = 15
    • 10.8.0.0/16 via R3 Serial 0/0/1, cost = 17
    • 10.9.0.0/16 via R2 Serial 0/0/0, cost = 30
    • 10.10.0.0/16 via R3 Serial 0/0/1, cost = 25
    • 10.11.0.0/16 via R3 Serial 0/0/1, cost = 27

এভাবে একটি রাউটিং এরিয়ার প্রতিটি রাউটার তার নিজ নিজ অবস্থানের ভিত্তিতে একটি করে স্বতন্ত্র রাউটিং টেবিল তৈরী করে।

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

 

OSPF Concept

OSPF এর পূর্ণরূপ হলো Open Shortest Path First । এটি একটি Link State রাউটিং প্রটোকল যা Distance Vector রাউটিং প্রটোকল RIP এর রিপ্লেসমেন্ট হিসেবে এসেছে। OSPF ডেভেলপ করার কাজ শুরু হয় 1987 সালে IETF এর মাধ্যমে। 1989 সালে OSPFv1 (Version 1) আবির্ভূত হয়, যা ছিল পরীক্ষামূলক। 1991 সালে OSPFv2 (Version 2) আসে। পরবর্তীতে 1999 সালে IPv6 এর জন্য OSPFv3 (Version 3) উন্মুক্ত হয়।

OSPF Routing Area

এখন আমরা দেখবো OSPF রাউটিং প্রটোকল কিভাবে এক বা একাধিক রাউটিং এরিয়া নিয়ে কাজ করে।

প্রতিটি OSPF রাউটিং এরিয়া দুই বা ততোধিক রাউটার নিয়ে গঠিত হয়। এরকম যতগুলো এরিয়া থাকুক না কেন তারা যদি একে অন্যের সাথে রাউট বিনিময় করতে চায় তাহলে তাদেরকে অবশ্যই Area 0 এর সাথে যুক্ত থাকতে হবে। Area 0 কে Backbone Area হিসেবে গন্য করা হয়। কোন একটি নির্দিষ্ট এরিয়ার সকল রাউটারের টপোলজি টেবিল একই ধরণের হয়। চিত্রে Area 1 ও Area 2 ব্যাকবোন এরিয়া Area 0 এর সাথে সংযুক্ত। Area 2 এ চারটি রাউটার আছে, এই চারটি রাউটারের প্রতিটিই Area 2 এর সব তথ্য জানে। যদি Area 2 এর মধ্যে কোন একটি লিংক ডাউন হয় তবে সেই আপডেট Area 2 এর এই চারটি রাউটারের প্রতিটির কাছে পৌছাবে। আবার যখন কোন লিংক আপ হয় তখন সেই আপডেটও এই চারটি রাউটারের কাছে আসবে। কিন্তু Area 2 এর কোন আপডেট অন্য কোন এরিয়া এমনকি Area 0 (Backbone Area) এর কাছেও আসবে না। এতে করে রাউটিং আপডেট একটি নির্দিষ্ট এরিয়ার মধ্যে সীমাবদ্ধ থাকে। এতে রাউটিং ইফিসিয়েন্সি বৃদ্ধি পায়।

এখন প্রশ্ন হলো, Area 2 এর কোন লিংক ডাউন বা আপ হওয়ার আপডেট যদি অন্য কোন এরিয়ায় না পৌছায় তাহলে অন্য এরিয়ার রাউটারসমূহ ঐ লিংক এর তথ্য কিভাবে পাবে অথবা পাবেই কিনা? এটাই হলো OSPF Hierarchical Network Design এর আসল মজা। চিত্রানুসারে, Area 2 এর R1 রাউটারটি হলো একটি Area Border Router (ABR) যা Area 2 এবং Area 0 এর মধ্যে সংযোগ স্থাপন করেছে, এর একটি ইন্টারফেস Area 2 এ এবং আরেকটি ইন্টারফেস Area 0 এর সাথে যুক্ত। এই R1 রাউটার Area 2 এর সকল নেটওয়ার্ককে সামারাইজ করে অন্য এরিয়ার নিকট পাঠায়। উদাহরণস্বরূপ, Area 2 এর চারটি নেটওয়ার্ক 10.10.0.0/24, 10.10.1.0/24, 10.10.2.0/24 ও 10.10.3.0/24 কে সামারাইজ করে একটি সিঙ্গেল নেটওয়ার্ক 10.10.0.0/22 এ পরিণত করে এবং এই 10.10.0.0/22 কে রাউটিং আপডেট হিসেবে Area 0 এর কাছে পাঠায়। এখন যদি কোন কারনে 10.10.2.0/24 নেটওয়ার্কটি ডাউন হয়ে যায় তাহলে সেই আপডেট Area 0 এর কাছে আসবে না। একে Route Localization বলে। এতে করে সমগ্র নেটওয়ার্কের রাউটিং ইফিসিয়েন্সি বৃদ্ধি পায়।

এখন ধরি, যদি কোন কারণে 10.10.2.0/24 নেটওয়ার্কটি Area 2 এর মধ্যে না থেকে Area 1 এর মধ্যে থাকে অথবা 172.16.3.0/24 নেটওয়ার্কটি Area 1 এ না থেকে Area 2 তে থাকে তাহলে R1 বা R5 কোন রাউটারই তাদের নিজ নিজ এরিয়ার নেটওয়ার্কসমূহকে সঠিকভাবে সামারাইজ করতে পারবে না, কারণ নেটওয়ার্কটি Discontiguous হয়ে পড়বে। এতে নেটওয়ার্ক ডিজাইন Hierarchical হবে না এবং সামারি রাউটের সুফলও পাওয়া যাবে না। কারণ OSPF Hierarchical Network Design মূলত নির্ভর করে IP Addressing Scheme এর উপর। তাই নেটওয়ার্ক ডিজাইনের সময় একজন এ্যাডমিনিষ্ট্রেটরকে এ সকল বিষয়সমূহ বিবেচনায় রাখা উচিত।

চিত্রে R9 রাউটারটি হলো একটি Autonomous System Boundary Router (ASBR) যা Internet বা Outside নেটওয়ার্কের সাথে এই নির্দিষ্ট রাউটিং ডোমেইনটিকে যুক্ত করেছে। রাউটার R9 তার রাউটিং ডোমেইনের সবগুলো এরিয়ার সবগুলো নেটওয়ার্ককে সামারাইজ করে Outside নেটওয়ার্কে পাঠিয়ে থাকে। এখানে একটি কথা বিশেষভাবে উল্লেখযোগ্য যে, OSPF এর ক্ষেত্রে শুধুমাত্র ABR এবং ASBR রাউটারই কেবল রাউট সামারাইজ করতে পারে।

OSPF Neighbor Relationship

দুইটি OSPF রাউটারের মধ্যে Neighbor Relationship তৈরী হওয়ার মূল শর্ত হলো রাউটার দুটিকে অবশ্যই একই রাউটিং এরিয়ার মধ্যে থাকতে হবে। দুইটি ভিন্ন এরিয়ার রাউটারের মধ্যে Neighbor Relationship তৈরী হয় না। তবে যে সকল রাউটার Area Border Router (ABR) হিসেবে কাজ করে সেই রাউটারগুলো যেহেতু একাধিক রাউটিং এরিয়ার সাথে যুক্ত থাকে তাই তারা একাধিক এরিয়ার রাউটারসমূহের সাথে Neighbor Relationship তৈরী করতে পারে।

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

ধাপ-১: যখন কোন রাউটারের মধ্যে OSPF কনফিগার করা হয় তখন ঐ রাউটারের মধ্যে OSPF প্রসেস শুরু হয়। OSPF প্রসেসের শুরুতেই রাউটার তার Router ID নির্বাচন করে। Router ID হলো একটি OSPF রাউটারের নাম যা ঐ রাউটারের OSPF অপারেশনে ব্যবহৃত হয়। মূলত এই Router ID হল ঐ রাউটারের একটি আই.পি এ্যাড্রেস। অর্থাৎ একটি OSPF রাউটার তার ইন্টারফেসসমূহের মধ্যে বসানো আই.পি এ্যাড্রেসগুলোর মধ্য থেকে একটি আই.পি কে তার Router ID হিসেবে নির্বাচন করে। এখন প্রশ্ন হলো রাউটার তার কোন আই.পি কে Router ID হিসেবে নির্বাচন করবে? এক্ষেত্রে রাউটার তার Highest Active আই.পি টিকে Router ID হিসেবে গন্য করবে।

চিত্রে রাউটার R1 তার 192.168.50.1 আই.পি টিকে Router ID হিসেবে নির্বাচন করবে। কারণ রাউটার R1 এর সবগুলো আই.পি’র মধ্যে সংখ্যার দিক থেকে এটিই সবচেয়ে বড় (ধরি, চিত্রে Loopback1 নাই)। কিন্তু এক্ষেত্রে একটু ব্যতিক্রম রয়েছে। যদি R1 এ কোন Loopback ইন্টারফেস কনফিগার করা থাকে তাহলে ঐ Loopback ইন্টারফেসের আই.পি-টিই হবে রাউটারে Router ID । চিত্রে R1 এর Loopback1 ইন্টারফেসের আই.পি 10.10.0.1 ই হবে এর Router ID । Router ID নির্ধারণের ক্ষেত্রে Loopback ইন্টারফেসের আই.পি সবসময় Physical ইন্টারফেসের আই.পি’র চেয়ে প্রাধান্য পায়। যদি এরকম হয় যে, রাউটারে একাধিক Loopback ইন্টারফেস আছে, তাহলে ঐ Loopback ইন্টারফেসসমূহের আই.পি গুলোর মধ্যে যেটি রড় সেটিই হবে রাউটারের Router ID ।

একটি প্রোডাকশন নেটওয়ার্কে চলমান কোন OSPF রাউটারের কোন Physical বা Loopback ইন্টারফেসে যদি এমন কোন আই.পি বসানো হয় যা অন্যান্য আই.পি সমূহ থেকে বড়, তারপরও ঐ রাউটারের Router ID পরিবর্তন হবে না। কোন একটি রাউটারের Router ID তখনই নতুন করে নির্বাচন করা হয় যখন ঐ রাউটারের OSPF প্রসেসটি রিস্টার্ট দেওয়া হয় অথবা ঐ রাউটারটিকেই রিবুট দেওয়া হয়। তবে সব কথার শেষ কথা হলো, একজন এ্যাডমিনিষ্ট্রেটর চাইলে নিজের ইচ্ছামতো কোন রাউটারের Router ID নির্ধারণ করে দিতে পারেন। সেক্ষেত্রে রাউটারের Physical বা Loopback ইন্টারফেসের কোন Highest আই.পি ই বিবেচিত হবে না।

ধাপ-২: দ্বিতীয় ধাপে, যথন কোন রাউটারের OSPF প্রসেসে network কমান্ডের মাধ্যমে কোন নেটওয়ার্ককে যোগ করা হয় তখন রাউটার তার ঐ ইন্টারফেসের নেটওয়ার্কটিকে নিজের Link State ডাটাবেজে যুক্ত করে। ধরি চিত্রে R1 রাউটার তার 10.0.0.0/24, 192.168.10.0/24 ও 192.168.50.0/24 নেটওয়ার্কগুলোকে তার Link State ডাটাবেজে যুক্ত করেছে।

ধাপ-৩: যখন নেটওয়ার্কসমূহ R1 এর Link State ডাটাবেজে যুক্ত হয় তখন R1 ঐ সকল নেটওয়ার্কের সংশ্লিষ্ট ইন্টারফেসসমূহ দিয়ে Neighbor ডিসকভারির জন্য একটি করে Hello Packet পাঠায়। R1 যতক্ষন পর্যন্ত ঐ ইন্টারফেসসমূহ দিয়ে কোন Hello Reply না পায় ততক্ষন পর্যন্ত R1 এর Link State ডাটাবেজে ইন্টারফেসসমূহ DOWN STATE এ থাকে।

Broadcast/P2P নেটওয়ার্কে প্রতি 10 সেকেন্ড পরপর এবং NBMA নেটওয়ার্কে প্রতি 30 সেকেন্ড পরপর Hello Packet পাঠানো হয়। উভয়ক্ষেত্রেই Dead Timer হলো Hello Timer এর চারগুন।

একটি Hello Packet এ নিচের Field গুলো থাকে।
১. Router ID: রাউটিং অপারেশনে ব্যবহৃত কোন রাউটারের নাম।
২. Area ID*: OSPF রাউটিং এরিয়ার এরিয়া নম্বর।
৩. Network Mask*: যে নেটওয়ার্কটিকে OSPF রাউটিং প্রসেসে যোগ করা হয় তার সাবনেট মাস্ক।
৪. Hello Interval/Dead Interval*
৫. List of Neighbor: রাউটারের অন্যান্য OSPF Neighbor সমূহের তালিকা (যদি থাকে)।
৬. Router Priority: পরের অংশে আলোচনা করা হবে।
৭. Designated Router (DR): পরের অংশে আলোচনা করা হবে।
৮. Backup Designated Router (BDR): পরের অংশে আলোচনা করা হবে।
৯. Authentication Password*: OSPF রাউটিং এর নিরাপত্তা বৃদ্ধির জন্য ব্যবহৃত বিশেষ পাসওয়ার্ড (যদি থাকে)।
উপরিউক্ত Field সমূহের মধ্যে * চিহ্নিত Field গুলো অবশ্যই দুইটি রাউটারে এক হতে হবে। যদি এই * চিহ্নিত Field সমূহ ভিন্ন হয় তাহলে Neighbor Relationship তৈরী হবে না।

ধাপ-৪: এই ধাপে R2 রাউটার R1 এর Hello প্যাকেট গ্রহন করে। এসময় R2 রাউটার INIT STATE এ থাকে। R2 রাউটার প্রাপ্ত Hello প্যাকেটের Area ID, Netmask, Hello/Dead Timer ও Authentication Password এই চারটি Field নিজের Field এর সাথে চেক করে দেখে যে ঠিক আছে কিনা।

ধাপ-৫: যদি Field সমূহ ঠিক থাকে তাহলে R2 রাউটার R1 এর কাছে Hello Reply পাঠায়। এসময় R1 ও R2 উভয় রাউটার 2-WAY STATE এ পদার্পন করে। অর্থাৎ রাউটার দুটির মধ্যে Neighbor Relationship তৈরী হয়। এসময় রাউটারদ্বয় চেক করে দেখে যে, তাদের নিজেদের মধ্যে আগে থেকেই Neighbor Relationship ছিল কিনা। এখানে একটি কথা মনে রাখা দরকার যে, শুধুমাত্র অপরিচিত দুইটি রাউটারই Relationship তৈরীর জন্য নিজেদের মধ্যে Hello প্যাকেট বিনিময় করে না, নিজেদের মধ্যে Neighbor Relationship আছে এমন রাউটারসমূহও সেই Relationship বজায় রাখার জন্য নিয়মিত বিরতিতে Hello প্যাকেট বিনিময় করে (Broadcast/P2P নেটওয়ার্কে প্রতি 10 সেকেন্ড পরপর এবং NBMA নেটওয়ার্কে প্রতি 30 সেকেন্ড পরপর)।

যদি আগে থেকেই Relationship থেকে থাকে তাহলে রাউটারদ্বয় নিজেদের Dead Timer টি রিসেট করে নেয় এবং নিজেদের মধ্যে রাউটিং টেবিল বিনিময় করে না। আর যদি নতুন Relationship হয় তাহলে তারা নিজেদের মধ্যে রাউটিং টেবিল বিনিময় করার জন্য ধাপ-৬ এ গমন করে।

ধাপ-৬: এই ধাপে রাউটারদ্বয় নিজেদের মধ্যে Master-Slave রিলেশনশীপ নির্ণয় করে অর্থাৎ কে Master আর কে Slave । এসময় রাউটারদ্বয় EX-START State এ থাকে (Exchange Start)। নতুন দুইটি Neighbor এর মধ্যে Master-Slave রিলেশনশীপ তেমন বিশেষ কিছুই নয়। এখানে যে রাউটারটি Master হবে সে আগে Slave এর নিকট নিজের Link State Database পাঠাবে। আর যে Slave হবে সে পরে Master এর নিকট তার নিজের Link State Database পাঠাবে। এখন দেখা যাক কিভাবে নির্ধারিত হয় কে Master আর কে Slave?

যে রাউটারের Router Priority বেশি হবে সে রাউটার হবে Master আর অন্যটি হবে Slave । যদি রাউটার দুইটির Priority ভ্যালু একই হয় (যেহেতু রাউটারসমূহের Priority বাই ডিফল্ট 1), তাহলে তারা Router ID ব্যবহার করে Master-Slave নির্বাচন করে থাকে। এক্ষেত্রে যে রাউটারের Router ID বড় সে হবে Master আর অন্যটি হবে Slave ।

Master রাউটার Slave এর নিকট প্রথমে নিজের Database Description (DBD) টেবিল পাঠায়। DBD হলো রাউটারের Link State ডাটাবেজের একটি সার সংক্ষেপ। অতঃপর Slave রাউটারও Master এর কাছে নিজের DBD পাঠায়। ধরি, চিত্রে R1 হলো Master রাউটার এবং R2 হলো Slave রাউটার।

ধাপ-৭: এই ধাপে রাউটারদ্বয় এক অন্যের থেকে পাওয়া DBD এর জন্য Acknowledgement পাঠায় (যেহেতু OSPF একটি রিলায়েবল প্রটোকল)। এসময় রাউটারদ্বয় LOADING STATE এ থাকে।

Master রাউটার R1 Slave রাউটার R2 এর কাছে যে DBD পাঠিয়েছে তার মধ্যে তিনটি নেটওয়ার্ক আছে (10.0.0.0/24, 192.168.10.0/24 ও 192.168.50.0/24)। এখন Slave R2 যেহেতু 10.0.0.0/24 নেটওয়ার্ককে তার ডিরেক্টলি কানেক্টেড নেটওয়ার্ক হিসেবে চেনে তাই এটি বাকি দুইটি নেটওয়ার্কের বিস্তারিত চেয়ে Master R1 এর কাছে দুইটি আলাদা Link State Request (LSR) পাঠায় এবং R1 প্রাপ্ত LSR গুলো চেক করে কাঙ্খিত নেটওয়ার্কের বিস্তারিত তথ্য Link State Update (LSU) আকারে R2 এর নিকট পাঠায়। অনুরূপভাবে, Slave R2 রাউটার Master R1 এর কাছে যে DBD পাঠিয়েছে তার মধ্যে দুইটি নেটওয়ার্ক আছে (10.0.0.0/24 ও 172.16.10.0/24)। এখন Master R1 যেহেতু 10.0.0.0/24 নেটওয়ার্ককে তার ডিরেক্টলি কানেক্টেড নেটওয়ার্ক হিসেবে চেনে তাই এটি বাকি একটি নেটওয়ার্কের বিস্তারিত চেয়ে Slave R2 এর কাছে একটি LSR পাঠায় এবং R2 সেই LSR চেক করে কাঙ্খিত নেটওয়ার্কের বিস্তারিত তথ্য LSU আকারে R1 এর নিকট পাঠায়।

ধাপ-৮: যখন Master ও Slave রাউটার নিজেদের মধ্যে তথ্য বিনিময় করে উভয়ই একই ধরণের Link State ডাটাবেজ তৈরী করে তখন তাদের মধ্যকার Neighbor রিলেশনশীপকে Synchronized হিসেবে গন্য করা হয়। এসময় উভয় রাউটারই Full State এ গমন করে। যখন কোন রাউটার FULL STATE এ থাকে তখন ইহা তার Neighbor এর সাথে রাউটিং টেবিল বিনিময় করে এবং Dijkstra’s Algorithm এর মাধ্যমে SPF Tree তৈরী করে বিভিন্ন ডেস্টিনেশনে যাওয়ার জন্য Shortest Path নির্ণয় করে।

OSPF Packet Types

আমরা OSPF Neighbor Relationship আলোচনার সময় যে OSPF Packet সমূহ সম্পর্কে জেনেছি এক নজরে তা নিম্নরূপঃ
১. Hello: এই প্যাকেটটি Neighbor ডিসকভারির জন্য ব্যবহৃত হয়।
২. Database Description (DBD): এই প্যাকেটের মধ্যে একটি রাউটারের Link State ডাটাবেজের সামারী থাকে যা Neighbor রাউটারের নিকট পাঠানো হয়।
৩. Link State Request (LSR): এই প্যাকেট পাঠানোর মাধ্যমে একটি রাউটার আরেকটি রাউটারের কাছে কোন নির্দিষ্ট নেটওয়ার্কের আপডেট জানতে চায়।
৪. Link State Update (LSU): LSR এর মাধ্যমে জানতে চাওয়া কোন আপডেট রিকোয়েষ্ট এর জবাবে এই LSU পাঠানো হয়। একটি LSU এর মধ্যে এক বা একাধিক LSA থাকে।
৫. Link State Advertisement (LSA): এই LSA এর মাধ্যমে একটি রাউটার আরেকটি রাউটারের কাছে রাউটিং আপডেট পাঠিয়ে থাকে। পাঠানো রাউটের সংখ্যা যত হয়, LSA এর সংখ্যাও তত হয়। অর্থাৎ একটি LSA তে কেবল একটি রাউটের আপডেট থাকে।
৬. Link State Acknowledgement (LSACK): যেহেতু OSPF একটি রিয়ায়েবল প্রটোকল তাই OSPF অপারেশনের সময় এই LSACK এর মাধ্যমে অন্যান্য প্যাকেট যেমন DBD, LSR, LSU, LSA এর Acknowledgement প্রদান করা হয়।

 

OSPF Multi Access Network: DR and BDR

আমরা ইতিমধ্যে OSPF এর যে আলোচনা করেছি তাতে দুইটি রাউটারের মধ্যে Point-to-Point সংযোগ দেখেছি এবং এটাও দেখেছি যে এই Point-to-Point নেটওয়ার্কে দুইটি রাউটার কিভাবে একে অন্যের সাথে Neighbor Relationship তৈরী করে এবং প্যাকেট বিনিময় করে। এখন আমরা দেখবো একটি Multi Access নেটওয়ার্কে রাউটারসমূহ কিভাবে নিজেদের মধ্যে OSPF অপারেশন চালায়।

Multi Access নেটওয়ার্ক বলতে এমন একটি নেটওয়ার্ককে বুঝায় যেখানে দুইয়ের বেশি রাউটার একটি Shared মিডিয়ার সাথে যুক্ত থাকে।

Multi Access নেটওয়ার্কের একটি বড় অসুবিধা হল, এই নেটওয়ার্কে যুক্ত প্রতিটি রাউটার একটি আরেকটির সাথে Neighbor Relationship/Adjacency তৈরী করে এবং আলাদা আলাদা ভাবে DBD ও LSP আদান-প্রদান করে। Multi Access নেটওয়ার্কে রাউটারের সংখ্যা যত বেশি হবে এই রাউটারসমূহের মধ্যে Number of Adjacency ও তত বেশি হবে। এতে করে এই নেটওয়ার্কে LSP Flooding এমন অবস্থায় পৌছাবে যে ব্যান্ডউইথ স্বল্পতার জন্য নেটওয়ার্কের Real Traffic আদান-প্রদান বাধাগ্রস্থ হবে।

ব্যাপারটা আরেকটু সহজ করা যাক। ধরি একটি কক্ষে 10 জন ব্যক্তি আছে। এখন এই 10 জন ব্যক্তির প্রত্যেকে যদি প্রত্যেকের সাথে নাম-পরিচয় বিনিময় করে তাহলে যে সময় লাগবে ও ঝামেলা হবে তার চেয়ে যদি এই 10 ব্যক্তির মধ্যে মাত্র একজন সামনে দাড়িয়ে এক জন এক জন করে সবার নাম-পরিচয় বর্ণনা করে তাহলে ব্যাপারটা অনেক সুন্দর ও সাবলীল হয়। ঠিক তেমনি Multi Access নেটওয়ার্কে এই সমস্যা দূর করার জন্য সবগুলো রাউটারের মধ্য থেকে একটি রাউটারকে Designated Router (DR) হিসেবে নির্বাচন করা হয়, যার কাজ হলো এই Multi Access নেটওয়ার্কের সব রাউটারের কাছ থেকে আগে আপডেট নিয়ে আপডেটগুলোকে একত্রিত করে আবার সবগুলো রাউটারের কাছে পৌছে দেওয়া। এই Multi Access নেটওয়ার্কে আবার একটি Backup Designated Router (BDR) থাকে। যদি কোন কারণে DR ফেইল করে তাহলে BDR তার স্থলাভিষিক্ত হয় এবং OSPF অপারেশন সমন্বয় করে। DR ও BDR ছাড়া এই Multi Access নেটওয়ার্কের অন্যান্য রাউটারসমূহকে DROther হিসেবে গন্য করা হয়।

DR/BDR Election Process

এখন আমরা দেখবো একটি Multi Access নেটওয়ার্কে দুইয়ের বেশি রাউটারের মধ্য থেকে কোন রাউটারটি DR এবং কোন রাউটারটি BDR হিসেবে নির্বাচিত হয় এবং এই নির্বাচন প্রক্রিয়া কিভাবে সম্পন্ন হয়।

একটি Multi Access নেটওয়ার্কে যে রাউটারটির Router Priority সবচেয়ে বেশি সে রাউটারটি DR হিসেবে বিবেচিত হয় এবং Router Priority এর দিক থেকে যে রাউটারটি দ্বিতীয় সে রাউটারটি BDR হিসেবে নির্বাচিত হয়। কোন রাউটারের Router Priority ইচ্ছামতো কনফিগার করা যায়। যেহেতু সব রাউটারের Router Priority বাই ডিফল্ট 1, তাই Multi Access নেটওয়ার্কে সবগুলো রাউটারের Router Priority সমান হয়ে গেলে টাই ব্রেকার হিসেবে সর্বোচ্চ Router ID এর ভিত্তিতে DR ও BDR নির্বাচিত হয়। এই DR ও BDR ছাড়া অন্যান্য রাউটারসমূহ DROther হিসেবে থাকে। একটি DROther রাউটার অন্য কোন DROther রাউটারের সাথে Neighbor Relationship তৈরী করে না, এটি শুধুমাত্র DR ও BDR এর সাথে Neighbor Relationship তৈরী করে। তাই একটি DROther এর সাথে আরেকটি DROther এর রিলেশনশীপ 2-WAY STATE এ থাকে এবং একটি DROther এর সাথে DR/BDR এর রিলেশনশীপ FULL STATE এ থাকে।

ধরি, চিত্রে প্রদত্ত Multi Access নেটওয়ার্কটিতে R1 হলো DR, R2 হলো BDR এবং অন্যান্য রাউটারসমূহ হলো DROther । R1 রাউটার ততক্ষন পর্যন্ত DR হিসেবে কাজ করবে যতক্ষন না পর্যন্ত এটি ডাউন হয় অথবা এর OSPF প্রসেস রিস্টার্ট দেওয়া হয়। যখন R1 রাউটার উল্লেখিত কোন একটি কারণে ফেইল করে তখন BDR রাউটার R2 সাথে সাথে DR এর জায়গা দখল করে এবং R3 রাউটার BDR হিসেবে কাজ শুরু করে। ধরি কিছুক্ষন পর আবার R1 রাউটারটি আপ হল, তখন কিন্তু এটি আর DR/BDR হিসেবে বিবেচিত হবে না যদিও এর Router ID অন্যান্য রাউটারসমূহের চেয়ে বড়। R1 রাউটার শুধুমাত্র তখনই BDR হিসেবে গন্য হবে যখন BDR রাউটার R3 ফেইল করবে এবং শুধুমাত্র তখনই DR হিসেবে গন্য হবে যখন R2 ও R3 (DR ও BDR) উভয়ই ফেইল করবে।

একটি Multi Access নেটওয়ার্কে DR রাউটারকে যেহেতেু অনেক বেশি LSA হ্যান্ডেল করতে হয় তাই এর পর্যাপ্ত CPU ও Memory ক্যাপাসিটি থাকা বাঞ্ছনীয়। এজন্য নেটওয়ার্কের সবচেয়ে ভাল কনফিগারেশনের রাউটারটিই যাতে DR হিসেবে নির্বাচিত হতে পারে তাই এর Router Priority (বাই ডিফল্ট 1) পরিবর্তন করে একটি বড় সংখ্যা নির্ধারণ করে দেওয়া উচিত।

OSPF Cost

এখন আমরা দেখবো, কিভাবে একটি OSPF রাউটার কোন নেটওয়ার্কে যাওয়ার জন্য ঐ নেটওয়ার্কের Cost ক্যালকুলেট করে। আমরা জানি, OSPF রাউটিং প্রটোকল ব্যান্ডউইথ এর পরিমানের উপর ভিত্তি করে Best পাথ নির্ধারণ করে। কিন্তু প্রকৃতপক্ষে OSPF অপারেশনের ব্যাকগ্রাউন্ডে এই Bandwidth ভ্যালুটি সরাসরি ব্যবহৃত হয় না।

এই Bandwidth ভ্যালুটিকে একটু আলাদাভাবে হিসেব করে প্রতিটি পাথের Cost বের করা হয়। আর এই Cost এর উপর ভিত্তি করেই Best পাথ নির্ধারিত হয়ে থাকে।

লিংক এর ধরণের উপর ভিত্তি করে এর ব্যান্ডউইথের মান ভিন্ন ভিন্ন হয়ে থাকে। যেমনঃ
FastEthernet ——> 100 Mbps
Ethernet ——> 10 Mbps
E1 ——> 2.048 Mbps
T1 ——> 1.544 Mbps

এখন এই লিংক এর ধরণ অনুযায়ী Cost বের করার জন্য নিচের সুত্রটি ব্যবহার করা হয়।
Cost = 10^8 / bandwidth in bps

উদাহরণস্বরূপ, E1 এর ক্ষেত্রেঃ
Cost = 10^8 / 2048000 [যেহেতু 2.048 Mbps = 2048000 bps]
= 48.83
=48 (রাউন্ড ফিগার)

অনুরূপভাবে হিসেব করলে অন্যান্য Link Type এর Cost সমূহ হবে নিম্নরূপ:

এখন একটা প্রশ্ন হলো যে, যদি FastEthernet এর Cost 1 হয়, তাহলে GigEthernet বা 10GigEthernet এর Cost কত হবে? উত্তর হলো, এদের Cost ও হবে 1 । কারণটা হলো, আশির দশকে যখন OSPF আবির্ভূত হয় ঐ সময় GE, 10GE, 100GE এর চিন্তা কেউ করে নাই। ঐ সময়ে যে সুত্রের উপর ভিত্তি করে যেভাবে ক্যালকুলেশন করা হতো এখনো সেভাবেই করা হচ্ছে। তবে সব কথার শেষ কথা হলো, একজন এ্যাডমিনিষ্ট্রেটর চাইলে তার ইচ্ছানুযায়ী কোন লিংক এর Cost স্ট্যাটিকভাবে নির্ধারণ করে দিতে পারেন।

চিত্রানুযায়ী, R1 থেকে 10.10.10.0/24 নেটওয়ার্কে যাওয়ার মোট Cost হলো 65 । কারণ, 10.10.10.0/24 নেটওয়ার্কটি R2 এর FastEthernet লিংক যার Cost হলো 1 । অন্যদিকে R1 ও R2 এর মধ্যবর্তী সংযোগটি হলো একটি T1 লিংক যার Cost হলো 64 । তাই 10.10.10.0/24 নেটওয়ার্কে যেতে R1 এর মোট Cost হলো 64+1 বা 65 ।

Border Gateway Protocol (BGP) Concept and Basic Configuration

একজন নেটওয়ার্ক প্রফেশনাল হিসেবে আমরা বিভিন্ন সময় একাধিক নেটওয়ার্কের মধ্যে রাউটিং কনফিগার করে থাকি। এই রাউটিং কনফিগারেশন বিভিন্নভাবে করা যায়। যেমনঃ ছোট নেটওয়ার্কের ক্ষেত্রে স্ট্যাটিক রাউটিং এবং বড় আকারের নেটওয়ার্কের ক্ষেত্রে ডাইনামিক রাউটিং। ডাইনামিক রাউটিং কনফিগার করার জন্য বিভিন্ন ধরণের ডাইনামিক রাউটিং প্রটোকল যেমনঃ RIP, EIGRP, OSFP ব্যবহৃত হয়। আমরা যারা CCNA কোর্সটি করেছি তারা সবাই মোটামুটি এই তিনটি রাউটিং প্রটোকল সম্পর্কে কম-বেশি জানি। এই তিনটি প্রটোকল ছাড়াও আরো কিছু ডাইনামিক রাউটিং প্রটোকল রয়েছে, এগুলো হলো IS-IS ও BGP। আমাদের এই টিউটোরিয়ালের আলোচ্য বিষয় হলো ডাইনামিক রাউটিং প্রটোকল BGP।

ডাইনামিক রাউটিং প্রটোকলসমূহকে দুইটি শ্রেণীতে ভাগ করা যায়।

১. Interior Gateway Protocol (IGP)
২. Exterior Gateway Protocol (EGP)

IGP ও EGP এর মধ্যে মূল পার্থক্য হলো, আমরা যখন একই Autonomous System (AS) এর মধ্যে রাউটিং করি তখন IGP ব্যবহার করি, আর RIP, EIGRP, OSPF হলো এই IGP শ্রেনীভুক্ত। অপরদিকে আমরা যখন একাধিক Autonomous System (AS) এর মধ্যে রাউটিং করি তখন EGP ব্যবহার করি, BGP ই হলো একমাত্র EGP যা কিনা একাধিক AS এর মধ্যে রাউটিং করতে পারে।

Autonomous System (AS) কি?

Autonomous System বা সংক্ষেপে AS বলতে এমন একটি রাউটিং এরিয়া বা ডোমেইনকে বুঝায় যেখানে একাধিক রাউটার একই রাউটিং পলিসি বা মালিকানার অধীণে থাকে। প্রতিটি AS কে একটি 32 বিট এর স্বতন্ত্র ভ্যালু দিয়ে চিহ্নিত করা হয়। এই ভ্যালুটিকে বলা হয় Autonomous System Number বা সংক্ষেপে ASN। ইন্টারনেটের পাবলিক আই.পি বরাদ্দের জন্য দায়িত্বপ্রাপ্ত Regional Internet Registry (RIR) সমূহ কোন প্রতিষ্ঠানকে পাবলিক আই.পি এর পাশাপাশি একটি AS নম্বর প্রদান করে। যেহেতু প্রতিটি কোম্পানীর অনুকূলে বরাদ্দকৃত AS নম্বরটি আলাদা হয়ে থাকে, তাই কোম্পানীসমূহ তাদের এই ভিন্ন ভিন্ন AS এর মধ্যে রাউটিং করার জন্য EGP ব্যবহার করে, আর বর্তমানে Border Gateway Protocol বা BGP ই হলো একমাত্র EGP যা কিনা একাধিক AS এর মধ্যে রাউটিং করতে পারে।

একাধিক AS এর মধ্যে রাউটিং করা ছাড়াও BGP ব্যবহারের আরেকটি বড় উদ্দেশ্য রয়েছে এবং সেটি হচেছ AS এর Redundancy। উদাহরণস্বরূপঃ আমরা যখন কোন আই.এস.পি এর কাছ থেকে ইন্টারনেট কানেকশন নিই তখন আই.এস.পি আমাদের এক বা একাধিক পাবলিক আই.পি এ্যাড্রেস দেয়। ঐ পাবলিক আই.পি এ্যাড্রেসের মাধ্যমে আমরা ইন্টারনেট ব্যবহার করি এবং আমাদের সার্ভারসমূহ কনফিগার করে থাকি (যেমনঃ মেইল সার্ভার)। যদি কোনো কারণে আমরা আই.এস.পি পরিবর্তন করি তাহলে আই.এস.পি তার প্রদত্ত আই.পি সমূহ ফিরিয়ে নেয় এবং নতুন আই.এস.পি তার নিজের আই.পি দেয়। এক্ষেত্রে আগের আই.এস.পি থেকে পাওয়া আই.পি দিয়ে কনফিগারকৃত মেইল সার্ভারটি নতুন আই.এস.পি এর আই.পি দিয়ে আবার কনফিগার করতে হয়। এক্ষেত্রে মেইল সার্ভারটি বেশ কিছু সময়ের জন্য ডাউন থাকে। একটি ছোট কোম্পানীর জন্য এই ডাউনটাইম হয়তোবা তেমন বিশেষ কিছু নয়। কিন্তু একটি বড় কোম্পানী বা আই.এস.পি এর জন্য এই ধরণের ডাউনটাইম ব্যবসায়িক ক্ষতির কারণ। উপরন্তু, আই.এস.পি এর জন্য আই.পি এ্যাড্রেস পরিবর্তন করা কখনোই সম্ভব নয় (আই.এস.পি গুলো আই.আই.জি এর কাছ থেকে ব্যান্ডউইথ নিয়ে থাকে, এবং বিভিন্ন কারণে আই.এস.পি গুলোরও কিন্তু আই.আই.জি পরিবর্তনের প্রয়োজন হয়)।

আই.এস.পিগুলো এবং কিছু বড় কোম্পানী এই ধরণের আই.পি পরিবর্তনজনিত সমস্যা থেকে পরিত্রান পাওয়ার জন্য Regional Internet Registry (RIR) এর কাছ থেকে কিছু পাবলিক আই.পি ও ASN কিনে নেয় এবং সেই আই.পি ও ASN এর সমন্বয়ে রাউটিং প্রটোকল BGP কনফিগার করে তার আপস্ট্রিম সার্ভিস প্রোভাইডার এর সাথে ট্রাফিক আদান-প্রদান করে থাকে। এক্ষেত্রে যদি কোন কারণে আপস্ট্রিম সার্ভিস প্রোভাইডার পরিবর্তন করার দরকার হয় তাতে কোন সমস্যা হয় না। কারণ বরাদ্দ পাওয়া আই.পি ও ASN এর মালিক আই.এস.পি নিজে এবং এই আই.পি ও ASN এর সমন্বয়ে সে যেকোন আপস্ট্রিম সার্ভিস প্রোভাইডারের সাথে BGP কনফিগার করে ট্রাফিক আদান-প্রদান করতে পারে। এছাড়াও যদি কোন আই.এস.পি এর একাধিক আপস্ট্রিম থাকে তাহলে সে তার কিছু আই.পি’র ট্রাফিক এক আপস্ট্রিম দিয়ে এবং বাকী আই.পি’র ট্রাফিক অন্য আপস্ট্রিম দিয়ে আদান-প্রদান করতে পারে। একে Load Balance বলে।

আবার, যদি কোন একটি আপস্ট্রিম ডাউন হয়ে যায় তাহলে ঐ আপস্ট্রিম এর মধ্য দিয়ে যাওয়া ট্রাফিকসমূহ অন্য আপস্ট্রিম দিয়ে চলাচল করতে পারে। একে Redundancy বলে।

অর্থাৎ, ডাইনামিক রাউটিং প্রটোকল BGP ব্যবহার করে আই.এস.পি সমূহ তাদের আপস্ট্রিম এর সাথে বৃহৎ পরিসরে Link Redundancy ও Load Balance করতে পারে, যা সার্ভিস প্রোভাইডার নেটওয়ার্কের জন্য অত্যন্ত জরুরী একটি বিষয়।

Border Gateway Protocol বা BGP এর দুইটি শ্রেণী রয়েছে।

১. Exterior BGP (eBGP)
২. Internal BGP (iBGP)

যখন দুইটি রাউটার দুইটি ভিন্ন AS এর অধীনে থাকে তখন এদের মধ্যে রাউটিং এর জন্য eBGP ব্যবহৃত হয়। অপরদিকে যখন দুইটি রাউটার একই AS এর অধীনে থাকে তখন এদের মধ্যে রাউটিং এর জন্য iBGP ব্যবহৃত হয়।

BGP কিভাবে কাজ করে?

অন্যান্য ডাইনামিক রাউটিং প্রটোকল যেমনঃ OSPF কনফিগার করার সময় আমরা ‪#‎network কমান্ডের মাধ্যমে রাউটারের সাথে ডিরেক্টলি কানেক্টেড নেটওয়ার্কসমূহকে ডিক্লেয়ার করি। যদি ঐসকল নেটওয়ার্কের সাথে অন্য কোন OSPF এনাবলড রাউটার যুক্ত থাকে তাহলে রাউটারদ্বয় Neighbor ডিসকভারির জন্য Hello প্যাকেট আদান-প্রদান করতঃ নিজেদের মধ্যে Neighbor রিলেশনশীপ তৈরী করে এবং একে অন্যের সাথে নিজেদের রাউটিং ইনফরমেশন শেয়ার করে। এখানে শুধুমাত্র #network কমান্ডের মাধ্যমে রাউটারের সাথে ডিরেক্টলি কানেক্টেড নেটওয়ার্কসমূহকে ডিক্লেয়ার করলেই চলে, রাউটারদ্বয়কে ম্যানুয়ালী বলে দিতে হয় না যে, তাকে কোন একটি নিদিষ্ট আই.পি সম্বলিত রাউটারের সাথেই Neighbor রিলেশনশীপ তৈরী করতে হবে। কিন্তু BGP এর ক্ষেত্রে ব্যাপারটি একটু ভিন্ন। BGP কনফিগারেশনের সময় সবার প্রথমেই একটি রাউটারকে বলে দিতে হয় যে, সে কোন আই.পি সম্বলিত রাউটারের সাথে Neighbor রিলেশনশীপ তৈরী করবে এবং উক্ত রাউটার কোন AS এর অধীনে আছে। এতে করে একটি রাউটার কোন অপরিচিত রাউটারের সাথে Neighbor রিলেশনশীপ তৈরী করতে পারে না। তাই বলা যায়, Neighbor রিলেশনশীপ তৈরীর ক্ষেত্রে BGP এর Level of Trust বেশ শক্তিশালী।

BGP Neighbor Relationship

দুইটি ভিন্ন AS এর রাউটারের মধ্যে eBGP কনফিগারেশনের শুরুতেই রাউটারদ্বয়ের মধ্যে Neighbor রিলেশনশীপ তৈরী করার জন্য নিম্নলিখিত কমান্ড দিতে হয়।

R1#conf tR1(config)‪#‎router bgp 100R1(config-router)‪#‎neighbor 10.0.0.2 remote-as 200

এখানে R1 রাউটারে #router bgp 100 কমান্ডের মাধ্যমে আমরা বলে দিলাম এই রাউটারটি AS 100 এর অধীনে আছে। এবং #neighbor 10.0.0.2 remote-as 200 কমান্ডের মাধ্যমে বলে দিলাম এই রাউটারটি যে রিমোট রাউটারের সাথে Neighbor রিলেশনশীপ তৈরী করবে তার আই.পি হলো 10.0.0.2 এবং রিমোট রাউটারটি AS 200 এর অধীনে আছে। রাউটার R2 তেও একই পদ্ধতিতে নিম্নলিখিত কমান্ড দিতে হবে।

R2#conf tR2(config)#router bgp 200R2(config-router)#neighbor 10.0.0.1 remote-as 100

উপরিউক্ত কনফিগারেশনের পরপরই, রাউটার R1 প্রথমে Idle State এ থাকে। Idle State এর অর্থ হলো রাউটার R1 বুঝতে পারে BGP রাউটিং এর জন্য এর মধ্যে কোন একটি #neighbor কমান্ড দেওয়া হয়েছে এবং তার নিজের উচিত সেই Neighbor এর সাথে যোগাযোগ শুরু করা।

আমরা নিচের কমান্ডের মাধ্যমে R1 রাউটারের Neighbor Status দেখতে পারি।

R1#show ip bgp summaryBGP router identifier 10.0.0.1, local AS number 100BGP table version is 1, main routing table version 1Neighbor  V  AS   MsgRcvd MsgSent TblVer InQ OutQ Up/Down  State/PfxRcd10.0.0.2  4  200        0       0      0   0    0 never    active

কোন রিমোট হোষ্ট এর সাথে যোগাযোগের জন্য প্রথমেই যা জরুরী তা হলো, ঐ হোষ্ট এর কাছে পৌছানোর জন্য রাউটারের রাউটিং টেবিলে উপযুক্ত রাউট থাকা। যেহেতু 10.0.0.2 আই.পি টি রাউটার R1 এর নিজের ডিরেক্টলী কানেক্টেড নেটওয়ার্ক তাই R1 এর রাউটিং টেবিলে রাউট অব্শ্যই আছে। এসময় রাউটার R1 Active State এ থাকে। Active State এর অর্থ হলো রাউটার R1 জানে কিভাবে 10.0.0.2 এর কাছে যেতে হবে।

যদি রাউটার R2 তেও একইভাবে Neighbor কনফিগার করা থাকে তাহলে, রাউটার R1 R2 এর সাথে একটি TCP কানেকশন তৈরী করে, যা TCP 179 নম্বর পোর্ট ব্যবহার করে। TCP শব্দটি থেকেই বুঝা যাচ্ছে যে, এটি একটি Connection Oriented এবং Reliable কমিউনিকেশন।

TCP কানেকশন তৈরী হওয়ার পর R1 তার Fa0/0 ইন্টারফেস দিয়ে 10.0.0.2 (অর্থাৎ R2) এর সাথে Neighbor রিলেশনশীপ তৈরীর জন্য একটি Open ম্যাসেজ পাঠায়। (ইহা অন্যান্য রাউটিং প্রটোকলের মতো Hello ম্যাসেজ পাঠায় না)। এসময় R1 রাউটার Open Sent State এ থাকে। Open ম্যাসেজের মধ্যে রাউটার R1 এর কিছু প্রয়োজনীয় তথ্য যেমনঃ BGP Version, AS নম্বর ও Holdtime ভ্যালু থাকে। (IPv4 এর ক্ষেত্রে BGP Version হয় 4, আর ডিফল্ট Holdtime ভ্যালু হলো 180, এই দুইটি ভ্যালু উভয় রাউটারে অবশ্যই এক হতে হবে)।

পক্ষান্তরে, R2 রাউটারও R1 এর কাছে Open ম্যাসেজের মাধ্যমে নিজের প্রয়োজনীয় ভ্যালুসমূহ পাঠায়। এসময় R1 রাউটার Open Confirm State এ থাকে। Open Confirm State এ আসার পর রাউটারদ্বয় নিজেদের মধ্যে বিনিময়কৃত ভ্যালুসমূহ মিলিয়ে দেখে এবং ভ্যালুসমূহ ঠিক থাকা সাপেক্ষে নিজেদের মধ্যে Neighbor রিলেশনশীপ তৈরী করে। এসময় রাউটারদ্বয় উভয়ই Established State এ গমন করে। এই Established State এর অর্থই হলো রাউটারদ্বয়ের মধ্যে Neighbor রিলেশনশীপ তৈরী হয়েছে।

আমরা নিচের কমান্ডের মাধ্যমে R1 রাউটারের Neighbor Status দেখতে পারি।

R1#show ip bgp summaryBGP router identifier 10.0.0.1, local AS number 100BGP table version is 1, main routing table version 1Neighbor  V  AS   MsgRcvd MsgSent TblVer InQ OutQ Up/Down  State/PfxRcd10.0.0.2  4  200        3       3      1   0    0 00:00:56        0

Neighbor Status এ 0 এর অর্থ হলো, Neighbor এর সাথে রিলেশনশীপ তৈরী হয়েছে, কিন্তু Neighbor এর কাছ থেকে কোন রাউট/প্রিফিক্স পাওয়া যায় নি। Neighbor এর কাছ থেকে কোন রাউট/প্রিফিক্স তখনই পাওয়া যাবে, যখন Neighbor তার BGP রাউটিং প্রসেসে #network কমান্ডের মাধ্যমে কোন প্রিফিক্স অ্যানাউন্স করবে।

BGP Prefix Announcement

দুইটি রাউটারের মধ্যে BGP Peering করলেই কিন্তু একটি রাউটার আরেকটি রাউটারের সাথে নিজের রাউটিং ইনফরমেশন শেয়ার করে না। কোন রাউটার BGP রাউটিং প্রটোকলের মাধ্যমে তার Neighbor রাউটারের কাছে কি কি রাউট বা নেটওয়ার্ক ইনফরমেশন পাঠাবে তা ঐ রাউটারে ‪#‎network কমান্ডের মাধ্যমে বলে দিতে হয়। এই প্রক্রিয়াকে Prefix Announcement বলে।

BGP রাউটিং প্রটোকলে Prefix Announce এর ক্ষেত্রে একটি বিষয় মাথায় রাখতে হবে যে, আমরা কোন রাউটারে #network কমান্ডের মাধ্যমে যেই নেটওয়ার্ক বা প্রিফিক্সসমূহ এ্যানাউন্স করবো, সেই নেটওয়ার্কসমূহের রাউট ইনফরমেশন ঐ রাউটারের রাউটিং টেবিলে অবশ্যই থাকতে হবে, সেটা হোক ডিরেক্টলী কানেক্টেড নেটওয়ার্ক অথবা কোন স্ট্যাটিক বা ডাউনামিক রাউট।

একটি প্র্যাকটিক্যাল উদাহরণ দেখা যাক,

এখানে, রাউটার R1 ও R2 এর মধ্যে ইতিমধ্যে BGP Peering কনফিগার করা আছে। ধরি, এখন Prefix Announcement এর সময় R1 রাউটার R2 এর কাছে 192.168.0.0/24 এই নেটওয়ার্কটি পাঠাবে। এজন্য রাউটার R1 এর নিচের কমান্ড দিতে হবে।

R1#conf tR1(config)‪#‎router bgp 100R1(config-router)#network 192.168.0.0 mask 255.255.255.0

এখানে, আমরা #network 192.168.0.0 mask 255.255.255.0 কমান্ডের মাধ্যমে R1 এর BGP রাউটিং প্রসেসে 192.168.0.0/24 নেটওয়ার্ক বা প্রিফিক্সটিকে এ্যানাউন্স করলাম। কিন্তু এই নেটওয়ার্ক বা প্রিফিক্সটিকে R1 রাউটার R2 এর কাছে পাঠাবে না। কারণ, 192.168.0.0/24 নেটওয়ার্কটি R1 এর নিজের রাউটিং টেবিলেই নেই।

R1#show ip routeGateway of last resort is not set10.0.0.0/24 is subnetted, 1 subnetsC 10.0.0.0 is directly connected, FastEthernet0/0

অর্থাৎ আমরা বুঝতে পারলাম যে, যে নেটওয়ার্কের রাউটসমূহ R1 এর কাছে থাকবে, R1 শুধুমাত্র সেই নেটওয়ার্কগুলোকেই R2 এর কাছে এ্যানাউন্স করতে পারবে। এখন, 192.168.0.0/24 নেটওয়ার্কটিকে আমরা R1 এর রাউটিং টেবিলে দুইভাবে আনতে পারি।

পদ্ধতি- ১. আমরা যদি 192.168.0.0/24 নেটওয়ার্কের কোন আই.পি R1 এর যেকোন ইন্টারফেসে বসাই তাহলে R1 এই 192.168.0.0/24 নেটওয়ার্কটিকে নিজের ডিরেক্টলী কানেক্টেড নেটওয়ার্ক হিসেবে চিনবে।

R1#conf tR1(config)‪#‎interface loopback 1R1(config-if)‪#‎ip address 192.168.0.1 255.255.255.0R1#show ip route10.0.0.0/24 is subnetted, 1 subnetsC 10.0.0.0 is directly connected, FastEthernet0/0C 192.168.0.0/24 is directly connected, Loopback1

পদ্ধতি- ২. আমরা R1 এ একটি স্ট্যাটিক রাউট দিয়ে 192.168.0.0/24 নেটওয়ার্কটিকে চিনিয়ে দিতে পারি।

R1#conf tR1(config)#ip route 192.168.0.0 255.255.255.0 null 0

উপরিউক্ত যেকোন একটি পদ্ধতিতে আমরা R1 এ 192.168.0.0/24 নেটওয়ার্কটিকে রাউটিং টেবিলে এনে অতঃপর BGP রাউটিং প্রসেসে Neighbor রাউটারের কাছে এ্যানাউন্স করতে পারি। আমাদের কনফিগারেশন যদি ঠিক থাকে তাহলে রাউটার R2 BGP এর মাধ্যমে R1 এর কাছ থেকে রাউটটি পাবে।

R2#show ip route bgpB 192.168.0.0/24 [20/0] via 10.0.0.1, 00:05:25

অপরদিকে, রাউটার R2 তেও যদি আমরা 172.16.0.0/24 নেটওয়ার্কটিকে এ্যানাউন্স করতে চাই তাহলে নিচের কমান্ড দিতে হবে।

R2#conf tR2(config)#interface loopback 1R2(config-if)#ip address 172.16.0.1 255.255.255.0R2(config-if)‪#‎exitR2(config)#router bgp 200R2(config-router)#network 172.16.0.0 mask 255.255.255.0

উপরিউক্ত কমান্ডের মাধ্যমে আমরা যদি 172.16.0.0/24 নেটওয়ার্কটিকে R2 তে এ্যানাউন্স করি তাহলে তা BGP রাউটিং প্রসেসে R1 এর কাছে আসবে।

R1#show ip route bgp172.16.0.0/24 is subnetted, 1 subnetsB 172.16.0.0 [20/0] via 10.0.0.2, 00:02:39

তবে প্রফেশনাল লেভেলে BGP Prefix Announcement এর ক্ষেত্রে আরো কিছু এ্যাডভান্স টেকনিক ব্যবহৃত হয়।

BGP Peering using Loopback IP and eBGP-Multihop and Update-Source

আমরা ইতিমধ্যে দেখেছি, দুইটি পয়েন্ট-টু-পয়েন্ট রাউটারের মধ্যে কিভাবে BGP Peering করতে হয়। পয়েন্ট-টু-পয়েন্ট বলতে এখানে বুঝানো হয়েছে, R1 ও R2 রাউটার দুইটি নিজেদের মধ্যে ডিরেক্টলী কানেক্টেড এবং R1 এর আই.পি 10.0.0.1 এবং R2 এর আই.পি 10.0.0.2 একই নেটওয়ার্কের অন্তর্ভূক্ত। এখন আমরা দেখবো দুইটি রাউটারের মধ্যে কিভাবে Loopback আই.পি ব্যবহার করে BGP Peering করতে হয়।

এখানে আমরা R1 এর Fa0/0 এর আই.পি 10.0.0.1 এর সাথে R2 এর Fa0/0 এর আই.পি 10.0.0.2 এর BGP Peering করবো না। আমরা R2 এর Loopback0 ইন্টারফেসে 10.10.0.1 আই.পি বসাবো। অতঃপর R1 এর Fa0/0 এর আই.পি 10.0.0.1 এর সাথে R2 এর Loopback0 ইন্টারফেসের 10.10.0.1 আই.পি এর সাথে BGP Peering করবো। এথানে উল্লেখ্য যে, R1 এর Fa0/0 এর আই.পি 10.0.0.1 এবং R2 এর Loopback0 এর আই.পি 10.10.0.1 কিন্তু পয়েন্ট-টু-পয়েন্ট নয়, অর্থাৎ এরা ডিরেক্টলী কানেক্টেড নয়, এমনকি আই.পি দুইটি একই নেটওয়ার্কের অন্তর্ভূক্তও নয়।

কনফিগারেশন:

R1#conf tR1(config)‪#‎interface fastEthernet 0/0R1(config-if)‪#‎ip address 10.0.0.1 255.255.255.252R1(config-if)‪#‎no shutdown

আমরা প্রথমে R1 এর Fa0/0 ইন্টারফেসে 10.0.0.1 আই.পি এ্যাসাইন করলাম।

R1#conf tR1(config)#ip route 10.10.0.0 255.255.255.0 10.0.0.2

R1 রাউটার R2 এর যে আই.পি এর সাথে BGP Peering করবে সেই আই.পি টিতে R1 কিভাবে পৌছাবে তা বলে দেওয়ার জন্য একটি স্ট্যাটিক রাউট দেওয়া হলো। এই রাউটটি খুবই জরুরী, কারণ R1 যদি 10.10.0.1 আই.পি টিতে পৌছাতেই না পারে তাহলে এর BGP Neighbor Status সব সময় Idle হয়ে থাকবে।

R1#conf tR1(config)‪#‎router bgp 100R1(config-router)‪#‎neighbor 10.10.0.1 remote-as 200R1(config-router)#neighbor 10.10.0.1 ebgp-multihop

এখানে আমরা #neighbor 10.10.0.1 remote-as 200 কমান্ডের মাধ্যমে R1 এর BGP রাউটিং প্রসেসে neighbor হিসেবে 10.10.0.1 কে ডিক্লেয়ার করলাম। যেহেতু, R2 এর 10.10.0.1 আই.পি টি R1 এর ডিরেক্টলী কানেক্টেড নয় তাই R1 এর BGP রাউটিং প্রসেসে #neighbor 10.10.0.1 ebgp-multihop এই কমান্ডটি দিতে হবে। এর অর্থ হলো, BGP Peering এর জন্য R1 এ যে আই.পি (10.10.0.1) ডিক্লেয়ার করা হয়েছে সেই আই.পি টি R1 থেকে এক বা একাধিক Hop দূরে আছে। ebgp-multihop কমান্ডটি শুধূ eBGP এর ক্ষেত্রেই ব্যবহৃত হয়, iBGP এর ক্ষেত্রে কখনোই নয়।

R2#conf tR2(config)#interface fastEthernet 0/0R2(config-if)#ip address 10.0.0.2 255.255.255.252R2(config-if)#no shutdownR2(config-if)‪#‎exitR2(config)#interface loopback 0R2(config-if)#ip address 10.10.0.1 255.255.255.0

আমরা প্রথমে R2 এর Fa0/0 ইন্টারফেসে 10.0.0.2 এবং Loopback0 ইন্টারফেসে 10.10.0.1 আই.পি এ্যাসাইন করলাম।

R2#conf tR2(config)#router bgp 200R2(config-router)#neighbor 10.0.0.1 remote-as 100R2(config-router)#neighbor 10.0.0.1 update-source loopback0

এখানে আমরা #neighbor 10.0.0.1 remote-as 100 কমান্ডের মাধ্যমে R2 এর BGP রাউটিং প্রসেসে neighbor হিসেবে 10.0.0.1 কে ডিক্লেয়ার করলাম। যেহেতু, R1 এর 10.0.0.1 আই.পি টি R2 এর ডিরেক্টলী কানেক্টেড তাই R2 এর BGP রাউটিং প্রসেসে আলাদা করে ebgp-multihop কমান্ডটি দিতে হবে না। কিন্তু যেহেতু আমরা R2 এর Fa0/0 ইন্টারফেসের আই.পি 10.0.0.2 ব্যবহার না করে Loopback0 ইন্টারফেসের আই.পি 10.10.0.1 ব্যবহার করে BGP Peering করতে চাচ্ছি তাই R2 তে #neighbor 10.0.0.1 update-source loopback0 কমান্ডটি দিতে হবে। এর অর্থ হলো, Neighbor রিলেশনশীপ তৈরীর জন্য যে TCP কানেকশন হবে সেই TCP কানেকশনের জন্য R2 যাতে তার Loopback0 ইন্টারফেসের আই.পি টি কেই Source হিসেবে ব্যবহার করে। এই কমান্ডটি না দিলে R2 তার Fa0/0 ইন্টারফেসের আই.পি কে Source হিসেবে ব্যবহার করে TCP কানেকশন তৈরীর চেষ্টা করবে এবং কখনোই Neighbor রিলেশনশীপ তৈরী হবে না।

আমাদের কনফিগারেশন যদি ঠিক থাকে তাহলে নিচের কমান্ডের মাধ্যমে আমরা দেখতে পাবো যে, রাউটারদ্বয়ের মধ্যে Neighbor রিলেশনশীপ তৈরী হয়েছে।

R2#show ip bgp summary

এখানে আমরা BGP Peering এর জন্য দুইটি গুরুত্বপূর্ণ কমান্ড ebgp-multihop এবং update-source সম্পর্কে জানলাম। এখানে একটি প্রশ্ন থাকতে পারে যে, আমরা যদি পয়েন্ট-টু-পয়েন্ট আই.পি দিয়ে খুব সহজেই BGP Peering করতে পারি তাহলে এত ঝামেলার কি দরকার আছে? এর উত্তরটি পরবর্তীতে পাওয়া যাবে, যেখানে আমরা দেখবো Loopback IP, ebgp-multihop এবং update-source ব্যবহার করে কিভাবে BGP Peering এর জন্য Fail-over কনফিগার করা যায়।

BGP Peer Redundancy

আমরা ইতিমধ্যে জেনেছি যে, কিভাবে দুইটি রাউটারের মধ্যে BGP Peering করতে হয় এবং Prefix Announcement এর মাধ্যমে কিভাবে একটি রাউটারের রাউটিং ইনফরমেশন আরেকটি রাউটারের সাথে শেয়ার করতে হয়। এজন্য আমরা রাউটার দুইটির মধ্যে একটিমাত্র ফিজিক্যাল লিঙ্ক ব্যবহার করেছি। যদি কোন কারণে এই লিঙ্কটি ডাউন হয় তাহলে রাউটারদ্বয়ের মধ্যে BGP Peering ও ডাউন হয়ে যাবে। এতে রাউটারদ্বয় একে অন্যের সাথে রাউটিং শেয়ার করবে না, ফলে ট্রাফিক চলাচলও বন্ধ হয়ে যাবে। তাই রাউটার দুইটির মধ্যে Redundant ফিজিক্যাল কানেকশন থাকাটা জরুরী, যাতে করে কোন কারণে Primary লিঙ্ক ডাউন হয়ে গেলে Secondary লিঙ্ক দিয়ে BGP Peering আপ থাকে।

চিত্রে, R1 ও R2 এর মধ্যে দুইটি ফিজিক্যাল লিঙ্ক বিদ্যমান। R1 এর Fa0/0 (10.0.0.1) ও Fa0/1 (20.0.0.1) ইন্টারফেসের সাথে যথাক্রমে R2 এর Fa0/0 (10.0.0.2) ও Fa0/1 (20.0.0.2) ইন্টারফেস সংযুক্ত আছে। আমরা নিচের কমান্ডের মাধ্যমে R1 ও R2 এর মধ্যে Duel BGP Peering করতে পারি, এবং Prefix এ্যানাউন্স করতে পারি।

R1#conf tR1(config)‪#‎router bgp 100R1(config-router)‪#‎neighbor 10.0.0.2 remote-as 200R1(config-router)#neighbor 20.0.0.2 remote-as 200R1(config-router)‪#‎network 192.168.0.0 mask 255.255.255.0R2#conf tR2(config)#router bgp 200R2(config-router)#neighbor 10.0.0.1 remote-as 100R2(config-router)#neighbor 20.0.0.1 remote-as 100R2(config-router)#network 172.16.0.0 mask 255.255.255.0

এখানে আমরা R1 ও R2 এর মধ্যে Duel BGP Peering করলাম। আমরা নিচের কমান্ডের মাধ্যমে R1 এর BGP Peering স্ট্যাটাস দেখতে পারি।

R1#show ip bgp summaryNeighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd10.0.0.2        4   200     114     115        9    0    0 00:04:05        120.0.0.2        4   200     103     104        9    0    0 00:04:04        1

এখানে, R1 এর সাথে R2 এর দুইটি লিঙ্ক দিয়ে দুইটি BGP Peering আছে। যদি কোন কারণে একটি লিংক ডাউন হয় তাহলে অপর লিঙ্ক দিয়ে BGP Peering আপ থাকবে। একে Fail-over বলে।

এখানে একটি বিষয় লক্ষণীয় যে, R1 R2 এর কাছ থেকে দুইটি Peering দিয়েই 172.16.0.0/24 Prefix টি রিসিভ করেছে।

R1#show ip bgp   Network          Next Hop            Metric LocPrf Weight Path*  172.16.0.0/24    20.0.0.2                 0             0 200 i*>                  10.0.0.2                 0             0 200 i*> 192.168.0.0      0.0.0.0                  0         32768 i

কিন্তু R1 এর রাউটিং টেবিলে Best Route একটি।

R1#show ip route bgp172.16.0.0/24 is subnetted, 1 subnetsB 172.16.0.0 [20/0] via 10.0.0.2, 00:04:52

কারণ, কোন BGP রাউটার তার দুইটি Neighbor এর কাছ থেকে যদি একই রাউট পায় তাহলে ইহা যেকোন একটি Neighbor এর রাউটকে Best Route হিসেবে সিলেক্ট করে। এখানে দুইটি ফিজিক্যাল লিঙ্ক থাকার পরও শুধুমাত্র একটি লিঙ্ক দিয়ে ডাটা ট্রান্সমিট হবে, এবং অন্যটি ব্যাকআপ হিসেবে থাকবে। অর্থাৎ Fail-over ঠিকই হবে কিন্তু Load Balance হবে না। পরবর্তীতে আমরা দেখবো কিভাবে এই দুইটি রাউটারের মধ্যে Load Balance করা যায়।

eBGP Load Balancing

এখন আমরা দেখবো কিভাবে দুইটি BGP রাউটারের মধ্যে Load Balance করা যায়। চিত্রে R1 ও R2 রাউটার দুইটি নিজেদের মধ্যে দুইটি ফিজিক্যাল লিঙ্ক দিয়ে সংযুক্ত। BGP Load Balancing এর জন্য আমরা রাউটার দুইটির মধ্যে Duel BGP Peering করবো না। এখানে আমরা R1 এ একটি Loopback IP বসাবো এবং R2 তেও একটি Loopback IP বসাবো। অতঃপর এই Loopback IP ব্যবহার করে রাউটার দুইটির মধ্যে Single BGP Peering করবো। একটি রাউটার যাতে অপর রাউটারের Loopback IP তে পৌছাতে পারে সেজন্য প্রথম ফিজিক্যাল লিঙ্ক দিয়ে একটি স্ট্যাটিক রাউট এবং দ্বিতীয় ফিজিক্যাল লিঙ্ক দিয়ে আরেকটি স্ট্যাটিক রাউট দিব। এখানে রাউটার দুইটির মধ্যে Single BGP Peering আপ রাখার জন্য ব্যাকগ্রাউন্ডে দুইটি ফিজিক্যাল লিঙ্ক কাজ করবে। যদি কোন কারণে একটি লিঙ্ক ডাউন হয় তাহলে অপর লিঙ্ক দিয়ে BGP Peering আপ থাকবে। এখানে আমরা রাউটার দুইটির Loopback IP দ্বয়ের মধ্যে রাউটিং এর জন্য সমান Administrative Distance (AD) ভ্যালু ব্যবহার করবো যাতে লিঙ্ক দুইটির Cost সমান থাকে। আর লিঙ্ক দুইটির Cost সমান থাকলে BGP Peering আপ রাখা ও ডাটা ট্রান্সমিটের জন্য রাউটারদ্বয় দুইটি লিঙ্কই সমানভাবে ব্যবহার করবে। একে Equal Cost Load Balancing বলে।

পুরো ব্যাপারটি একটি প্র্যাকটিক্যাল উদাহরণের মাধ্যমে দেখা যাকঃ

R1#conf tR1(config)‪#‎interface fa0/0R1(config-router)‪#‎ip address 10.0.0.1 255.255.255.252R1(config-router)‪#‎no shutdownR1(config-router)‪#‎exitR1(config)#interface fa0/1R1(config-router)#ip address 20.0.0.1 255.255.255.252R1(config-router)#no shutdownR1(config-router)#exitR1(config)#interface loopback 0R1(config-router)#ip address 30.0.0.1 255.255.255.255R1(config-router)#exitR1(config)#interface loopback 1R1(config-router)#ip address 192.168.0.1 255.255.255.0R2#conf tR2(config)#interface fa0/0R2(config-router)#ip address 10.0.0.2 255.255.255.252R2(config-router)#no shutdownR2(config-router)#exitR2(config)#interface fa0/1R2(config-router)#ip address 20.0.0.2 255.255.255.252R2(config-router)#no shutdownR2(config-router)#exitR2(config)#interface loopback 0R2(config-router)#ip address 40.0.0.1 255.255.255.255R2(config)#interface loopback 1R2(config-router)#ip address 172.16.0.1 255.255.255.0R2(config-router)#exit

প্রথমে আমরা R1 ও R2 তে উপরিউক্তভাবে আই.পি কনফিগার করে নিব।

যেহেতু R1 রাউটার R2 এর 40.0.0.0/32 আই.পি টি কে চেনে না, তাই আমরা R1 এ নিচের কমান্ডের মাধ্যমে স্ট্যাটিক রাউট যোগ করবো।

R1#conf tR1(config)#ip route 40.0.0.1 255.255.255.255 10.0.0.2R1(config)#ip route 40.0.0.1 255.255.255.255 20.0.0.2

এই স্ট্যাটিক রাউট দুইটির Cost একই এবং এই রাউট দুইটিই হলো BGP Load Balancing এর প্রান। এখানে একই Cost এর দুইটি স্ট্যাটিক রাউটের মাধ্যমে R1 কে বলে দেওয়া হলো যে, তুমি তোমার BGP Neighbor আই.পি 40.0.0.1 এর কাছে পৌছাতে চাইলে একবার 10.0.0.2 এর কাছে যাবে এবং আরেকবার 20.0.0.2 এর কাছে যাবে।

(বিঃদ্রঃ এখানে ল্যাবটি GNS3 এর মাধ্যমে করা হয়েছে তাই এভাবে সহজ স্ট্যাটিক রাউটিং এর মাধ্যমেই Load Balancing এর কাজ হবে। কিন্তু প্রফেশনাল লেভেলে রাউট দুইটিকে ভালভাবে কাজ করানোর জন্য IPSLA কনফিগার করার প্রয়োজন হতে পারে। অথবা একটি অতিরিক্ত IGP যেমন: OSPF এর মাধ্যমে এটা করা যেতে পারে। IPSLA বা OSPF কি এবং কিভাবে কনফিগার করতে হয় তা এই আলোচনার বিষয়বস্তু নয়।)

অপরদিকে R2 ও যেন তার BGP Neighbor আই.পি 30.0.0.1 এর কাছে পৌছাতে পারে সেজন্য আমরা R2 তেও একইভাবে স্ট্যাটিক রাউট দিব।

R2#conf tR2(config)#ip route 30.0.0.1 255.255.255.255 10.0.0.1R2(config)#ip route 30.0.0.1 255.255.255.255 20.0.0.1

এখন BGP Peering ও Prefix Announcement এর পালা।

R1#conf tR1(config)#router bgp 100R1(config-router)#neighbor 40.0.0.1 remote-as 200R1(config-router)#neighbor 40.0.0.1 update-source loopback 0R1(config-router)#neighbor 40.0.0.1 ebgp-multihopR1(config-router)#network 192.168.0.0 mask 255.255.255.0

এখানে eBGP Peering এর জন্য দুইটি বিশেষ কমান্ড #update-source ও #ebgp-multihop কমান্ড ব্যবহৃত হয়েছে, যা নিয়ে আমরা ইতিমধ্যে আলোচনা করেছি।

R2(config)#router bgp 200R2(config-router)#neighbor 30.0.0.1 remote-as 100R2(config-router)#neighbor 30.0.0.1 update-source loopback 0R2(config-router)#neighbor 30.0.0.1 ebgp-multihopR2(config-router)#network 172.16.0.0 mask 255.255.255.0

আমাদের কনফিগারেশন যদি ঠিক থাকে তাহলে নিচের কমান্ডের মাধ্যমে BGP Peering স্ট্যাটাস দেখতে পাবো।

R1#show ip bgp summaryNeighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd40.0.0.1        4   200      47      47        3    0    0 00:00:19        1

Some Other Techniques of Prefix / Route Announcement

আমরা ইতিমধ্যে দুইটি রাউটারের মধ্যে কিভাবে BGP Peering করতে হয় এবং Prefix এ্যানাউন্স করতে হয় তা দেখেছি। Prefix এ্যানাউন্সের জন্য আমরা ‪#‎network কমান্ড ব্যবহার করেছি। এবং আমরা এও জেনেছি যে, শুধুমাত্র #network কমান্ডের মাধ্যমে Prefix এ্যানাউন্স করলেই কোন রাউটার সেই Prefix টি তার Neighbor রাউটারের নিকট Advertise না। এজন্য ঐ Prefix/Route টি সংশ্লিষ্ট রাউটারের রাউটিং টেবিলে থাকতে হয়। এই পোষ্টে আমরা দেখবো #network কমান্ড ছাড়াও আর কিভাবে Prefix এ্যানাউন্স করা যায়। তবে যেভাবেই Prefix এ্যানাউন্স করা হোক না কেন, ঐ Prefix/Route টিকে অবশ্যই রাউটারের রাউটিং টেবিলে থাকতে হবে।

বিষয়টি একটি প্র্যাকটিক্যাল কনফিগারেশনের মাধ্যমে দেখা যাকঃ

R1#conf tR1(config)‪#‎interface fastEthernet 0/0R1(config-if)‪#‎ip address 10.0.0.1 255.255.255.252R1(config-if)‪#‎no shutdownR1(config)#interface loopback 1R1(config-if)#ip address 192.168.0.1 255.255.255.0R1(config)#interface loopback 2R1(config-if)#ip address 192.168.1.1 255.255.255.0R1(config-if)#interface loopback 3R1(config-if)#ip address 192.168.2.1 255.255.255.0R1(config-if)#interface loopback 4R1(config-if)#ip address 192.168.3.1 255.255.255.0R2#conf tR2(config)#interface fastEthernet 0/0R2(config-if)#ip address 10.0.0.2 255.255.255.252R2(config-if)#no shutdownR2(config)#interface loopback 1R2(config-if)#ip address 172.16.0.1 255.255.255.0R2(config)‪#‎int loopback 2R2(config-if)#ip address 172.16.1.1 255.255.255.0R2(config-if)#int loopback 3R2(config-if)#ip address 172.16.2.1 255.255.255.0R2(config-if)#int loopback 4R2(config-if)#ip address 172.16.3.1 255.255.255.0

চিত্রে প্রদত্ত IP Plan অনুযায়ী আমরা প্রথমে R1 ও R2 রাউটারের আই.পি সমূহ কনফিগার করলাম।

R1#conf tR1(config)‪#‎router bgp 100R1(config-router)‪#‎neighbor 10.0.0.2 remote-as 200R2#conf tR2(config)#router bgp 200R2(config-router)#neighbor 10.0.0.1 remote-as 100

অতঃপর আমরা R1 ও R2 এর মধ্যে BGP Peering কনফিগার করলাম।

R1#conf tR1(config)#router bgp 100R1(config-router)#network 192.168.0.0 mask 255.255.255.0R1(config-router)#network 192.168.1.0 mask 255.255.255.0R1(config-router)#network 192.168.2.0 mask 255.255.255.0R1(config-router)#network 192.168.3.0 mask 255.255.255.0

BGP Peering কনফিগার করার পর আমরা R1 এর BGP রাউটিং প্রসেসে #network কমান্ডের মাধ্যমে সংশ্লিষ্ট নেটওয়ার্কগুলো এ্যানাউন্স করলাম।

যেহেতু নেটওয়ার্কগুলো R1 এর ডিরেক্টলী কানেক্টেড নেটওয়ার্ক তাই R1 এগুলোকে BGP এর মাধ্যমে R2 এর নিকট Advertise করবে। এবং আমরা R2 এর রাউটিং টেবিলে রাউটসমূহ দেখতে পাবো।

R2#show ip route bgpB 192.168.0.0/24 [20/0] via 10.0.0.1, 00:00:02B 192.168.1.0/24 [20/0] via 10.0.0.1, 00:00:02B 192.168.2.0/24 [20/0] via 10.0.0.1, 00:00:02B 192.168.3.0/24 [20/0] via 10.0.0.1, 00:00:02

এখন আমরা R2 রাউটারে এর Prefix সমূহ এ্যানাউন্স করবো। তবে এজন্য আমরা #network কমান্ড ব্যবহার না করে #redistribute কমান্ড ব্যবহার করবো।

#redistribute হলো এমন এক ধরণের কমান্ড যার মাধ্যমে কোন একটি রাউটিং প্রটোকল থেকে প্রাপ্ত রাউট বা রাউটসমূহকে অন্য আরেকটি রাউটিং প্রটোকলের মাধ্যমে শেয়ার করা যায়। এজন্য আমরা নিচের কমান্ড দিবো।

R2#conf tR2(config)#router bgp 200R2(config-router)#redistribute connected

এখানে 172.16.0.0/24, 172.16.1.0/24, 172.16.2.0/24, 172.16.3.0/24 নেটওয়ার্কসমূহ R2 এর ডিরেক্টলী কানেক্টেড নেটওয়ার্ক। আর #redistribute connected কমান্ডের মাধ্যমে এই কানেক্টড নেটওয়ার্কসমূহকে R2 এর BGP রাউটিং প্রসেসে এ্যানাউন্স করা হলো। আমরা যদি R1 এর রাউটিং টেবিল দেখি তাহলে দেখতে পাবো যে, উল্লেখিত নেটওয়ার্ক/প্রিফিক্সসমূহ BGP রাউটিং প্রটোকলের মাধ্যমে R2 থেকে R1 এ চলে এসেছে।

R1#show ip route bgp172.16.0.0/24 is subnetted, 4 subnetsB 172.16.0.0 [20/0] via 10.0.0.2, 00:01:33B 172.16.1.0 [20/0] via 10.0.0.2, 00:01:33B 172.16.2.0 [20/0] via 10.0.0.2, 00:01:33B 172.16.3.0 [20/0] via 10.0.0.2, 00:01:33

কোন একটি রাউটার তার BGP Neighbor এর কাছ থেকে কি কি Prefix রিসিভ করেছে তা দেখতে চাইলেঃ

R1#show ip bgp neighbors 10.0.0.2 routes   Network          Next Hop            Metric LocPrf Weight Pathr> 10.0.0.0/30      10.0.0.2                 0             0 200 ?*> 172.16.0.0/24    10.0.0.2                 0             0 200 ?*> 172.16.1.0/24    10.0.0.2                 0             0 200 ?*> 172.16.2.0/24    10.0.0.2                 0             0 200 ?*> 172.16.3.0/24    10.0.0.2                 0             0 200 ? Total number of prefixes 5

একটু লক্ষ্য করলে দেখতে পাবো যে, R1 রাউটার R2 এর কাছ থেকে 10.0.0.0/30 প্রিফিক্সটি রিসিভ করেছে যা R1 এর নিজের ডিরেক্টলী কানেক্টেড নেটওয়ার্ক। এজন্য 10.0.0.0/30 প্রিফিক্সটি R1 নিজের রাউটিং টেবিলে নিবে না।

R1 রাউটার R2 এর কাছ থেকে 10.0.0.0/30 প্রিফিক্সটি এজন্যই পেয়েছে কারণ আমরা R2 এর BGP রাউটিং প্রসেসে #redistribute connected কমান্ডের মাধ্যমে বলে দিয়েছিলাম R2 যাতে তার ডিরেক্টলী কানেক্টেড নেটওয়ার্কগুলোকে Advertise করে। আর 10.0.0.0/30 হলো R2 এরও ডিরেক্টলী কানেক্টেড নেটওয়ার্ক।

কোন রাউটার তার BGP Neighbor এর কাছে কি কি Prefix Advertise করেছে তা দেখতে চাইলেঃ

R2#show ip bgp neighbors 10.0.0.1 advertised-routes   Network          Next Hop            Metric LocPrf Weight Path*> 192.168.0.0      0.0.0.0                  0         32768 i*> 192.168.1.0      0.0.0.0                  0         32768 i*> 192.168.2.0      0.0.0.0                  0         32768 i*> 192.168.3.0      0.0.0.0                  0         32768 i Total number of prefixes 4

BGP রাউটিং প্রসেসে Prefix এ্যানাউন্সের সময় Prefix Filtering এর মাধ্যমে একটি রাউটার কোন কোন Prefix Advertise করবে/করবে না এবং কোন কোন Prefix রিসিভ করবে/করবে না তা নিয়ন্ত্রন করা যায়। Prefix Filtering সম্পর্কে আমরা পরবর্তীতে বিস্তারিত আলোচনা করবো।

আবার #redistribute কমান্ডের মাধ্যমে অন্যান্য রাউটিং প্রটোকলের রাউটসমূহও BGP তে এ্যানাউন্স করা যায়।

যেমনঃ

R2#conf tR2(config)#router bgp 200R2(config-router)#redistribute staticR2#conf tR2(config)#router bgp 200R2(config-router)#redistribute ripR2#conf tR2(config)#router bgp 200R2(config-router)#redistribute eigrp 1R2#conf tR2(config)#router bgp 200R2(config-router)#redistribute ospf 1

Prefix Filtering

উপরিউক্ত আলোচনায় আমরা BGP Peering ও Prefix Announcement এর বিভিন্ন বিষয় নিয়ে জানলাম। কোন একটি রাউটার Prefix Announcement এর মাধ্যমে তার Neighbor রাউটারের কাছে নিজের প্রিফিক্সসমূহ Advertise করে এবং Neighbor রাউটার সেই প্রিফিক্সসমূহ রিসিভ করে নিজের রাউটিং টেবিল আপডেট করে। যখন কোন আই.এস.পি তার ক্লায়েন্টের সাথে BGP কনফিগার করে তখন তাদের একটি বিষয় লক্ষ্য রাখতে হয়, যাতে তার ক্লায়েন্ট কোন অপ্রয়োজনীয় প্রিফিক্স তার কাছে পাঠাতে না পারে। অথবা ক্লায়েন্ট যদি কোন অপ্রয়োজনীয় প্রিফিক্স পাঠিয়েও থাকে আই.এস.পি রাউটার যেন তা রিসিভ না করে। কারণ ক্লায়েন্টের রাউটারের কাছ থেকে অপ্রয়োজনীয় বা ভূল প্রিফিক্স রিসিভ করে আই.এস.পি রাউটার যদি তার রাউটিং টেবিল আপডেট করে নেয় তাহলে তা আই.এস.পি নেটওয়ার্কের জন্য ক্ষতিকর হতে পারে, এমনকি পুরো নেটওয়ার্ক ডাউনও হয়ে যেতে পারে। আবার যখন আই.এস.পি তার আপস্ট্রীম আই.আই.জি এর সাথে BGP কনফিগার করে তখন আই.আই.জি কেও এই ব্যাপারটি লক্ষ্য রাখতে হয়।

কোন একটি রাউটার BGP রাউটিং প্রসেসে তার Neighbor রাউটারের কাছে কি কি প্রিফিক্স পাঠাবে এবং Neighbor রাউটারের কাছ থেকে কি কি প্রিফিক্স রিসিভ করবে তা নিয়ন্ত্রন করাকে Prefix Filtering বলে। একে Route Filtering ও বলা হয়। এখন আমরা দেখবো BGP রাউটিং প্রসেসে কিভাবে Prefix Filtering করতে হয়।

চিত্রে R1 ও R2 রাউটারে আই.পি কনফিগারেশন নিম্নরূপঃ

R1#conf tR1(config)‪#‎interface fastEthernet 0/0R1(config-if)‪#‎ip address 10.0.0.1 255.255.255.252R1(config-if)‪#‎no shutdownR1(config)#interface loopback 1R1(config-if)#ip address 192.168.0.1 255.255.255.0R1(config)#interface loopback 2R1(config-if)#ip address 192.168.1.1 255.255.255.0R1(config-if)#interface loopback 3R1(config-if)#ip address 192.168.2.1 255.255.255.0R1(config-if)#interface loopback 4R1(config-if)#ip address 192.168.3.1 255.255.255.0R2#conf tR2(config)#interface fastEthernet 0/0R2(config-if)#ip address 10.0.0.2 255.255.255.252R2(config-if)#no shutdownR2(config)#interface loopback 1R2(config-if)#ip address 172.16.0.1 255.255.255.0R2(config)‪#‎int loopback 2R2(config-if)#ip address 172.16.1.1 255.255.255.0R2(config-if)#int loopback 3R2(config-if)#ip address 172.16.2.1 255.255.255.0R2(config-if)#int loopback 4R2(config-if)#ip address 172.16.3.1 255.255.255.0

এবং R1 রাউটারের সাথে R2 এর BGP Peering আছে।

R1#conf tR1(config)‪#‎router bgp 100R1(config-router)‪#‎neighbor 10.0.0.2 remote-as 200R2#conf tR2(config)#router bgp 200R2(config-router)#neighbor 10.0.0.1 remote-as 100

BGP Peering এর পর R1 ও R2 রাউটার Prefix Announcement এর মাধ্যমে একে অন্যের সাথে নিজের প্রিফিক্স Advertise করেছে।

R1#conf tR1(config)#router bgp 100R1(config-router)‪#‎network 192.168.0.0 mask 255.255.255.0R1(config-router)#network 192.168.1.0 mask 255.255.255.0R1(config-router)#network 192.168.2.0 mask 255.255.255.0R1(config-router)#network 192.168.3.0 mask 255.255.255.0R2#conf tR2(config)#router bgp 200R2(config-router)#redistribute connected

আমরা যদি R1 ও R2 এর রাউটিং টেবিল চেক করি তাহলে বিনিময়কৃত রাউটগুলো দেখতে পাবো।

R1#show ip route bgp172.16.0.0/24 is subnetted, 4 subnetsB 172.16.0.0 [20/0] via 10.0.0.2, 00:01:33B 172.16.1.0 [20/0] via 10.0.0.2, 00:01:33B 172.16.2.0 [20/0] via 10.0.0.2, 00:01:33B 172.16.3.0 [20/0] via 10.0.0.2, 00:01:33R2#show ip route bgpB 192.168.0.0/24 [20/0] via 10.0.0.1, 00:03:22B 192.168.1.0/24 [20/0] via 10.0.0.1, 00:02:51B 192.168.2.0/24 [20/0] via 10.0.0.1, 00:02:51B 192.168.3.0/24 [20/0] via 10.0.0.1, 00:02:51

এখন Prefix Filtering এর পালা। ধরি, R2 রাউটার R1 এর সবগুলো প্রিফিক্স নিতে চাচ্ছে না। R2 চাচ্ছে R1 তার কাছে যতগুলো প্রিফিক্সই Advertise করুক না কেন, ইহা শুধুমাত্র 192.168.1.0/24 ও 192.168.3.0 প্রিফিক্স দুইটি রিসিভ করে নিজের রাউটিং টেবিলে নিবে। এজন্য আমরা অতি সাধারণ ACL ব্যবহার করে R2 এ Prefix Filtering করতে পারি।

R2#conf tR2(config)#access-list 1 permit 192.168.1.0 0.0.0.255R2(config)#access-list 1 permit 192.168.3.0 0.0.0.255

এখানে R2 তে 192.168.1.0/24 ও 192.168.3.0/24 প্রিফিক্স দুইটিকে Permit করে Standard ACL Statement লিখলাম। কোন Deny Statement না থাকলে Cisco তে বাকী সবাইকে Deny ধরা হয় (Implicit Deny)।

R2#conf tR2(config)#router bgp 200R2(config-router)#distribute-list 1 in

অতঃপর R2 এর BGP রাউটিং প্রসেসে #distribute-list 1 in কমান্ডের মাধ্যমে Standard ACL Statement টি প্রয়োগ করলাম। এখানে, 1 হলো Standard ACL এর নম্বর এবং in হলো incoming routing updates। যেহেতু আমরা R2 এর দিকে আগত (incoming) প্রিফিক্সসমূহ ফিল্টার করতে চাচ্ছি তাই in কি-ওয়ার্ড ব্যবহার করতে হবে।

এখন যদি আমরা R2 এর রাউটিং টেবিল চেক করি তাহলে কাঙ্খিত রাউটগুলোই দেখতে পাবো।

R2#show ip route bgpB 192.168.1.0/24 [20/0] via 10.0.0.1, 00:00:15B 192.168.3.0/24 [20/0] via 10.0.0.1, 00:00:15

যদি কোন কারণে পুরো কনফিগারেশন ঠিক থাকার পরও R2 তে সঠিক আউটপুট না পাওয়া যায় তাহলে #clear ip bgp 10.0.0.1 কমান্ডের মাধ্যমে Neighbor 10.0.0.1 এর সাথে R2 এর BGP কানেকশনটি রিফ্রেশ করে নিতে হবে। এটি একটি অত্যন্ত জরুরী ট্রাবলশুটিং কমান্ড। আর #clear ip bgp * কমান্ড দিলে রাউটারের সাথে যতগুলো BGP Neighbor থাকবে সবগুলোর সাথেই BGP কানেকশনটি রিফ্রেশ হবে।

এখানে একটি বিষয় লক্ষ্যনীয় যে, R1 কিন্তু #network কমান্ডের মাধ্যমে যোগ করা চারটি প্রিফিক্সই R2 এর কাছে Advertise করছে।

R1#show ip bgp neighbors 10.0.0.2 advertised-routesNetwork Next Hop Metric LocPrf Weight Path*> 192.168.0.0 0.0.0.0 0 32768 i*> 192.168.1.0 0.0.0.0 0 32768 i*> 192.168.2.0 0.0.0.0 0 32768 i*> 192.168.3.0 0.0.0.0 0 32768 iTotal number of prefixes 4

কিন্তু যেহেতু R2 তে ইনকামিং প্রিফিক্স ফিল্টার করা হয়েছে তাই R2 সবগুলো প্রিফিক্স রিসিভ করছে না।

R2#show ip bgp neighbors 10.0.0.1 routesNetwork Next Hop Metric LocPrf Weight Path*> 192.168.1.0 10.0.0.1 0 0 100 i*> 192.168.3.0 10.0.0.1 0 0 100 iTotal number of prefixes 2

R2 শুধুমাত্র দুইটি প্রিফিক্সই রিসিভ করছে।

যে প্রক্রিয়ায় R2 রাউটারে R1 এর প্রিফিক্সসমূহ ফিল্টার করা হলো, ঠিক একই প্রক্রিয়ায় R1 রাউটারেও R2 এর প্রিফিক্সসমূহ ফিল্টার করা যাবে।

কোন রাউটারের Outgoing প্রিফিক্স ফিল্টার করতে চাইলে তা নিম্নোক্তভাবে করা যায়। যেমনঃ R1 রাউটার চাচ্ছে ইহা R2 এর কাছে 192.168.1.0/24 ও 192.168.3.0/24 ছাড়া অন্য কোন প্রিফিক্স Advertise করবে না।

R1#conf tR1(config)#access-list 1 permit 192.168.1.0 0.0.0.255R1(config)#access-list 1 permit 192.168.3.0 0.0.0.255R1#conf tR1(config)#router bgp 100R1(config-router)#distribute-list 1 out

এখন আমরা R1 এর advertised-routes গুলো চেক করলে দেখতে পাবো যে, R1 আর R2 এর কাছে #network কমান্ডের মাধ্যমে যোগ করা সবগুলো প্রিফিক্স Advertise করছে না।

R1#show ip bgp neighbors 10.0.0.2 advertised-routesNetwork Next Hop Metric LocPrf Weight Path*> 192.168.1.0 0.0.0.0 0 32768 i*> 192.168.3.0 0.0.0.0 0 32768 iTotal number of prefixes 2

উপরিউক্ত আলোচনায় আমরা ACL ও #distribute-list কমান্ডের মাধ্যমে Prefix Filtering কিভাবে করতে হয় তা দেখলাম। #distribute-list কমান্ড ছাড়াও #prefix-list ও #route-map এর মাধ্যমেও প্রিফিক্স ফিল্টার করা যায়।

যেমনঃ

#prefix-list

R1#conf tR1(config)#ip prefix-list R2-IN seq 1 permit 172.16.1.0/24R1(config)#ip prefix-list R2-IN seq 2 permit 172.16.3.0/24R1(config)#ip prefix-list R2-IN seq 3 deny 0.0.0.0/0 le 32R1#conf tR1(config)#router bgp 100R1(config-router)#neighbor 10.0.0.2 prefix-list R2-IN inR1#clear ip bgp 10.0.0.2R1#show ip bgp neighbors 10.0.0.2 routesNetwork Next Hop Metric LocPrf Weight Path*> 172.16.1.0/24 10.0.0.2 0 0 200 ?*> 172.16.3.0/24 10.0.0.2 0 0 200 ?Total number of prefixes 2

#route-map

R2#conf tR2(config)#access-list 1 permit 172.16.1.0 0.0.0.255R2(config)#access-list 1 permit 172.16.3.0 0.0.0.255R2(config)#access-list 1 deny 0.0.0.0 255.255.255.255R2#conf tR2(config)#route-map R1-OUT permit 10R2(config-route-map)#match ip address 1R2#conf tR2(config)#router bgp 200R2(config-router)#neighbor 10.0.0.1 route-map R1-OUT outR2#show ip bgp neighbors 10.0.0.1 advertised-routesNetwork Next Hop Metric LocPrf Weight Path*> 172.16.1.0/24 0.0.0.0 0 32768 ?*> 172.16.3.0/24 0.0.0.0 0 32768 ?Total number of prefixes 2

BGP রাউটিং এর ক্ষেত্রে route-map হলো বহুল ব্যবহৃত একটি পদ্ধতি। এর মাধ্যমে Prefix Filtering করা ছাড়াও BGP এর আরো অনেক প্রয়োজনীয় কাজ করা হয়।

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

 

Mikrotik Router

Mikrotik Router graphical mode a configure এর জন্য  software টি ব্যাবহার করা হয়। প্রাথমিক অবস্থায় Mikrotik Router (RouterBOARD) by default ভাবে DHCP Server mode এ Configure করা থাকে। তাই আমরা প্রথমেই Mikrotik Router টিকে Reset করে নিব।

  • ১। Winbox software টি প্রথমে download করে নিন। Install এর প্রয়োজন নাই। সরাসরি winbox এ ক্লিক করুন।
  • ২। এবার Mikrotik Router এর পাওয়ার অন করে যেকোনো একটি ether port এর সাথে Straight cable এর মাধ্যমে আপনার পিসি এর LAN port a connect করুন।
  • ৩। এরপর winbox এর connect to box এর পাশে … icon এ ক্লিক করুন। এখানে একটি IP address এবং একটি MAC Address show করবে। Mac Address টিতে ক্লিক করুন তারপর login এ টাইপ করুন admin এরপর connect a click করুন। Password দেওয়ার প্রয়োজন নাই।

  • ৪।  এখন আমরা Mikrotik router টি Reset করে নিব। এর জন্য New Terminal এ ক্লিক করুন। এখন টাইপ করুন “system reset” তারপর Enter Press করুন। Confirm এর জন্য ‘y’ press করুন। এরপর router reset প্রক্রিয়া শুরু হবে এবং winbox disconncet হয়ে যাবে। আপনার PC’র LAN unplug show করবে। পুনরায় আবার যখন LAN Connect show করবে তখন আবার আগের প্রক্রিয়ায় winbox এর মাধ্যমে Mikrotik এ Login করুন। Login করার পর আপনার সামনে একটি উইন্ডো আসবে। ওইখানে Remove configuration a click করুন। Router টি আবার disconnect হয়ে যাবে। আগের প্রক্রিয়ায় পুনরায় লগইন করুন।
  • ৫। Mikrotik Router টি এখন পুরোপুরি Zero configuration এ আছে। এবার আমরা Router টিকে Basic configure করে ব্যাবহারের উপযোগী করব।
  • ৬। ISP থেকে দেওয়া IP address, Subnet mask, gateway, DNS Server এর IP address সমূহ এন্ট্রি করব এবং নিজেদের ব্যাবহার এর জন্য একটি Private IP address block এন্ট্রি করব।
  • ৭। প্রথমে Menu থেকে IP > Address এ ক্লিক করুন। এরপর উইন্ডোটি ওপেন হলে + (add) icon এ ক্লিক করুন। আমরা এখানে উদাহরণ সরূপ একটি IP address, subnet mask, gateway address and DNS server address এন্ট্রি করব। Address এর ঘরে আপনার IP address subnet mask সহ এন্ট্রি করুন। Interface এর ঘরে ether 1 (অথবা যেকোনো ether) Select করে Apply>Ok করুন।

  • ৮। Gateway Address Add করার জন্য IP>Routes> +(add) এ ক্লিক করুন। এখানে Gateway ঘরে আপনার গেটওয়ে এড্রেস টাইপ করুন। এরপর Apply>OK করুন।

  • ৯। এবার DNS Server এর এড্রেস অ্যাড করার পালা। এর জন্য IP>DNS এ ক্লিক করুন। এখান থেকে Setting-এ ক্লিক করুন। এরপর আপনার এক বা একাধিক DNS Address এন্ট্রি করুন। তারপর Apply>OK ক্লিক করুন।

এরপর New Terminal থেকে আপনার গেটওয়ে এবং ডিএনএস অ্যাড্রেসকে ping করে দেখুন। যদি রিপ্লাই পাওয়া যায় তাহলে আপনার WAN Side এর জন্য করা Configure ঠিক আছে। অন্যথায় আপনার Uplink Provider এর সাথে যোগাযোগ করুন।

এইবার আমরা LAN Side এর Configure শুরু করব। এই জন্য প্রথমে IP>Address>+(add) Button এ ক্লিক করুন। এরপর আপনার নিজস্ব নেটওয়ার্ক এর জন্য একটি IP block (192.168.1.1/24) এন্ট্রি করুন। Interface list থেকে একটি Ether choose করুন। যেমন ether5. এখানে উল্লেখ্য যে প্রথমে যে ether এ আমরা Real IP এন্ট্রি করেছিলাম সেই ether বাদে অন্য যেকোনো ether সিলেক্ট করতে হবে।

তারপর IP>Firewall এ আসুন। Firewall window থেকে NAT Tab এ ক্লিক করুন। প্রথমে +(add) button এ ক্লিক করুন, এখানে Chain: scrnat এবং Scr Address এর ঘরে আপনার Private IP’র পুরো Block টা টাইপ করে দিন (192.168.1.0/24) তারপর Advance Tab এ গিয়ে Action=Masquerade সিলেক্ট করে Apply>OK করুন।

ব্যাস হয়ে গেল আপনার Mikrotik Router এর বেসিক configure. এখন আপনার নেটওয়ার্ক এর বাকি পিসি গুলিতে পর্যায়ক্রমে 192.168.1.2, 192.168.1.3, 192.168.1.4 IP use করুন। এক্ষেত্রে পিসি গুলির gateway IP হবে 192.168.1.1

Unlock Password Protected Zip Files

Have a ZIP file that you can’t get into because it has a password on it? If you forgot the password, the only option you have is to try and recover the password using third-party utilities. Depending on which program created the ZIP file (7-Zip, WinZip, etc.) and what type of encryption was used, your chances of recovering the password will vary.

In this article, I’m going to mention a couple of tools that I’ve used to recover a ZIP password on some test files that I created. Hopefully, you’ll be able to access your ZIP file by cracking the password using one of these tools.

It’s worth noting that if the ZIP file is encrypted using AES 128-bit or 256-bit encryption, your only option will be a brute force attack. If the password is very long, you’ll need a really powerful computer to process as many passwords per second as possible.

Also, be sure to check out my other posts on opening password protected RAR files, cracking XLS passwords, resetting Windows administrator passwords, and resetting BIOS passwords.

Elcomsoft Archive Password Recovery

In my opinion, Elcomsoft Archive Password Recovery is the best choice for recovering a password from an encrypted ZIP, RAR, ACE or ARJ archive. The software comes in two flavors: Standard and Pro. The Standard version is $49.99 and the Pro version is $99.

The main difference between the two versions is that the Pro version supports WinZip archives that use enhanced AES encryption and guarantees WinZip recovery with some limitations (must be WinZip 8.0 or earlier and the archive has to have at least 5 files). In addition, it has an additional method of recovery called Password from keys that can be used in addition to brute-force, dictionary and plain-text attacks.

What I like about this program is the number of different methods you can use to recover the password and the different options you have for each method. The toughest situation is when you have a password and you don’t know the length or what kind of characters are included. In these types of situations, you should start with the faster methods before moving on to attacks that will take much longer.

 

Once you download and install the software, you’ll see the main interface as shown above. To get started, click the Open button and choose your archive file. By default, the Type of Attack is set to Brute-force and the options that are checked include all capital and all lowercase letters.

Before you click Start, you should go ahead and click on the Benchmark button, which will check the type of encryption on the file and give you an estimate of how long it will take using the current options.

 

As you can see, it will take about 11 minutes to recover a password that was encrypted using AES 256-bit and by only looking at lowercase and uppercase letters with a maximum password length of only 4 characters. If you choose All Printable characters, the time went up to 2.5 hours in my case. Again, this is only for a short four-character password. The time goes up exponentially as the password gets longer.

If you’re not sure how long the password is, click on the Length tab and increase the maximum password length to something higher. The trial version only works up to four characters.

 

Obviously, if you have no idea what the password is, checking All Printable and then increasing the length to 10 or higher will guarantee you more success, but it might also take way too long. I suggest starting with only letters up to a higher character count and if that doesn’t work, then add All digits and All special symbols one at a time.

Before you start with a brute-force attack, it might be worth trying a dictionary attack first as that will take less time. Choose Dictionary from the drop-down and then click on the Dictionary tab.

 

The program comes with a small, but decent dictionary already built-in. The nice thing is that you can download bigger dictionaries online and use them in the program if you want. Of course, this won’t work if someone used a complex password, but it’s worth a shot since it’s much faster.

Another thing to note is that the whole archive can be decrypted if you happen to have one of the files that are inside the archive. This probably won’t be the case most of the time, but if you do happen to have at least one file that you know is inside the archive, you can use the Plain Text attack to decrypt the entire archive.

Also, if you happen to know the length of the password and anything else about it, you can use the Mask attack. For example, if you know the password starts with x and is 7 characters long, you would enter x?????? into the Mask box on the Range tab.

Overall, this is an excellent program and definitely worth the cost if you need to get into a ZIP or other archive file. On my test file with a short four-character passcode and 256-bit AES encryption, it worked flawlessly and got me the password in just a few minutes.

 

 

The main thing is to run the program on the fastest computer you have around. The more passwords than can be tried per second, the faster you’ll break into the file.

Passware Zip Key

The other good program that I recommend is Passware Zip Key. The program is only $39, which is a bit cheaper than Elcomsoft. They also have a demo version, but it only runs each attack for one minute, so you really can’t test to see if it works, even on a short password.

However, I purchased it so that I could test it and it worked fine. It’s very similar to Elcomsoft in terms of the attacks, etc. Once you install it, click on Recover File Password and then you’ll see the options below.

 

You can choose Run Wizard, which will let you pick from different options if you happen to know anything about the password. This is good if you know the password only contains letters, etc.

 

If you click on Use Predefined Settings, it will start with some simple attacks and then automatically move on to more complex attacks. If you click on the Attacks tab at the bottom, you will be able to see all the attacks that will be tried.

 

Some attacks will take longer than others, again depending on the password length and encryption type. Brute force is the slowest method, so that’s why the programs tries other methods in-between.

 

Lastly, you can choose Advanced: Customized Settings and basically configure everything manually like how the Elcomsoft program is setup by default.

 

You choose an attack from the list and then click the left arrow button to add it to the queue. You can add several attacks and they will run one after the other. In my case, I choose a brute force attack with a four-character password that contains letters, numbers and symbols. It didn’t take long for Zip Key to crack my test file, which is the same one I used for testing Elcomsoft.

If you plan to purchase Zip Key, please do it using this purchase link. The price is the same, but I get a small cut for recommending the program instead of the company getting all the money. Thanks!

There are a lot of other programs out there for cracking ZIP files, but these are the two that I really liked in terms of ease of use, features and actual ability to recover the password. If you have used something else, feel free to let us know in the comments. Enjoy!