Router တစ်လုံး ဘယ်လို အလုပ်လုပ်? Part-3

Min Htet SanMin Htet San
4 min read

အရင်နေ့တွေ တုန်းကတော့ ကျွန်တော်က Router မှာ Routing Process နဲ့ Path selection အတွက် Routing Process ဘယ်လို အလုပ်လုပ်လဲ ဆိုတာကို sharing လုပ်ပေးခဲ့ပါတယ်။ ဒီနေ့မှာတော့ Router ရဲ့ Switching Process ကို ပြောပြသွားပါ့မယ်။

ကျွန်တော်က 8.8.8.8 ဆီကို သွားချင်တယ်ဆိုပြီး Packet ကို ပို့လိုက်တဲ့ အချိန်မှာ router ရဲ့ interface e0/0 ကနေဝင်သွားတယ်လို့ ဆိုပါစို့။ Router က လိုအပ်တဲ့ စစ်ဆေးမူတွေ လုပ်အပြီးမှာ 8.8.8.8 ဆီကို သွားချင်ရင် 192.168.20.2 ဆီကနေသွားတာက အကောင်းဆုံး ဖြစ်တယ်လို့ သိသွားတာပေါ့။

192.168.20.2 ကို သွားမယ်ဆိုရင် interface e 0/2 ကနေ သွားရမှာပေါ့။ ဒါဆိုရင် packet ကို interface e0/0 to e0/2 ကို move လုပ်ပေးရမှာပေါ့။ ဒီလိုမျိုး Router ရဲ့ interface တွေကြားထဲမှာ packet တွေကို move လုပ်ပေးတာ နေရာ ပြောင်းပေးတာကို switching process လို့ ခေါ်ပါတယ်။


Cisco Router တွေ L3 Switch တွေမှာ သုံးလေ့ရှိတဲ့ Switching Process 3 ခုရှိပါတယ်။

  • Process Switching

  • Fast Switching

  • CEF Switching

တို့ပဲ ဖြစ်ပါတယ်။

ကျွန်တော်တို့ တစ်ခုခြင်းဆီ လေ့လာကြည့်ရအောင်ပါ။

ဒီနေရာမှာ တစ်ခုရှိတာက အခု ကျွန်တော် ပြောပြနေတဲ့ Switching ဆိုတာက Layer 3 Forwarding ထဲမှာ ပါတဲ့ Process တစ်ခုပါ။

Layer 2 Forwarding ကို ပြောနေကျဖြစ်တဲ့ Switching မဟုတ်ဘူးဆိုတာကို သတိပြုပေးပါ။

ကျွန်တော့်တုန်းက Confuse ဖြစ်ခဲ့တော့ Confuse မဖြစ်စေချင်လို့ သတိပေးတာပါ။


Process Switching

Process Switching ဆိုတာကတော့ ပထမဆုံးသုံးခဲ့တဲ့ Switching Process Method ပါပဲ။ Process Switching ကို တစ်ခါတစ်လေကျရင် Software Switching လို့လဲ ခေါ်တတ်ကြပါတယ်။ Switching Process တွေထဲမှာ အနှေးဆုံးလဲ ဖြစ်ပါတယ်။ ပထမဆုံးပေါ်ခဲ့တဲ့ Switching လဲဖြစ်ပါတယ်။ နှေးရတဲ့ အကြောင်းရင်းက Router က Packet တစ်ခုကို forward လုပ်တိုင်းလုပ်တိုင်း Routing Table ကိုရော ARP Table ကိုပါ lookup လုပ်ရလို့ ဖြစ်ပါတယ်။ Packet တစ်ခုခြင်းစီ အတွက်ကို အောက်မှာပြောပြတဲ့ အဆင့်တိုင်းကို လုပ်နေရတာ ဖြစ်ပါတယ်။

ARP <Address Resolution Protocol> Table ဆိုတာကတော့ MAC Address တွေကို စုစည်းထားတဲ့ Table ဖြစ်ပါတယ်။ ဘယ်လိုမျိုး Table 2 ခုကို သုံးတာလဲဆိုတာကို လေ့လာကြည့်ရအောင်။

Destination IP - 8.8.8.8 နဲ့ Packet တစ်ခုက Router ထဲကို ဝင်လာပြီဆိုပါစို့။ ဒါဆိုရင် Best Route က ဘာဖြစ်နေမလဲဆိုတာကို Routing Table ထဲမှာ သူကသွားရှာပါပြီ။

8.8.8.8 ကို သွားဖို့ဆိုရင် 192.168.20.2 က အကောင်းဆုံးဆိုတာကို သိပါပြီ။ ဒါဆိုရင် 192.168.20.2 ကို သွားဖို့ ဘယ်လို သွားရမလဲဆိုတာကို ဆက်ပြီး ကြည့်ပါတယ်။

ဒါဆိုရင် Interface e0/2 မှာ Directly Connected အနေနဲ့ ရှိနေတာကို သိသွားပြပြီ။ ပြီးရင်တော့ 192.168.20.2 ရဲ့ MAC Address ကို ရှာရပါမယ်။

ဒီလို မျိုး Step တိုင်းကို Packet တစ်ခုခြင်းစီ အတွက်လုပ်ရပါတယ်။

Routing Table နဲ့ ARP Table ထဲမှာ သွားရှာရတဲ့ Process ကို IP Input Process လို့လဲ ခေါ်ပါတယ်။

IP Input Process က General Purpose CPU ပေါ်မှာ အပြည့်အဝ မှီခိုရပါတယ်။

အခုခေတ်မှာရော Process Switching ကို သုံးသေးလားဆိုရင်တော့ Primary Switching Process အနေနဲ့တော့ မသုံးပါဘူး

CEF Switching Process က handle မလုပ်နိုင်တဲ့ Packet တစ်ချို့ အတွက် အခြေနေ တစ်ချို့မှာတော့ သုံးတာမျိုး ရှိပါသေးတယ်။


Fast Switching

Fast Switching Method ကတော့ Process Switching နောက်မှာပေါ်လာတဲ့ successor version လို့ဆိုနိုင်ပါတယ်။ Process Switching နဲ့ အလုပ်လုပ်ပုံ အတူတူပဲ ဖြစ်ပြီး မတူတာတစ်ခုက Destination တစ်ခုကို သွားပြီးပြီဆိုရင် သူက Fast Switching Cache ထဲမှာ သိမ်းထားလိုက်တာပါ။

8.8.8.8 ကို သွားမယ်ဆိုပါတော့။ တစ်ခါမှ မသွားဖူးတဲ့ အတွက် Process Switching လုပ်သလိုမျိုး လုပ်ပါတယ်။ တစ်ခုရှိတာက သူက decision ကို ချပြီးဆိုတာနဲ့ Fast Switching Cache အနေနဲ့ Memory ထဲမှာ သွားပြီး သိမ်းထားပေးပါတယ်။ ဒီလို သိမ်းထားပေးတဲ့ အတွက် နောက်ထပ် same destination ကို သွားတော့မယ်ဆိုရင် Process Switching လို Decision ကို အစအဆုံး ပြန်လုပ်ဖို့ မလိုတော့ပါဘူး။ Cache ကို ကြည့်ပြီး သွားမှာ ဖြစ်တဲ့ အတွက် ပိုပြီး မြန်ဆန်လာသလို CPU အတွက်လဲ work load သက်သာသွားပါတယ်။

Fast Switching ကို ယနေ့ခေတ်မှာတော့ မသုံးတော့ပါဘူး


CEF Switching <Cisco Express Forwarding>

CEF Switching ကတော့ Cisco ရဲ့ ကိုယ်ပိုင် ပါ။ 1990 လောက်ကနေ စပြီးသုံးခဲ့ပါတယ်။ ယနေ့ခေတ် Cisco Router / Layer 3 Switch တွေရဲ့ Default Switching Method လဲ ဖြစ်ပါတယ်။ CEF Switching ဟာ Table 2 ခုပေါ်ကို မူတည်ပြီးတော့ အလုပ်လုပ်ပါတယ်။

  • FIB <Forward Information Base>

  • Adjacency Table

FIB Table ဆိုတာက Routing Table<CEF မှာတော့ RIB လို့ခေါ်ပါတယ်။> ဆီကနေ Information တွေကို collect လုပ်ထားပေးပါတယ်။ သက်ဆိုင်ရာ Destination IP တွေနဲ့ သူတို့ဆီကို သွားချင်ရင် သွားရမယ့် Next Hop IP address တွေကို မှတ်ထားပါတယ်။

Adjacency Table ကတော့ ARP Table ဆီကနေ Information တွေကို ယူထားတာဖြစ်ပါတယ်။ သူ့ဆီမှာတော့ ARP Table ကနေ ယူထားတာဆိုတော့ MAC Address တွေ ရှိနေမှာပေါ့ဗျာ။

RIB<Routing Table> and ARP Table က Control Plane ပေါ်မှာ ရှိနေတာပါ။

FIB and Adjacency Table ကတော့ Data Plane ပေါ်မှာ ရှိနေတာပါ။

အဲ့ဒီတော့ CEF Switching မှာ ဆိုရင် Forwarding Decision က Data Plane ပေါ်မှာလို့ သိထားလို့ရပါတယ်။

Router တွေက Software Base and Hardware Base Router ဆိုပြီး ၂ မျိုးရှိပါတယ်။ CEF က ၂ မျိုးလုံးပေါ်မှာ အလုပ်လုပ်ပါတယ်။ ဒါပေမယ့် နည်းနည်း ကွဲပြားမူတော့ ရှိသေးတာပေါ့။

  • Software Base မှာဆိုရင် FIB and Adjacency Table ကို CPU က Process လုပ်ပါတယ်။ Store လုပ်တာကိုတော့ RAM က တာဝန်ယူပါတယ်။

  • Hardware Base <example: ASR 9k Series> တွေမှာဆိုရင် FIB ကို TCAM မှာ store လုပ်ပြီးတော့ Adjacency ကိုတော့ separate ဖြစ်တဲ့ Memory ပေါ်မှာ Store လုပ်ပါတယ်။ ASIC ဆိုတဲ့ Special Chip ပြားလေးနဲ့ အလုပ်လုပ်ပါတယ်။

အပေါ်မှာကျွန်တော် ပြောခဲ့သလိုပါပဲ CEF က မနိုင်တဲ့ တစ်ချို့ Packet တွေကိုဆို IP Input Process ကို ပို့ရပါတယ်။ ACL ကို Logging လုပ်တဲ့ အခြေနေမျိုးမှာဆို CEF က Handle မလုပ်ပဲ Process Switching က handle လုပ်ပါတယ်။ Traffic အများစုကိုတော့ CEF က ပဲ handle လုပ်ပါတယ်။

ဒီနေရာမှာ တစ်ခုသိထားသင့်တာကတော့ CEF Switching ရဲ့ Load Balancing Method ပါပဲ။

Load Balancing in CEF

တစ်ခါတစ်လေမှာ Best Path ကို အနိုင်အရှံးမပေါ်လို့ Link 2 link လုံးကို အနိုင်ပေးရတယ်ဆိုပါတော့။ ဒါဆိုရင် Load Balance လုပ်ဖို့ လိုအပ်လာပါပြီ။

CEF မှာ အသုံးပြုလို့ရတဲ့ LB Method ၂ မျိုးရှိပါတယ်။

  • Per Destination

  • Per Packet

Per Destination Method ကိုတော့ Cisco ကနေ Default အနေနဲ့ ထားပေးထားပါတယ်။ Per Destination ဖြစ်တဲ့ အတွက် same source + same destination ကို Path 1 ကနေ Forwarding လုပ်ပေးဖူးရင် Path 1 ကနေပဲ Forwarding လုပ်ပေးမှာဖြစ်ပါတယ်။ Real Time Traffic တွေ အတွက်လဲ အဆင်ပြေတာမို့ Cisco က Default ထားထားပေးပါတယ်။

Per Packet Method ကို သုံးခြင်ရင်တော့ interface level မှာ ဝင်ပြီး ip load-sharing per-packet command ကို သုံးပြီး configure လုပ်ပေးရပါတယ်။ Packet 100 ရှိရင် Path 1 ကနေ 50, Path 2 ကနေ 50 လွှတ်မှာပေါ့ဗျာ။ ဒါပေမယ့် VOIP လို Real Time Traffic တွေ အတွက်တော့ အဆင်မပြေနိုင်တဲ့ အခြေနေတွေလဲ ရှိလာနိုင်ပါတယ်။


ဒါဆိုရင်တော့ Router တစ်လုံးရဲ့ Switching Process ကို နားလည် လိမ့်မယ်လို့ မျော်လင့်ပါတယ်။ အမှားတစ်စုံတစ်ရာ ပါ ပါကလဲ ကျွန်တော့် ဆရာများ Senior များရဲ့ အမှားမဟုတ်ပဲ ကျွန်တော့် ညံဖျင်းမူသာ ဖြစ်ပါတယ်။

the-art-by-makisam.cloud

0
Subscribe to my newsletter

Read articles from Min Htet San directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Min Htet San
Min Htet San

I'm Security and Cloud Support Engineer at KBZ Bank. I'm tying to be a Cloud Native Engineer......