আসসালামু আলাইকুম। আশাকরি MPLS এর আগের দুইটি টিউটোরিয়াল দেখে আপনারা এর প্রয়োজনীয়তা, প্রয়োগ এবং বেসিক থিওরী-কনফিগারেশনের অংশটুকু সঠিকভাবে সম্পন্ন করতে পেরেছেন। নিচের লিঙ্ক এর মাধ্যমে আপনারা চাইলে আগের টিউটোরিয়াল দুইটি থেকে ঢু মেরে আসতে পারেন।
Multi Protocol Label Switching (MPLS) Fundamentals
MPLS Tables, LSR ID, Broken LSP
আজকের টিউটোরিয়ালে আমরা MPLS এর একটি চমৎকার ফিচার নিয়ে আলোচনা করবো, আর সেটি হলো MPLS L3 VPN ।
আমাদের চিত্রের টপোলজি অনুযায়ী, ধরি, আই.এস.পি এর একটি ক্লায়েন্ট ABC তার দুইটি ভিন্ন লোকেশনের মধ্যে (ABC-1 ও ABC-2) ডাটা আদান-প্রদানের জন্য আই.এস.পি এর কাছ থেকে ডাটা কানেক্টিভিটি নিয়েছে। ABC-1 আই.এস.পি এর R1 রাউটারের সাথে যুক্ত যার পয়েন্ট-টু-পয়েন্ট আই.পি 10.0.0.0/30 এবং ABC-1 এর ল্যান সাইডের আই.পি 192.168.10.0/24। অন্যদিকে, ABC-2 আই.এস.পি এর R4 রাউটারের সাথে যুক্ত যার পয়েন্ট-টু-পয়েন্ট আই.পি 50.0.0.0/30 এবং ABC-2 এর ল্যান সাইডের আই.পি 172.16.10.0/24। এখানে ডাটা আদান-প্রদানের জন্য ক্লায়েন্টের দুই লোকেশনের আই.পি.গুলো (192.168.10.0/24 ও 172.16.10.0/24) আই.এস.পি রাউটিং করে দিবে। রাউটিং ও অন্যান্য কনফিগারেশন ঠিক থাকলে ক্লায়েন্ট তার ABC-1 ও ABC-2 লোকেশনের মধ্যে ডাটা আদান-প্রদান করতে পারবে।
ধরি, পরবর্তীতে আরো একটি ক্লায়েন্ট XYZ আসলো আই.এস.পি এর কাছ থেকে ডাটা কানেক্টিভিটি নেওয়ার জন্য এবং তাদের আই.পি রিকোয়ার্মেন্টও ABC এর মতো। অর্থাৎ ক্লায়েন্ট XYZ এর XYZ-1 লোকেশনের পয়েন্ট-টু-পয়েন্ট আই.পি 10.0.0.0/30 এবং ল্যান সাইডের আই.পি 192.168.10.0/24। আবার XYZ-2 লোকেশনের পয়েন্ট-টু-পয়েন্ট আই.পি 50.0.0.0/30 এবং ল্যান সাইডের আই.পি 172.16.10.0/24। যেহেতু ABC এবং XYZ ক্লায়েন্টদ্বয়ের আই.পি রিকোয়ার্মেন্ট একই রকম তাই আই.এস.পি নেটওয়ার্কে ট্রাডিশনাল আই.পি রাউটিং দিয়ে তা পূরণ করা সম্ভব নয়। ট্রাডিশনাল আই.পি রাউটিং এর ক্ষেত্রে আই.এস.পি রাউটারের রাউটিং টেবিলে এক ক্লায়েন্টের রাউটিং ইনফরমেশন আরেক ক্লায়েন্টের রাউটিং ইনফরমেশনের সাথে ওভারল্যাপ করবে এবং ক্লায়েন্টদের ট্রাফিক আদান-প্রদান বিঘ্নিত হবে। এই সমস্যা থেকে সমাধানের উপায় হিসেবে এবং উভয় ক্লায়েন্টের রিকোয়ার্মেন্ট পূরণ করার জন্য আই.এস.পি এর MPLS এনাবলড নেটওয়ার্কে MPLS L3 VPN কনফিগার করা হয়।
MPLS L3 VPN হলো এমন এক ধরণের টেকনিক যার মাধ্যমে আই.এস.পি এর PE রাউটার R1 তার সাথে যুক্ত ABC-1 ও XYZ-1 এর রাউটিং টেবিল সম্পূর্ণ আলাদা রাখে। এক্ষেত্রে রাউটিং টেবিল আলাদা রাখার জন্য R1 রাউটার তার নিজের মধ্যে একাধিক VRF তৈরী করে। VRF এর পূর্ণরূপ হলো Virtual Routing and Forwarding । VRF হলো একটি ফিজিক্যাল রাউটারের মধ্যে থাকা একটি ভার্চুয়াল রাউটার। (আমরা একটি ফিজিক্যাল কম্পিউটারের মধ্যে VMWare দিয়ে যেভাবে একাধিক ভার্চুয়াল হোষ্ট কনফিগার করি ঠিক সেরকমই)। একটি ফিজিক্যাল রাউটারের মধ্যে একাধিক VRF তৈরী করা যায় এবং প্রতিটি VRF সম্পূর্ণ আলাদাভাবে পৃথক পৃথক ক্লায়েন্টের জন্য রাউটিং টেবিল মেইনটেইন করতে পারে এবং এক ক্লায়েন্টের রাউটিং ইনফরমেশন আরেক ক্লায়েন্টের রাউটিং ইনফরমেশনের সাথে ওভারল্যাপ করে না। (অর্থাৎ এখানে রাউটার একটি, কিন্তু এটি লজিক্যালী দুই বা ততোধিক রাউটার হিসেবে কাজ করে।) একইভাবে R4 রাউটারেও VRF তৈরীর মাধ্যমে ABC-2 ও XYZ-2 এর রাউটিং ইনফরমেশন সম্পূর্ণ আলাদা রাখা হয়।
দুইটি PE (R1 ও R4) রাউটারে কনফিগারকৃত VRF এর মধ্যে থাকা রাউটসমূহ রাউটারদ্বয়ের মধ্যে শেয়ার করার জন্য VPN Route ব্যবহার করা হয়। আরো সুনির্দিষ্টভাবে বলতে গেলে IPv4 এর ক্ষেত্রে VPNv4 Route এর মাধ্যমে R1 এর VRF সমূহের রাউটসমূহ R4 এর VRF সমূহে পাঠানো হয়। এখানে VPN Route বলতে R1 ও R4 এর মধ্যে কোন Tunnel বা Encryption বুঝানো হয় নি, VPN Route দ্বারা এটিই বুঝানো হচ্ছে যে, ক্লায়েন্টদের রাউটিং ইনফরমেশনগুলো লজিক্যালী আলাদা রাখা।
দুইটি PE (R1 ও R4) রাউটারের মধ্যে VPNv4 Route আদান-প্রদান করতে হলে রাউটারদ্বয়ের মধ্যে MBGP কনফিগার করতে হয়। MBGP এর পূর্ণরূপ হলো MultiProtocol BGP । MBGP এমন এক ধরণের প্রটোকল যার মাধ্যমে বিভিন্ন ধরণের যেমনঃ IPv4, IPv6, VPNv4, VPNv6 ইত্যাদি ট্রাফিক একই সাথে হ্যান্ডল করা যায়।
সমগ্র প্রক্রিয়াটির চুম্বক অংশ নিচে দেওয়া হলোঃ
১. প্রথমে ABC-1 রাউটার R1 এর কাছে নিজের রাউটিং ইনফরমেশন (192.168.10.0/24) পাঠাবে। আবার XYZ-1ও রাউটার R1 এর কাছে নিজের রাউটিং ইনফরমেশন (192.168.10.0/24) পাঠাবে।
২. এক্ষেত্রে R1 দুইটি আলাদা VRF 101:ABC ও 102:XYZ এর মধ্যে যথাক্রমে ABC-1 ও XYZ-1 এর রাউটিং ইনফরমেশন রাখবে। (এখানে 101:ABC ও 102:XYZ হলো দুইটি VRF এর নাম যা R1 রাউটারের জন্য Locally Significant এবং সব PE রাউটারে একই হওয়া জরুরী নয়।)
৩. R1 তার VRF 101:ABC ও 102:XYZ এর মধ্যে রাখা রাউটিং ইনফরমেশন MBGP তে VPNv4 Route হিসেবে Export করবে। এখানে Export শব্দটি দ্বারা বুঝানো হয়েছে রাউটসমূহ VRF থেকে MBGP তে যাবে। যদি কখনো রাউটসমূহ MBGP থেকে VRF এ যায় তাহলে তাকে Import বলে। এখানে R1 রাউটার VPNv4 Route সমূহ Export করার সময় এর সাথে Route Distinguisher (RD)/Route Target (RT) যোগ করবে। এখানে RD ও RT দ্বারাই রাউটার বুঝতে পারে কোন রাউটটি কোন ক্লায়েন্টের জন্য। পরবর্তীতে RD ও RT সম্পর্কে আলোচনা করা হবে।
৪. অতঃপর R1 রাউটার MBGP এর মাধ্যমে VPNv4 Route সমূহকে R4 এর কাছে পাঠাবে।
৫. R4 রাউটার MBGP এর মাধ্যমে VPNv4 Route সমূহ রিসিভ করে নির্দিষ্ট RD ও RT এর ভিত্তিতে নির্দিষ্ট ক্লায়েন্টের VRF এ Import করবে।
৬. সবশেষে রাউটসমূহ R4 রাউটারের VRF থেকে ABC-2 ও XYZ-2 রাউটারে যাবে।
পক্ষান্তরে, ঠিক একই প্রক্রিয়ায় ABC-2 ও XYZ-2 এর রাউটসমূহও যথাক্রমে ABC-1 ও XYZ-1 রাউটারের কাছে আসবে। MPLS L3 VPN এর মাধ্যমে বিভিন্ন ক্লায়েন্টদের রাউটিং ইনফরমেশন মূলত এভাবেই শেয়ার করা হয়।
MPLS L3 VPN কনফিগার করার জন্য বেশ কয়েকটি ধাপ অনুসরণ করতে হয়। যেমনঃ
i) PE রাউটারসমূহের মধ্যে MBGP কনফিগার করা। (MBGP কনফিগার করার আগে PE রাউটারসমূহের মধ্যে আবার iBGP কনফিগার করতে হবে।)
ii) PE রাউটারসমূহের মধ্যে VRF তৈরী করা।
iii) PE ও CE রাউটারসমূহের মধ্যে ডাইনামিক রাউটিং কনফিগার করা।
iv) VRF ও MBGP এর মধ্যে রাউটসমূহ Export ও Import করা।
v) এবং সবশেষে End-to-End কানেক্টিভিটি চেক করা।
উপরিউল্লেখিত ধাপসমূহ কনফিগার করার আগে আমরা চিত্রে প্রদত্ত টপোলজি অনুসারে প্রথমে আই.এস.পি এর কোর রাউটারসমূহের মধ্যে আই.পি. এ্যাড্রেসসমূহ কনফিগার করবো। এখন আমরা কোন ক্লায়েন্ট রাউটার কনফিগার করবো না, এমনকি আই.এস.পি রাউটারের যে ইন্টারফেসসমূহ ক্লায়েন্ট রাউটারসমূহের সাথে যুক্ত সেই ইন্টারফেসগুলোও এখন কনফিগার করবো না।
R1#conf t R1(config)#interface fastEthernet 0/1 R1(config-if)#ip address 20.0.0.2 255.255.255.252 R1(config-if)#no shutdown R1(config-if)#description R2 R1(config-if)#exit R1(config)#interface loopback 0 R1(config-if)#ip address 1.1.1.1 255.255.255.255 R1(config-if)#exit
R2#conf t R2(config)#interface fastEthernet 0/0 R2(config-if)#ip address 20.0.0.1 255.255.255.252 R2(config-if)#no shutdown R2(config-if)#description R1 R2(config-if)#exit R2(config)#interface fastEthernet 0/1 R2(config-if)#ip address 30.0.0.1 255.255.255.252 R2(config-if)#no shutdown R2(config-if)#description R3 R2(config-if)#exit R2(config)#interface loopback 0 R2(config-if)#ip address 2.2.2.2 255.255.255.255 R2(config-if)#exit
R3#conf t R3(config)#interface fastEthernet 0/0 R3(config-if)#ip address 30.0.0.2 255.255.255.252 R3(config-if)#no shutdown R3(config-if)#description R2 R3(config-if)#exit R3(config)#interface fastEthernet 0/1 R3(config-if)#ip address 40.0.0.1 255.255.255.252 R3(config-if)#no shutdown R3(config-if)#description R4 R3(config-if)#exit R3(config)#interface loopback 0 R3(config-if)#ip address 3.3.3.3 255.255.255.255 R3(config-if)#exit
R4#conf t R4(config)#interface fastEthernet 0/0 R4(config-if)#ip address 40.0.0.2 255.255.255.252 R4(config-if)#no shutdown R4(config-if)#description R3 R4(config-if)#exit R4(config)#interface loopback 0 R4(config-if)#ip address 4.4.4.4 255.255.255.255 R4(config-if)#exit
অতঃপর আমরা আই.এস.পি এর কোর রাউটারসমূহের মধ্যে IGP হিসেবে OSPF কনফিগার করবো। এখানে ক্লায়েন্ট রাউটারে কোন OSPF থাকবে না।
R1#conf t R1(config)#router ospf 1 R1(config-router)#network 20.0.0.0 0.0.0.3 area 10 R1(config-router)#network 1.1.1.1 0.0.0.0 area 10 R1(config-router)#exit
R2#conf t R2(config)#router ospf 1 R2(config-router)#network 20.0.0.0 0.0.0.3 area 10 R2(config-router)#network 30.0.0.0 0.0.0.3 area 10 R2(config-router)#network 2.2.2.2 0.0.0.0 area 10 R2(config-router)#exit
R3#conf t R3(config)#router ospf 1 R3(config-router)#network 30.0.0.0 0.0.0.3 area 10 R3(config-router)#network 40.0.0.0 0.0.0.3 area 10 R3(config-router)#network 3.3.3.3 0.0.0.0 area 10 R3(config-if)#exit
R4#conf t R4(config)#router ospf 1 R4(config-router)#network 40.0.0.0 0.0.0.3 area 10 R4(config-router)#network 4.4.4.4 0.0.0.0 area 10 R4(config-if)#exit
আই.এস.পি এর কোর রাউটারসমূহের মধ্যে OSPF কনফিগার করার পর আমরা কানেক্টিভিটি চেক করে দেখবো।
R1#ping 4.4.4.4 source 1.1.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 60/96/128 ms
সব কিছু ঠিক থাকলে এখন আমরা আই.এস.পি এর কোর রাউটারসমূহের মধ্যে MPLS এনাবল করবো।
R1#conf t R1(config)#mpls label range 100 199 R1(config)#mpls ip R1(config)#interface fastEthernet 0/1 R1(config-if)#mpls ip R1(config-if)#exit
R2#conf t R2(config)#mpls label range 200 299 R2(config)#mpls ip R2(config)#interface fastEthernet 0/0 R2(config-if)#mpls ip R2(config-if)#exit R2(config)#interface fastEthernet 0/1 R2(config-if)#mpls ip R2(config-if)#exit
R3#conf t R3(config)#mpls label range 300 399 R3(config)#mpls ip R3(config)#interface fastEthernet 0/0 R3(config-if)#mpls ip R3(config-if)#exit R3(config)#interface fastEthernet 0/1 R3(config-if)#mpls ip R3(config-if)#exit
R4#conf t R4(config)#mpls label range 400 499 R4(config)#mpls ip R4(config)#interface fastEthernet 0/0 R4(config-if)#mpls ip R4(config-if)#exit
এতটুকু কনফিগারেশন করলেই আই.এস.পি রাউটারসমূহে MPLS কাজ করবে। এবং আমাদের প্রাথমিক কনফিগারেশন সম্পন্ন হবে।
এখন আমরা MPLS L3 VPN কনফিগার করার জন্য উপরিউল্লেখিত পাঁচটি ধাপের কাজ পর্যায়ক্রমে সম্পন্ন করবো।
ধাপ-১: PE রাউটারসমূহের মধ্যে MBGP কনফিগার করা।
MBGP কনফিগার করার পূর্বশর্ত হিসেবে আগে PE রাউটারসমূহের মধ্যে iBGP কনফিগার করতে হবে। এখানে আমরা আই.এস.পি রাউটারসমূহের মধ্যে Full Mesh iBGP Peering করবো না, শুধু R1 ও R4 এর মধ্যে iBGP Peering করবো। এখানে Full Mesh iBGP Peering করলেও এখানে কোন সমস্যা নেই।
R1#conf t R1(config)#router bgp 100 R1(config-router)#neighbor 4.4.4.4 remote-as 100 R1(config-router)#neighbor 4.4.4.4 update-source loopback 0 R1(config-router)#exit
R4#conf t R4(config)#router bgp 100 R4(config-router)#neighbor 1.1.1.1 remote-as 100 R4(config-router)#neighbor 1.1.1.1 update-source loopback 0 R4(config-router)#exit
iBGP কনফিগারেশন সম্পন্ন হলে আমরা রাউটারদ্বয়ের BGP Status চেক করতে পারি।
R1#show ip bgp summary BGP router identifier 1.1.1.1, local AS number 100 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 4.4.4.4 4 100 8 8 1 0 0 00:02:56 0
R4#show ip bgp summary BGP router identifier 4.4.4.4, local AS number 100 BGP table version is 1, main routing table version 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 1.1.1.1 4 100 8 8 1 0 0 00:02:42 0
এখানে আমরা শুধুমাত্র iBGP Peering করেছি, কিন্তু এখনো কোন Network অরিজিনেট করি নাই। BGP বাই ডিফল্ট IPv4 নিয়ে কাজ করে, এর মধ্যে MBGP এনাবল করার জন্য আমরা নিচের কমান্ড ব্যবহার করবো।
R1#conf t R1(config)#router bgp 100 R1(config-router)#address-family vpnv4 R1(config-router-af)#neighbor 4.4.4.4 activate R1(config-router-af)#neighbor 4.4.4.4 send-community extended R1(config-router-af)#exit
R4#conf t R4(config)#router bgp 100 R4(config-router)#address-family vpnv4 R4(config-router-af)#neighbor 1.1.1.1 activate R4(config-router-af)#neighbor 1.1.1.1 send-community extended R4(config-router-af)#exit
MBGP কনফিগারেশনের ক্ষেত্রে এখানে address-family হিসেবে vpnv4 নির্বাচন করা হয়েছে। এছাড়া এখানে Neighbor এর সাথে send-community extended কমান্ড ব্যবহার করা হয়েছে। যখন কোন PE রাউটার ক্লায়েন্টের কাছ থেকে কোন রাউট রিসিভ করে এবং তা MBGP এর মাধ্যমে অন্য কোন PE রাউটারের সাথে শেয়ার করে তখন রাউটটি ঠিক কোন ক্লায়েন্টের জন্য হবে তা নির্ধারণ করার জন্য এর সাথে একটি Route Target (RT) যোগ করা হয়। Route Target (RT) টি Extended Communinity আকারে এক PE থেকে আরেক PE তে গমন করে। এ কমান্ড না দিলে MBGP এর VPNv4 রাউটের সাথে Route Target (RT) যুক্ত হবে না। আর Route Target (RT) যুক্ত না হলে অপর PE বুঝতে পারবে না যে, উক্ত রাউটটি কোন ক্লায়েন্ট এর জন্য।
MBGP কনফিগারেশনের পর আমরা PE রাউটারদ্বয়ের Capabilities চেক করে দেখতে পারি।
R1#show ip bgp neighbors | section capabilities
Neighbor capabilities:
Route refresh: advertised and received(new)
Four-octets ASN Capability: advertised and received
Address family IPv4 Unicast: advertised and received
Address family VPNv4 Unicast: advertised and received
Enhanced Refresh Capability: advertised and received
Multisession Capability:
Stateful switchover support enabled: NO for session 1
R4#show ip bgp neighbors | section capabilities
Neighbor capabilities:
Route refresh: advertised and received(new)
Four-octets ASN Capability: advertised and received
Address family IPv4 Unicast: advertised and received
Address family VPNv4 Unicast: advertised and received
Enhanced Refresh Capability: advertised and received
Multisession Capability:
Stateful switchover support enabled: NO for session 1
ধাপ-২: PE রাউটারসমূহে VRF তৈরী করা।
এখন আমরা আই.এস.পি এর PE রাউটার R1 ও R4 এ ক্লায়েন্ট ABC ও XYZ এর জন্য আলাদা দুইটি VRF অর্থাৎ ভার্চুয়াল রাউটার তৈরী করবো। এখানে দুইটি VRF এর মধ্যে ক্লায়েন্ট ABC ও XYZ এর রাউটিং টেবিল সম্পূর্ণ আলাদা থাকবে। যেমনঃ R1 রাউটারে ABC-1 ক্লায়েন্টের জন্য VRF এর নাম হলো ABC এবং XYZ-1 ক্লায়েন্টের জন্য VRF এর নাম হলো XYZ । অনুরূপভাবে, R4 রাউটারে ABC-2 ক্লায়েন্টের জন্য VRF এর নাম হলো ABC এবং XYZ-2 ক্লায়েন্টের জন্য VRF এর নাম হলো XYZ । এখানে কোন নির্দিষ্ট ক্লায়েন্টের জন্য দুইটি PE রাউটারে VRF এর নাম একই হওয়া জরুরী নয়।
R1 যখন MBGP এর মধ্য দিয়ে VPNv4 আকারে R4 এর কাছে ABC-1 ও XYZ-1 এর রাউট পাঠাবে তখন R1 কে অবশ্যই এমন একটি মেকানিজম যুক্ত করতে হবে যাতে করে VPNv4 রাউট দুইটি MBGP এর মধ্যে আলাদা থাকে। আর এজন্য R1 রাউটারে Route Distinguisher (RD) কনফিগার করতে হয়। RD এখানে একটি খুবই গুরুত্বপূর্ণ বিষয়।
Route Distinguisher এর কাজ হলো শুধুমাত্র R1 ও R4 এর মধ্যকার MBGP এর মধ্যে VPNv4 রাউটসমূহ চিহ্নিত করা। কিন্তু R1 যখন তার দুইটি VRF এর রাউট MBGP এর মধ্য দিয়ে R4 এর কাছে পাঠাবে তখন R4 কিভাবে বুঝবে যে কোন রাউটটিকে তার কোন VRF এর মধ্যে Import করতে হবে (এখানে R4 এও কিন্তু দুইটি VRF আছে)?
এই সমস্যা সমাধানের জন্য R1 তার দুইটি VRF থেকে MBGP তে দুইটি রাউট Export করার সময় রাউট দুইটির সাথে দুইটি আলাদা Extended Community Tag যুক্ত করে দেবে। এই ট্যাগকে Route Target (RT) বলে। এজন্য R1 এর সংশ্লিষ্ট VRF এর মধ্যে একটি Export RT কনফিগার করতে হবে।
যেমনঃ R1 যখন ABC-1 এর রাউট VRF থেকে MBGP তে Export করবে তখন RT যোগ করবে 1.1.1.1:101 । এই রাউটটি যখন VPNv4 রাউট আকারে MBGP এর মধ্য দিয়ে R4 এর কাছে পৌছাবে তখন R4 দেখবে যে রাউটির সাথে থাকা RT টি তার কোন VRF এর Import RT এর সাথে ম্যাচ করে, যে VRF এর সাথে ম্যাচ করবে R4 উক্ত রাউটটি সেই VRF এর মধ্যে Import করবে। এজন্য R4 রাউটারের সংশ্লিষ্ট VRF এর মধ্যে একই নামে (1.1.1.1:101) একটি Import RT কনফিগার করতে হবে। অর্থাৎ R1 এর Export RT টি যে নামে হবে R4 এর Import RT টি ঠিক একই নামে হবে।
এবং সবশেষে দুইটি PE রাউটারের যে ইন্টারফেস যে ক্লায়েন্টের সাথে যুক্ত সেই ইন্টারফেসটি ঐ ক্লায়েন্টের VRF এর সাথে Bonding করতে হবে এবং প্রতিটি ইন্টারফেসে প্রয়োজনীয় আই.পি এ্যাড্রেস কনফিগার করতে হবে।
তো VRF তৈরীর কাজটি একটু প্র্যাকটিক্যালী দেখা যাক,
R1#conf t R1(config)#vrf definition ABC R1(config-vrf)#rd 1.1.1.1:1 R1(config-vrf)#address-family ipv4 R1(config-vrf-af)#route-target export 1.1.1.1:101 R1(config-vrf-af)#route-target import 4.4.4.4:101 R1(config-vrf-af)#exit R1(config-vrf)#exit
এখানে, R1 রাউটারে ক্লায়েন্ট ABC-1 এর জন্য ABC নামে একটি VRF তৈরী করা হলো। এখানে ABC হলো একটি Variable । #vrf definition ABC কমান্ডের মাধ্যমে VRF তৈরী করলে উক্ত VRF IPV4 ও IPV6 উভয়ই সাপোর্ট করে। যদি আমরা শুধুমাত্র IPv4 সাপোর্টেড VRF তৈরী করতে চাই তাহলে #vrf definition ABC কমান্ডের পরিবর্তে #ip vrf ABC কমান্ড দিতে হবে।
রাউটার R1 এই ABC VRF থেকে যে রাউটসমূহ MBGP তে Export করবে সে রাউটসমূহকে MBGP এর মধ্যে স্বতন্ত্রভাবে চেনার জন্য 1.1.1.1:1 নামে একটি RD ব্যবহার করা হয়েছে। RD এর ফরম্যাট হলো ASN:nn অথবা IP-address:nn । এখানে R1 এর Loopback0 এর আই.পি এর সাথে (:) দিয়ে একটি নিউমেরিক ভ্যালু 1 ব্যবহার করা হয়েছে।
রাউটার R1 এই ABC VRF থেকে যে রাউটসমূহ VPNv4 আকারে MBGP এর মধ্য দিয়ে R4 এর কাছে পাঠাবে সে রাউটসমূহের সাথে একটি Extended Community Tag 1.1.1.1:101 যোগ করা হয়েছে যা RT হিসেবে পরিচিত। RT এর ফরম্যাট হলো ASN:nn অথবা IP-address:nn । এখানে R1 এর Loopback এর আই.পি এর সাথে (:) দিয়ে একটি নিউমেরিক ভ্যালু 101 ব্যবহার করা হয়েছে। এখানে, R1 যে RT টি Export করবে অপর প্রান্তে R4 ঠিক একই RT টি Import করবে। আবার, R4 যে RT টি Export করবে এই প্রান্তে R1 ঠিক একই RT টি Import করবে।
একইভাবে আমরা R1 এ ক্লায়েন্ট XYZ-1 এর জন্য XYZ নামে একটি VRF তৈরী করবো এবং অন্যান্য প্যারামিটার যেমন: RD ও RT কনফিগার করবো।
R1#conf t R1(config)#vrf definition XYZ R1(config-vrf)#rd 1.1.1.1:2 R1(config-vrf)#address-family ipv4 R1(config-vrf-af)#route-target export 1.1.1.1:102 R1(config-vrf-af)#route-target import 4.4.4.4:102 R1(config-vrf-af)#exit R1(config-vrf)#exit
এখানে XYZ VRF এ RD হিসেবে 1.1.1.1:2 কনফিগার করা হয়েছে যা ABC VRF এর RD 1.1.1.1:1 থেকে আলাদা। এবং এটি আলাদা হতেই হবে।
R1 এ VRF তৈরীর কাজ শেষ হলে আমরা R4 এও একইভাবে ABC-2 ও XYZ-2 এর জন্য দুইটি VRF তৈরী করবো। VRF এর নাম PE রাউটারগুলোর জন্য Locally Significant । আর VRF তৈরীর সময় RD ও RT গুলো একটু ঠান্ডা মাখায় বুঝে বুঝে কনফিগার করবো।
R4#conf t R4(config)#vrf definition ABC R4(config-vrf)#rd 4.4.4.4:1 R4(config-vrf)#address-family ipv4 R4(config-vrf-af)#route-target export 4.4.4.4:101 R4(config-vrf-af)#route-target import 1.1.1.1:101 R4(config-vrf-af)#exit R4(config-vrf)#exit R4(config)#vrf definition XYZ R4(config-vrf)#rd 4.4.4.4:2 R4(config-vrf)#address-family ipv4 R4(config-vrf-af)#route-target export 4.4.4.4:102 R4(config-vrf-af)#route-target import 1.1.1.1:102 R4(config-vrf-af)#exit R4(config-vrf)#exit
উভয় PE রাউটারে সঠিক RD ও RT সহ VRF কনফিগার করা শেষ হলে পরবর্তীতে আমরা এই রাউটারদ্বয়ের ক্লায়েন্ট ইন্টারফেসসমূহ কনফিগার করবো।
R1#conf t R1(config)#interface fastEthernet 0/0 R1(config-if)#vrf forwarding ABC R1(config-if)#ip address 10.0.0.1 255.255.255.252 R1(config-if)#no shutdown R1(config-if)#exit
এখানে সবার আগে R1 রাউটারের Fa0/0 ইন্টারফেসটিকে VRF ABC এর সাথে Bonding করা হলো। অতঃপর এর মধ্যে আই.পি এ্যাসাইন করা হলো। একইভাবে Fa1/0 ইন্টারফেসটিকেও কনফিগার করতে হবে।
R1#conf t R1(config)#interface fastEthernet 1/0 R1(config-if)#vrf forwarding XYZ R1(config-if)#ip address 10.0.0.1 255.255.255.252 R1(config-if)#no shutdown R1(config-if)#exit R1(config)#exit
R1 রাউটারের যদি আমরা #show ip interface brief কমান্ড দিই তাহলে নিচের আউটপুট দেখতে পাবো।
R1#show ip interface brief Interface IP-Address OK? Method Status Protocol FastEthernet0/0 10.0.0.1 YES manual up up FastEthernet0/1 20.0.0.2 YES NVRAM up up FastEthernet1/0 10.0.0.1 YES manual up up FastEthernet1/1 unassigned YES NVRAM administratively down down Loopback0 1.1.1.1 YES NVRAM up up
এখানে একটি মজার ব্যাপার হলো যে, Fa0/0 এবং Fa1/0 ইন্টারফেস দুইটিতে কিন্তু একই আই.পি বসানো হয়েছে। আর এটা সম্ভব হয়েছে ইন্টারফেস দুইটিকে দুইটি আলাদা VRF এর সাথে Bonding করার কারণে। সাধারণ ক্ষেত্রে একটি রাউটারের দুইটি ইন্টারফেসে কখনোই একই আই.পি বা একই সাবনেটের ভিন্ন আই.পি বসানো যায় না, সেক্ষেত্রে আই.পি Overlap জনিত Error Message দেখায়।
আরো একটি মজার ব্যাপার হলো, আমরা যদি R1 এ #show ip route connected কমান্ড দিই তাহলে যে আউটপুট পাবো সেখানে Directly Connected রাউট হিসেবে 10.0.0.0/30 কে দেখতে পাবো না।
R1#show ip route connected Gateway of last resort is not set 1.0.0.0/32 is subnetted, 1 subnets C 1.1.1.1 is directly connected, Loopback0 20.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 20.0.0.0/30 is directly connected, FastEthernet0/1 L 20.0.0.2/32 is directly connected, FastEthernet0/1
কারণ Directly Connected এই 10.0.0.0/30 রাউট R1 এর Global রাউটিং টেবিলে এ নেই। VRF কনফিগার করার কারণে তা সংশ্লিষ্ট VRF এর রাউটিং টেবিলে চলে গেছে। আমরা যদি R1 এর কনফিগার করা দুইটি VRF এর রাউটিং টেবিল দেখতে চাই তাহলে নিচের কমান্ড দিতে হবে।
R1#show ip route vrf ABC Routing Table: ABC Gateway of last resort is not set 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 10.0.0.0/30 is directly connected, FastEthernet0/0 L 10.0.0.1/32 is directly connected, FastEthernet0/0
R1#show ip route vrf XYZ Routing Table: XYZ Gateway of last resort is not set 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 10.0.0.0/30 is directly connected, FastEthernet1/0 L 10.0.0.1/32 is directly connected, FastEthernet1/0
ঠিক একইভাবে আমরা R4 এর ক্লায়েন্ট ইন্টারফেস দুইটিও কনফিগার করবো।
R4#conf t R4(config)#interface fastEthernet 0/1 R4(config-if)#vrf forwarding ABC R4(config-if)#ip address 50.0.0.1 255.255.255.252 R4(config-if)#no shutdown R4(config-if)#exit R4(config)#interface fastEthernet 1/0 R4(config-if)#vrf forwarding XYZ R4(config-if)#ip address 50.0.0.1 255.255.255.252 R4(config-if)#no shutdown R4(config-if)#exit R4(config)#exit
R4#show ip route connected Gateway of last resort is not set 4.0.0.0/32 is subnetted, 1 subnets C 4.4.4.4 is directly connected, Loopback0 40.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 40.0.0.0/30 is directly connected, FastEthernet0/0 L 40.0.0.2/32 is directly connected, FastEthernet0/0
R4#show ip route vrf ABC Routing Table: ABC Gateway of last resort is not set 50.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 50.0.0.0/30 is directly connected, FastEthernet0/1 L 50.0.0.1/32 is directly connected, FastEthernet0/1
R4#show ip route vrf XYZ Routing Table: XYZ Gateway of last resort is not set 50.0.0.0/8 is variably subnetted, 2 subnets, 2 masks C 50.0.0.0/30 is directly connected, FastEthernet1/0 L 50.0.0.1/32 is directly connected, FastEthernet1/0
ধাপ-৩: PE ও CE রাউটারসমূহের মধ্যে ডাইনামিক রাউটিং কনফিগার করা।
এখন আমরা আই.এস.পি এর PE রাউটার ও ক্লায়েন্ট এর CE রাউটারসমূহের মধ্যে ডাইনামিক রাউটিং কনফিগার করবো। অর্থাৎ, R1 এর সাথে ABC-1 এবং XYZ-1 এর। এবং অন্যদিকে R4 এর সাথে ABC-2 এবং XYZ-2 এর।
আই.এস.পি যখন তার কোন ক্লায়েন্টের সাথে ডাইনামিক রাউটিং কনফিগার করবে তখন ঠিক কোন রাউটিং প্রটোকল কনফিগার করবে সেটি একটি গুরুতত্বপূর্ণ বিষয়। ডাইনামিক রাউটিং প্রটোকলগুলোর মধ্যে রয়েছে, RIP, EIGRP, OSPF/IS-IS এবং BGP । প্রতিটি রাউটিং প্রটোকলকে আলাদাভাবে চিন্তা করলে,
RIP: RIP রাউটিং প্রটোকলের বেশ কিছু সীমাবদ্ধতা রয়েছে যেমনঃ Slow Convergence, Full and Periodic Update, Hop Count ইত্যাদি। আর এসব কারণে RIP কেউ ব্যবহার করে না।
EIGRP: EIGRP একটি চমৎকার রাউটিং প্রটোকল। এটি একটি Advance Distance Vector রাউটিং প্রটোকল, যা আলাদা টপোলজি টেবিল মেইনটেইন করে ফলে Convergence খুব দ্রুত হয়, Unequal Cost লোড ব্যালান্স করতে পারে। কিন্তু EIGRP এর সবচেয়ে বড় অসুবিধা হলো এটি Cisco এর নিজস্ব প্রটোকল যা শুধু Cisco রাউটারসমূহেই কাজ করে। কিন্তু একটি সার্ভিস প্রোভাইডার নেটওয়ার্কে সবগুলো রাউটারই Cisco এর হয় না, বিভিন্ন ব্র্যান্ডের রাউটার ব্যবহৃত হয়। আবার Cisco এর রাউটারের দাম অনেক বেশি হওয়ায় বেশিরভাগ ক্লায়েন্টই অন্য ব্র্যান্ডের তুলনামূলক কম দামী রাউটার ব্যবহার করেন। তাই এসব কিছু বিবেচনায় প্রোডাকশন লেভেলে EIGRP এর ব্যবহার হয় না বললেই চলে।
OSPF/IS-IS: OSPF ও IS-IS উভয়ই Link State রাউটিং প্রটোকল। এরা Fast Convergence প্রটোকল এবং সব ব্র্যান্ডের রাউটারেই এগুলো সাপোর্ট করে। কিন্তু ক্লায়েন্টের সাথে রাউটিং আদান-প্রদানে OSPF/IS-IS ব্যবহারে কিছু সমস্যা আছে। একটি বড় আকারের আই.এস.পি নেটওয়ার্কে ক্লায়েন্টদের হাজার-হাজার প্রিফিক্স/রাউট থাকতে পারে, কিন্তু OSPF/IS-IS দিয়ে এতসংখ্যক রাউট হ্যান্ডল করতে গেলে আই.এস.পি রাউটারসমূহের CPU/Memory Usages অনেক বেড়ে যায়। তাই আই.এস.পি নেটওয়ার্কে শুধুমাত্র ইন্টার্নাল (POP সমূহের) রাউটগুলোই OSPF/IS-IS দ্বারা হ্যান্ডল করা হয় এবং সকল ক্লায়েন্টের রাউটসমূহ হ্যান্ডল করার জন্য eBGP ব্যবহৃত হয়।
আমরা বুঝার সুবিধার্থে আমাদের এই ল্যাবটি তে সব ধরণের রাউটিং প্রটোকল ব্যবহার করবো। যেমনঃ R1 ও ABC-1 এর মধ্যে RIPv2, R1 ও XYZ-1 এর মধ্যে EIGRP (AS 10), R4 ও ABC-2 এর মধ্যে OSPF (AS 10, Area 0) এবং R4 ও XYZ-2 (AS 200) এর মধ্যে eBGP ।
তো কনফিগারেশন শুরু করা যাক, প্রথমেই আমরা R1 রাউটারে ABC-1 এর সাথে RIPv2 কনফিগার করবো।
R1#conf t R1(config)#router rip R1(config-router)#version 2 R1(config-router)#address-family ipv4 vrf ABC R1(config-router-af)#network 10.0.0.0 R1(config-router-af)#no auto-summary R1(config-router-af)#exit R1(config-router)#exit
ABC-1 এর সাথে RIPv2 কনফিগার করার সময় R1 রাউটারে VRF ABC কে ডিফাইন করা হয়েছে, কারণ ABC-1 এর রাউটগলো R1 এর গ্লোবাল রাউটিং টেবিলে নেই, এগুলো আছে R1 এর ভার্চুয়াল রাউটিং টেবিল অর্থাৎ VRF ABC তে যা শুধুমাত্র ABC-1 এর জন্যই ডেডিকেটেড।
এখন আমরা ABC-1 এ R1 এর সাথে RIPv2 কনফিগার করবো।
ABC-1#conf t ABC-1(config)#interface fastEthernet 0/0 ABC-1(config-if)#ip address 10.0.0.2 255.255.255.252 ABC-1(config-if)#no shutdown ABC-1(config-if)#description ISP ABC-1(config-if)#exit ABC-1(config)#interface loopback 0 ABC-1(config-if)#ip address 192.168.10.1 255.255.255.0 ABC-1(config-if)#description LAN ABC-1(config-if)#exit ABC-1(config)#router rip ABC-1(config-router)#version 2 ABC-1(config-router)#network 10.0.0.0 ABC-1(config-router)#network 192.168.10.0 ABC-1(config-router)#no auto-summary ABC-1(config-router)#exit
প্রথমেই আমরা টপোলজি অনুযায়ী ABC-1 এর আই.পি এ্যাড্রেসসমূহ কনফিগার করলাম এবং তারপর RIPv2 কনফিগার করলাম। এখানে কোন CE রাউটারে (ক্লায়েন্ট রাউটারে) রাউটিং কনফিগার করার সময় VRF ডিফাইন করার দরকার নেই। VRF সম্পর্কিত কনফিগারেশন শুধুমাত্র PE রাউটারসমূহে করতে হয়।
R1 ও ABC-1 এর মধ্যে RIPv2 কনফিগার করা শেষ হলে আমরা R1 এর ABC VRF এ ABC-1 এর ল্যান এর রাউটটি দেখতে পাবো।
R1#show ip route vrf ABC
Routing Table: ABC
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.0.0.0/30 is directly connected, FastEthernet0/0
L 10.0.0.1/32 is directly connected, FastEthernet0/0
R 192.168.10.0/24 [120/1] via 10.0.0.2, 00:00:04, FastEthernet0/0
এখন আমরা R1 ও XYZ-1 এর মধ্যে EIGRP (AS 10) কনফিগার করবো।
R1#conf t R1(config)#router eigrp 1 R1(config-router)#address-family ipv4 vrf XYZ autonomous-system 10 R1(config-router-af)#network 10.0.0.0 0.0.0.3 R1(config-router-af)#exit R1(config-router)#exit
XYZ-1#conf t XYZ-1(config)#interface fastEthernet 0/0 XYZ-1(config-if)#ip address 10.0.0.2 255.255.255.252 XYZ-1(config-if)#no shutdown XYZ-1(config-if)#description ISP XYZ-1(config-if)#exit XYZ-1(config)#interface loopback 0 XYZ-1(config-if)#ip address 192.168.10.1 255.255.255.0 XYZ-1(config-if)#description LAN XYZ-1(config-if)#exit XYZ-1(config)#router eigrp 10 XYZ-1(config-router)#network 10.0.0.0 0.0.0.3 XYZ-1(config-router)#network 192.168.10.0 0.0.0.255 XYZ-1(config-router)#exit
R1 ও XYZ-1 এর মধ্যে EIGRP (AS 10) কনফিগার করা শেষ হলে আমরা R1 রাউটারের XYZ VRF এ XYZ-1 এর ল্যান এর রাউটটি দেখতে পাবো।
R1#show ip route vrf XYZ
Routing Table: XYZ
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.0.0.0/30 is directly connected, FastEthernet1/0
L 10.0.0.1/32 is directly connected, FastEthernet1/0
D 192.168.10.0/24 [90/156160] via 10.0.0.2, 00:00:48, FastEthernet1/0
এই পর্যায়ে আমরা R4 ও ABC-2 এর মধ্যে রাউটিং প্রটোকল হিসেবে OSPF (AS 10, Area 0) কনফিগার করবো।
R4#conf t R4(config)#router ospf 10 vrf ABC R4(config-router)#network 50.0.0.0 0.0.0.3 area 0 R4(config-router)#exit
ABC-2#conf t ABC-2(config)#interface fastEthernet 0/0 ABC-2(config-if)#ip address 50.0.0.2 255.255.255.252 ABC-2(config-if)#no shutdown ABC-2(config-if)#description ISP ABC-2(config-if)#exit ABC-2(config)#interface loopback 0 ABC-2(config-if)#ip address 172.16.10.1 255.255.255.0 ABC-2(config-if)#description LAN ABC-2(config-if)#exit ABC-2(config)#router ospf 1 ABC-2(config-router)#network 50.0.0.0 0.0.0.3 area 0 ABC-2(config-router)#network 172.16.10.0 0.0.0.3 area 0 ABC-2(config-router)#exit
R4 ও ABC-2 এর মধ্যে OSPF কনফিগার করা শেষ হলে আমরা R4 রাউটারের ABC VRF এ ABC-2 এর ল্যান এর রাউটটি দেখতে পাবো।
R4#show ip route vrf ABC
Routing Table: ABC
Gateway of last resort is not set
50.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 50.0.0.0/30 is directly connected, FastEthernet0/1
L 50.0.0.1/32 is directly connected, FastEthernet0/1
172.16.0.0/32 is subnetted, 1 subnets
O 172.16.10.1 [110/2] via 50.0.0.2, 00:01:34, FastEthernet0/1
এবং সবশেষে আমরা R4 এর সাথে XYZ-2 (AS 200) এর eBGP কনফিগার করবো।
R4#conf t R4(config)#router bgp 100 R4(config-router)#address-family ipv4 vrf XYZ R4(config-router-af)#neighbor 50.0.0.2 remote-as 200 R4(config-router-af)#exit R4(config-router)#address-family vpnv4 R4(config-router-af)#neighbor 1.1.1.1 next-hop-self R4(config-router-af)#exit R4(config-router)#exit
এখানে R4 রাউটারে XYZ-2 এর সাথে eBGP কনফিগার করা হয়েছে। এবং R4 এর সাথে R1 এর যে MBGP আছে তাতে next-hop-self কমান্ড দেওয়া হয়েছে। next-hop-self কমান্ড না দিলে R4 রাউটার XYZ-2 এর কাছ থেকে eBGP এর মাধ্যমে যে রাউট রিসিভ করবে তা আবার MBGP এর মাধ্যমে R1 এর কাছে Advertise করার সময় প্রাপ্ত Next-hop পরিবর্তন করবে না, ফলে রাউটিং ব্ল্যাকহোল তৈরী হতে পারে।
XYZ-2#conf t XYZ-2(config)#interface fastEthernet 0/0 XYZ-2(config-if)#ip address 50.0.0.2 255.255.255.252 XYZ-2(config-if)#no shutdown XYZ-2(config-if)#description ISP XYZ-2(config-if)#exit XYZ-2(config)#interface loopback 0 XYZ-2(config-if)#ip address 172.16.10.1 255.255.255.0 XYZ-2(config-if)#description LAN XYZ-2(config-if)#exit XYZ-2(config)#router bgp 200 XYZ-2(config-router)#neighbor 50.0.0.1 remote-as 100 XYZ-2(config-router)#network 172.16.10.0 mask 255.255.255.0 XYZ-2(config-router)#exit
R4 ও XYZ-2 এর মধ্যে eBGP কনফিগার করা শেষ হলে আমরা R4 রাউটারের XYZ VRF এ XYZ-2 এর ল্যান এর রাউটটি দেখতে পাবো।
R4#show ip route vrf XYZ
Routing Table: XYZ
Gateway of last resort is not set
50.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 50.0.0.0/30 is directly connected, FastEthernet1/0
L 50.0.0.1/32 is directly connected, FastEthernet1/0
172.16.0.0/24 is subnetted, 1 subnets
B 172.16.10.0 [20/0] via 50.0.0.2, 00:02:03
ধাপ-৪: VRF ও MBGP এর মধ্যে রাউটসমূহ Export ও Import করা
এখন আমরা দেখবো PE রাউটারের VRF এর রাউটসমূহ কিভাবে MBGP তে Export করতে হয় এবং MBGP থেকে রাউটসমূহ কিভাবে VRF এ Import করতে হয়। এখানে রাউট Export/Import করার জন্য #redistribute কমান্ড ব্যবহার করতে হবে।
আমাদের ল্যাব টপোলজি অনুযায়ী আমরা নিম্নোক্ত কাজগুলো করবো।
i) R1 এর ABC VRF থেকে RIPv2 এর রাউট MBGP তে Export করা এবং MBGP এর VPNv4 রাউট R1 এর ABC VRF এ Import করা।
R1#conf t R1(config)#router bgp 100 R1(config-router)#address-family ipv4 vrf ABC R1(config-router-af)#redistribute rip R1(config-router-af)#exit R1(config-router)#exit R1(config)#router rip R1(config-router)#address-family ipv4 vrf ABC R1(config-router-af)#redistribute bgp 100 metric 5 R1(config-router-af)#exit R1(config-router)#exit
ii) R1 এর XYZ VRF থেকে EIGRP এর রাউট MBGP তে Export করা এবং MBGP এর VPNv4 রাউট R1 এর XYZ VRF এ Import করা।
R1#conf t R1(config)#router bgp 100 R1(config-router)#address-family ipv4 vrf XYZ R1(config-router-af)#redistribute eigrp 10 R1(config-router-af)#exit R1(config-router)#exit R1(config)#router eigrp 1 R1(config-router)#address-family ipv4 vrf XYZ autonomous-system 10 R1(config-router-af)#redistribute bgp 100 metric 1 1 1 1 1 R1(config-router-af)#exit R1(config-router)#exit
iii) R4 এর ABC VRF থেকে OSPF এর রাউট MBGP তে Export করা এবং MBGP এর VPNv4 রাউট R4 এর ABC VRF এ Import করা।
R4#conf t R4(config)#router bgp 100 R4(config-router)#address-family ipv4 vrf ABC R4(config-router-af)#redistribute ospf 10 vrf ABC R4(config-router-af)#exit R4(config-router)#exit R4(config)#router ospf 10 vrf ABC R4(config-router)#redistribute bgp 100 subnets R4(config-router)#exit
iv) এখানে যেহেতু R4 এর সাথে XYZ-2 এর eBGP করা আছে তাই এক্ষেত্রে ম্যানুয়ালী Export/Import করতে হবে না। eBGP থেকে প্রাপ্ত রাউটসমূহ R4 এমনিতেই MBGP এর মাধ্যমে R1 এর কাছে পাঠাবে।
এখানে একটি কথা বিশেষভাবে উল্লেখ্য যে, Export/Import সংক্রান্ত কোন কনফিগারেশন CE রাউটারসমূহে কখনোই করার দরকার নেই।
এখন আমরা ABC-1 থেকে ABC-2 তে (192.168.10.1 থেকে 172.16.10.1 এ) কিভাবে ট্রাফিক যাবে তা একটু বিস্তারিত পর্যালোচনা করবো।
প্রথমে আমরা #show ip route কমান্ডের মাধ্যমে ABC-1 এর রাউটিং টেবিলে দেখে নিই।
ABC-1#show ip route
Gateway of last resort is not set
50.0.0.0/30 is subnetted, 1 subnets
R 50.0.0.0 [120/5] via 10.0.0.1, 00:00:20, FastEthernet0/0
C 192.168.10.0/24 is directly connected, Loopback0
172.16.0.0/32 is subnetted, 1 subnets
R 172.16.10.1 [120/5] via 10.0.0.1, 00:00:20, FastEthernet0/0
10.0.0.0/30 is subnetted, 1 subnets
C 10.0.0.0 is directly connected, FastEthernet0/0
এখানে ABC-1 এর রাউটিং টেবিলে তার রিমোট লোকেশন ABC-2 এর রাউট আছে যার Nexthop হলো 10.0.0.1 অর্থাৎ R1 । সুতরাং ABC-1 প্যাকেটটি R1 এর কাছে পাঠাবে। R1 যখন প্যাকেটটি রিসিভ করবে তখন ইহা প্যাকেটটির ডেষ্টিনেশন নিজের vpnv4 Routing Table এর সাথে চেক করে দেখবে।
R1#show bgp vpnv4 unicast vrf ABC labels
Network Next Hop In label/Out label
Route Distinguisher: 1.1.1.1:1 (ABC)
10.0.0.0/30 0.0.0.0 107/nolabel(ABC)
50.0.0.0/30 4.4.4.4 nolabel/410
172.16.10.1/32 4.4.4.4 nolabel/402
192.168.10.0 10.0.0.2 101/nolabel
R1 এর VPNv4 Routing Table এ 172.16.10.1/32 এর রাউট আছে, যার Nexthop হলো 4.4.4.4 (R4)। এছাড়াও এখানে আরও দেখা যাচ্ছে যে, 172.16.10.1/32 ডেষ্টিনেশনের জন্য R1 এর Outgoing MPLS Label হলো 402 । অর্থাৎ, R1 রাউটার যখন প্যাকেটটি R4 এর কাছে পাঠাবে তখন Outgoing Label হিসেবে 402 ট্যাগ করে দিবে। কিন্তু সমস্যা হলো R1 এর সাথে R4 এর সরাসরি কোন সংযোগ নেই, R1 যদি R4 এর কাছে যেতে চায় তাহলে তাকে আগে R2 এর কাছে প্যাকেট পাঠাতে হবে।
এখন যদি আমরা 4.4.4.4 ডেষ্টিনেশনের জন্য R1 এর MPLS Forwarding Table চেক করি তাহলে দেখতে পাবো যে,
R1#show mpls forwarding-table 4.4.4.4
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
106 204 4.4.4.4/32 0 Fa0/1 20.0.0.1
4.4.4.4 ডেষ্টিনেশনের জন্য R1 এর Outgoing MPLS Label হলো 204 । অর্থাৎ R1 রাউটার প্যাকেটটি R2 এর কাছে পাঠানোর জন্য 402 লেবেল এর উপর অতিরিক্ত আরো একটি Outgoing Label 204 ট্যাগ করে দিবে। এখানে 402 হলো Bottom Label এবং 204 হলো Top Label ।
R1#show ip cef vrf ABC 172.16.10.1
172.16.10.1/32
nexthop 20.0.0.1 FastEthernet0/1 label 204 402
R2 রাউটার যখন প্যাকেটটি রিসিভ করবে তখন এটি দেখবে যে, প্যাকেটটির ডেষ্টিনেশন হলো 4.4.4.4 এবং 4.4.4.4 ডেষ্টিনিশেনের জন্য তার নিজের Outgoing Label হলো 305 ।
R2#show mpls forwarding-table 4.4.4.4
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
204 305 4.4.4.4/32 11065 Fa0/1 30.0.0.2
এ অবস্থায় R2 রাউটার প্যাকেটের Top Label 204 মুছে ফেলে নতুন Top Label 305 যোগ করে প্যাকেটটি R3 এর কাছে পাঠাবে। এক্ষেত্রে R2 রাউটার কখনোই প্যাকেটের Bottom Label 402 এ কোন হাত দিবে না।
R3 রাউটার যখন প্যাকেটটি রিসিভ করবে তখন এটি দেখবে যে, প্যাকেটটির ডেষ্টিনেশন হলো 4.4.4.4 এবং 4.4.4.4 ডেষ্টিনিশেনের জন্য তার নিজের Outgoing Label হলো POP Label । অর্থাৎ R4 রাউটার Penaltimate Hop Popping (PHP) এর মাধ্যমে প্যাকেটটির Top Label 305 মুছে ফেলে নতুন কোন Top Label না লাগিয়েই তা IP Packet আকারে R4 এর কাছে পৌছে দেবে। এখানেও R3 রাউটার কখনোই প্যাকেটের Bottom Label 402 এ কোন হাত দিবে না।
R3#show mpls forwarding-table 4.4.4.4
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
305 Pop Label 4.4.4.4/32 10663 Fa0/1 40.0.0.2
R4 রাউটার যখন প্যাকেটটি রিসিভ করবে তখন এটি নিজের VPNv4 রাউটিং টেবিল চেক করে প্যাকেটটির Bottom Label 402 মুছে ফেলে তা IP Packet আকারে 50.0.0.2 অর্থাৎ ABC-2 এর কাছে পাঠাবে।
R4#show bgp vpnv4 unicast vrf ABC labels
Network Next Hop In label/Out label
Route Distinguisher: 4.4.4.4:1 (ABC)
10.0.0.0/30 1.1.1.1 nolabel/107
50.0.0.0/30 0.0.0.0 410/nolabel(ABC)
172.16.10.1/32 50.0.0.2 402/nolabel
192.168.10.0 1.1.1.1 nolabel/101
সবশেষে ABC-2 দেখবে যে, প্যাকেটটির মূল ডেষ্টিনেশন 172.16.10.1 তার নিজের Loopback 0 ইন্টারফেস এবং এটি সংশ্লিষ্ট ইন্টারফেসে প্যাকেটটি ডেলিভারী দিবে।
C1-B#show ip route
Gateway of last resort is not set
50.0.0.0/30 is subnetted, 1 subnets
C 50.0.0.0 is directly connected, FastEthernet0/0
O E2 192.168.10.0/24 [110/1] via 50.0.0.1, 01:21:02, FastEthernet0/0
172.16.0.0/24 is subnetted, 1 subnets
C 172.16.10.0 is directly connected, Loopback0
10.0.0.0/30 is subnetted, 1 subnets
O E2 10.0.0.0 [110/1] via 50.0.0.1, 01:21:02, FastEthernet0/0
উপরিউক্ত পদ্ধতিতে কোন ক্লায়েন্টের ডাটা MPLS L3 VPN এর মাধ্যমে এক লোকেশন থেকে আরেক লোকেশনে পৌছায়। এখানে আই.এস.পি এর কোন কোর রাউটারে (P Router) ক্লায়েন্টদের কোন রাউটের তথ্য থাকে না বা থাকার প্রয়োজন হয় না। এজন্য কোর রাউটারসমূহের উপর বাড়তি চাপ পড়ে না বলে নেটওয়ার্কের পারফরম্যান্স অনেক ভালো হয়।
ধাপ-৫: সবশেষে End-to-End কানেক্টিভিটি চেক করা
আমাদের সম্পূর্ণ কনফিগারেশনটি ধাপে ধাপে শেষ করার পর সবশেষে এখন আমরা End-to-End (ক্লায়েন্ট-টু-ক্লায়েন্ট) কানেক্টিভিটি চেক করে দেখবো।
প্রথমেই আমরা ABC-1 রাউটার থেকে ABC-2 কে Ping করে দেখবো
ABC-1#ping 172.16.10.1 source 192.168.10.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.10.1, timeout is 2 seconds: Packet sent with a source address of 192.168.10.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 48/72/100 ms
ABC-1 থেকে আমরা ABC-2 কে Ping করে পাচ্ছি। এছাড়া আমরা Traceroute করেও দেথতে পারি।
ABC-1#traceroute 172.16.10.1 source 192.168.10.1 Type escape sequence to abort. Tracing the route to 172.16.10.1 1 10.0.0.1 36 msec 80 msec 20 msec 2 20.0.0.1 [MPLS: Labels 204/402 Exp 0] 56 msec 60 msec 88 msec 3 30.0.0.2 [MPLS: Labels 305/402 Exp 0] 48 msec 72 msec 64 msec 4 50.0.0.1 [MPLS: Label 402 Exp 0] 60 msec 112 msec 68 msec 5 50.0.0.2 88 msec 92 msec 60 msec
ঠিক একইভাবে আমরা XYZ-1 থেকে XYZ-2 কে Ping ও Traceroute করে কানেক্টিভিটি চেক করতে পারি।
XYZ-1#ping 172.16.10.1 source 192.168.10.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.10.1, timeout is 2 seconds: Packet sent with a source address of 192.168.10.1 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 120/128/140 ms
XYZ-1#traceroute 172.16.10.1 source 192.168.10.1 Type escape sequence to abort. Tracing the route to 172.16.10.1 VRF info: (vrf in name/id, vrf out name/id) 1 10.0.0.1 60 msec 52 msec 68 msec 2 20.0.0.1 [MPLS: Labels 204/401 Exp 0] 124 msec 136 msec 188 msec 3 30.0.0.2 [MPLS: Labels 305/401 Exp 0] 136 msec 116 msec 132 msec 4 50.0.0.1 [MPLS: Label 401 Exp 0] 104 msec 144 msec 160 msec 5 50.0.0.2 136 msec 156 msec 96 msec
এখানে অনেকের সংশয় থাকতে পারে যে, ABC ও XYZ কায়েন্টের উভয় পাশে তো আই.পি ব্লক একই, তো একজনের Ping প্যাকেট যে আরেকজনের কাছে যাচ্ছে না তার বিশ্বাস কি? আর এজন্যই আমরা কানেক্টিভিটি চেকিং টি একটু ভিন্নভাবে করবো। প্রথমে আমরা ABC-2 ও XYZ-2 রাউটারদ্বয়ে Telnet এনাবল করবো এবং তারপর ABC-1 ও ABC-2 থেকে যথাক্রমে XYZ-1 ও XYZ-2 তে Telnet করে দেখবো যে, ABC-1 থেকে Telnet রিকোয়েষ্ট ABC-2 তে যায় নাকি অন্য কোথাও যায়।
ABC-2#conf t ABC-2(config)#enable secret ABC ABC-2(config)#line vty 0 4 ABC-2(config-line)#password ABC ABC-2(config-line)#login ABC-2(config-line)#exit
XYZ-2#conf t XYZ-2(config)#enable secret XYZ XYZ-2(config)#line vty 0 4 XYZ-2(config-line)#password XYZ XYZ-2(config-line)#login XYZ-2(config-line)#exit
এখন আলাদা আলাদাভাবে Telnet করে দেখা যাক.....
ABC-1#telnet 172.16.10.1 Trying 172.16.10.1 ... Open User Access Verification Password: ABC-2>enable Password: ABC-2#
XYZ-1#telnet 172.16.10.1 Trying 172.16.10.1 ... Open User Access Verification Password: XYZ-2>enable Password: XYZ-2#
Okay... তাহলে প্রমান হয়ে গেল যে, MPLS L3 VPN কনফিগার করার পর উভয় ক্লায়েন্টের রাউটিং ইনফরমেশন একটি থেকে আরেকটি সম্পূর্ণ আলাদা আছে, যা MPLS L3 VPN এর একটি প্রধান উদ্দেশ্য।
অনেক সময় এমন হতে পারে, কোন PE রাউটার থেকে ক্লায়েন্টদের Ping করে লিঙ্ক চেক করার দরকার হতে পারে। যেমন: আই.এস.পি চাচ্ছে যে, তার R1 রাউটার থেকে ABC-1 ও XYZ-1 কে Ping করে দেখবে যে লিঙ্কে কোন প্যাকেট লস বা অন্য কোন সমস্যা আছে কি না। যেহেতু উভয় ক্লায়েন্টের WAN IP একই অর্থাৎ 10.0.0.2 তাই R1 সাধারণ Ping কমান্ডের মাধ্যমে ক্লায়েন্টের আই.পি কে Ping করে পাবে না।
R1#ping 10.0.0.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
এর কারণ হলো, 10.0.0.0/30 রাউটটি R1 এর Global Routing Table এ নেই। R1 এ যেহেতু দুইটি ক্লায়েন্টের জন্য দুইটি আলাদা VRF তৈরী করা হয়েছে, তাই প্রতিটি ক্লায়েন্টের রাউটিং ইনফরমেশন তার সংশ্লিষ্ট VRF এর মধ্যে রয়েছে। তাই R1 থেকে ক্লায়েন্টদের Ping করার সময় সংশ্লিষ্ট VRF টি উল্লেখ করতে হবে। এখানে কমান্ডটি হবে নিম্নরূপঃ
R1#ping vrf ABC 10.0.0.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 16/46/76 ms
R1#ping vrf XYZ 10.0.0.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.0.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 24/51/72 ms
এছাড়া R1 থেকে যদি কোন ক্লায়েন্টের আই.পি কে Tracroute করতে হয় সেক্ষেত্রেও সংশ্লিষ্ট VRF টি উল্লেখ করতে হবে।
R1#traceroute vrf ABC 172.16.10.1 Type escape sequence to abort. Tracing the route to 172.16.10.1 VRF info: (vrf in name/id, vrf out name/id) 1 20.0.0.1 [MPLS: Labels 204/402 Exp 0] 76 msec 120 msec 120 msec 2 30.0.0.2 [MPLS: Labels 305/402 Exp 0] 104 msec 120 msec 76 msec 3 50.0.0.1 [MPLS: Label 402 Exp 0] 88 msec 132 msec 96 msec 4 50.0.0.2 156 msec 84 msec 132 msec
R1#traceroute vrf XYZ 172.16.10.1 Type escape sequence to abort. Tracing the route to 172.16.10.1 VRF info: (vrf in name/id, vrf out name/id) 1 20.0.0.1 [MPLS: Labels 204/401 Exp 0] 108 msec 164 msec 120 msec 2 30.0.0.2 [MPLS: Labels 305/401 Exp 0] 80 msec 144 msec 92 msec 3 50.0.0.1 [MPLS: Label 401 Exp 0] 120 msec 136 msec 104 msec 4 50.0.0.2 100 msec 140 msec 124 msec
কিন্তু কোন ক্লায়েন্ট যদি তার Gateway IP কে Ping করতে চায় তাহলে সাধারণ Ping কমান্ডের মাধ্যমেই তা করা সম্ভব।
ABC-1#ping 10.0.0.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 8/28/56 ms
XYZ-1#ping 10.0.0.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.0.0.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 8/28/56 ms
MPLS Layer-3 VPN এর জটিল ও সুক্ষ্ণ বিষয়গুলো লিখে প্রকাশ করা আসলেই খুব কঠিন কাজ। তারপরও এখানে সমগ্র টিউটোরিয়ালটিতে আমি বিষয়গুলো বাংলায় সহজভাবে বর্ণনা করার চেষ্টা করেছি। কতটুকু সফল হয়েছি তা জানি না। তবে আশাকরি এই টিউটোরিয়ালটি দেখে আপনারা MPLS Layer-3 VPN সম্পর্কে কিছুটা হলেও ধারণা পাবেন এবং সঠিকভাবে তা কনফিগার করতে পারবেন। বেশি বেশি পড়া-শুনা ও প্র্যাকটিস করবেন, এছাড়া ইন্ডাষ্ট্রিতে যারা এক্সপার্ট আছেন তাদের কাছ থেকেও সহযোগীতা ও Tips নিতে পারেন। সবাই ভাল থাকবেন এবং আমার জন্য দোয়া করবেন..... আল্লাহ হাফেজ।