Showing posts with label QOS. Show all posts
Showing posts with label QOS. Show all posts

Saturday, 25 July 2015

လုပ်ငန်းခွင်အတွက် QOS LAB



QOS နဲ့MQC အကြောင်းသဘောပေါက်ပီဆိုရင် လွယ်ကူရှင်းလင်းတဲ့ LAB ကလေးတွေလုပ်ကြည့်ရင်း ပိုပီးနားလည်လာအောင် လေ့လာဖို့ အကြံပေးလိုပါတယ်၊ Configuration ရေးတာလဲရေးတာပေါ့ ဒါပေမယ့် ကိုယ်ရေးထားတာ အလုပ်ဖြစ်မဖြစ်ဘယ်လိုကြည့်ရလဲ၊ ဘယ်တာတွေကြည့်ရမလဲဆိုတာကို စဉ်းစားကြည့်ပါ။
Netflow အကြောင်းသိထားရင်ပိုပီးလေ့လာလို့ကောင်းပါတယ်။ ပီးခဲ့တဲ့ပို့စ်မှာပြောခဲ့သလိုပဲ Router ၃လုံးနဲ့ထပ်စမ်းကြည့်တာပေါ့၊

R1-> R2 -> R3 | R1 ကို Source အနေနဲ့ထား၊ R3 မှာ Http service enable လုပ်၊ R2 ကနေ R3 ကိုချိတ်ထားတဲ့ Interface မှာ Policy-map နဲ့Netflow ကိုသုံးမယ်၊ Class ၂ခုလောက်ခွဲလိုက်၊ Telnet နဲ့ Http ဆိုပီး၊ Telnet ကို DSCP နဲ့ match ပီး priority ပေး၊ Http ကိုတော့ ACL နဲ့match ပီး Bandwidth ရဲ့၅၀% ပေးလိုက် တာပေါ့။ Link က 2MB ရှိတဲ့ Link ဆိုပါတော့၊

အရင်ဆုံး Telnet traffic ဟာ DSCP ဘယ်လောက် သတ်မှတ်ထားလဲဆိုတာသိဖို့လိုပါတယ်၊ ကိုယ်သတ်မှတ်စရာမလိုဘူး၊ နဂိုတည်းကပါပီးသား၊ ဘယ်လိုကြည့်ရမလဲဆိုရင် R3 ကို R1 ကနေ Telnet လုပ်ပီး R2 မှာ Netflow result ကိုကြည့်ရင်းနဲ့သိနိုင်ပါတယ်။ ဒါပေမယ့် DSCP ကိုမမြင်ရပဲ TOS ပဲတွေ့မှာဆိုတော့ TOS to DSCP mapping ကိုသိရမှာပေါ့၊ TOS/Ports တွေကို Hex နဲ့ပြတာဆိုတော့ Hex to Decimal ပြောင်းဖို့အတွက် Calculator သုံးကြတာပေါ့။

Http အတွက်ကတော့ ACL ပဲသုံးမယ်ဆိုတော့ Extended ACL ရေးပီး www/port 80 ကိုထည့်ပေးလိုက်ရင်ရပါပီ။ Interface bandwidth ကို 2MB ပေးပီး Policy map မှာ bandwidth percent 50 ပေးလိုက်ရင် http class အတွက်လုံလောက်ပါပီ။ ပြီးရင် R1 ကနေ Test လုပ်ပီး R2 ကနေ Show commands တွေနဲ့ကြည့်ကြတာပေါ့၊



ဒီ LAB တစ်ခုကနေ ဆက်စပ်ပီးလေ့လာစရာတွေ သတိထားမိမယ်လို့ထင်ပါတယ်။

R2 configuration
ip access-list extended web-server
permit tcp any host 192.168.2.3 eq www
class-map match-any Telnet
match dscp cs6
class-map match-any Web
match access-group name web-server
!
policy-map Web-access-policy
class Web
bandwidth percent 50
class Telnet
priority 256
interface FastEthernet0/1
bandwidth 2048
ip address 192.168.2.2 255.255.255.0
ip flow ingress
ip flow egress
duplex auto
speed auto
service-policy output Web-access-policy

Test Telnet from R1 and checking Netflow on R2


In the red box, source and destination ports can be seen in Hex. Convert it into decimal to see the ports.
Same for TOS value in the yellow box. Telnet packet marked with CO which is DSCP CS6

For TOS to DSCP mapping, please refer to the last page of this document below;
or find the TOS-COS-DSCP mapping table from internet

For ports,
Run Calculator, change the view to programmer view.
8F18 Hex in decimal is 36632
0017 Hex in decimal is 23 which is Telnet port



 Verify using show commands and you will see traffic matching Telnet class

 Test similar way by using port 80 and verify with show command too


The result below showed the complete policy-map result on the interface. The rest of the traffic not matching above two classes will be put under default class. You may notice that the allocated bandwidth for web-service is 1024, calculated based on 50% of interface bandwidth. Good Luck!


ကိုဖြိုး

MQC (Cisco Modular QoS CLI) ရေးဖို့ဘာလိုလဲ



QOS ရဲ့သဘောတရားကိုအခြေခံလောက်နားလည်ထားပီဆိုရင် MQC framework ကိုသုံးပီး Policy တွေရေးလို့ရပါပြီ။ MQC မှာအဓိက အဆင့် ၃ဆင့်ပဲရှိပါတယ်။

1. Define a class-map (လိုအပ်ချက်ပေါ်မူတည်ပီး အုပ်စုခွဲမယ်)
2. Define a policy-map (ဘယ်အုပ်စုကို ဘာလုပ်မယ်ဆိုပီး Policy သတ်မှတ်မယ်)
3. Apply the policy-map (Traffic flow ပေါ်မူတည်ပီး Interface တွေမှာ အသုံးပြုမယ်)

Router(config)# class-map class1
Router(config-cmap)# match access-group 101
Router(config)# policy-map policy1
Router(config-pmap)# class class1
Router(config-pmap-c)# bandwidth 3000
Router(config)# interface fastethernet1/0/0
Router(config-if)# service-policy output policy1

သူရဲ့Framework အရ ၃ဆင့်ပဲလိုတယ်၊ ACL နဲ့Bandwidth ကိုသုံးတတ်ရင် စရေးလို့ရပါပီ၊
ဒါပေမယ့် Class-map/Policy-map တို့ရဲ့Elements တွေကိုသိထားရင်တော့ကောင်းတာပေါ့၊
Class-map မှာဘာတွေ Match လုပ်လို့ရလဲ၊ Policy-map မှဘာ Action တွေသုံးလို့ရလဲ။
Class-map မှာ protocol ကို Match လုပ်ချင်ရင် NBAR လိုတာမျိုး၊
Policy-map မှာ သုံးတဲ့ Priority/ Bandwidth/ Police/ Shape ဘာကွာလဲ၊
နောက်ပီးတော့ Traffic identification/classification/ Marking အတွက် DSCP/ IP Precedence တွေအကြောင်း၊

အဲဒီလောက် သိထားပီဆိုရင် လုပ်ငန်းခွင်ထဲမှာ အတော်အလုပ်ဖြစ်ပါတယ်။
အကုန်လုံးကို တပြိုင်ထဲလေ့လာရာမှာ အခက်အခဲရှိနိုင်တဲ့အတွက် တဆင့်ခြင်း လေ့လာခြင်းဟာ အကောင်းဆုံးလို့အကြံပေးချင်ပါတယ်၊
ဒီလိုမှ မဟုတ်ရင် QOS ကို မဖတ်ချင်လောက်အောင်ဖြစ်သွားတတ်ပါတယ်။
ဒီ Link တွေမှာ အထက်ကပြောခဲ့တာတွေလေ့လာနိုင်ပါတယ်။

MQC

Bandwidth vs Priority

DSCP and Precedence value

Traffic Policing and Traffic shaping

NBAR

စမ်းသပ်ချင်တယ်ဆိုရင် Router ၃လုံးကိုဆက်ပီးချိတ်၊ အလယ်က Router ရဲ့Outbound interface မှာ Policy-map ကို Apply လုပ်၊
တဖက်က Router ကို Source အနေနဲ့ထား၊ တခြားဖက်က Router ကို Destination အဖြစ်နဲ့ထားပီး စမ်းကြည့်ပေါ့၊
Show policy-map interface နဲ့ကိုယ်စီစဉ်ထားတဲ့ Class ထဲဝင်ရဲ့လား၊
Policy-map အလုပ်လုပ်ရဲ့လားဆိုတာ Packet count ကိုကြည့်ပီးသိနိုင်ပါတယ်။

ကိုဖြိုး

မညီမျှခြင်းများအတွက် QOS (Quality of service)



QOS ဟာလုပ်ငန်းခွင်အတွက် အလွန်အရေးပါသလို လေ့လာရာမှာလဲ သိပ်မလွယ်ကူတဲ့ အရာတခုဖြစ်ပါတယ်။ ကိုယ်တိုင်လည်းအခုချိန်အထိ တခါတရံမှာ ရုံးကန်နေရဆဲပါပဲ။ User အနေနဲ့ QOS ဆိုတာမမြင်သာပေမယ့် Network Admin တစ်ယောက်အနေနဲ့ ကိုယ့် Network အထဲမှာData တွေတစ်နေရာမှ တစ်နေရာကို ဘယ်လိုသွားနေသလဲဆိုတာ သိသင့်ရုံတင်မက လိုအပ်လာရင် လိုသလိုစီမံတတ်ဖို့လဲလိုပါတယ်၊ အဲဒီလိုမှ မဟုတ်ရင် ၂လမ်းသွားလမ်းကျဉ်းတခုမှာ ပုလိပ်နဲ့စည်းကမ်းမထားပဲ စက်ဘီး၊ဆိုက်ကား၊ကား၊ဘစ်နဲ့ဆေးရုံကားတို့ကို သွားချင်သလိုသွားနေတာကို ဘေးကရပ် ကြည့်နေရတဲ့လူလို ဖြစ်နေတော့မှာပေါ့၊ ၆လမ်းသွားလမ်းမှာဆိုရင်တော့ ဘာအရေးလဲ၊ သိပ်ပြဿနာမရှိဘူးပေါ့၊ ဒီလိုပဲ Network မှာ Bandwidth နဲတဲ့ Link တွေဖြစ်တဲ့ WAN Link (Congestion ဖြစ်နိုင်တဲ့) တွေမှာ Data တွေဖြစ်သလိုသွားခိုင်းမယ့်အစား QOS သုံးပီး ကိုယ်လိုချင် တဲ့ပုံစံအတိုင်း စီမံထားမယ်ဆိုရင် အကောင်းဆုံးပေါ့။ Network မှာတော့ Network Admin တွေဟာ Traffic Police တွေပါပဲ။

အပြင်မှာ ခုနကပြောတဲ့ ယာဉ်တွေကို ခွဲခြားသလိုမျိုး Data တွေကိုလဲ ခွဲခြားရပါတယ်၊ အဲဒါကို Identification and Classification လို့ပြောပါတယ်၊စက်ဘီးတို့လိုအနှေးယာဉ်တွေကတစ်စု၊ Taxiတွေအိမ်သုံးကားတွေကတစ်စု၊ VIP တွေဆေးရုံကားတွေကတစု ဆိုပီးအုပ်စုဖွဲ့ထားသလို Network မှာလဲ Voice တို့Video ကတစ်စု၊ သာမန် Web access လို အရေးမကြီး တာတွေက သပ်သပ်ဆိုပြီး ထားလိုရပါတယ်၊
ဒါကို QOS config မှာ Class Map တွေနဲ့စုဖွဲ့ထားလေ့ရှိပါတယ်။ အဲဒီ Class Map တွေကို ကိုယ့်ရဲ့Network ပေါ်မှာမူတည်ပီး ဘယ် Traffic ကတော့ဘယ်လိုသွားရမယ် ဆိုတာ Policy Map ရေးပီး အသုံးပြုမည့် Interface မှာ တွဲပေးရပါတယ်၊ အပြင်မှာ Bus လမ်းကြောင်း သတ်မှတ်ပေးထားတာမျိုး၊ ဆေးရုံကားတို့၊ VIP တို့သွားရင်သူတို့ကိုဦးစားပေးရတာမျိုးပေါ့၊

ဒါပေမယ့် ဘယ်ကားကဘာဆိုတာသိမှ Class ခွဲရမှဆိုတော့ အမှတ်အသားတွေကို အရင်သိရမှာပေါ့၊ ဆေးရုံကားဆို Red Cross ပါတာ၊ Taxi ဆိုတာပါမှ Taxi လားအိမ်သုံးကားလားခွဲလို့ရမှာ အဲဒါမျိုးတွေကို Network မှာ Identification/ Marking/ Coloring အပိုင်းလို့ပြောရမှာပေါ့၊ တစ်ချို့Data တွေဟာ Source ကထွက်လာထဲက အဲဒီ Mark တွေပါလာသလို(ဥပမာ Voice traffic) ဘာမှမပါလာတဲ့ Data တွေကိုလည်း လိုချင်တဲ့ Mark တွေလဲ ပေးလို့ရပါတယ်၊
ဘာနဲ့တူမလဲဆိုရင် Audi အမည်းရောင် အချို့ကို VIP ကားအဖြစ်သတ်မှတ်ထားတာမျိုး (အခုတော့ဘာတွေကစီးနေကြလဲမသိပါ၊ အရင်ကဖြစ်ပါသည်) :)
နောက်တခုက Red Cross တွေ့တာနဲ့လမ်းကပုလိပ်တွေ ၊ လူတွေက ဒီကားဟာဆေးရုံကား ဆိုပီး သတ်မှတ်သလားဆိုတော့လဲ မဟုတ်ပါဘူး၊ ကားပုံစံကိုလဲကြည့်ကြမှာပေါ့၊ ၂ယောက်စီး ပြိုင်ကားမှာ Red Cross တပ်ထားရင်ဘယ်သူမှ ဖယ်ပေးမှမဟုတ်ပါဘူး၊ ဒီတော့ ယုံကြည်မှုကလဲပါသေးတယ်၊
ဒါကိုတော့ Switch port တွေမှာ Trust ထားတာမျိုး လို့ဆိုရပါလိမ့်မယ်။
(ဥပမာ Cisco phone နဲ့ချိတ်ထားတဲ့ Switchport တွေမှာ Trust COS/Cisco phone တို့သုံးထားတာမျိုး )

Cisco Phone ဟာ Data စပို့ထဲက COS/DSCP Value တွေထည့်ပေးပီး သူ့ဆီက Traffic ကို သိသာအောင် ပေးပို့ပါတယ်။ ဒီတော့ Switch port က Trust လုပ်ပီးတော့ အသိအမှတ်ပြုလိုက်ပါတယ်။
အဲဒီ Traffic ကို Router ကတွေ့ရင် ဘာဆိုတာသိပီး သတ်မှတ်ထားတဲ့ Class Map တွေ Policy Map တွေမှာလိုအပ်သလို စီစဉ်ပေးမှာဖြစ်ပါတယ်။

ဒီတော့ QOS Policy တစ်ခုရေးဖို့အတွက် အပေါ်ကပြောခဲ့တဲ့ဟာတွေ အားလုံး သိမှ အလုပ်ဖြစ်မှာပါ၊
– Switch port မှာ ဘယ်လို Trust မလဲ
– Classification/ Identification/ Marking/ Coloring ဘယ်လိုလုပ်မလဲ
– Class Map တွေဘာကြောင့်လိုအပ်သလဲ
– Policy Map တွေနဲ့Class Map တွေသုံးပီး လိုချင်တဲ့ Policy တွေသတ်မှတ်ဖို့
ဒါဟာ အပေါ်ယံအဆင့်ပဲရှိပါသေးတယ်၊
ဒါပေမယ့် အခုလောက် အခေါ်အဝေါ်အချို့နဲ့Flow သိထားပီဆိုရင် စပီးလေ့လာမည့်သူတွေ
အဖို့အထောက်အကူဖြစ်နိုင်မယ်ထင်ပါတယ်၊
လုပ်ငန်းခွင်က မလေ့လာရသေးတဲ့သူတွေလဲ သူများသုံးထားတဲ့ Configuration တွေတွေ့ရင် ဘာကိုဆိုလိုလဲဆိုတာ ခန့်မှန်းလို့ရတာပေါ့။

ကိုဖြိုး