Tuesday, 25 April 2017

EIGRP on XR

EIGRP ရဲ့ သဘောတရားကတော့ အတူတူပါပဲ ဒါပေမယ့် XR ရဲ့ ကန့်သတ်ချက်လေး တွေရှိနေတာကိုတော့ သတိပြုရပါမယ်။ IOS XR ပေါ်မှာ EIGRP Configuration လုပ်တဲ့ ပုံစံကိုဆက်ကြည့်ရအောင်။ သိသိသာသာ ပြောင်းသွားတာကတော့ Address-family အောက်မှာ အသုံးပြုရတဲ့ပုံစံပါ။ Auto summary က Default အနေနဲ့ ပိတ်ထားတဲ့ အတွက် no auto summary မလိုပါဘူး။ Neighbors up/down status ကိုကြည့်ဖို့ ရာအတွက် ထည့်ရေးပေးရပါတယ်။ အဲဒါမပါရင် Neighbor up/down အခြေအနေကို Log မှာ မမြင်ရပါဘူး။

RP/0/0/CPU0:XR1#conf t
RP/0/0/CPU0:XR1(config)#router eigrp 1
RP/0/0/CPU0:XR1(config-eigrp)#address-family ipv4
RP/0/0/CPU0:XR1(config-eigrp-af)#log-neighbor-changes


RP/0/0/CPU0:XR1(config-eigrp-af)#interface g0/0/0/0
RP/0/0/CPU0:XR1(config-eigrp-af-if)#exit
RP/0/0/CPU0:XR1(config-eigrp-af)#exi
RP/0/0/CPU0:XR1(config-eigrp)#exit
RP/0/0/CPU0:XR1(config)#commit

RP/0/0/CPU0:Apr 23 12:44:17.626 : eigrp[1002]: %ROUTING-EIGRP-5-NBRCHANGE : EIGRP-1: default-v4 1: Neighbor 192.168.1.2 (GigabitEthernet0/0/0/0) is up: new adjacency

Show IP Protocols နဲ့ ကြည့်ရင် သူရဲ့  Default setting/ timers တွေကို အလွယ်တကူ သိနိုင်ပါတယ်။

RP/0/0/CPU0:XR1#sh ip protocols
Routing Protocol: EIGRP, instance 1
 Default context AS: 1, Router ID: 192.168.1.1
  Address Family: IPv4
   Logging neighbor changes
   Default networks not flagged in outgoing updates
   Default networks not accepted from incoming updates
   Distance: internal 90, external 170
   Maximum paths: 4
   EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0, K6=0


   EIGRP metric rib scale 128
   EIGRP metric version 64-bit
   EIGRP maximum hopcount 100
   EIGRP maximum metric variance 1
   EIGRP NSF: enabled
    NSF-aware route hold timer is 480s
    NSF signal timer is 20s
    NSF converge timer is 300s
    Time since last restart is 00:00:11
   SIA Active timer is 180s
   Interfaces:
    GigabitEthernet0/0/0/0

RP/0/0/CPU0:XR1#sh eigrp nei
IPv4-EIGRP Neighbors for AS(1) VRF default

H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   192.168.1.2             Gi0/0/0/0         11 00:01:30   59   354  0  2

Commit လုပ်တဲ့အချိန်မှာ အမှားပါသွားရင် လက်မခံပါဘူး။ ဘာကြောင့် လက်မခံသလဲဆိုတာကို failed config ကနေပြန်ကြည့်နိုင်ပါတယ်။ ဒီနမူနာမှာဆိုရင် load sharing အတွက် Maximum paths ကို 32 အထိရတယ်ဆိုပြီး ဆိုပါတယ် ဒါပေမယ့် တကယ် ကိုယ်သုံးတဲ့ Platform က လက်မခံနိုင်ရင်တော့ မရပါဘူး။ 

RP/0/0/CPU0:XR1#conf t
RP/0/0/CPU0:XR1(config)#router eigrp 1
RP/0/0/CPU0:XR1(config-eigrp)#address-family ipv4
RP/0/0/CPU0:XR1(config-eigrp-af)#maximum-paths 32
RP/0/0/CPU0:XR1(config-eigrp-af)#commit

% Failed to commit one or more configuration items during a pseudo-atomic operation. All changes made have been reverted. Please issue 'show configuration failed [inheritance]' from this session to view the errors

RP/0/0/CPU0:XR1(config-eigrp-af)#show configuration failed inheritance
!! SEMANTIC ERRORS: This configuration was rejected by
!! the system due to semantic errors. The individual
!! errors with each failed configuration command can be
!! found below.


router eigrp 1
 address-family ipv4
  maximum-paths 32
!!% 'eigrp' detected the 'warning' condition 'C12000 Platform can support only 16 maximum-paths'
 !
!
End


ပြန်ပြင်ပြီး သုံးလိုက်ရင် အဆင်ပြေသွားပါတယ်။

RP/0/0/CPU0:XR1(config-eigrp-af)#maximum-paths 16
RP/0/0/CPU0:XR1(config-eigrp-af)#commit
RP/0/0/CPU0:XR1(config-eigrp-af)#
RP/0/0/CPU0:XR1#sh ip protocol | i path
   Maximum paths: 16

Load sharing မှာ unequal load အတွက် Variance သုံးရတယ်ဆိုတာ သိကြမှာပါ။ အများဆုံး 128 အထိလက်ခံတယ်။

RP/0/0/CPU0:XR1(config)#router eigrp 1
RP/0/0/CPU0:XR1(config-eigrp)#address-family ipv4
RP/0/0/CPU0:XR1(config-eigrp-af)#variance ?
  <1-128>  Metric variance multiplier
RP/0/0/CPU0:XR1(config-eigrp-af)#variance 128
RP/0/0/CPU0:XR1(config-eigrp-af)#commit
RP/0/0/CPU0:XR1(config-eigrp-af)#

RP/0/0/CPU0:XR1#sh ip protocol | i variance
   EIGRP maximum metric variance 128

မူလပုံစံအတိုင်း ပြန်ထားလိုက်မယ်။

RP/0/0/CPU0:XR1#conf t
RP/0/0/CPU0:XR1(config)#router eigrp 1
RP/0/0/CPU0:XR1(config-eigrp)#address-family ipv4
RP/0/0/CPU0:XR1(config-eigrp-af)#no variance
RP/0/0/CPU0:XR1(config-eigrp-af)#no maximum-paths
RP/0/0/CPU0:XR1(config-eigrp-af)#commit
RP/0/0/CPU0:XR1(config-eigrp-af)#

RP/0/0/CPU0:XR1#sh ip protocol | i "path|variance"
   Maximum paths: 4
   EIGRP maximum metric variance 1

Route ကြည့်တဲ့ပုံစံ ပြောင်းသွားတယ်။ အရင်အတိုင်းလည်း ရပါသေးတယ် ဒါပေမယ့် သူပုံစံနဲ့ ကြည့်ရင် အနောက်က အသေးစိတ် ထပ်ပြီး ကြည့်လို့ရတာတွေ ပိုများတယ်။

RP/0/0/CPU0:XR1#sh ip route eigrp

D    2.2.2.2/32 [90/10752] via 192.168.1.2, 00:07:25, GigabitEthernet0/0/0/0

RP/0/0/CPU0:XR1#show route eigrp

D    2.2.2.2/32 [90/10752] via 192.168.1.2, 00:07:10, GigabitEthernet0/0/0/0

Authentication အတွက် Key ကို activate လုပ်တာနဲ့ မရသေးဘူး။ Cryptographic-algorithm ကို md5 အသုံးပြုမှရတယ်။

RP/0/0/CPU0:XR1(config)#
RP/0/0/CPU0:XR1(config)#key chain E-KEY
RP/0/0/CPU0:XR1(config-E-KEY)#key 1
RP/0/0/CPU0:XR1(config-E-KEY-1)#key-string clear cisco

RP/0/0/CPU0:XR1#show key chain E-KEY
Key-chain: E-KEY/ -

Key 1 -- text "045802150C2E"
  cryptographic-algorithm -- Not configured
  Send lifetime: Not configured
  Accept lifetime: Not configured

RP/0/0/CPU0:XR1(config)#router eigrp 1
RP/0/0/CPU0:XR1(config-eigrp)#address-family ipv4
RP/0/0/CPU0:XR1(config-eigrp-af)#interface g0/0/0/0
RP/0/0/CPU0:XR1(config-eigrp-af-if)#authentication keychain E-KEY
RP/0/0/CPU0:XR1(config-eigrp-af-if)#commit

RP/0/0/CPU0:XR1#show eigrp interfaces g0/0/0/0 detail | i "Key|key"
  Authentication mode: MD5  Key chain: E-KEY
  No active key found in keychain database
  Packets dropped due to wrong keychain config: 0

Neighbour ပြုတ်သွားလိမ့်မယ်။ တစ်ဖက်က ဒီအတိုင်းလိုက်ပြောင်းရင်လည်း ရမှာ မဟုတ်။

RP/0/0/CPU0:Apr 23 13:20:51.565 : eigrp[1002]: %ROUTING-EIGRP-5-NBRCHANGE : EIGRP-1: default-v4 1: Neighbor 192.168.1.2 (GigabitEthernet0/0/0/0) is down: authentication mode changed

ဒီအခြေအနေအထိ မရသေးဘူး။ Key activate လုပ်ဖို့အတွက် Lifetime ထည့်ပြီး  md5 ပြောင်းမယ်။

RP/0/0/CPU0:XR2#conf t
RP/0/0/CPU0:XR2(config)#key chain E-KEY
RP/0/0/CPU0:XR2(config-E-KEY)# key 1
RP/0/0/CPU0:XR2(config-E-KEY-1)#send-lifetime 00:00:00 22 April 2017 infinite
RP/0/0/CPU0:XR2(config-E-KEY-1)#accept-lifetime 00:00:00 22 April 2017 infinite
RP/0/0/CPU0:XR1(config-E-KEY-1)#cryptographic-algorithm md5


RP/0/0/CPU0:XR1(config-E-KEY-1)#commit
RP/0/0/CPU0:XR1(config-E-KEY-1)#

ဒီပုံစံအတိုင်း နှစ်ဖက်စလုံးမှာ ထည့်လိုက်ရင်တော့ Key active ဖြစ်သွားပြီး Neighbor ပြန်တက်လာမှာဖြစ်ပါတယ်။

RP/0/0/CPU0:XR1#show eigrp interfaces g0/0/0/0 detail | i "Key|key"
  Authentication mode: MD5  Key chain: E-KEY
  Current active key id: 1

RP/0/0/CPU0:XR1#sh eigrp nei

IPv4-EIGRP Neighbors for AS(1) VRF default

H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   192.168.1.2             Gi0/0/0/0         11 00:00:22   35   210  0  6

အခုလောက်ဆို IOS XR ပေါ်မှာ Basic EIGRP Configuration ကို အလုပ်ဖြစ်အောင်လုပ်လို့ ရသွားပါပြီ။ Route policy တွေ ဘာတွေနဲ့ တွဲသုံးလိုက်ရင်တော့ ပိုပြီး အဆင်ပြေသွားပါလိမ့်မယ်။

ကိုဖြိုး

Saturday, 22 April 2017

စကားပြောခြင်း အနုပညာ။

ကျွန်တော် ငယ်စဉ်က လူတွေနဲ့စကားပြောရမှာ အတော်ဝန်လေးတတ်ပါသည်။ လူတွေနဲ့ပြောရတာ မကြိုက်လို့ တိရိဆန်တွေနဲ့ပြောရတာ ကြိုက်တယ်လို့လည်း မထင်စေချင်ပါ။ တကယ်ကတော့ ကျွန်တော် စကားမပြောချင်တာက လုပ်ဖော်ကိုင်ဖက် သူငယ်ချင်း အပေါင်းသင်းများ မဟုတ်၊ လှပချောမောသော ကောင်မလေးများလဲ မဟုတ်၊ ကာစတမ်မာဟုခေါ်သော စားသုံးသူများဖြစ်သည်။ စားသုံးသူဟု ဆိုရာတွင် အစားအသောက်လုပ်ငန်းအတွက်ဆိုလျှင် သင့်တော်ပေမယ့် ကျွန်တော်တို့လို အိုင်တီလုပ်ငန်းဘက်တွင်တော့ အဲဒီလို ခေါ်ရတာ အူကြောင်ကြောင်နိုင်လှသည်။ ဖောက်သည်ဆိုရင်လဲ ပိုဆိုးပေလိမ့်မည်။ မဖြစ်သေး။ သုံးစွဲသူဟုဆိုရင်လဲ မကောင်းတဲ့ဘက်ကို နွယ်နေသလိုမျိုးဖြစ်နေပြန်သည်။ ဖတ်ခဲ့ဘူးတဲ့ မှူခင်းဂျာနယ်ထဲက သူတွေကို မြင်ယောင်မိသည်။ မြန်မာစကားသည် အတော်ခက်သည်။ ထားလိုက်တော့ ကာစတမ်မာလို့ပဲ ခေါ်လိုက်မည်။ သူတို့၏နောက်တွင် အထက်အရာရှိဆိုသော သူများပါသည်။ သူတို့ပီးလျှင် တော့ငွေကြေးများ ကိုင်တွယ်တဲ့ အဖွဲ့ ဖြစ်သည့် အကောင့်တန့်များဖြစ်ကြသည်။ 


သူတို့နဲ့ စကားမပြောချင်သည့် အကြောင်းရင်း ကျွန်တော့မှာ ခိုင်ခိုင်လုံလုံရှိသည်။ အများကြီးရှာစရာမလို တစ်ခုသာ ရှိသည်။ ရစ်လို့ဖြစ်သည်။ ကိုယ်ကြိုက်သည့် ကောင်မလေးကရစ်လျင်ခံနိုင်ပေမယ့် ထိုသူများ ရစ်လျှင်တော့ မခံစားနိင်၊ ပိုပြီးကြေကွဲရသည်။ ကာစတမ်မာတွေရစ်လို့အိမ်ပြန်နောက်ကျခဲ့သည့် ရက်များမှာ မရေတွက်နိုင်အောင်ရှိသည်။ အထက်အရာရှိခေါ် ဘော့စ်တွေရစ်လျင် အပိုဆာဒါးတွေ ပိုပြီးလုပ်ရတယ်ဟု ထင်မိသည်။ အကောင့်တန့်များ ရစ်လျှင်တော့ မိမိ၏ ရှိစုမဲ့စု လစာလေးကနေ စိတ်မကောင်းခြင်းများစွာနဲ့ စိုက်ထားရသော ကားခများ၊ဟိုကြေးဒီကြေးများ ပြန်ရဖို့ နှေးကွေးတတ်သည်။ တိုက်ဆိုင်မှုတွေလား မပြောတတ် ကျွန်တော်ကြုံခဲ့ရသော အကောင့်တန့်များမှာ အများစုက အပျိုကြီးများဖြစ်ကြသည်။ ငယ်စဉ်ကကြားခဲ့ရသည်မှာလဲ အပျိုကြီးများသည် ပို၍ရစ်တတ်ကြသည်ဟုဆိုတော့ နဂို အခံနဲ့ပင် ကိုယ့်ကို ရစ်နေသည်ဟု ခံစားမိသည်။ တကယ်တော့ အဲလိုမဟုတ်။ သူငယ်ချင်း အကောင့်တန့်များရှိနေ၍ ပြန်ဖြည်မှ ဖြစ်မည်။

ဒီလိုနဲ့ အသက်တွေကြီးလာသလို၊ လုပ်ခဲ့တဲ့ အလုပ်တွေ၊ အပြောင်းအလဲတွေလည်း အမျိုးစုံလာသည်။ တချိန်က ကွန်ပြူတာနောက်တွင် ပေကပ်ပြီး ထိုင်ရမထ နည်းပညာကို ချစ်ခင် ခုံမင်စွဲမက်စွာနဲ့ နေ့ညမနား ကြိုးစားခဲ့ရင်   တနေ့ ရွှေထီးဆောင်းရမယ်ဆိုတဲ့ အတွေးတွေဟာ အနည်းငယ် အစွန်းရောက်သလို ခံစား လာရသည်။ ရောက်လေရာ နေရာတိုင်းမှာ စကားမပြာပဲပီးသွားတဲ့အလုပ် ဟူ၍ မရှိသလောက်ပင်။ တချို့ဆို ဘာမှတောင် မလုပ်လိုက်ရပဲ စကားပြောရင်းနဲ့ပင် အဆင်ပြေသွားတာတွေ ရှိသည်။ ရစ်လှပါသည်ဆိုသော ကာစတမ်မာများကို သူတို့စိတ်ကျေနပ်အောင် စိတ်မခုအောင် ပြောတတ်ဆိုတတ်လျှင် သိပ်မရစ်ကြတော့။ ကံကောင်းရင် ဟယ်လီကော်ပတာတောင် အလကား စီးရတန်ကောင်း၏။ ကျွန်တော့် ကာစတမ်မာထဲမှာ ဟယ်လီကော်ပတာ ငှားသည့်သူလည်းပါသည်။ တော်ကြာ အပေါ်ရောက်တော့မှ အရင်က မကျေနပ်တာတွေ သတိရပြီး တွန်းချလျှင် ဒုက္ခရောက်မည်စိုး၍ လိုက်မစီးခဲ့။ ဘော့စ်ဆိုသည့်သူများကလည်းကိုယ်က ရေကုန်ရေခမ်း ညစ်လို့မကျန် ခါလို့မကျအောင် လုပ်ခဲ့သည့်တိုင် သူတို့မမြင်၊ မသိလျှင် အလုပ်လုပ် နေတယ်လို့ မထင်။ လစာတိုးဖို့ဆို ဝေလာဝေး။ မှားရင်၊ ကာစတမ်မာ ကွန်ပလိန်းတက်လျှင် အရင်ဆုံးသိသည်။ ဒီတော့ သူတို့ကို ကိုယ်အလုပ်လုပ်ကြောင်း တော်ကြောင်း ပြဖို့ ပြောပြဖို့လိုသည်။ ခပ်ချေချေနေလို့မရ။ ဖားခိုင်းတာ မဟုတ်။ မိမိ၏ အရည်အသွေးကို ဖုံးနေသော ပြာများကို ကိုယ်တိုင်ခါချပီး ရဲရဲတောက်နေသော ကိုယ့်ရဲ့ မီးစတွေကို ဖော်တတ်ဖို့လိုသည်။ အကောင့်တန့်များကတော့ သူတို့တောင်းဆိုသည့် အချက်အလက်၊ စာရွက်စာတမ်းများ စုံလင်အောင် အချိန်မှီ ပေးနိုင်ရင် သိပ်ပြဿနာ မရှိ။ မသကာ နောက်ကျရင် တစ်လပေါ့။ သူတို့ရဲ့ အလုပ်သဘောအရ စာရင်းကို အကြွေးထားလို့မရ။


ဒီနေရာမှာ ကျွန်တော်ပြောလို့သည့် အချက်ကို တလွဲထင်သွားမှာဆိုးရသည်။ ကိုယ်လျှေက်နေတဲ့ ပညာသည် လမ်းကြောင်းမှာ ဘာမှ မတတ်၊ မလေ့လာပဲ စကားပဲ ပြောနေလို့မရ။ ကိုယ်လုပ်နေတဲ့ အလုပ်ကို ကျွမ်းကျင်ဖို့ က အဓိက လိုအပ်ချက်ဖြစ်သည်။ ကာစတမ်မာတွေက အချဉ်တွေမဟုတ်၊ သူတို့လည်း ဂူးဂဲ သုံးတတ်တာကို မေ့ထားလို့မရ။ ဘော့စ်ဆိုသည့် သူများကိုလည်း ဒီဘဲကြီး သေချာမသိတော့ပါဘူးကွာဆိုပြီး အဲနီးဟောင်း ဘတ်လို့မရ၊ သူတို့လည်း ငယ်ရာက ကြီးလာသူများဖြစ်သည်။ တချို့ဆို ကစားသမား ဘဝမှာ သိပ်မအောင်မြင်ပေမယ့် နည်းပြလုပ်သည့်အခါ ပိုမြင် ပိုကောင်းအောင် လုပ်တတ်ကြသည်။ လက်ရှိ မန်ယူနည်းပြ၊ အရင် ချယ်ဆီးနည်ပြဟောင်း မော်ရင်ဟိုကို ပဲကြည့်။ သူယူခဲ့တဲ့ ဖလားတွေ က နည်းတာမဟုတ်။သူ အင်တာဗျူးပြီး ခန့်လိုက်လို့ သာ ကိုယ်ဒီအလုပ်ကို ရောက်လာခြင်းဖြစ်သည်။   ဒီတော့ ကိုယ်တကယ်မလုပ်ပဲ ဖြီးနေရင် သူတို့အလွယ်တကူသိသည်။ ဆိုလိုချင်တာက နည်းပညာ တစ်ခုတည်း သိနေတတ်နေလို့မရ၊ ကိုယ့်ရဲ့ အလုပ်တက်လမ်း ကယ်ရီယာ တိုးတက်ကြောင်းမှာ စကားပြောနိင်ဖို့ အရေးအသားကောင်းဖို့၊ ပြဿနာတစ်ခု ပေါ်လာရင် နည်းပညာ တစ်ခုတည်းသာမက ဘက်ပေါင်းစုံကနေ လိမ္မာပါးနပ်စွာ ဖြေရှင်းနိင်ဖို့တွေပါ လိုအပ်ကြောင်း ပြောပြလိုခြင်းဖြစ်ပါသည်။


စစ်စကိုတွေ ဂျနီပါတွေ ဗွီအမ်ဝဲတွေ အရေးပါသလို ဆော့ဖ် စကေးလို့ခေါ်တဲ့ စကားပြောခြင်း အနုပညာရပ်ကိုပါ အလေ့အကျင့်လုပ်ပြီး ကိုယ့်ရဲ့ အရည်အသွေးကို မြှင့်တင်ကြပါလို့ တိုက်တွန်း လိုက်ရပါသည်။


ကိုဖြိုး

Monday, 17 April 2017

OSPF on XR

High-End Service Provider Router တွေမှာ အသုံးပြုတဲ့ IOS ဟာ မြင်နေကြ သုံးနေကြ Consumer/ Enterprise ဘက်မှာသုံးတဲ့ Classical IOS နဲ့ မတူဘဲ Modular IOS ဖြစ်တဲ့ IOS XR ကို အသုံးပြုထားပါတယ်။ SP Environment မှာသာ တွေ့ ရမှာ ဖြစ်ပြီး ထိတွေ့ ဖို့ အခွင့်အရေး နဲတဲ့ အတွက် သိပ်ပီး ရင်းနှီးလေ့ မရှိကြပါဘူး။ ဒါပေမယ့် အခုနောက်ပိုင်း Virtualization ရဲ့ နည်းပညာကြောင့် IOS XR တို့ NX-OS တို့ကို VM တွေအဖြစ်နဲ့ စမ်းသပ် အသုံးပြုလို့ ရလာပြီ ဖြစ်ပါတယ်။ OS မတူသလို အသုံးပြုရတာလည်း မတူပါဘူး။

နမူနာ အဖြစ်နဲ့ IOS XR ပေါ်မှာ OSPF Basic Configuration ကို ဘယ်လို လုပ်ရသလဲဆိုတာ ကို လေ့လာကြည့်ရအောင်။



xxxxxxxxxxxxxxxxx
Peering
xxxxxxxxxxxxxxxxx


RP/0/0/CPU0:XR1#conf t
RP/0/0/CPU0:XR1(config)#router ospf CORE
RP/0/0/CPU0:XR1(config-ospf)#area 0
RP/0/0/CPU0:XR1(config-ospf-ar)#int GigabitEthernet0/0/0/0
RP/0/0/CPU0:XR1(config-ospf-ar-if)#exit
RP/0/0/CPU0:XR1(config-ospf-ar)#exit
RP/0/0/CPU0:XR1(config-ospf)#exit
RP/0/0/CPU0:XR1(config)#show config
Building configuration...
!! IOS XR Configuration 5.2.0
router ospf CORE
 area 0
  interface GigabitEthernet0/0/0/0
  !
 !
!
end
RP/0/0/CPU0:XR1(config)#commit

RP/0/0/CPU0:XR2#conf t
RP/0/0/CPU0:XR2(config)#router ospf CORE
RP/0/0/CPU0:XR2(config-ospf)#area 0
RP/0/0/CPU0:XR2(config-ospf-ar)#interface GigabitEthernet0/0/0/0
RP/0/0/CPU0:XR2(config-ospf-ar-if)#exit
RP/0/0/CPU0:XR2(config-ospf-ar)#exit
RP/0/0/CPU0:XR2(config-ospf)#exit
RP/0/0/CPU0:XR2(config)#commit
RP/0/0/CPU0:XR2(config)#exit


RP/0/0/CPU0:XR1#sh ip ospf nei
* Indicates MADJ interface

Neighbors for OSPF CORE

Neighbor ID     Pri   State           Dead Time   Address         Interface
192.168.1.2     1     FULL/BDR        00:00:38    192.168.1.2     GigabitEthernet0/0/0/0
    Neighbor is up for 00:00:21

Total neighbor count: 1


RP/0/0/CPU0:XR1#sh ip ospf interface | in Type
  Process ID CORE, Router ID 192.168.1.1, Network Type BROADCAST, Cost: 1
xxxxxxxxxxxxxxxxxxxx
Change Network Type
xxxxxxxxxxxxxxxxxxxx


RP/0/0/CPU0:XR1(config-ospf-ar-if)#show config
Building configuration...
!! IOS XR Configuration 5.2.0
interface GigabitEthernet0/0/0/0
!
router ospf CORE
 area 0
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
 !
!
end

RP/0/0/CPU0:XR1(config-ospf-ar-if)#commit

RP/0/0/CPU0:XR1#sh ip ospf interface | i Type
  Process ID CORE, Router ID 192.168.1.1, Network Type POINT_TO_POINT, Cost: 1

xxxxxxxxxxxx
Change Cost
xxxxxxxxxxxx


RP/0/0/CPU0:XR1#conf t
RP/0/0/CPU0:XR1(config)#router ospf CORE
RP/0/0/CPU0:XR1(config-ospf)# area 0
RP/0/0/CPU0:XR1(config-ospf-ar)#  interface GigabitEthernet0/0/0/0
RP/0/0/CPU0:XR1(config-ospf-ar-if)#cost 10
RP/0/0/CPU0:XR1(config-ospf-ar-if)#commit
RP/0/0/CPU0:XR1(config-ospf-ar-if)#
RP/0/0/CPU0:XR1#

RP/0/0/CPU0:XR1#sh ip ospf interface | i Type
  Process ID CORE, Router ID 192.168.1.1, Network Type POINT_TO_POINT, Cost: 10


xxxxxxxxxxxxxxxx
Authentication
xxxxxxxxxxxxxxxx


RP/0/0/CPU0:XR1#conf t
RP/0/0/CPU0:XR1(config)#router ospf CORE
RP/0/0/CPU0:XR1(config-ospf)# area 0
RP/0/0/CPU0:XR1(config-ospf-ar)#  interface GigabitEthernet0/0/0/0
RP/0/0/CPU0:XR1(config-ospf-ar-if)#authentication message-digest
RP/0/0/CPU0:XR1(config-ospf-ar-if)#message-digest-key 1 md5 cisco
RP/0/0/CPU0:XR1(config-ospf-ar-if)#exit
RP/0/0/CPU0:XR1(config-ospf-ar)#commit
RP/0/0/CPU0:XR1(config-ospf-ar)#

RP/0/0/CPU0:XR1#sh ip ospf interface
GigabitEthernet0/0/0/0 is up, line protocol is up
  Internet Address 192.168.1.1/24, Area 0
  Process ID CORE, Router ID 192.168.1.1, Network Type POINT_TO_POINT, Cost: 10
<Output Omitted>
  Message digest authentication enabled
    Youngest key id is 1
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Configuration လုပ်တဲ့ အခါမှာ အားလုံးကို OSPF Process အောက်ကနေလုပ်သွားတာကို တွေ့ရမှာပါ။ နောက်တခါ Configuration ကို Staging အဖြစ်ရေးထားပြီး Commit လုပ်မှသာ တကယ်ပြောင်းသွားတာကိုလည်း သတိထားမိပါလိမ့်မယ်။
Configuration ပုံစံပြောင်းသွားပေမယ့် OSPF ရဲ့ သဘောတရား၊ လုပ်ဆောင်ပုံနဲ့ သတ်မှတ်ချက်တွေက တော့ အတူတူပါပဲ။ ဒီတော့ နည်းပညာကို သေချာနားလည် ထားမယ်၊ လေ့လာထားမယ်ဆိုရင်တော့ ဘယ် IOS ပေါ်မှာ ဖြစ်ဖြစ်၊ ရေးပုံရေးနည်း လေ့လာပီးရင် လိုချင်တဲ့ ပုံစံအတိုင်း ရေးသားနိုင်မှာဖြစ်ပါတယ်။

မြန်မာ့နှစ်သစ်မှာ အစစ အရာရာ အောင်မြင် ကျန်းမာစေကြောင်း ဆုမွန်ကောင်း တောင်းပေးလိုက်ပါတယ်။

ကိုဖြိုး။

Saturday, 25 March 2017

လုံခြုံရေး အသိ

 ရောမမြို့ က Colosseum လိုကွင်းပြင်တွေပေါ်မှာ သတ်ပုတ်ကြတဲ့ပွဲတွေကို ရိုက်ပြထားတဲ့ Gladiator လို ရုပ်ရှင်တွေ၊ ဒါမှ မဟုတ်ရင်လည်း ရှေးခတ်က စစ်ပွဲတွေ အကြောင်းရိုက်ပြထားတဲ့ ရုပ်ရှင်တွေ ကြည့်ဖူးကြ မှာပါ။ အဲဒီရုပ်ရှင်တွေမှာ ဘာကိုသထိထားမိသလဲဆိုရင် သတ်ကွင်းအတွင်းကို ဆင်းမဲ့သူတွေ၊ စစ်မြေပြင်ကို ဝင်ရောက်မဲ့ သူတွေဟာ သူတို့ ကို ကာကွယ်ဖို့အတွက် ချပ်ဝတ်တန်ဆာတွေ အပြည့်နဲ့ ဝင်ရောက်ကြပါတယ်။ တချို့ ဝတ်စုံတွေက တကိုယ်လုံး အပြည့်၊ တချို့ ကြတော့လည်း အပေါ် ပိုင်းကိုသာ ကာထားတာမျိုး၊ တချို့ ကလည်း ဦခေါင်း၊ မျက်နှာ အထိပါ အကာအကွယ်ပေးနိုင်တဲ့ ခေါင်းစွတ်တွေနဲ့ အမျိုးမျိုးပါ။ တချို့ ရုပ်ရှင် တွေ မှာတော့ ကျွန်အဖြစ် သရုပ်ဆောင်ကြတဲ့ သူတွေဝင်ရောက် သတ်ပုတ်တော့ မယ်ဆိုရင်တော့ ဘာအကာ အကွယ်မှ မပါပဲ ကိုယ်ဗလာကျင်းပြီး သတ်ခိုင်းတာကို တွေ့ရ ပါတယ်။

အဲဒီမြင်ကွင်းတွေကို မြင်ကြည့်လိုက်ရင် ကျွန်တွေ အနေနဲ့ မမျှတစွာ ယှဉ်ပြိုင်ရတယ်ဆိုတာကို ပေါ်လွင် သလို၊ တဖက်က အပြည့်အစုံ ဝတ်ထားတဲ့ ရောမစစ်သားတွေဖက်ကို ထိအောင် တိုက်ခိုက်ဖို့ခက်တယ် ဆိုတာလည်း မြင်နိုင်ပါတယ်။ ဒါကို အိုင်တီဖက်က အမြင်နဲ့ ကြည့်မယ်ဆိုရင် အားနဲချက်တွေများနေတဲ့ Vulnerabilities တွေရှိနေတဲ့ Device တခုနဲ့ Hardending သေချာလုပ်ထားတဲ့ Device တခုအနေနဲ့ ကွာခြား တာကို တွေ့မြင်နိုင်ပါတယ်။ IT Device တခုကို လုပ်ငန်းခွင်မှာ အသုံးပြုတော့မယ်၊ Network အတွင်းမှာ ချိတ်ဆက်အသုံးပြုမယ်ဆိုတာဟာ အပေါ်က ပြောခဲ့တဲ့ ရုပ်ရှင်တွေကလို သတ်ကွင်းတွေ၊ စစ်မြေပြင်တွေ အပေါ်ကို သွားရသလိုပါပဲ။ ဘယ်ကမှန်းမသိတဲ့ ရန်သူတွေ၊ သိရဲ့ သားနဲ့ လာတိုက်ခိုက်မဲ့သူတွေ အများ ကြီးပါ။ တိုက်ခိုက်တယ်ဆိုတာမှာလည်း အပြင်ကလာမှ တိုက်ခိုက်တာမဟုတ်ပါဘူး။ အတွင်းလူ ကိုယ့် ဝန်ထမ်း တွေ ကလည်း တိုက်ခိုက်တာ၊ အချက်အလက် ခိုးယူတာတွေ ရှိပါတယ်။ ဒီတော့ ကျယ်ပြန့်လှတဲ့ Internetworking သတ်ကွင်းအတွင်းကို ကိုယ်ဗလာကျင်းပြီး ဝင်သင့်လား၊ ချပ်ဝတ်တန်ဆာတွေ ဝတ်ဆင်ပြီး Harden လုပ်ပြီးမှ ဝင်သင့်သလားဆိုတာ စဉ်းစားနေစရာ မလိုပါဘူး။

In computing, hardening is usually the process of securing a system by reducing its surface of vulnerability

Hardening ဆိုတာကို ကြည့်လိုက်ရင် ကိုယ့်ကိုကိုယ် ကာကွယ်ဖို့ အတွက် ချပ်ဝတ်တန်ဆာတွေ ဝတ်စားထား ခြင်းလို့မြင်လိုရပါတယ်။ Server တွေဖက်မှာဆိုရင်လည်း hardend လုပ်၊ Patch တွေမှန်မှန်လုပ်ရသလို၊ Network device တွေမှာလည်း harden လုပ်ဖို့ လိုအပ်ပါတယ်။ Harden မလုပ်ထားတဲ့ Network Device တွေဟာ ကိုယ်ဗလာနဲ့ သတ်ကွင်းကို ဆင်းရတဲ့ ကျွန်တွေလိုပါပဲ။ အခုနောက်ပိုင်းမှာ ထွက်ပေါ်လာတဲ့ IoT Device တွေကို အဲဒါကို လစ်လျူခဲ့လို့ Network အတွင်းမှာ ပြဿနာတွေ တက်လာတွေကိုတွေ့ရပါတယ်။ ပြီးခဲ့တဲ့ လအနည်းက စင်ကာပူမှာ IoT က စတင်တဲ့ DNS attack ကြောင့် တပတ်လောက်တိတိ Network တော်တော်များများ ပြတ်တောက်ခဲ့ရတာ တွေ့ နိုင်ပါတယ်။ IoT Device တွေဟာ အိမ်သုံးပစ္စည်းတွေများတဲ့ အတွက် ကိုယ်အိမ်မှာ ဝယ်သုံးမဲ့ ပစ္စည်းတွေကို သေသေချာချာ လေ့လာပြီးမှာ အသုံးပြုသင့်ပါတယ်။

လုပ်ငန်းခွင်မှာတော့ အဲဒီလိုမျိုးအဖြစ်တွေနဲပါးအောင်၊ အသုံးပြုတဲ့ Server တွေ၊ Network Device တွေရဲ့ လုံခြူံမှုကို ပုံမှန်စစ်ဆေးသင့်ပါတယ်။ အဖွဲ့အစည်း အကြီးတွေမှာတွေ Security Audit Process တွေရှိပါ တယ်။ အတွင်းက Audit က အရင်စစ်ဆေး၊ ပြီးရင် အပြင်က 3rd Party Security Audit firm တွေခေါ်ပြီး ထပ်မံ စစ်ဆေးရပါတယ်။ စလုံး Financial sector က အဖွဲ့အစည်းတွေဆိုရင် ဒီကိစ္စကို မဖြစ်မနေ လုပ်ဆောင် ရပါတယ်။ အဲဒီ Financial sector ကို Support ပေးရတဲ့ အိုင်တီ အဖွဲ့အစည်းတွေ၊ SI Company အနေနဲ့ လည်း မိမိတို့အဖွဲ့ရဲ့ လုပ်ငန်းခွင် လုံခြုံမှု ရှိကြောင်း Audit စစ်ဆေး အောင်မြင်ထားကြောင်း စတဲ့ အချက် အလက်တွေ ပေးရပါတယ်။

Network Device တွေကို Harden လုပ်တော့မယ်ဆိုရင်တော့ Management Plane, Control Plane, Data Plane စတဲ့ အဓိက Functional Planes တွေကို လုံခြုံအောင်လုပ်ထားသင့်ပါတယ်။ အခြေခံ ဥပမာအချို့ အနေနဲ့ပြောရရင်

- Use MD5 password
- Use SSH instead of Telnet
- Timeout setting on lines/ Console
- Disabled Unused services
- Disable http
- Use Authentication in protocols
- Use ACL to limit network access
- Use AAA
- Limit access on SNMP, Secure String, V3
- Using Log
- ICMP Controls, Rate limiting
- Ports security

အသေးစိတ်ကို ဒီလင့်မှာကြည့်ပါ။
http://www.cisco.com/c/en/us/support/docs/ip/access-lists/13608-21.html

အခုလောက်ဆိုရင် Network Device တွေကို ကာကွယ်ဖို့ အနဲဆုံး ချပ်ဝတ်တန်ဆာတွေကို ဝတ်ဆင်ပေးဖို့  အတွက် လုံခြုံရေးအသိ ကို သတိထားမိလောက်ပြီလို့ ထင်ပါတယ်။ ဘယ်ကလာမှန်းမသိတဲ့ ရန်သူကို ရင်ဆိုင်ဖို့ Internetworking Colosseum Arena အတွင်းကို ဘယ်လို ဝင်သွားမယ်ဆိုတာကတော့ Network Admin ဖြစ်တဲ့ သင့်ရဲ့ သဘောပါ။

ကိုဖြိုး

Sunday, 5 March 2017

လက်ပြလိုက်ပါ။

လွန်ခဲ့တဲ့ ၂ နှစ်လောက်ကထင်တယ်။ အင်္ဂလန်က ပရီးမီးယား ဘောလုံးပွဲတစ်ပွဲပီးတဲ့အချိန်မှာ နည်းပြ တစ်ယောက်က အသင်းသားတစ်ယောက်ကို ပရော်ဖက်ရှယ်နယ် မဆန်ဘူးဆိုပြီး အပြစ်တင်ပြောကြား ခဲ့တာကို ဖတ်ခဲ့ဘူးတယ်။ ဘာကြောင့်လဲဆိုတော့ သူရဲ့ပေါင် အတွင်းကြောက နာနေတာကို မပြောပဲ ဆက်ကစားခဲ့လို့ပါ။ အဲဒီလိုဆက်ကစားခဲ့အတွက် သူရဲ့ဒဏ်ရာကလဲ ပိုဆိုးသွားခဲ့သလို ပွဲအတွင်းမှာ သူရဲ့ ကစားပုံကလဲ မကောင်းခဲ့ဘူး။ သူ့ကြောင့် ဟာနေတဲ့ နေရာတွေကို အသင်းဖော်တွေက ဖြည့်ပီး ကစားပေးခဲ့ ရတဲ့ အတွက်လဲ နောက်တပွဲအတွက် ပွဲပန်းသွားစေခဲ့သလို အဲဒီပွဲရဲ့ ရလာဒ်ကလဲ မကောင်းခဲ့ဘူး။ ပြောရမယ် ဆိုရင်တော့ ဘယ်သူ့အတွက်မှ မကောင်းခဲ့ဘူး။ ဒါကြောင့် မန်နေဂျာက သူ့ကိုအပြစ်တင်ခဲ့ပါတာဖြစ်ပါတယ်။ ဘာကြောင့်မန်နေဂျာက မြန်မြန်လူစားမလဲခဲ့တာလဲဆိုတာ မေးစရာဖြစ်ပေမဲ့ ကစားသမားက သူရဲ့အခြေနေ ကို ဖုံးကွယ်ထားကာ သူကိုပေးထားတဲ့ တာဝန်ကို ထမ်းဆောင်နိုင်ခြင်းမရှိခဲ့တာက ပိုပီးတော့ ပြောစရာ ဖြစ်သွားခဲ့ပါတယ်။

အဲဒီလိုကိစ္စမျိုးတွေဟာ ကျွန်တော်တို့ရဲ့ အလုပ်တွေမှာလဲ တွေ့ရလေ့ရှိပါတယ်။ အလုပ်တွေ လုပ်ရတဲ့နေရာ မှာ ကိုယ့်ရဲ့ အခြေအနေ၊ ကိုယ်ရဲ့ကျွမ်းကျင်မှု၊ အတွေ့အကြုံတွေအပြင် ကိုယ့်ရဲ့ အလုပ်လုပ်နိင်အား Capacity ကို သုံးသပ်တတ်ဖို့လိုပါတယ်။ တကယ်လို့ ကိုယ့်ရဲ့ အလုပ်လုပ်နိုင်အားဟာ ပြည့်နေပြီ၊ ကျော်နေပြီ ဆိုရင်တော့ မြန်မြန်လက်ပြဖို့တော့ လိုပါတယ်။ အဲဒီလိုမှ မဟုတ်ရင်တော့ အထက်ကပြောသွားခဲ့တဲ့ ကစားသမား လို အပြစ်တင် ခံရဖို့သေချာပါသလို ကိုယ့်အတွက်ရော အဖွဲ့အစည်းအတွက်ရော၊ ကိုယ်တာဝန် ယူပေးထားတဲ့ ကိုယ့်ရဲ့ Customer အတွက်လဲ မကောင်းပါဘူး။ ကိုယ်ပြောရဲ့သား လက်ပြထားရဲ့သားနဲ့ ရွေးချယ် စရာ မရှိတဲ့ အနေထားမျိုးမှာ ဆက်လုပ်ရတာကတော့ တမျိုးပေါ့။ ဒါလိုဆိုရင်တော့ ကိုယ့်ကို ခိုင်းတဲ့ အထက်က သူက ဖြစ်လာနိင်ခြေတွေကို ကြိုပြီးတော့ နားလည်ထားရပါလိမ့်မယ်။ တကယ်ပြဿနာ ဖြစ်လာခဲ့ရင် သူ့ မှာတာဝန်ရှိပါတယ်။ အဲလိုမှ မဟုတ်ပဲ ကိုယ့်က ဘာလာလာ အိုကေဆိုပြီးတော့ သေချာ မသုံးသပ်ပဲ ဆက်လုပ်မယ်၊ လုပ်နိုင်တဲ့ အရည်အသွေးတွေနိမ့်ပြီး ပြဿနာတွေ ဖြစ်လာခဲ့လာရင်တော့ ကိုယ့်တာဝန်ပါ။ အဲဒီအချိန်မှာ အပေါ်က အပြစ်တင်လာရင် ငါကလုပ်လဲ လုပ်ရသေး၊ အပြောလဲခံရသေး၊ ထွက်တော့မယ် ဘာမယ်ဆိုပြီး ဖြစ်လာတဲ့ ကိစ္စတွေ ဒုနဲ့ဒေးပေါ့။

ဒီကိစ္စနဲ့ ပက်သက်လို့ ISC2 ရဲ့ ဆောင်းပါးတခုမှာ ရေးထားတာကို ဖတ်လိုက်ရပါသေးတယ်။ တချို့ တွေဟာ အကြောင်းအမျိုးမျိုးကြောင့် ကိုယ်မလုပ်နိုင်တော့ဘူး ဆိုတာကို ငြင်းပယ်ဖို့ ဝန်လေးကြပါတယ်။ ကိုယ့်ကို အထင်သေးသွားမလား၊ ညံ့တယ်လို့ထင်သွားမလား၊ ကိုယ့်ရဲ့ ရာထူးတက်ဖို့၊ လစာတိုးဖို့ကို ထိခိုက်သွားမလား၊ လုပ်ဖော်ကိုင်ဖက်တွေရဲ့ အပြစ်တင်တာကိုခံရမလား စသဖြင့်ပေါ့။ ဒါပေမဲ့ အဲဒီလို ဖုံးကွယ်ခြင်း ဟာ သူအပါဝင် အကုန်လုံးကိုထိခိုက်စေတယ်ဆိုတာကို သူ့အနေနဲ့ သိထားသင့်တယ်၊ လက်ပြသင့်တယ်ဆိုပြီး ဆွေးနွေးထားတာပါ။ ဒီအကြောင်းကို ဖတ်မိတဲ့သူအများစုဟာ မန်နေဂျာအရေအတွက်ထက်စာရင် ကစားသမား ဖြစ်တဲ့ ကျွန်တော်တို့ နည်းပညာဖက်က ပရော်ဖက်ရှယ်နယ် အရေအတွက်က ပိုများပါတယ်။ ဒီတော့ အများစုက မတတ်နိုင်ဘူး ရွေးချယ်လို့မရဘူး လုပ်ရမှာပဲဆိုပြီး ဖြေကြမှာ များပါတယ်။ ဒါပေမဲ့ ကျွန်တော်တို့ တကယ်ရော သေချာပြန်သုံးသပ်ခဲ့သလားဆိုတာ စဉ်းစားကြည့်ဖို့လိုပါတယ်။ တချို့ ကိစ္စ တွေမှာ ရွေးချယ်စရာကြောင့်မဟုတ်ပဲ ကိုယ့်ကိုအထင်သေးမှာကြောက်လို့၊ ကိုယ်ဘယ်လောက်လုပ်နိုင်သလဲ ဆိုတာကို ပြချင်လို့ ဆက်လုပ်ခဲ့တဲ့ အရေအတွက်ကလည်း မသေးပါဘူး။ ပြန်တွေးကြည့်ပါ။

ခက်တာက ဒီကိစ္စတွေဟာ နှစ်ဦးနှစ်ဖက်နဲ့ဆိုင်တဲ့ ကိစ္စဆိုတော့ မန်နေဂျာဖက်ကရော၊ အောက်ကသူကရော မှန်မှန်ကန်ကန်ရှိပြီး တဖက်နဲ့တဖက် အပြန်အလှန် လေးစာမှုရှိဖို့လိုပါတယ်။ မန်နေဂျာကလဲ ကိုယ်ပေးထား တဲ့ အလုပ်နဲ့ ကိုယ့်လူရဲ့အခြေအနေကို သုံးသပ်နိင်ဖို့လိုသလို၊ ပိုပြီးခိုင်းတော့မယ်ဆိုရင်လဲ ဖြစ်လာမဲ့ ပြဿနာ တွေကို ကိုယ့်တာဝန်ရှိကြောင်း လက်ခံထားသင့်ပါတယ်။ ပြီးရင် ကိုယ်တာဝန်ပေးမဲ့သူရဲ့ စကားသံကိုလဲ နားထောင်သင့်ပါတယ်။ တာဝန်ယူပြီး လုပ်ရမဲ့ သူကလဲ ပျင်းလို့၊ မလုပ်ချင်လို့၊ ခေါင်းရှောင်ချင်လို့ ငြင်းပယ် တာ မဟုတ်ပဲ ကိုယ်ရဲ့ အလုပ်လုပ်နိုင်တဲ့ ပမာဏ ကျော်လွန်သွားလို့၊ နည်းပညာပိုင်းအရ အခက်အခဲရှိလို့၊ မလိုက်နိုင်လို့ စသဖြင့် သေချာဆွေးနွေးသင့်ပါတယ်။ အလာကားနေ၊ အားမစိုက်ပဲ ငြင်းတာပဲလုပ်နေရင်တော့ ရေရှည်ရပ်တည်ဖို့ မလွယ်ပါဘူး။ ဒီအကြောင်းအရာဟာ နည်းပညာနဲ့ မဆိုင်ပေမဲ့ ကျွန်တော်တို့ အခုလုပ် နေကြ ရတဲ့ လုပ်ငန်းခွင်တွေမှာ တွေ့ရများတဲ့ ကိစ္စဖြစ်ပါတယ်။ ပရော်ဖက်ရှင်နယ် တယောက်အနေနဲ့ ကိုယ်ရဲ့ လုပ်ဆောင်နိင်စွမ်းကို များနိုင်သလောက် ကြိုးစားနေဖို့လိုသလို၊ တဖက်ကလဲ ကိုယ့်ရဲ့ Capacity ကို ကိုယ်သိပြီး ဘယ်အချိန်မှာတော့ လက်ပြသင့်တယ်၊ သေချာသုံးသပ်ဖို့လိုအပ်တယ်ဆိုတာ သိထားသင့်ပါတယ်။ မာနတွေ၊ ကြွားဝါချင်တာတွေ ကိုလျော့ချပြီး လက်ပြလိုက်ပါ။

Get Your Ego Out of the Way and Ask for Help When You Need It.


ကိုဖြိုး

Saturday, 25 February 2017

Top-Down Or Bottom-Up

Branch Office တစ်ခုအသစ်ဖွင့်မယ်ဆိုပြီး Design အဖွဲ့ကို အလုပ်တစ်ခုဝင်လာတယ်။ အဲဒီ ရုံးခွဲမှာ ရှိတဲ့ ဝန်ထမ်းအရေအတွက်ရယ်၊ နေရာရယ်၊ ရုံးချုပ်ကို ချိတ်ဆက် ဆက်သွယ်ဖို့လိုတယ်ဆိုတဲ့ အကြောင်း ပဲပါလာတယ်။ Request ကမပြည့်စုံဘူးလို့ဆိုရမယ်။ ဒီတော့ ဒီဇိုင်း အဖွဲ့က သင့်တော်မယ်ထင်တဲ့ Router အမျိုးအစား တစ်ခုကို လုံလောက်မယ်လို့ ထင်ရတဲ့ Bandwidth နဲ့လင့်တစ်ခုနဲ့ချိတ်ဆက်မယ်ဆိုပြီး ပုံစံဆွဲပေးလိုက်တယ်။ နောက်ရက်ကျ အဲဒီ ပုံစံအတွက် အဆင်ပြေမပြေ အစည်းအဝေးထိုင်ကြတယ်။

တစ်ယောက်က လင့်အတွက် အရန်လင့်(Backup) တစ်ခုလိုအပ်မယ်ထင်တယ်ဆိုပြီး အကြံပြုတယ်။ ဒီတော့ ရုံးချုပ်နဲ့ ရုံးခွဲကြားမှာ လင့်၂လင့်ထားမယ်။ ဒါဆို လင့်နဲ့ပတ်သက်ပြီး ပူစရာ မလိုတော့ဘူး။ Link redundancy ရသွားပြီ။ ဒါပေမဲ့ ရုံးခွဲမှာ Router ကတစ်လုံးပဲဆိုတော့ အဲဒီ Router ပျက်သွား ရင် လင့် ၂ လင့်ရှိလဲ အလကားပဲ ဆိုတော့ Router နောက်တလုံးထပ်ထည့်ဖို့ လုပ်ကြတယ်။ ဒါဆို Hardware redundancy ပါရသွား ပြီ။ နောက်ဆက်တွဲ ထပ်ပေါ်လာတာက Router ၂ လုံးနဲ့ အတွင်းက LAN ကိုဘယ်လိုပြန်ပေးကြမလဲ။ ၁ လုံး ပဲဆိုရင် LAN interface ကို Default gateway အနေနဲ့ ထောက်လိုက်ရုံပဲ၊ အဆင်ပြေတယ်။ ၂ လုံးဆိုတော့ ဒီအတိုင်းမရတော့ဘူး။ HSRP ဖြစ်ဖြစ်၊ GLBP ဖြစ်သုံးပြီး အတွင်းက Switch ကိုချိတ်ရမယ်။ Switch ၁ လုံး နဲ့ဆိုရင် Redundancy ပျက်သွား နိုင်တဲ့ အတွက် Switch လည်း ၂ လုံးပေါ့။ ဒါဆိုရင်တော့ အတော် ဟုတ်သွားပြီး အားလုံး ၂ခုနဲ့ Full redundancy ရပြီပေါ့။

Network Design ရဲ့ အရေးကြီးတဲ့ အောက်က အချက်သုံးချက်နဲ့ ကိုက်ညီသွားပြီလို့ဆိုလို့ရတယ်။
-    Network must be reliable and resilient
-    Network must be manageable
-    Network must be scalable

ဒါပေမဲ့ အခုလို၂ စုံသုံးလိုက်လို့ အားလုံးအဆင်ပြေသွားပြီလို့တော့ ဆိုလို့မရသေးဘူး။ Single point of failure မရှိတော့ပေမယ့် Point of failure တွေများလာတာကို သတိထားရမယ်။ ပြီးရင် အသုံးပြုထားတဲ့ configuration ကိုသေချာ ကိုင်တွယ်နိုင်တဲ့ နားလည်နိုင်တဲ့ Network Admin တယောက်လိုလာမယ်။ Static route နဲ့ Plug-n-Play မဟုတ်တော့ဘူး။ တနေရာရာ မှာ တခုခုဖြစ် ရင် ကိုယ့် Network အခြေအနေဟာ ဘယ်လိုဖြစ်နိင်တယ် ဆိုတာ ကြိုတင်မြင်ထားရမယ်။ အဲဒါကို Daily operation ကိုင်ရမယ့် အခုနက Network Admin ကသိရမယ်။ (Security နဲ့ network monitoring ကိစ္စထည့်မပြောသေးဘူး။)

ဒါတင်ပဲလားဆိုတော့ မဟုတ်သေးဘူး။ ဝယ်ရမဲ့ ပစ္စည်းအရေအတွက်အတွက် ကုန်ကျစရိတ်က ၂ ဆ မကတက်သွားတယ်။ ပြီးရင် လစဉ်ပေးရမဲ့ ထိန်းသိမ်းခ ဖြစ်တဲ့ Maintenance cost ကလည်း အရမ်း များသွားတယ်။ ဒီတော့ Business requirement အတွက် အဲဒီလောက် သုံးဖို့အတွက် လိုအပ်ရဲ့လားဆိုတာက ပြန်ပြီး စဉ်းစာ စရာဖြစ်လာပြန်တယ်။ Technical ဖက်ကနေ ဘယ်လောက်ပဲ သေချာတဲ့၊ ကောင်းတဲ့ ဒီဇိုင်း လုပ်ခဲ့ပေမယ့် အဲဒီ ဒီဇိုင်း ဟာ Business requirement နဲ့ မကိုက်ညီဘူး၊ မသင့်တော်ဘူးဆိုရင် ဒီ ဒီဇိုင်း ကိုပြီးပြည့်စုံပြီလို့ပြောလို့မရတော့ ဘူး။ ဒီ Network ပြတ်တောက်သွားခဲ့ရင် Business ဖက်က ဘယ်လောက် အထိတောင့်ခံနိုင်မလဲ။ ဘယ်နှစ်နာရီလောက် အထိပြတ်လို့ရသလဲ ဆိုတာတွေကို ချိန်ရတော့မယ်။ ဒါဆိုရင် တချို့နေရာတွေမှာ ကုန်ကျစရိတ်ကို လျော့သင့်တယ်ထင်ရင် လျော့လို့ရတာပေါ့။ ဥပမာ Hardware maintenance ယူတဲ့အခါ 24x7x4 လား x2 လား၊ ဒါမှမဟုတ် 8x5xNBD လား စသဖြင့်လျော့ချလို့ ရပါတယ်။ Hardware ရွေးတဲ့အခါမှာလည်း Backup device ကို ဈေးနိမ့်တာ ရွေးချယ်တာမျိုးပေါ့။

အခု အပေါ်က ဒီဇိုင်နာ တွေစဉ်းစားသွားတဲ့ပုံက Bottom-up approach လို့ဆိုရမှာပါ။ သူတို့ရဲ့ အတွေ့အကြုံရ လိုအပ်မယ်ထင်တာတွေကို Deign guideline အတွင်းကနေ အဆင်ပြေအောင်လုပ် သွားတာ။ Business requirement ကိုသေချာ မလေ့လာသွားဘူး။ ပြန်မမေးဘူး။ မြန်တော့မြန်တယ် ဒါပေမဲ့ Approval board ရောက်တဲ့ အချိန်မှာ Business unit နဲ့ Finance ဖက်က သူတို့လိုအပ်ချက်နဲ့ မကိုက်ရင် ကိုယ့် ဒီဇိုင်း ဟာ ရှေ့ဆက်ဖို့ ခက်သွားပါပြီ။ Technical goals တခုတည်း ပြည့်စုံတာနဲ့မလုံလောက်ပါဘူး။ ပိုသင့်တော်တာက တော့ Top-down approach နဲ့ Business requirement ကို သေချာနားလည်အောင် Big picture ကိုသိအောင် အရင်လုပ်ပြီးမှ ကိုယ့်ရဲ့ Final design နဲ့ BoM ကိုထုတ်ပေးသင့်ပါတယ်။ အချိန်တော့ ပိုကြာရင် ကြာမယ် ဒါပေမဲ့ ကိုယ့်တင်ပေးလိုက်တဲ့ ဒီဇိုင်း ဟာ ပိုပြီး အဆင်ပြေနိုင်ပြီး Business requirement နဲ့ ကိုက်ညီတဲ့ Design တစ်ခုအနေနဲ့ ထွက်ပေါ်လာမှာ ဖြစ်ပါတယ်။ Business unit ဖက်ကလည်း လိုအပ်တဲ့ အချက်အလက်ကို သေချာစုဆောင်ပီး Technical design team ဘက်ကို သူတို့ရဲ့ ရေတို ရေရှည် အစီအစဉ်တွေကို ပြောပြထားရမှာပါ။ အဓိက ဆိုချင်တာကတော့ Technical တစ်ခုတည်းသာမက တခြားကိစ္စတွေပါ ထည့်ပြီး စဉ်းစားသင့်တယ်ဆိုတဲ့ အကြောင်းပါ။ အားလုံးကို ၂စုံသုံးတိုင်း ရပီလို့ တွက်ထားလို့မရပါဘူး။

“Design a network that meet a customer’s business and technical goals.”

ကိုဖြိုး


Monday, 6 February 2017

RTBH


DDoS Attacks တွေကြုံလာရင် ဖြေရှင်းဖို့အတွက် RTBH လို့ခေါ်တဲ့ Remotely Triggered Black Hole Filtering ဆိုတာ လေ့လာကြည့်ရအောင်။ ဒါကိုလေ့လာဖို့အတွက် BGP ရဲ့အလုပ်လုပ်ပုံ၊ BGP Community တွေကို Route-map နဲ့တွဲပြီး အသုံးပြုပုံ၊ Null 0 ရဲ့အကြောင်းနဲ့ သူရဲ့ အသုံးဝင်ပုံ၊ နောက်တခါ uRPF လို့ ခေါ် တဲ့ Unicast Reverse Path Forwarding စတဲ့ အကြောင်းအရာတွေကို သိထားဖို့ လိုပါတယ်။ ဒါတွေ အားလုံး ကို ရေးထားပြီးပါပြီ၊ အရင် ပို့စ် အဟောင်းတွေမှာ ပြန်ရှာဖတ် ကြည့်ပါ။

RTBH ဟာ အဲဒီအရာတွေအားလုံးကိုပေါင်းစပ်ပြီး အသုံးပြုရတဲ့ လုပ်ဆောင်ပုံတစ်ခုဖြစ်ပါတယ်။ DDoS Attack တွေလာရင် ကြုံသလို၊ ကြုံတော့မှ ဖြေရှင်းတာထက် ကြုံလာတဲ့အခါမှာ ခလုတ် တစ်ချက်နှိပ် ပြီး လုပ်ဆောင်ခိုင်းဖို့အတွက် စနစ်တကျပြင်ဆင်ထားတဲ့ပုံစံမျိုးပါ။ ကျွန်တော်တို့ ငယ်ငယ်က တိုက်ကွမ်ဒိုတို့ ကရာတေးတို့ ကစားတဲ့အခါမှာ လေ့ကျင့်ထားသလိုမျိုးပေါ့။ အရင်ဆုံး လက်သီးထိုးနည်း၊ ပြီးရင်ခြေကန် နည်း၊ နောက်တခါ လက်နဲ့ကာတဲ့ပုံစံ၊ ခြေလှမ်း အတက်အဆင်း၊ စတာတွေကို တစ်ခုစီ အရင်လေ့ကျင့် ရပါတယ်။ ပြီးတော့မှ အားလုံးပေါင်းစပ်ပြီး အတွဲတွေ ကစား ရပါတယ်။ အခု RTBH ဆိုတာလည်း BGP/ Null 0/ uPRF/ ACL/ Route-map စတာတွေ နဲ့ ပေါင်းစပ် ထားတဲ့ အတွဲတစ်ခုပါပဲ။

DDoS တွေဝင်လာတဲ့အခါမှာ Target တစ်ခုတည်းသာ ခံရတာမျိုးမဟုတ်ပဲ Target ကိုသွားတဲ့ လမ်းကြောင်း တစ်လျှောက် မှာရှိတဲ့ Devices တွေ၊ Link တွေ အားလုံးကိုပါ Attack ဒဏ်ကိုခံရပါ တယ်။ DDos ကိုရပ်ဖို့ အတွက်ဆိုရင် DDoS စဝင်နိင်တဲ့နေရာကနေ ပိတ်ဆို့ခြင်းဟာ အကောင်းဆုံး ပါ။ အဲဒီလိုမပိတ်နိုင်ရင် သူဝင် လာနိုင်သမျှ လမ်းကြောင်းတစ်ခုလုံးပါထိခိုက်နိုင်ပြီး Target အပြင် တခြားအရာတွေကိုပါ (Collateral Damage) ထိခိုက်လာနိုင်ပါတယ်။ ဘယ်နေရာတွေကနေ စဝင်လာမလဲဆိုတာကတော့ Edge တွေမှာရှိတဲ့ Provider Edge (PE) တွေနဲ့ ISP Edge Router တွေပါ။ Internet (အပြင်) ကနေ ISP ရဲ့ Infra အတွင်း ကို တိုက်ခိုက်တာမျိုး၊ ISP ရဲ့ အောက်က Customer Network တွေကို တိုက်ခိုက်တာမျိုး၊ နောက်တခါ Customer Network ဖက်ကနေ ပြန်ပြီးဝင်လာတာမျိုး၊ စသဖြင့်ရှိပါတယ်။ ဘယ်လိုပဲ ဖြစ်ဖြစ် Edge တွေကနေ ဝင်လာ ကြပါတယ်။ ဒီတော့ DDoS ကို Edge တွေကနေ တာဆီးနိုင်ဖို့ ကြိုးစားရပါတယ်။

Edge က တစ်လုံးပဲဆိုရင်တော့ ကိစ္စမရှိဘူး ဖြစ်လာမှ ဝင်ပြီး လိုအပ်သလိုပိတ်ရင်လည်း အလုပ်ဖြစ်ကောင်း ဖြစ်ပါလိမ့်မယ်။ ဒါပေမဲ့ Edge တွေက အများကြီးဆိုရင်တော့ ဖြစ်လာတဲ့ အချိန်မှာ အချိန်တိုတိုအတွင်းမှာ အားလုံးကိုလိုက် ပြင်နေဖို့အတွက် အချိန်ပိုပေးရပါတယ်။ အချိန်ပိုပေးရလေ ကိုယ့် Network ကိုထိခိုက်လေ ပါပဲ။ အဲဒီအတွက် RTBH အတွဲက အချိန်တို အတွင်း မှာမြန်မြန်ဆန်ဆန်နဲ့ အလုပ်ဖြစ်ဖို့အတွက်  ပြင်ဆင် ထား ခြင်း ဖြစ်ပါတယ်။ အရေးပေါ် လာတဲ့အခါမှာ RTBH စမယ်ဟေ့ဆိုပြီး ခလုတ်နှိပ်သလိုမျိုး စတင်လိုက် ခြင်းဖြစ်ပါတယ်။ ဘာတွေပြင်ဆင် ထားရမလည်းဆိုတာကို ဆက်ကြည့်ရအောင်။

အရင်ဆုံးအနေနဲ့ ခလုတ်နှိပ်ရမဲ့နေရာဖြစ်တဲ့ Trigger လိုပါတယ်။ BGP Router/Device တစ်ခုပါပဲ ဒါပေမဲ့ အဲဒီ BGP router ဟာ Edge တွေအားလုံးနဲ့ iBGP Peer ဖြစ်နေရပါမယ်။ တကယ်လို့ RR (Router Reflector) ရှိတဲ့ Network တွေမှာဆိုရင် RR ကို ချိတ်ဆက်ထားရပါမယ်။ ပြီးရင် Static Route တွေကို BGP အတွင်းကို Redistribute လုပ်ဖို့ ထည့်ထားရပါမယ်။ အဲဒီ Static Route ဟာ Trigger point ပါ။ DDoS ဝင်လာတဲ့အခါ Target ကိုသိပြီဆိုတာနဲ့ Target ကိုသွားဖို့အတွက် Static route ထည့်ပြီး Trigger လုပ်ရပါတယ်။ Next-Hop အနေနဲ့ကတော့ RTBH အတွက် သုံးဖို့ စီစဉ်ထားတဲ့ Network အတွင်းက IP ကိုထောက်ပေးထားရပါတယ်။ နောက်တခုကတော့ PE တွေပါ။ PE တွေမှာ Next-Hop ကို Null 0 ကိုထောက်ထားတဲ့ Static route တစ်ခုထည့်ထားရပါမယ်။

ဥပမာ Target host က 172.18.192.1 ဆိုပါတော့။ RTBH အတွက် IP ကတော့ 192.0.2.1/32 ဆိုပြီး သတ်မှတ်ထားမယ်။ ဒါဆိုရင် Trigger Router မှာထည့်မဲ့ Static route က

# ip route 172.18.192.1 255.255.255.255 192.0.2.1

PE router တွေမှာ အမြဲထည့်ထားရမဲ့ Static route က
#ip route 192.0.2.1 255.255.255.0 null 0

Trigger လုပ်တဲ့ static route ကို Trigger router မှာထည့်လိုက်တာနဲ့ အဲဒီ Static route ဟာ BGP အတွင်းကို Redistribute လုပ်ပြီးဝင်သွားပါတယ်။ ပြီးတော့ iBGP update ကတဆင့် RR နဲ့ PE တွေဆီကို ရောက်သွားပါ တယ်။ အဲဒီ route မှာပါလာတဲ့ Next-hop က RTBH မှာအသုံးပြုတဲ့ IP ပါ။ ဒီတော့ အပြင်က လာတဲ့ DDoS attack ဟာ Target IP ကိုလာတဲ့အခါမှာ PE ကနေ Target IP ကိုသွားမဲ့ Next-Hop က Null 0 ဖြစ်နေတဲ့ အတွက် ဆက်မသွားတော့ပဲ Black hole ဖြစ်တဲ့ Null 0 အထဲကိုထည့်ချလိုက်ပြီး Traffic flow ကို အဆုံး သတ် ပေးလိုက် ပါတယ်။

DDoS Attack ပျောက်သွားပြီ၊ မရှိတော့ဘူးဆိုရင်တော့ Trigger router မှာထည့်ထားတဲ့ Static route ကိုပြန်ဖြုတ်လိုက်ရင် ရပါပြီ။ Static route ဖျက်လိုက်ရင် Redistribution ကနေ BGP အတွင်းကိုထည့်ထား တာပါ ပျောက်သွားတဲ့အတွက် PE ဟာလည်း နဂို Routing table အတိုင်းပဲ ပြန်အလုပ်လုပ်ပါတော့တယ်။ ဒီနည်းကိုတော့ Destination-based RTBH လို့ခေါ်ပါတယ်။ ဒီနည်းနဲ့ DDoS Attack ကိုကာကွယ်နိုင်ပေမယ့် တခြားအမှန်တကယ် အသုံးပြုတဲ့ နေရာကလာတဲ့ Source တွေပါ ပါသွားတဲ့ အတွက် အကုန်လုံးသုံးမရတော့ တာ မျိုးဖြစ်တတ်ပါတယ်။


(Fig source: Cisco RTBH Whitepaper)

တကယ်လို့ Attack လာတဲ့ Source IP/Range ကို လိုက်လို့ရပြီ၊ သိပြီဆိုရင်တော့ Source-based RTBH ကို အသုံးပြုလို့ရပါတယ်။ Destination based လို အကုန်လုံးကို Drop လုပ်ပစ်တာမျိုးမဟုတ်တော့ပဲ Source အပေါ်မှာ မူတည်ပြီး Drop လုပ်တဲ့ ပုံစံမျိုးပါ။ ဒါကိုတော့ uRPF အကူအညီနဲ့ လုပ်ရပါတယ်။ uRPF ရဲ့ လုပ်ဆောင်ပုံအတိုင်း Reverse path fail ဖြစ်အောင် လုပ်လိုက်ခြင်းအားဖြင့် ဝင်ရောက်လာတဲ့ Attack traffic တွေဟာ uRPF ရဲ့ policy အရ ညှိသွားပြီး Edge မှာတင် Drop ဖြစ်သွားပါတယ်။ Destination based နဲ့ ကွာသွား တာက Trigger router မှာ ထည့်ရမည့် Static route ဟာ Target IP အစား Attacker ရဲ့ Source IP range ဖြစ်သွားပါတယ်။ PE တွေမှာတော့ Null 0 Route အပြင် Loose uRPF ကို Edge Interface တွေ အားလုံး မှာ ထည့်ထားပေးပါတယ်။ ဒီနည်းနဲ့ဆိုရင်တော့ Target ကိုသွားမဲ့ တခြား Traffic တွေကို မထိ ခိုက်စေတော့ပဲ DDos Attack source ကိုသာ ရွေးပိတ်လို့ရသွားပါပြီ။ ဒါပေမဲ့ Source IP/Range အားလုံး ကိုသိဖို့ ကတော့ သိပ်လွယ်တဲ့ ကိစ္စမဟုတ်ပါဘူး။ ကိုယ့်ရဲ့  RTBH အပြင်အဆင် ဟာ Source based ရော၊ Destination based အတွက်ပါ အသုံးပြုလို့ ရအောင် ပြင်ထားရပါတယ်။



(Fig source: Cisco RTBH Whitepaper)

BGP Update လုပ်တဲ့နေရမှာလည်း PE router တွေကို ရောက်သွားရင် အဲဒီရောက်လာတဲ့ RTBH အတွက် Route ဟာ Best route ပုံစံမျိုးဖြစ်အောင် Local preference နဲ့ အမြင့်ဆုံးဖြစ်အောင် ချိန်ကိုက်ထားရပါ တယ်။ ဒီထက်ပိုပြီး စီမံဖို့ အတွက် ဆိုရင်တော့ Route tag တို့ BGP Community တို့ကို အသုံးပြုရပါတယ်။ Trigger router ရဲ့ Static to BGP Redistribution လုပ်တဲ့အခါမှာ အသုံးပြုလိုက်တဲ့ Route tag နဲ့ Community အပေါ်မှာ မူတည်ပြီး PE တွေမှာ ဘယ်လို လုပ်ဆောင်မယ် ဆိုတာမျိုး စီစဉ်ထားလို့ရပါတယ်။ ဥပမာ Attack ဝင်လာတဲ့ နေရာက PE တွေကို ရွေးပြီး အသုံးပြုတဲ့ ပုံစံမျိုး။ Community ဟာ ဘယ်လောက် အသုံးဝင်သလဲဆိုရင် တချို့  ISP တွေဆို RTBH service  အနေနဲ့ Customer တွေကိုပေးထားတာမျိုး ရှိပါ တယ်။ Customer ဖက်မှာ DDoS ထိပြီဆိုရင် Customer တွေကိုယ်တိုင် ကာကွယ်စရာမလိုပဲ ISP ကနေ ပိတ်ပေးပို့ အတွက် ISP က ပေးထားတဲ့ Community ကို CE router ဖက်ကနေ RTBH Trigger router အနေနဲ့ PE တွေကို BGP update ကနေ အကြောင်းကြားလိုက်ရင် ရပါပြီ။ ဒါဆိုရင် Customer အနေနဲ့ ISP ကို email ပို့ပြီး ပိတ်ပေးဖို့ ကိစ္စတွေ၊ ISP ဖက်ကနေ Service request ကို ကြည့်ပြီး ပိတ်လိုက် ဖွင့်လိုက်လုပ်ရမဲ့ ကိစ္စတွေ သက်သာသွားပြီး အချိန်တို အတွင်းမှာ DDoS ကို ကာကွယ်ပေးလို့ရသွား ပါတယ်။ နောက်တခါ DDoS traffic တွေကို Drop လုပ်မဲ့အစား ပြန်လည် စစ်ဆေးဖို့ အတွက် Sink Hole Network အတွင်းကို Next Hop အနေနဲ့ ထည့်လိုက်လို့လည်း ရပါတယ်။ လုပ်ရမဲ့ Action အားလုံးကို BGP Update က ဝင်လာတဲ့ Community အရ ဘယ်လိုလုပ်မလဲဆိုတာကို စီစဉ်ထားလို့ရပါတယ်။

အခုလောက်ဆို RTBH ဆိုတာဘာလည်း ဘယ်လိုအလုပ်လုပ်လည်းဆိုတာ သိလောက်ပါပြီ။ Configuration အနေနဲ့ အစပိုင်းမှာပြောထားတဲ့ ကိစ္စတွေဖြစ်တဲ့ Null 0/ BGP/ uRPF စတဲ့ အရာတွေကို သိထားပြီ၊ လုပ်ထားပြီးပြီဆိုရင် အခက်အခဲ မရှိလုပ်ဆောင်နိုင်မှာဖြစ်ပါတယ်။

ကိုဖြိုး