iBGP Peering Concept and Basic Configuration
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 কিভাবে পাশাপাশি কাজ করে তা জানতে পারবেন। ভাল থাকবেন, আল্লাহ হাফেজ।
Comments
Post a Comment