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

iBGP Peering Concept and Basic Configuration

আজকের টিউটোরিয়ালে আমরা দেখবো রাউটারসমূহের মধ্যে কিভাবে iBGP Peering কনফিগার করতে হয়। আমরা ইতিমধ্যে eBGP Peering সম্পর্কে জেনেছি। আমরা এটাও জেনেছি যে, ভিন্ন Autonomous System (AS) এ থাকা রাউটারসমূহের মধ্যে রাউটিং এর জন্য eBGP Peering করতে হয়। যেমনঃ আই.এস.পি ও আই.আই.জি এর মধ্যে eBGP Peering করা হয়। আর iBGP কনফিগার করতে হয় একই Autonomous System (AS) এ থাকা রাউটারসমূহের মধ্যে রাউটিং এর জন্য।

BGP হলো একটি Exterior Gateway Protocol যা দুইটি ভিন্ন AS মধ্যে রাউটিং করার জন্য কাজে লাগে। আর একই AS এর মধ্যে থাকা বিভিন্ন রাউটারের মধ্যে রাউটিং এর জন্য তো Interior Gateway Protocol হিসেবে RIP, EIGRP, OSPF ও IS-IS ইত্যাদি আছেই। তাহলে একই AS এর বিভিন্ন রাউটারের মধ্যে রাউটিং এর জন্য আমরা কেন iBGP কনফিগার করবো?

আসলে, কোন আই.এস.পি তার আই.আই.জি এর সাথে eBGP Peering করে নিজের প্রিফিক্সসমূহ অরিজিনেট করে। কিন্তু তার সব প্রিফিক্সসমূহ ঐ eBGP/Core রাউটারের অধীণে থাকে না। নেটওয়ার্ক ডিজাইন, ক্লায়েন্টদের সংখ্যাসহ আরো অনেক বিষয়ের উপর নির্ভর করে অরিজিনেট করা কোন একটি প্রিফিক্স অন্য যেকোন রাউটারের (POP) অধীনে থাকতে পারে। কারণ আই.এস.পি এর সব ক্লায়েন্টই তার Core রাউটারের সাথে সরাসরি যুক্ত নয়, বরং ক্লায়েন্টসমূহ আই.এস.পি এর POP রাউটারের সাথে যুক্ত থাকে। এখন Core রাউটার ও POP রাউটারের মধ্যে যেকোন IGP যেমনঃ OSPF ব্যবহার করে POP রাউটারের অধীনস্থ প্রিফিক্সসমূহ Core রাউটারে আনা যায়। কিন্তু OSPF এর বড় সমস্যা হলো এটি খুব বড় আকারের নেটওয়ার্কের মধ্যে থাকা অনেক বেশী প্রিফিক্স হ্যান্ডল করতে পারে না। আর একটি বড় আকারের আই.এস.পি তে হাজার হাজার ক্লায়েন্ট প্রিফিক্স থাকতেই পারে। OSPF দিয়ে এই সকল প্রিফিক্স হ্যান্ডল করতে গেলে রাউটারসমূহের CPU ও Memory এর উপর বাড়তি চাপ পড়ে, ফলে নেটওয়ার্কের পারফরম্যান্স কমে যায়। তাই এসমস্যা সমাধানের উপায় হিসেবে, POP রাউটার থেকে ক্লায়েন্টদের প্রিফিক্সসমূহ Core রাউটারে আনার জন্য OSPF এর পরিবর্তে iBGP ব্যবহার করা হয়। কিন্তু একটি মজার ব্যাপার হলো যে, Core রাউটারের সাথে POP রাউটারসমূহের iBGP Peering এর ক্ষেত্রে Router-to-Router Reachable করার জন্য ব্যাকগ্রাউন্ডে OSPF ব্যবহার করা হয়। আমরা একটি প্র্যাকটিক্যাল কনফিগারেশনের মাধ্যমে একই নেটওয়ার্কে কিভাবে eBGP, iBGP ও OSPF কনফিগার করা হয় তার একটি ইন্ডাষ্ট্রি প্র্যাকটিস দেখার চেষ্টা করবো। তার আগে আমরা iBGP Peering একটি ছোট্ট কনফিগারেশন করে কিছু বেসিক জিনিস বুঝে নিই।

Simple iBGP Peering

প্রদত্ত টপোলজি অনুযায়ী, রাউটার তিনটি একই ASN 100 এর অধীনে আছে। প্রথমেই আমরা তিনটি রাউটারে নিম্নোক্তভাবে আই.পি কনফিগার করবো।

R1#conf t
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 172.16.0.1 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#description To-R2
R1(config-if)#exit
R1(config)#interface loopback 1
R1(config-if)#ip address 192.168.0.1 255.255.255.0
R1(config-if)#exit
R2#conf t
R2(config)#interface fastEthernet 0/0
R2(config-if)#ip address 172.16.0.2 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#description To-R1
R2(config-if)#exit
R2(config)#interface fastEthernet 0/1
R2(config-if)#ip address 172.16.0.5 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#description To-R3
R2(config-if)#exit
R2(config)#interface loopback 1
R2(config-if)#ip address 192.168.1.1 255.255.255.0
R2(config-if)#exit
R3#conf t
R3(config)#interface fastEthernet 0/0
R3(config-if)#ip address 172.16.0.6 255.255.255.252
R3(config-if)#no shutdown
R3(config-if)#description To-R2
R3(config-if)#exit
R3(config)#interface loopback 1
R3(config-if)#ip address 192.168.2.1 255.255.255.0
R3(config-if)#exit

অতঃপর আমরা R1 রাউটারের সাথে R2 রাউটারের iBGP কনফিগার করবো এবং #network কমান্ডের মাধ্যমে R1 রাউটারের অধীনস্ত 192.168.0.0/24 প্রিফিক্সটি অরিজিনেট করবো।

R1(config)#router bgp 100
R1(config-router)#neighbor 172.16.0.2 remote-as 100
R1(config-router)#network 192.168.0.0 mask 255.255.255.0
R1(config-router)#exit

একইভাবে আমরা R2 ও R3 রাউটারেও iBGP কনফিগার করবো এবং প্রিফিক্সসমূহ অরিজিনেট করবো।

R2(config)#router bgp 100
R2(config-router)#neighbor 172.16.0.1 remote-as 100
R2(config-router)#neighbor 172.16.0.6 remote-as 100
R2(config-router)#network 192.168.1.0 mask 255.255.255.0
R2(config-router)#exit
R3(config)#router bgp 100
R3(config-router)#neighbor 172.16.0.5 remote-as 100
R3(config-router)#network 192.168.2.0 mask 255.255.255.0
R3(config-router)#exit

এখন যদি আমরা #show ip bgp summary ও #show ip route কমান্ডের মাধ্যমে রাউটারসমূহের BGP টেবিল ও রাউটিং টেবিল পর্যবেক্ষন করি, তাহলে দেখতে পাবো যে, R1 রাউটার তার একমাত্র Neighbor R2 এর প্রিফিক্সটি iBGP এর মাধ্যমে পেয়েছে।

R1#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.0.2      4   100      14      14        3    0    0 00:10:13        1
R1#show ip route

Gateway of last resort is not set

     172.16.0.0/30 is subnetted, 1 subnets
C       172.16.0.0 is directly connected, FastEthernet0/0
C    192.168.0.0/24 is directly connected, Loopback1
B    192.168.1.0/24 [200/0] via 172.16.0.2, 00:10:06

R2 রাউটার তার দুইটি Neighbor R1 ও R3 এর প্রিফিক্স iBGP এর মাধ্যমে পেয়েছে।

R2#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.0.1      4   100      14      14        4    0    0 00:10:54        1
172.16.0.6      4   100       7       7        4    0    0 00:02:49        1
R2#show ip route

Gateway of last resort is not set

     172.16.0.0/30 is subnetted, 2 subnets
C       172.16.0.4 is directly connected, FastEthernet0/1
C       172.16.0.0 is directly connected, FastEthernet0/0
B    192.168.0.0/24 [200/0] via 172.16.0.1, 00:10:48
C    192.168.1.0/24 is directly connected, Loopback1
B    192.168.2.0/24 [200/0] via 172.16.0.6, 00:03:13

এবং R3 রাউটার তার একমাত্র Neighbor R2 এর প্রিফিক্সটি iBGP এর মাধ্যমে পেয়েছে।

R3#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.0.5      4   100       8       8        3    0    0 00:03:32        1
R3#show ip route

Gateway of last resort is not set

     172.16.0.0/30 is subnetted, 1 subnets
C       172.16.0.4 is directly connected, FastEthernet0/0
B    192.168.1.0/24 [200/0] via 172.16.0.5, 00:03:53
C    192.168.2.0/24 is directly connected, Loopback1

কিন্তু এখানে একটি বিষয় লক্ষ্যনীয় যে, রাউটার R1 ও R3 কিন্তু একে অন্যের প্রিফিক্স পায় নি। এটা হলো eBGP ও iBGP এর মধ্যে একটি বড় পার্থক্য। eBGP রাউটারসমূহ কোন Neighbor এর কাছ থেকে প্রাপ্ত প্রিফিক্সসমূহ তার অন্যান্য Neighbor এর কাছে এ্যানাউন্স করে, কিন্তু iBGP রাউটারসমূহ তা করে না। অর্থাৎ এখানে R2 মধ্যবর্তী রাউটার হিসেবে R1 এর প্রিফিক্স R3 কে এবং R3 এর প্রিফিক্স R1 কে দিচ্ছে না। এটি হলো iBGP এর Split Horizon টেকনিক যা রাউটিং লুপ প্রতিরোধ করার জন্য ব্যবহৃত হয়। তাহলে এখানে প্রশ্ন হলো, R1 ও R3 মধ্যে প্রিফিক্স বিনিময় কিভাবে হবে? আর এর একমাত্র সমাধান হলো R1 এর সাথে R3 এর আরেকটি আলাদা iBGP Peering করা। অর্থাৎ নেটওয়ার্কে যতগুলো রাউটার থাকবে iBGP এর ক্ষেত্রে সবার সাথে সবার iBGP Peering করতে হবে। একে Full Mesh Peering বলে।

তাহলে এখন R1 ও R3 এর মধ্যে iBGP Peering এর জন্য R1 ও R3 এর মধ্যে রাউটিং থাকতে হবে। এজন্য আমরা R1 ও R3 এ নিম্নোক্তভাবে, Static Routing কনফিগার করবো।

R1#conf t
R1(config)#ip route 172.16.0.4 255.255.255.252 172.16.0.2
R3#conf t
R3(config)#ip route 172.16.0.0 255.255.255.252 172.16.0.5

অতঃপর আমরা R1 ও R3 এর মধ্যে iBGP Peering কনফিগার করবো। এথানে R1 ও R3 রাউটার নিজেদের মধ্যে সরাসরি যুক্ত না হলেও নিজেদের মধ্যে Peering করতে পারবে। eBGP হলে এক্ষেত্রে ebgp-multihop কমান্ড ব্যবহার করতে হতো, কিন্তু iBGP এর ক্ষেত্রে এর প্রয়োজন নেই।

R1#conf t
R1(config)#router bgp 100
R1(config-router)#neighbor 172.16.0.6 remote-as 100
R3#conf t
R3(config)#router bgp 100
R3(config-router)#neighbor 172.16.0.1 remote-as 100

এখন যদি আমরা #show ip bgp summary ও #show ip route কমান্ডের মাধ্যমে রাউটারসমূহের BGP টেবিল ও রাউটিং টেবিল পর্যবেক্ষন করি, তাহলে দেখতে পাবো যে, সবগুলো রাউটার একে অন্যের সাথে iBGP Peering আপ করেছে এবং প্রিফিক্স আদান-প্রদান করছে।

R1#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.0.2      4   100      66      66        4    0    0 01:02:14        1
172.16.0.6      4   100       5       5        4    0    0 00:00:23        1
R2#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.0.1      4   100      66      66        4    0    0 01:02:43        1
172.16.0.6      4   100      59      59        4    0    0 00:54:38        1
R3#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.0.1      4   100       6       6        4    0    0 00:01:07        1
172.16.0.5      4   100      59      59        4    0    0 00:54:53        1

iBGP Peering using Loopback IP

এখন আমরা দেখবো, রাউটারসমূহের মধ্যে Redundancy মেইনটেইন করার জন্য Loopback IP ব্যবহার করে কিভাবে iBGP Peering করতে হয়।

চিত্রে প্রদত্ত টপোলজি অনুযায়ী, R1, R2 ও R3 নিজেদের মধ্যে সংযুক্ত। এখানে টপোলজিটি এমনভাবে সাজানো হয়েছে যাতে রাউটারগুলোর মধ্যে Redundancy থাকে। অর্থাৎ, যদি কোন কারণে R1 ও R2 এর মধ্যকার লিঙ্কটি ডাউন হয়ে যায় তাহলে R1 যাতে R3 এর মাধ্যমে R2 এর সাথে iBGP Peering আপ রাখতে পারে এবং ট্রাফিক আদান-প্রদান করতে পারে। এক্ষেত্রে ট্রাডিশনাল পয়েন্ট-টু-পয়েন্ট আই.পি ব্যবহার করে iBGP Peering কনফিগার করা ভাল কোন সলিউশন নয়। বরং এক্ষেত্রে পয়েন্ট-টু-পয়েন্ট আই.পির পরিবর্তে Loopback আই.পি ব্যবহার করতে হয় যা আমরা eBGP Peering এর একটি টিউটোরিয়ালে ইতিমধ্যে দেখেছি।

এখানে R1, R2 ও R3 যাতে নিজেদের মধ্যে Loopback আই.পি ব্যবহার করে কমিউনিকেট করতে পারে তার জন্য আমরা IGP রাউটিং প্রটোকল OSPF ব্যবহার করবো। এজন্য আমরা প্রথমেই নিম্নোক্তভাবে আই.পি কনফিগারেশন সম্পন্ন করবো।

R1#conf t
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 172.16.0.1 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#description To-R2
R1(config-if)#exit
R1(config)#interface fastEthernet 0/1
R1(config-if)#ip address 172.16.0.9 255.255.255.252
R1(config-if)#no shutdown
R1(config-if)#description To-R3
R1(config-if)#exit
R1(config)#interface loopback 0
R1(config-if)#ip address 10.0.0.1 255.255.255.255
R1(config-if)#exit
R1(config)#interface loopback 1
R1(config-if)#ip address 192.168.0.1 255.255.255.0
R1(config-if)#exit
R2#conf t
R2(config)#interface fastEthernet 0/0
R2(config-if)#ip address 172.16.0.2 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#description To-R1
R2(config-if)#exit
R2(config)#interface fastEthernet 0/1
R2(config-if)#ip address 172.16.0.5 255.255.255.252
R2(config-if)#no shutdown
R2(config-if)#description To-R3
R2(config-if)#exit
R2(config)#interface loopback 0
R2(config-if)#ip address 10.0.0.2 255.255.255.255
R2(config-if)#exit
R2(config)#interface loopback 1
R2(config-if)#ip address 192.168.1.1 255.255.255.0
R2(config-if)#exit
R3#conf t
R3(config)#interface fastEthernet 0/0
R3(config-if)#ip address 172.16.0.6 255.255.255.252
R3(config-if)#no shutdown
R3(config-if)#description To-R2
R3(config-if)#exit
R3(config-if)#ip address 172.16.0.10 255.255.255.252
R3(config-if)#no shutdown
R3(config-if)#description To-R1
R3(config-if)#exit
R3(config)#interface loopback 0
R3(config-if)#ip address 10.0.0.3 255.255.255.255
R3(config-if)#exit
R3(config)#interface loopback 1
R3(config-if)#ip address 192.168.2.1 255.255.255.0
R3(config-if)#exit

এখানে প্রতিটি রাউটারে Loopback0 ইন্টারফেসের আই.পি টি iBGP এর Peering আই.পি হিসেবে এবং Lookback1 ইন্টারফেসের আই.পি টি ক্লায়েন্ট প্রিফিক্স হিসেবে ব্যবহৃত হয়েছে।

এখন আমরা R1, R2 ও R3 এর Loopback আই.পি সমূহের মধ্যে Reachability এর জন্য IGP হিসেবে OSPF কনফিগার করবো।

R1#conf t
R1(config-router)#network 172.16.0.0 0.0.0.3 area 0
R1(config-router)#network 172.16.0.8 0.0.0.3 area 0
R1(config-router)#network 10.0.0.1 0.0.0.0 area 0
R1(config-router)#exit
R2#conf t
R2(config)#router ospf 10
R2(config-router)#network 172.16.0.0 0.0.0.3 area 0
R2(config-router)#network 172.16.0.4 0.0.0.3 area 0
R2(config-router)#network 10.0.0.2 0.0.0.0 area 0
R2(config-router)#exit
R3#conf t
R3(config)#router ospf 10
R3(config-router)#network 172.16.0.4 0.0.0.3 area 0
R3(config-router)#network 172.16.0.8 0.0.0.3 area 0
R3(config-router)#network 10.0.0.3 0.0.0.0 area 0
R3(config-router)#exit

এখানে আমরা রাউটার তিনটির মধ্যে OSPF কনফিগার করার জন্য Process ID হিসেবে 10 এবং Area ID হিসেবে 0 ব্যবহার করেছি। OSPF রাউটিং প্রসেসে #network কমান্ডের মাধ্যমে শুধুমাত্র রাউটারসমূহের পয়েন্ট-টু-পয়েন্ট আই.পি ও যে Loopback আই.পি দিয়ে iBGP Peerig হবে সেই Loopback আই.পি এর নেটওয়ার্ক ডিক্লেয়ার করা হয়েছে (**অন্য আর কোন নেটওয়ার্ক নয়।**)

এখন যদি আমরা প্রতিটি রাউটারের রাউটিং টেবিল চেক করি তাহলে দেখতে পাবো যে, রাউটারসমূহ প্রত্যেকেই প্রত্যেকের Loopback0 এর আই.পি টিকে OSPF এর মাধ্যমে জেনেছে।

R1#show ip route ospf
     172.16.0.0/30 is subnetted, 3 subnets
O       172.16.0.4 [110/11] via 172.16.0.10, 00:19:31, FastEthernet0/1
     10.0.0.0/32 is subnetted, 3 subnets
O       10.0.0.2 [110/11] via 172.16.0.2, 00:19:31, FastEthernet0/0
O       10.0.0.3 [110/11] via 172.16.0.10, 00:19:31, FastEthernet0/1
R2#show ip route ospf
     172.16.0.0/30 is subnetted, 3 subnets
O       172.16.0.8 [110/11] via 172.16.0.6, 00:22:20, FastEthernet0/1
                   [110/11] via 172.16.0.1, 00:22:20, FastEthernet0/0
     10.0.0.0/32 is subnetted, 3 subnets
O       10.0.0.3 [110/11] via 172.16.0.6, 00:22:20, FastEthernet0/1
O       10.0.0.1 [110/2] via 172.16.0.1, 00:22:20, FastEthernet0/0
R3#show ip route ospf
     172.16.0.0/30 is subnetted, 3 subnets
O       172.16.0.0 [110/2] via 172.16.0.5, 00:50:29, FastEthernet0/0
     10.0.0.0/32 is subnetted, 3 subnets
O       10.0.0.2 [110/2] via 172.16.0.5, 00:50:29, FastEthernet0/0
O       10.0.0.1 [110/2] via 172.16.0.9, 00:50:29, FastEthernet0/1

আমরা চাইলে যেকোন একটি রাউটার থেকে আরেকটি রাউটারের Loopback ইন্টারফেসের আই.পি কে Ping দিয়ে দেখতে পারি।

R1#ping 10.0.0.2 source 10.0.0.1 repeat 10

Type escape sequence to abort.
Sending 10, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
Packet sent with a source address of 10.0.0.1
!!!!!!!!!!
Success rate is 100 percent (10/10), round-trip min/avg/max = 16/32/48 ms

এখানে যদি ক্লায়েন্ট নেটওয়ার্কসমূহকেও OSPF এ ডিক্লেয়ার করা হতো তাহলে আমাদের কাজ হয়ে যেত, অতিরিক্ত কোন iBGP কনফিগার করা লাগতো না। একটি ছোট আকারের নেটওয়ার্কের ক্ষেত্রে এভাবে OSPF এর মাধ্যমেই সব কাজ চালানো যেতে পারে। কিন্তু আমরা আগেই জেনেছি যে, একটি বড় আকারের নেটওয়ার্কের ক্ষেত্রে (যেখানে কয়েক হাজার ক্লায়েন্ট প্রিফিক্স আছে) OSPF ব্যবহার করা ভাল কোন সলিউশন নয়। তাই বড় আকারের নেটওয়ার্কের ক্ষেত্রে শুধুমাত্র POP রাউটারসমূহের পয়েন্ট-টু-পয়েন্ট আই.পি ও যে Loopback আই.পি দিয়ে iBGP Peerig হবে সেই Loopback আই.পি এর নেটওয়ার্কসমূহই OSPF এ ডিক্লেয়ার করা হয়, কোন ক্লায়েন্ট প্রিফিক্স নয়। ক্লায়েন্ট প্রিফিক্সসমূহ iBGP এর মাধ্যমে হ্যান্ডল করা হয়। এতে করে OSPF রাউটিং টেবিলের আকার ছোট থাকে এবং নেটওয়ার্কের পারফরম্যান্স ভাল থাকে।

এখন আমরা রাউটার তিনটির Loopback0 আই.পি ব্যবহার করে iBGP Peering কনফিগার করবো।

R1#conf t
R1(config)#router bgp 100
R1(config-router)#neighbor 10.0.0.2 remote-as 100
R1(config-router)#neighbor 10.0.0.2 update-source loopback 0
R1(config-router)#neighbor 10.0.0.3 remote-as 100
R1(config-router)#neighbor 10.0.0.3 update-source loopback 0
R1(config-router)#network 192.168.0.0 mask 255.255.255.0
R1(config-router)#exit
R2#conf t
R2(config)#router bgp 100
R2(config-router)#neighbor 10.0.0.1 remote-as 100
R2(config-router)#neighbor 10.0.0.1 update-source loopback 0
R2(config-router)#neighbor 10.0.0.3 remote-as 100
R2(config-router)#neighbor 10.0.0.3 update-source loopback 0
R2(config-router)#network 192.168.1.0 mask 255.255.255.0
R2(config-router)#exit
R3#conf t
R3(config)#router bgp 100
R3(config-router)#neighbor 10.0.0.1 remote-as 100
R3(config-router)#neighbor 10.0.0.1 update-source loopback 0
R3(config-router)#neighbor 10.0.0.2 remote-as 100
R3(config-router)#neighbor 10.0.0.2 update-source loopback 0
R3(config-router)#network 192.168.2.0 mask 255.255.255.0
R3(config-router)#exit

iBGP Peering কনফিগার করা শেষ হলে, আমরা #show ip bgp summary কমান্ডের মাধ্যমে Peering স্ট্যাটাস চেক করতে পারি।

R1#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.2        4   100      11      11        4    0    0 00:06:41        1
10.0.0.3        4   100      10      10        4    0    0 00:05:34        1
R2#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.1        4   100      17      16        6    0    0 00:07:13        1
10.0.0.3        4   100      10      10        6    0    0 00:05:47        1
R3#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.1        4   100      11      11        4    0    0 00:06:22        1
10.0.0.2        4   100      11      11        4    0    0 00:06:04        1

আমরা যদি R1 রাউটারের 192.168.0.0 নেটওয়ার্ক থেকে R2 রাউটারের 192.168.1.0 নেটওয়ার্কে যেতে চাই তাহলে Nexthop হবে 10.0.0.2 । কারণ, 192.168.1.0 নেটওয়ার্কটি R2 থেকে iBGP এর মাধ্যমে অরিজিনেট করা হয়েছে এবং R2 এর iBGP এর সোর্স আই.পি হলো 10.0.0.2 ।

R1#show ip route

Gateway of last resort is not set

     172.16.0.0/30 is subnetted, 3 subnets
C       172.16.0.8 is directly connected, FastEthernet0/1
O       172.16.0.4 [110/11] via 172.16.0.10, 00:09:10, FastEthernet0/1
C       172.16.0.0 is directly connected, FastEthernet0/0
     10.0.0.0/32 is subnetted, 3 subnets
O       10.0.0.2 [110/11] via 172.16.0.2, 00:09:10, FastEthernet0/0
O       10.0.0.3 [110/11] via 172.16.0.10, 00:09:10, FastEthernet0/1
C       10.0.0.1 is directly connected, Loopback0
C    192.168.0.0/24 is directly connected, Loopback1
B    192.168.1.0/24 [200/0] via 10.0.0.2, 00:06:24
B    192.168.2.0/24 [200/0] via 10.0.0.3, 00:06:39

আর R1 রাউটার থেকে 10.0.0.2 তে যেতে চাইলে Nexthop হবে 172.16.0.2 । কারণ, 10.0.0.2 আই.পিকে R2 থেকে OSPF এর মাধ্যমে ডিক্লেয়ার করা হয়েছে এবং R2 এর OSPF এর সোর্স আই.পি হলো 172.16.0.2 ।

Configuring a Complete Network with eBGP and iBGP

এখন আমরা দেখবো একটি আই.এস.পি নেটওয়ার্কে কিভাবে eBGP এবং iBGP উভয়ই ব্যবহার করা হয়। আর এজন্য আমরা একটি Real Life কনফিগারেশন দেখার চেষ্টা করবো।

ল্যাব টপোলজি ও কনফিগারেশন অবজেকটিভঃ

১. চিত্রে প্রদত্ত টপোলজি অনুযায়ী, আই.আই.জি এর Public ASN হলো 100 এবং Public IP হলো 192.168.32.0/23 । এখানে আই.আই.জি তার আই.পি ব্লক থেকে 192.168.32.64/30 পয়েন্ট-টু-পয়েন্ট আই.পি eBGP Peering এর জন্য আই.এস.পি কে দিবে। আই.এস.পি তার Public ASN 200 ব্যবহার করে আই.আই.জি এর সাথে eBGP Peering কনফিগার করবে এবং নিজের পাবলিক আই.পি ব্লক 192.168.0.0/22 কে চারটি সাবনেটে ভাগ করে অরিজিনেট করবে। এক্ষেত্রে আই.আই.জি আই.এস.পি কে শুধু Default Route দিবে।

২. আই.এস.পি তার Core রাউটারের সাথে POP রাউটারসমূহের iBGP Peering করবে। iBGP Peering এর জন্য রাউটারসমূহের Loopback0 ইন্টারফেসের আই.পি ব্যবহার করা হবে।

৩. আই.এস.পি তার 192.168.1.0/24 সাবনেটটি ব্যবহার করবে POP1 এর অধীনস্থ সব ক্লায়েন্টদের কানেক্ট করার জন্য। এক্ষেত্রে আই.এস.পি তার CLIENT-1 কে একটি পয়েন্ট-টু-পয়েন্ট আই.পি 192.168.1.32/30 দিবে eBGP Peering এর জন্য। CLIENT-1 তার নিজস্ব Public AS 300 ব্যবহার করে আই.এস.পি এর সাথে eBGP Peering করবে এবং নিজের পাবলিক আই.পি ব্লক 192.168.64.0/23 কে দুইটি সাবনেটে ভাগ করে অরিজিনেট করবে। আই.এস.পি CLIENT-1 কে শুধু Default Route দিবে।

৪. আই.এস.পি তার 192.168.2.0/24 সাবনেটটি ব্যবহার করবে POP2 এর অধীনস্থ সব ক্লায়েন্টদের কানেক্ট করার জন্য। এক্ষেত্রে আই.এস.পি তার CLIENT-2 কে একটি পয়েন্ট-টু-পয়েন্ট আই.পি 192.168.2.64/30 দিবে eBGP Peering এর জন্য। কিন্তু এখানে CLIENT-2 এর নিজস্ব কোন Public AS বা আই.পি নেই (আর সব ইন্টারনেট ক্লায়েন্টদের নিজস্ব Public AS বা আই.পি থাকার কথাও নয়।) এক্ষেত্রে CLIENT-2 একটি Private ASN দিয়ে আই.এস.পি এর সাথে eBGP Peering করবে এবং আই.এস.পি ল্যান সাইডে ব্যবহারের জন্য CLIENT-2 কে নিজের একটি আই.পি ব্লক 192.168.2.128/29 দিবে যা CLIENT-2 eBGP এর মাধ্যমে অরিজিনেট করবে। আই.এস.পি CLIENT-2 কে শুধু Default Route দিবে।

কনফিগারেশনঃ

১. প্রথমেই আমরা নিচের কমান্ডের মাধ্যমে আই.আই.জি ও আই.এস.পি Core রাউটারের আই.পি এ্যাড্রেসসমূহ কনফিগার করতঃ উভয়ের মধ্যে eBGP Peering আপ করবো। এবং প্রয়োজনীয় প্রিফিক্সসমূহ অরিজিনেট করবো।

IIG#conf t
IIG(config)#interface fastEthernet 0/0
IIG(config-if)#ip address 192.168.32.65 255.255.255.252
IIG(config-if)#no shutdown
IIG(config-if)#description ISP
IIG(config-if)#exit
IIG(config)#ip route 192.168.32.0 255.255.255.0 null 0
IIG(config)#ip route 192.168.33.0 255.255.255.0 null 0

IIG(config)#ip prefix-list ISP-IN seq 10 permit 192.168.0.0/22 le 24
IIG(config)#ip prefix-list ISP-OUT seq 10 permit 0.0.0.0/0

IIG(config)#route-map ISP-IN
IIG(config-route-map)#match ip address prefix-list ISP-IN
IIG(config-route-map)#exit
IIG(config)#route-map ISP-OUT
IIG(config-route-map)#match ip address prefix-list ISP-OUT
IIG(config-route-map)#exit

IIG(config)#router bgp 100
IIG(config-router)#neighbor 192.168.32.66 remote-as 200
IIG(config-router)#neighbor 192.168.32.66 route-map ISP-IN in
IIG(config-router)#neighbor 192.168.32.66 route-map ISP-OUT out
IIG(config-router)#neighbor 192.168.32.66 default-originate
CORE#conf t
CORE(config)#interface fastEthernet 0/0
CORE(config-if)#ip address 192.168.32.66 255.255.255.252
CORE(config-if)#no shutdown
CORE(config-if)#description IIG
CORE(config-if)#exit

CORE(config)#ip route 192.168.0.0 255.255.255.0 null 0
CORE(config)#ip route 192.168.1.0 255.255.255.0 null 0
CORE(config)#ip route 192.168.2.0 255.255.255.0 null 0
CORE(config)#ip route 192.168.3.0 255.255.255.0 null 0

CORE(config)#ip prefix-list IIG-IN seq 10 permit 0.0.0.0/0
CORE(config)#ip prefix-list IIG-OUT seq 10 permit 192.168.0.0/24
CORE(config)#ip prefix-list IIG-OUT seq 20 permit 192.168.1.0/24
CORE(config)#ip prefix-list IIG-OUT seq 30 permit 192.168.2.0/24
CORE(config)#ip prefix-list IIG-OUT seq 40 permit 192.168.3.0/24

CORE(config)#route-map IIG-IN
CORE(config-route-map)#match ip address prefix-list IIG-IN
CORE(config-route-map)#exit
CORE(config)#route-map IIG-OUT
CORE(config-route-map)#match ip address prefix-list IIG-OUT
CORE(config-route-map)#exit

CORE(config)#router bgp 200
CORE(config-router)#neighbor 192.168.32.65 remote-as 100
CORE(config-router)#neighbor 192.168.32.65 route-map IIG-IN in
CORE(config-router)#neighbor 192.168.32.65 route-map IIG-OUT out
CORE(config-router)#network 192.168.0.0 mask 255.255.255.0
CORE(config-router)#network 192.168.1.0 mask 255.255.255.0
CORE(config-router)#network 192.168.2.0 mask 255.255.255.0
CORE(config-router)#network 192.168.3.0 mask 255.255.255.0
CORE(config-router)#exit

এখানে eBGP Peering এর সময় উভয় রাউটারের inboud ও outbound এ প্রিফিক্স ফিল্টার করা হয়েছে। আমরা আই.আই.জি ও আই.এস.পি Core রাউটারে #show ip bgp summary ও #show ip route bgp কমান্ডের মাধ্যমে কনফিগারেশন চেক করে নিতে পারি।

IIG#show ip bgp summary
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
192.168.32.66   4   200      15      16        5    0    0 00:10:57        4
IIG#show ip route bgp
B    192.168.0.0/24 [20/0] via 192.168.32.66, 00:10:16
B    192.168.1.0/24 [20/0] via 192.168.32.66, 00:10:16
B    192.168.2.0/24 [20/0] via 192.168.32.66, 00:10:16
B    192.168.3.0/24 [20/0] via 192.168.32.66, 00:10:16
CORE#show ip bgp summary
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
192.168.32.65   4   100      17      16        6    0    0 00:11:50        1
CORE#show ip route bgp
B*   0.0.0.0/0 [20/0] via 192.168.32.65, 00:09:32

এখানে আই.আই.জি রাউটার আই.এস.পি এর কাছ থেকে চারটি রাউট পাচ্ছে এবং আই.এস.পি রাউটারও আই.আই.জি রাউটারের কাছ থেকে Default Route পাচ্ছে।

২. এখন আমরা আই.এস.পি Core রাউটারের সাথে POP রাউটারসমূহের iBGP Peering করার আগে Loopback0 ইন্টারফেসের আই.পিসমূহ Reachable করার জন্য IGP হিসেবে OSPF কনফিগার করবো।

CORE#conf t
CORE(config)#interface fastEthernet 1/0
CORE(config-if)#ip address 172.16.0.1 255.255.255.252
CORE(config-if)#no shutdown
CORE(config-if)#description POP2
CORE(config-if)#exit
CORE(config)#interface fastEthernet 0/1
CORE(config-if)#ip address 172.16.0.9 255.255.255.252
CORE(config-if)#no shutdown
CORE(config-if)#description POP1
CORE(config-if)#exit
CORE(config)#interface loopback 0
CORE(config-if)#ip address 10.0.0.1 255.255.255.255
CORE(config-if)#exit

CORE(config)#router ospf 10
CORE(config-router)#network 172.16.0.0 0.0.0.3 area 0
CORE(config-router)#network 172.16.0.8 0.0.0.3 area 0
CORE(config-router)#network 10.0.0.1 0.0.0.0 area 0
CORE(config-router)#exit
POP1#conf t
POP1(config)#interface fastEthernet 0/0
POP1(config-if)#ip address 172.16.0.10 255.255.255.252
POP1(config-if)#no shutdown
POP1(config-if)#description CORE
POP1(config-if)#exit
POP1(config)#interface fastEthernet 0/1
POP1(config-if)#ip address 172.16.0.5 255.255.255.252
POP1(config-if)#no shutdown
POP1(config-if)#description POP2
POP1(config-if)#exit
POP1(config)#interface loopback 0
POP1(config-if)#ip address 10.0.0.2 255.255.255.255
POP1(config-if)#exit

POP1(config)#router ospf 10
POP1(config-router)#network 172.16.0.4 0.0.0.3 area 0
POP1(config-router)#network 172.16.0.8 0.0.0.3 area 0
POP1(config-router)#network 10.0.0.2 0.0.0.0 area 0
POP1(config-router)#exit
POP2#conf t
POP2(config)#interface fastEthernet 0/1
POP2(config-if)#ip address 172.16.0.2 255.255.255.252
POP2(config-if)#no shutdown
POP2(config-if)#description CORE
POP2(config-if)#exit
POP2(config)#interface fastEthernet 0/0
POP2(config-if)#ip address 172.16.0.6 255.255.255.252
POP2(config-if)#no shutdown
POP2(config-if)#description POP1
POP2(config-if)#exit
POP2(config)#interface loopback 0
POP2(config-if)#ip address 10.0.0.3 255.255.255.255
POP2(config-if)#exit

POP2(config)#router ospf 10
POP2(config-router)#network 172.16.0.0 0.0.0.3 area 0
POP2(config-router)#network 172.16.0.4 0.0.0.3 area 0
POP2(config-router)#network 10.0.0.3 0.0.0.0 area 0
POP2(config-router)#exit

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

CORE#show ip route ospf
     172.16.0.0/30 is subnetted, 3 subnets
O       172.16.0.4 [110/2] via 172.16.0.10, 00:00:06, FastEthernet0/1
                   [110/2] via 172.16.0.2, 00:00:06, FastEthernet1/0
     10.0.0.0/32 is subnetted, 3 subnets
O       10.0.0.2 [110/2] via 172.16.0.10, 00:00:06, FastEthernet0/1
O       10.0.0.3 [110/2] via 172.16.0.2, 00:00:06, FastEthernet1/0
POP1#show ip route ospf
     172.16.0.0/30 is subnetted, 3 subnets
O       172.16.0.0 [110/2] via 172.16.0.9, 00:00:10, FastEthernet0/0
                   [110/2] via 172.16.0.6, 00:00:10, FastEthernet0/1
     10.0.0.0/32 is subnetted, 3 subnets
O       10.0.0.3 [110/2] via 172.16.0.6, 00:00:10, FastEthernet0/1
O       10.0.0.1 [110/2] via 172.16.0.9, 00:00:10, FastEthernet0/0
POP2#show ip route ospf
     172.16.0.0/30 is subnetted, 3 subnets
O       172.16.0.8 [110/2] via 172.16.0.5, 00:00:50, FastEthernet0/0
                   [110/2] via 172.16.0.1, 00:00:50, FastEthernet0/1
     10.0.0.0/32 is subnetted, 3 subnets
O       10.0.0.2 [110/2] via 172.16.0.5, 00:00:50, FastEthernet0/0
O       10.0.0.1 [110/2] via 172.16.0.1, 00:00:50, FastEthernet0/1

OSPF এর মাধ্যমে রাউটারসমূহের Loopback0 ইন্টারফেসের আই.পিসমূহ Reachable করার পর আমরা এই Loopback0 ইন্টারফেসের আই.পি ব্যবহার করে রাউটারসমূহের মধ্যে iBGP Peering কনফিগার করবো।

CORE#conf t
CORE(config)#router bgp 200
CORE(config-router)#neighbor 10.0.0.2 remote-as 200
CORE(config-router)#neighbor 10.0.0.2 update-source loopback 0
CORE(config-router)#neighbor 10.0.0.3 remote-as 200
CORE(config-router)#neighbor 10.0.0.3 update-source loopback 0
CORE(config-router)#exit
POP1#conf t
POP1(config)#router bgp 200
POP1(config-router)#neighbor 10.0.0.1 remote-as 200
POP1(config-router)#neighbor 10.0.0.1 update-source loopback 0
POP1(config-router)#neighbor 10.0.0.3 remote-as 200
POP1(config-router)#neighbor 10.0.0.3 update-source loopback 0
POP1(config-router)#exit
POP2#conf t
POP2(config)#router bgp 200
POP2(config-router)#neighbor 10.0.0.1 remote-as 200
POP2(config-router)#neighbor 10.0.0.1 update-source loopback 0
POP2(config-router)#neighbor 10.0.0.2 remote-as 200
POP2(config-router)#neighbor 10.0.0.2 update-source loopback 0
POP2(config-router)#exit

iBGP Peering কনফিগার করা শেষ হলে আমরা #show ip bgp summary ও #show ip route bgp কমান্ডের মাধ্যমে রাউটারসমূহের BGP Peering ও Routing Table চেক করতে পারি।

CORE#show ip bgp summary
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.2        4   200       5       7        6    0    0 00:01:25        0
10.0.0.3        4   200       4       6        6    0    0 00:00:33        0
192.168.32.65   4   100      66      65        6    0    0 01:00:11        1
CORE#show ip route bgp
B*   0.0.0.0/0 [20/0] via 192.168.32.65, 02:00:59
POP1#show ip bgp summary
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.1        4   200       9       7        5    0    0 00:03:50        5
10.0.0.3        4   200       6       6        5    0    0 00:02:48        0
POP1#show ip route bgp
B    192.168.0.0/24 [200/0] via 10.0.0.1, 01:06:43
B    192.168.1.0/24 [200/0] via 10.0.0.1, 01:06:43
B    192.168.2.0/24 [200/0] via 10.0.0.1, 01:06:43
B    192.168.3.0/24 [200/0] via 10.0.0.1, 01:06:43
POP2#show ip bgp summary
Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.1        4   200       9       7        5    0    0 00:03:33        5
10.0.0.2        4   200       7       7        5    0    0 00:03:24        0
POP2#show ip route bgp
B    192.168.0.0/24 [200/0] via 10.0.0.1, 01:06:08
B    192.168.1.0/24 [200/0] via 10.0.0.1, 01:06:08
B    192.168.2.0/24 [200/0] via 10.0.0.1, 01:06:08
B    192.168.3.0/24 [200/0] via 10.0.0.1, 01:06:08

এখানে একটি বিষয় বিশেষভাবে লক্ষ্যনীয় যে, POP1 ও POP2 রাউটার Core রাউটারের কাছ থেকে পাঁচটি BGP Prefix রিসিভ করছে, কিন্তু উভয়েরই রাউটিং টেবিলে Core রাউটারের কাছ থেকে পাওয়া রাউট সংখ্যা চারটি।

যদি আমরা POP1 এ আরো ভালভাবে লক্ষ্য করি তাহলে দেখতে পাবো যে,

POP1#show ip bgp neighbors 10.0.0.1 routes

   Network          Next Hop            Metric LocPrf Weight Path
* i0.0.0.0          192.168.32.65            0    100      0 100 i
*>i192.168.0.0      10.0.0.1                 0    100      0 i
*>i192.168.1.0      10.0.0.1                 0    100      0 i
*>i192.168.2.0      10.0.0.1                 0    100      0 i
*>i192.168.3.0      10.0.0.1                 0    100      0 i

Total number of prefixes 5

POP1#show ip route bgp
B    192.168.0.0/24 [200/0] via 10.0.0.1, 00:26:29
B    192.168.1.0/24 [200/0] via 10.0.0.1, 00:26:29
B    192.168.2.0/24 [200/0] via 10.0.0.1, 00:26:29
B    192.168.3.0/24 [200/0] via 10.0.0.1, 00:26:29

এখানে POP1 Core রাউটারের কাছ থেকে Default Prefix সহ মোট পাঁচটি প্রিফিক্স রিসিভ করছে, কিন্তু POP1 এর রাউটিং টেবিলে রাউট সংখ্যা চারটি, সেখানে কোন Default Route নেই। কারণটা কি???

এখানেই eBGP ও iBGP এর মধ্যে আরো একটি পার্থক্য বিদ্যমান। আসলে আমরা যখন eBGP/IGP করি, তখন একটি eBGP/IGP রাউটার তার একপাশের রাউটারের কাছ থেকে প্রাপ্ত রাউট অন্য পাশের রাউটারের কাছে Advertise করে এবং Advertise করার সময় Nexthop পরিবর্তন করে নিজেকে Nexthop হিসেবে ঘোষনা করে। উদাহরণস্বরূপঃ আই.এস.পি Core রাউটার আই.আই.জি এর কাছ থেকে Default Route পেয়েছে এবং রাউটিং টেবিলে তার Nexthop হলো 192.168.32.65 । যদি Core রাউটার ও POP1 রাউটারের মধ্যে eBGP থাকতো তাহলে Core রাউটার POP1 রাউটারের কাছে Default Route টি Advertise করতো এবং এক্ষেত্রে POP1 রাউটারের Nexthop হতো 10.0.0.1 । কিন্তু কোন রাউটার তার eBGP Neighbor থেকে প্রাপ্ত রাউট কোন iBGP Neighbor কে দেওয়ার সময় সাধারণত Nexthop পরিবর্তন করে না। একারণে এই টপোলজিতে আই.এস.পি Core রাউটার আই.আই.জি এর কাছ থেকে যে Default Route পেয়েছে তা Nexthop পরিবর্তন না করেই POP1 রাউটারের কাছে পাঠাচ্ছে। আর POP1 রাউটার সেই 192.168.32.65 Nexthop বিশিষ্ট Default Prefix টি রিসিভ করছে। কিন্ত POP1 রাউটারের রাউটিং টেবিলে যেহেতু 192.168.32.65 এর কোন রাউট নেই তাই ইহা 192.168.32.65 Nexthop বিশিষ্ট কোন রাউটই নিজের রাউটিং টেবিলে এন্ট্রি দিবে না। অর্থাৎ POP1 রাউটার 192.168.32.65 Nexthop বিশিষ্ট Default Route টি Discard করে দিবে। কিন্তু ক্লায়েন্টদের ইন্টারনেট ট্রাফিক আদান-প্রদানের জন্য POP1 রাউটারে এই Default Route থাকা অত্যন্ত জরুরী। এসমস্যা সমাধানের জন্য যদি POP1 রাউটারে #ip route 192.168.32.64 255.255.255.252 10.0.0.1 এরকম একটি স্ট্যাটিক রাউট দেওয়া হয় তাহলে POP1 রাউটার 192.168.32.65 আই.পি টি কে চিনবে এবং 192.168.32.65 Nexthop বিশিষ্ট Default Route টি নিজের রাউটিং টেবিলে এন্ট্রি দিবে। কিন্তু কোন একটি নেটওয়ার্কে যদি কয়েকশত বা হাজার রাউটার থাকে তাহলে সবগুলো রাউটারে এই স্ট্যাটিক রাউট দেওয়া খু্ব কঠিন কাজ। তাই এর সহজ সমাধান হিসেবে সবচেয়ে ভাল হলো, iBGP কে এমনভাবে কনফিগার করা যাতে করে কোন রাউটার তার eBGP Neighbor থেকে প্রাপ্ত রাউট কোন iBGP Neighbor কে দেওয়ার সময় নিজেকেই Nexthop হিসেবে ঘোষণা করে। এজন্য iBGP কনফিগার করার সময় নিচের কমান্ড দিতে হবে।

CORE#conf t
CORE(config)#router bgp 200
CORE(config-router)#neighbor 10.0.0.2 next-hop-self
CORE(config-router)#neighbor 10.0.0.3 next-hop-self
CORE(config-router)#exit
CORE#clear ip bgp *

এখন যদি আমরা POP1 ও POP2 রাউটারে #show ip route bgp কমান্ডের মাধ্যমে রাউটারসমূহের Routing Table চেক করি তাহলে দেখতে পাবো যে, উভয় রাউটারই এখন Core রাউটারের কাছ থেকে Default Route পাচ্ছে এবং Nexthop হলো 10.0.0.1 অর্থাৎ Core রাউটার নিজেই।

POP1#show ip route bgp
B    192.168.0.0/24 [200/0] via 10.0.0.1, 00:05:46
B    192.168.1.0/24 [200/0] via 10.0.0.1, 00:05:46
B    192.168.2.0/24 [200/0] via 10.0.0.1, 00:05:46
B    192.168.3.0/24 [200/0] via 10.0.0.1, 00:05:46
B*   0.0.0.0/0 [200/0] via 10.0.0.1, 00:06:21
POP2#show ip route bgp
B    192.168.0.0/24 [200/0] via 10.0.0.1, 00:06:02
B    192.168.1.0/24 [200/0] via 10.0.0.1, 00:06:02
B    192.168.2.0/24 [200/0] via 10.0.0.1, 00:06:02
B    192.168.3.0/24 [200/0] via 10.0.0.1, 00:06:02
B*   0.0.0.0/0 [200/0] via 10.0.0.1, 00:06:36

৩. এখন আমরা CLIENT-1 কে আই.এস.পি এর POP1 এর সাথে কানেক্ট করবো। আগেই বলা হয়েছে যে, আই.এস.পি তার CLIENT-1 কে একটি পয়েন্ট-টু-পয়েন্ট আই.পি 192.168.1.32/30 দিবে eBGP Peering এর জন্য। CLIENT-1 তার নিজস্ব Public AS 300 ব্যবহার করে আই.এস.পি এর সাথে eBGP Peering করবে এবং নিজের পাবলিক আই.পি ব্লক 192.168.64.0/23 কে দুইটি সাবনেটে ভাগ করে অরিজিনেট করবে। আই.এস.পি CLIENT-1 কে শুধু Default Route দিবে।

CLIENT-1 এর সাথে POP1 এর eBGP Peering এর জন্য রাউটার দুইটিতে নিচের কমান্ড দিতে হবে।

POP1#conf t
POP1(config)#interface fastEthernet 1/0
POP1(config-if)#ip address 192.168.1.33 255.255.255.252
POP1(config-if)#no shutdown
POP1(config-if)#description CLIENT-1
POP1(config-if)#exit
CLIENT1#conf t
CLIENT1(config)#interface fastEthernet 0/0
CLIENT1(config-if)#ip address 192.168.1.34 255.255.255.252
CLIENT1(config-if)#no shutdown
CLIENT1(config-if)#description ISP
CLIENT1(config-if)#exit
CLIENT1(config)#interface loopback 1
CLIENT1(config-if)#ip address 192.168.64.1 255.255.255.0
CLIENT1(config-if)#exit
CLIENT1(config-if)#interface loopback 2
CLIENT1(config-if)#ip address 192.168.65.1 255.255.255.0
CLIENT1(config-if)#exit
POP1#conf t
POP1(config)#ip prefix-list CLIENT1-IN seq 10 permit 192.168.64.0/23 le 24
POP1(config)#ip prefix-list CLIENT1-OUT seq 10 permit 0.0.0.0/0

POP1(config)#route-map CLIENT1-IN
POP1(config-route-map)#match ip address prefix-list CLIENT1-IN
POP1(config-route-map)#exit
POP1(config)#route-map CLIENT1-OUT
POP1(config-route-map)#match ip address prefix-list CLIENT1-OUT
POP1(config-route-map)#exit

POP1(config)#router bgp 200
POP1(config-router)#neighbor 192.168.1.34 remote-as 300
POP1(config-router)#neighbor 192.168.1.34 route-map CLIENT1-IN in
POP1(config-router)#neighbor 192.168.1.34 route-map CLIENT1-OUT out
POP1(config-router)#exit
CLIENT1#conf t
CLIENT1(config)#ip prefix-list ISP-IN seq 10 permit 0.0.0.0/0
CLIENT1(config)#ip prefix-list ISP-OUT seq 10 permit 192.168.64.0/24
CLIENT1(config)#ip prefix-list ISP-OUT seq 20 permit 192.168.65.0/24
CLIENT1(config)#exit

CLIENT1(config)#route-map ISP-IN
CLIENT1(config-route-map)#match ip address prefix-list ISP-IN
CLIENT1(config-route-map)#exit
CLIENT1(config)#route-map ISP-OUT
CLIENT1(config-route-map)#match ip address prefix-list ISP-OUT
CLIENT1(config-route-map)#exit

CLIENT1(config)#router bgp 300
CLIENT1(config-router)#neighbor 192.168.1.33 remote-as 200
CLIENT1(config-router)#neighbor 192.168.1.33 route-map ISP-IN in
CLIENT1(config-router)#neighbor 192.168.1.33 route-map ISP-OUT out
CLIENT1(config-router)#network 192.168.64.0 mask 255.255.255.0
CLIENT1(config-router)#network 192.168.65.0 mask 255.255.255.0
CLIENT1(config-router)#exit

এখন যদি আমরা রাউটারদ্বয়ে #show ip bgp summary ও #show ip route bgp কমান্ড দিই তাহলে দেখতে পাবো যে, POP1 রাউটার CLIENT-1 থেকে 192.168.64.0/24 ও 192.168.65.0/24 রাউট দুইটি পাচ্ছে এবং CLIENT-1 আই.এস.পি এর কাছ থেকে Default Route পাচ্ছে।

POP1#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
10.0.0.1        4   200      20      19        8    0    0 00:15:46        5
10.0.0.3        4   200      18      19        8    0    0 00:15:49        0
192.168.1.34    4   300       6       6        8    0    0 00:01:24        2
POP1#show ip route bgp
B    192.168.64.0/24 [20/0] via 192.168.1.34, 00:01:25
B    192.168.65.0/24 [20/0] via 192.168.1.34, 00:01:25
B    192.168.0.0/24 [200/0] via 10.0.0.1, 00:16:32
     192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
B       192.168.1.0/24 [200/0] via 10.0.0.1, 00:16:32
B    192.168.2.0/24 [200/0] via 10.0.0.1, 00:16:32
B    192.168.3.0/24 [200/0] via 10.0.0.1, 00:16:32
B*   0.0.0.0/0 [200/0] via 10.0.0.1, 00:16:32
CLIENT1#show ip bgp summary

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
192.168.1.33    4   200       6       6        4    0    0 00:01:37        1
CLIENT1#show ip route bgp
B*   0.0.0.0/0 [20/0] via 192.168.1.33, 00:02:35

কাজ এখানেই শেষ নয়!!! আমরা যদি আই.এস.পি এর Core রাউটারে #show ip route bgp কমান্ড দিই তাহলে দেখতে পাবো যে, এর রাউটিং টেবিলে CLIENT-1 এর 192.168.64.0/24 এবং 192.168.65.0/24 রাউট দুইটি আছে যাদের Nexthop হলো 192.168.1.34 ।

CORE#show ip route bgp
B    192.168.64.0/24 [200/0] via 192.168.1.34, 00:02:29
B    192.168.65.0/24 [200/0] via 192.168.1.34, 00:02:29
B*   0.0.0.0/0 [20/0] via 192.168.32.65, 00:17:36

কিন্তু Core রাউটার এখনো নিজেই 192.168.1.34 আই.পি কে স্পেসিফিকভাবে চেনে না। Core রাউটার 192.168.1.0/24 নেটওয়ার্কটি চেনে, কারণ আই.আই.জি এর কাছে প্রিফিক্স অরিজিনেট করার সময় Pull UP Route হিসেবে একটি Null0 স্ট্যাটিক রাউট কনফিগার করা হয়েছিল। আর POP1 রাউটার তার eBGP Neighbor CLIENT-1 এর কাছ থেকে প্রাপ্ত প্রিফিক্স 192.168.64.0/24 এবং 192.168.65.0/24 কে Core রাউটারের কাছে iBGP এর মাধ্যমে Advertise করার সময় Nexthop পরিবর্তন করে নি। এ সমস্যা সমাধনের জন্য আমরা POP1 রাউটার থেকে 192.168.1.32/30 প্রিফিক্সটি অরিজিনেট করবো এবং iBGP Neighbor এর সাথে #next-hop-self কমান্ডটি ব্যবহার করবো।

POP1(config)#router bgp 200
POP1(config-router)#network 192.168.1.32 mask 255.255.255.252
POP1(config-router)#neighbor 10.0.0.1 next-hop-self
POP1(config-router)#neighbor 10.0.0.3 next-hop-self
POP1(config-router)#exit
POP1#clear ip bgp *

এখন যদি আমরা আই.এস.পি এর Core রাউটারে #show ip route bgp কমান্ড দিই তাহলে দেখতে পাবো যে, এর রাউটিং টেবিলে CLIENT-1 এর 192.168.64.0/24 এবং 192.168.65.0/24 রাউট দুইটি আছে যাদের Nexthop হলো 10.0.0.2 । এবং Core রাউটার এখন 192.168.1.32/30 নেটওয়ার্কটিকে স্পেসিফিকভাবে চেনে।

CORE#show ip route bgp
B    192.168.64.0/24 [200/0] via 10.0.0.2, 00:00:40
B    192.168.65.0/24 [200/0] via 10.0.0.2, 00:00:40
     192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
B       192.168.1.32/30 [200/0] via 10.0.0.2, 00:00:04
B*   0.0.0.0/0 [20/0] via 192.168.32.65, 00:25:43

আমরা ping কমান্ডের মাধ্যমে আই.পিগুলো Rechable কি না তা চেক করে দেখতে পারি।

CORE#ping 192.168.1.34

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.34, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 48/60/84 ms

CORE#ping 192.168.64.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.64.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 48/66/76 ms

CORE#ping 192.168.65.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.65.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/68/88 ms

অর্থাৎ, আই.এস.পি ও CLIENT-1 নিজেদের মধ্যে ভালভাবেই কমিউনিকেট করতে পারছে। কিন্তু CLIENT-1 কি এখন তার নিজস্ব আই.পি ব্যবহার করে আই.আই.জি এর সাথে কমিউনিকেট করতে পারবে? মানে, CLIENT-1 কি এখন তার নিজস্ব আই.পি ব্যবহার করে ইন্টারনেট পাবে?

CLIENT1#ping 192.168.32.65 source 192.168.64.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.32.65, timeout is 2 seconds:
Packet sent with a source address of 192.168.64.1
.....
Success rate is 0 percent (0/5)

উত্তর হলো, না!! পাবে না!!

IIG#show ip route bgp
B    192.168.0.0/24 [20/0] via 192.168.32.66, 00:01:09
B    192.168.1.0/24 [20/0] via 192.168.32.66, 00:01:09
B    192.168.2.0/24 [20/0] via 192.168.32.66, 00:01:09
B    192.168.3.0/24 [20/0] via 192.168.32.66, 00:01:09

কারণ, আই.আই.জি এর রাউটিং টেবিলে CLIENT-1 এর নিজস্ব আই.পি ব্লকগুলো নেই। কারণ, আমরা যখন আই.আই.জি এর সাথে আই.এস.পি এর eBGP Peering কনফিগার করেছিলাম তখন উভয় রাউটারেই প্রিফিক্স ফিল্টার করেছি। এখন আমাদেরকে এই প্রিফিক্স ফিল্টার এ CLIENT-1 এর নিজস্ব আই.পি ব্লক পারমিট করতে হবে। এজন্য আমরা আই.আই.জি ও আই.এস.পি রাউটারে নিচের কমান্ড দিব।

CORE#show ip prefix-list
ip prefix-list IIG-IN: 1 entries
   seq 10 permit 0.0.0.0/0
ip prefix-list IIG-OUT: 4 entries
   seq 10 permit 192.168.0.0/24
   seq 20 permit 192.168.1.0/24
   seq 30 permit 192.168.2.0/24
   seq 40 permit 192.168.3.0/24

CORE#conf t
CORE(config)#ip prefix-list IIG-OUT seq 50 permit 192.168.64.0/23 le 24
CORE(config)#exit

CORE#clear ip bgp 192.168.32.65
IIG#show ip prefix-list
ip prefix-list ISP-IN: 1 entries
   seq 10 permit 192.168.0.0/22 le 24
ip prefix-list ISP-OUT: 1 entries
   seq 10 permit 0.0.0.0/0

IIG#conf t
IIG(config)#ip prefix-list ISP-IN seq 20 permit 192.168.64.0/23 le 24
IIG(config)#exit

IIG#clear ip bgp 192.168.32.66

এখানে একটি বিষয় লক্ষ্যনীয় যে, যখনই আই.এস.পি এর কোন নতুন ক্লায়েন্ট eBGP Peering করে নিজস্ব আই.পি ব্যবহার করে ইন্টারনেট ব্যবহার করতে চাইবে তখন আই.এস.পি কে আই.আই.জি এর সাথে যোগাযোগ করে ক্লায়েন্টের আই.পি প্রিফিক্সগুলো Permit করিয়ে নিতে হবে। (যদিও অটোমেটিকভাবে প্রিফিক্স Permit করার জন্য কিছু এ্যাডভান্স লেভেলের টেকনিক আছে কিন্তু সব আই.আই.জি তা ব্যবহার করে না।)

এখন যদি আমরা আই.আই.জি এর রাউটিং টেবিল চেক করি তাহলে সেখানে CLIENT-1 এর নিজস্ব আই.পি ব্লকগুলো পাবো।

IIG#show ip route bgp
B    192.168.64.0/24 [20/0] via 192.168.32.66, 00:01:30
B    192.168.65.0/24 [20/0] via 192.168.32.66, 00:01:30
B    192.168.0.0/24 [20/0] via 192.168.32.66, 00:01:30
B    192.168.1.0/24 [20/0] via 192.168.32.66, 00:01:30
B    192.168.2.0/24 [20/0] via 192.168.32.66, 00:01:30
B    192.168.3.0/24 [20/0] via 192.168.32.66, 00:01:30

এবং এখন CLIENT-1 তার নিজস্ব আই.পি ব্যবহার করে আই.আই.জি এর সাথে কমিউনিকেট করতে পারবে। মানে, CLIENT-1 তার নিজস্ব আই.পি ব্যবহার করে ইন্টারনেট পাবে।

CLIENT1#ping 192.168.32.65 source 192.168.64.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.32.65, timeout is 2 seconds:
Packet sent with a source address of 192.168.64.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 88/99/128 ms

৪. এখন আমরা CLIENT-2 কে আই.এস.পি এর POP2 এর সাথে কানেক্ট করবো। আগেই বলা হয়েছে যে, CLIENT-2 এর কোন নিজস্ব Public AS বা আই.পি ব্লক নেই। আই.এস.পি CLIENT-2 কে একটি পয়েন্ট-টু-পয়েন্ট আই.পি 192.168.2.64/30 দিবে eBGP Peering এর জন্য। এক্ষেত্রে CLIENT-2 একটি Private ASN (AS64512) ব্যবহার করে eBGP Peering করবে এবং ল্যান সাইডে ব্যবহার করার জন্য আই.এস.পি CLIENT-2 কে নিজের একটি আই.পি ব্লক 192.168.2.128/29 দিবে যা CLIENT-2 eBGP এর মাধ্যমে অরিজিনেট করবে। আই.এস.পি CLIENT-2 কে শুধু Default Route দিবে।

CLIENT-2 এর সাথে POP2 এর eBGP Peering এর জন্য রাউটার দুইটিতে নিচের কমান্ড দিতে হবে।

POP2#conf t
POP2(config)#interface fastEthernet 1/0
POP2(config-if)#ip address 192.168.2.65 255.255.255.252
POP2(config-if)#no shutdown
POP2(config-if)#description CLIENT-2
POP2(config-if)#exit
CLIENT2#conf t
CLIENT2(config)#interface fastEthernet 0/0
CLIENT2(config-if)#ip address 192.168.2.66 255.255.255.252
CLIENT2(config-if)#no shutdown
CLIENT2(config-if)#description ISP
CLIENT2(config-if)#exit
CLIENT2(config)#interface loopback 1
CLIENT2(config-if)#ip address 192.168.2.129 255.255.255.248
CLIENT2(config-if)#exit
POP2#conf t
POP2(config)#ip prefix-list CLIENT2-IN seq 10 permit 192.168.2.128/29
POP2(config)#ip prefix-list CLIENT2-OUT seq 10 permit 0.0.0.0/0

POP2(config)#route-map CLIENT2-IN
POP2(config-route-map)#match ip address prefix-list CLIENT2-IN
POP2(config-route-map)#exit
POP2(config)#route-map CLIENT2-OUT
POP2(config-route-map)#match ip address prefix-list CLIENT2-OUT
POP2(config-route-map)#exit

POP2(config)#router bgp 200
POP2(config-router)#neighbor 192.168.2.66 remote-as 64512
POP2(config-router)#neighbor 192.168.2.66 route-map CLIENT2-IN in
POP2(config-router)#neighbor 192.168.2.66 route-map CLIENT2-OUT out
POP2(config-router)#neighbor 10.0.0.1 next-hop-self
POP2(config-router)#neighbor 10.0.0.2 next-hop-self
POP2(config-router)#exit
CLIENT2#conf t
CLIENT2(config)#ip prefix-list ISP-IN seq 10 permit 0.0.0.0/0
CLIENT2(config)#ip prefix-list ISP-OUT seq 10 permit 192.168.2.128/29

CLIENT2(config)#route-map ISP-IN
CLIENT2(config-route-map)#match ip address prefix-list ISP-IN
CLIENT2(config-route-map)#exit
CLIENT2(config)#route-map ISP-OUT
CLIENT2(config-route-map)#match ip address prefix-list ISP-OUT
CLIENT2(config-route-map)#exit

CLIENT2(config)#router bgp 64512
CLIENT2(config-router)#neighbor 192.168.2.65 remote-as 200
CLIENT2(config-router)#neighbor 192.168.2.65 route-map ISP-IN in
CLIENT2(config-router)#neighbor 192.168.2.65 route-map ISP-OUT out
CLIENT2(config-router)#network 192.168.2.128 mask 255.255.255.248
CLIENT2(config-router)#exit

এখানে, CLIENT-2 রাউটার POP2 এর সাথে eBGP Peering এর জন্য একটি Private ASN 64512 ব্যবহার করেছে। Rigional Internet Registry (RIR) থেকে বরাদ্দকৃত ASN সমূহ দুই রকমের হয়।

i) 2 byte বা 16 bit ASN যার রেঞ্জ হলো 0 থেকে 65535 ।
ii) 4 byte বা 32 bit ASN যার রেঞ্জ হলো 65536 থেকে 4294967295 ।

2 byte ASN এর সংখ্যা কম বলে পরবর্তীতে 4 byte ASN এর আবির্ভাব হয়েছে। আর 2 byte ASN এর মধ্য থেকে 64512 থেকে 65534 পর্যন্ত নম্বরগুলো Private ASN হিসেবে রাখা হয়েছে। যদি কারো Public ASN না থাকে কিন্তু তারপরও eBGP Peering করার দরকার হয় তাহলে সে 2 byte ASN এর 64512 থেকে 65534 পর্যন্ত নম্বরগুলোর মধ্য থেকে যেকোন একটি ব্যবহার করে eBGP Peering করতে পারবে। আর তাই এখানে CLIENT2 রাউটারে Private ASN হিসেবে 64512 ব্যবহার করা হয়েছে।

Private ASN ব্যবহারের ক্ষেত্রে একটি কথা বিশেষভাবে উল্লেখযোগ্য যে, যেহেতু এটি Private (অর্থাৎ ইন্টারনেটের কোন BGP রাউটারেরই এই Private ASN চেনার দরকার নেই, তাই আই.এস.পি এর Core রাউটারের সাথে আই.আই.জি এর eBGP Peering এর সময় Core রাউটারে বলে দিতে হবে, এটি যাতে যেকোন Private ASN কে রিমুভ (Remove) করে দিয়ে নিজের ASN ব্যবহার করে আই.আই.জি এর কাছে প্রিফিক্স Advertise করে। আর এই কারণে আই.এস.পি এর Core রাউটারে নিচের কমান্ড দিতে হবে।

CORE#conf t
CORE(config)#router bgp 200
CORE(config-router)#neighbor 192.168.32.65 remove-private-as
CORE(config-router)#exit

CORE#clear ip bgp 192.168.32.65

এখানে CLIENT-2 এর সাথে eBGP Peerig এর ক্ষেত্রে আই.আই.জি রাউটারে নতুন করে Prefix Filter আপডেট করতে হবে না। কারণ, CLIENT-2 যে প্রিফিক্সটি (192.168.2.128/29) অরিজিনেট করেছে তা আই.এস.পি এর নিজস্ব আই.পি যা ইতিমধ্যে 192.168.2.0/24 হিসেবে দুই রাউটারের মধ্যে Permit করাই আছে।

এখন যদি আমরা CLIENT-2 রাউটার থেকে আই.আই.জি রাউটারে Ping দিই তাহলে দেখতে পাবো যে, CLIENT-2 রাউটার থেকে আই.আই.জি রাউটারে Ping পাওয়া যাচ্ছে অর্থাৎ ইন্টারনেট পাওয়া যাচ্ছে।

CLIENT2#ping 192.168.32.65 source 192.168.2.129

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.32.65, timeout is 2 seconds:
Packet sent with a source address of 192.168.2.129
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/52/76 ms

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