Thursday, 16 June 2011

BGP - Part7

BGP synchronization
Rule: Synchronization ‘ON’ ထားတဲ့ BGP routerက သူ learning (via BGP) လုပ္ထားတဲ့ iBGP route ေတြကို IGP တစ္ခုခု(ႏွင့္/က) (internal network မွာ) ထပ္ၿပီး learning မလုပ္မျခင္း neighboring eBGP router ဆီကို adverstise လည္းမလုပ္… ၄င္းကိုယ္တိုင္လည္းမသံုး… ၿပီးေတာ့ transit area မွာရွိတဲ့ non-BGP router ေတြကလည္း BGP traffic ေတြကို drop လုပ္ပါတယ္။ Sync ကို default အားျဖင့္ IOS version 12.2(8)T မွစၿပီး ‘OFF’ လုပ္ေပးထားပါတယ္...

ပံုအရ… R1က R4ဆီမွ iBGPႏွင့္ learning လုပ္ထားတဲ့ 200.1.(1 to 6).0 /24 ႏွင့္ 50.1.1.0 /24 network တို႔ကို neighboring eBGP router (ပံုမွာေတာ့မပါေတာ့ဘူး) ဆီကို advertise လည္းမလုပ္… ၄င္းကိုယ္တိုင္လည္းမသံုးမွာ မဟုတ္ပါ။ sh ip bgp ႏွင့္ၾကည့္ရင္ေတြ႔ရေသာ္လည္း best route (‘>’) မရွိတာကိုျမင္ရမွာျဖစ္ၿပီး sh ip route ႏွင့္ဆိုရင္ေတာ့ ၄င္း network ေတြႏွင့္ပတ္သက္တဲ့ BGP route ကိုလုံး၀ေတြ႔ရမွာမဟုတ္ပါဘူး။ Non-BGP router ေတြျဖစ္တဲ့ R3 ႏွင့္ R4 မွာလည္း 200.1.(1 to 6).0 /24 ႏွင့္ 50.1.1.0 /24 network knowledge မရွိတဲ့အတြက္ transit packet ေတြကို drop လုပ္ပါတယ္။


Solution:
In R1, R1(config)# router bgp 5500
                           # no synchronization
                           # do clear ip bgp *
In R4, R4(config)# router bgp 5500
                           # no synchronization
                           # do clear ip bgp *

Synchronization ကအဲေလာက္ပါပဲ… ဒါေပမယ့္ routing ကအဆင္ေျပမွာ မဟုတ္ေသးဘူး။ R1 မွာ အခုထိ best route (sh ip bgp) မေပၚေသးပါ… အေၾကာင္းက R1အတြက္ 200.1.(1 to 6).0 /24 ႏွင့္ 50.1.1.0 /24 ေတြကိုသြားဖို႔ next hop က R4ရဲ႕ interface မဟုတ္ပဲ R5ရဲ႕ interface (10.1.45.2) ျဖစ္ေနလို႔ပါ။ အဲတာကို next hop rule ညွိေနလို႔ျဖစ္ပါတယ္။ သူ႔မွာလည္း rule 2ခု ရွိပါတယ္…
For eBGP peers, change next hop address on advertised routes
For iBGP peers, do not change next hop address on advertised routes
အခုက second rule ေၾကာင့္ျဖစ္ပါတယ္… ဒါကိုေျဖရွင္းဖို႔ next hop setting ကို BGP configutaion ေအာက္မွာသြားျပင္ေပးရပါတယ္။
In R4, R4(config)# router bgp 5500
                           # neighbor 1.1.1.1 next-hop-self
                           # do clear ip bgp *

ref: Jeremy's CBT for CCNP Route
16/6/2011

BGP - Part6

Manual route injection
1. via Network command
2. via Redistribution

By Network command
In R2, R2(config)# router bgp 6500
                            # network 20.1.1.0 mask 255.255.255.0
                            # do s hip bgp
   Network   Next-hop  Metric  locPrf  Weight  Path
*> 20.1.1.0  0.0.0.0      0                            0       i

Note***: 0.0.0.0 means “self-interface”

By Redistribution
*** 203.81.75.0 ႏွင့္ 203.81.76.0 network 2ခုကို ဖယ္ၿပီး redistribute လုပ္ၾကည့္ပါမယ္။
In R2, R2(config)# access-list 50 deny 203.81.75.0
                           # access-list 50 deny 203.81.76.0
                           # route-map FILTER
                           # match ip address 50
                           # router bgp 6500
                           # redistribute connected route-map FILTER
                           # no auto-summary
အဲတာအမွားႀကီး… connected ဆိုတာေလးကဖ်က္ေနတာဗ်… connected ဆိုေတာ့ 10.1.1.0 network ပါ redistribution process ထဲပါလာတယ္ေလ။ ဒီ configuration ႏွင့္ဆိုအဆင္မေျပေသးဘူးေပါ့ဗ်ာ… access-list ကိုပဲဖို႔ပဲရွိပါတယ္။ အရင္ access-list 50 ကိုဖ်က္ၿပီး အသစ္ျပန္ေရးရပါမယ္…
R2(config)# no access-list 50
                 # access-list 50 permit 203.81.71.0
                 # access-list 50 permit 203.81.72.0
                 # access-list 50 permit 203.81.73.0
                 # access-list 50 permit 203.81.74.0

15/6/2011

Wednesday, 15 June 2011

BGP - Part5

Simple BGP configuration
အရင္ဆံုးသိသင့္တာက eBGP မွာပဲျဖစ္ျဖစ္ iBGP ျဖစ္ျဖစ္ loopback interface ကိုအသံုးမ်ားၾကပါတယ္။ ဘာျဖစ္လို႔လဲဆိုေတာ့ BGP ကို redundancy (Dual neighbor relationship) အတြက္သံုးၿပီး link availability ကိုေျဖရွင္းေပးတာျဖစ္လို႔ သာမန္ interface ႏွင့္သံုးရင္ link bandwidth ႏွင့္ BGP table memory အသုံးျပဳမႈက မလိုအပ္ပဲျမင့္ေနတာေၾကာင့္ျဖစ္ပါတယ္။ ကဲ iBGP configuration စပါၿပီ.....

Common iBGP design
iBGP configuration steps
1.Defining loopback interfaces on both BGP routers
2.Configuring remote AS with other router’s loopback interface
3.Configuring “update-source”  with loopback interface
4.Fig.2 အရ loopback ေတြကို OSPF process ထဲမွာပါသံုးရပါမယ္။

On R1,  R1(config)# int lo 3
                              # ip address 1.1.1.1 255.255.255.255
                              # router ospf 1
                              # network 1.1.1.1 0.0.0.0 area 0
                              # router bgp 5800
                              # neighbor 2.2.2.2 remote-as 5800
                              # neighbor 2.2.2.2 update-source lo 3

On R2,  R2(config)# int lo 4
                              # ip address 2.2.2.2 255.255.255.255
                              # router ospf 1
                              # network 2.2.2.2 0.0.0.0 area 0
                              # router bgp 5800
                              # neighbor 1.1.1.1 remote-as 5800
                              # neighbor 1.1.1.1 update-source lo 4

Common eBGP design
eBGP configuration steps
1.Defining loopback interfaces on both BGP routers
2.Configuring remote AS (different) with other router’s loopback interface
3.Configuring “update-source”  with loopback interface
4.Loopback interfaces 2ခု reachability ရေအာင္ static route ထည့္ေပးရပါမယ္။
5.eBGP မွာ router ေတြက packet 1ခုပို႔ရင္ header မွာ TTL value ကို “1” (default) လို႔ထားၿပီးပို႔ပါတယ္။ အဓိပါယ္က destination interface ကိုေရာက္ပို႔ 1 hop (also means directly connected) ပဲရွိတာကိုေဖာ္ျပတာပါ။ အဲတာက router 2လံုးကို physical interface ႏွင့္ခ်ိတ္ဆက္ထားရင္ problem မရွိေပမယ့္ loopback ကိုသံုးတဲ့အခါ (loopback ေတြက directly connected interface မဟုတ္လို႔) multihop command ကိုသံုးရပါတယ္။

On R1, R1(config)# int lo 1
                             # ip address 1.1.1.1 255.255.255.255
                             # ip route 2.2.2.2 255.255.255.255 s0/0
                             # ip route 2.2.2.2 255.255.255.255 s0/1
                             # router bgp 5810
                             # neighbor 2.2.2.2 remote-as 6330
                             # neighbor 2.2.2.2 update-source lo 1
                             # neighbor 2.2.2.2 ebgp-multihop 2

On R2, R2(config)# int lo 2
                             # ip address 2.2.2.2 255.255.255.255
                             # ip route 1.1.1.1 255.255.255.255 s0/0
                             # ip route 1.1.1.1 255.255.255.255 s0/1
                             # router bgp 6330
                             # neighbor 1.1.1.1 remote-as 5810
                             # neighbor 1.1.1.1 update-source lo 2
                             # neighbor 1.1.1.1 ebgp-multihop 2

15/6/2011

Tuesday, 14 June 2011

BGP - Part4

BGP path selection procedure
1.Next hop router ကို access လုပ္လို႔မရရင္ route ကို ဖ်က္ခ်ပါတယ္။
2.Route 2ခု ယွဥ္လာရင္ weight တန္ဖိုးမ်ားတာကို ေရြးပါတယ္။
3.Weight တူေနရင္ local preference တန္ဖိုးမ်ားတာကို best route အျဖစ္ယူပါတယ္။
4.Local preference ေတြတူေနရင္ locally injected route (via Network command) ကိုေရြးပါတယ္။
5.မရွိရင္ AS-path တိုတာကို ယူပါတယ္။
6.AS-path length ေတြပါတူေနရင္ေတာ့ origin type ကိုစဥ္းစားရပါေတာ့မယ္။ BGP Part3 မွာပါတဲ့ show ip bgp command ကို run တဲ့အခါ ေတြ႔ရတဲ့ Origin codes: i - IGP, e - EGP, ? – incomplete (redistribute route ေတြကိုေျပာတာပါ) ဆိုတာေတြပါ။ အဲဒီေနရာမွာ lowest origin code ကို prefer ျဖစ္ပါတယ္။ ဥပမာ… route 1ခုက ‘i’ ေနာက္ route 1ခုက ‘e’ ဆိုရင္ BGP က origin code: i ရွိတဲ့routeကိုေရြးပါတယ္။ i<e<? လို႔မွတ္ထားနုိင္ပါတယ္။
7.အဲတာေတာင္တူေနေသးရင္ MED နွင့္ဆံုးျဖတ္ပါတယ္။ MED ငယ္တာကိုယူတာပါ။
8.MED ေတြတူေနရင္ေကာ??? External route နွင့္ internal ယွဥ္ၿပီး external (eBGP route) ကိုေရြးယူပါတယ္။
9.External route 2ခုျဖစ္ေနရင္ နီးဆံုး IGP neighbor ရွိတဲ့ route ကိုေရြးပါတယ္။
10.ေနာက္ဆံုးအေနနွင့္ lowest BGP RID ရွိတဲ့ route က best route ျဖစ္သြားပါတယ္။

Starting very basic BGP configuration
အဲ… configuration မစခင္ eBGP ရဲ႕လိုအပ္ခ်က္ကိုေျပာပါမယ္…
1.Local router ရဲ႕ ASN နွင့္ neighbor router က reference လုပ္တဲ့ ASN တူရမယ္။
2.Connect လုပ္ထားတဲ့ router 2ခုရဲ႕ RID မတူရ။
3.MD5 authentication ကို configure လုပ္ထားရင္ တူရမယ္။


Configuration
E1(config)# router bgp 11
E1(router)# neighbor 10.1.1.2 remote-as 1

ISP(config)# router bgp 1
ISP(router)# neighbor 10.1.1.1 remote-as 11

14/6/2011

Types of ISP connections

Methods
# of Link
# of ISP
Single homed
1
1
Dual homed
2 or more
1
Single multi-homed
1
2 or more
Dual multi-homed
2 or more
2 or more


































14/6/2011

Monday, 13 June 2011

BGP - Part3

Understanding MED













Local router: R1
ISP routers: R2 and R3
Speed of R1-R2 link: 1.544Mbps
Speed of R1-R3 link: 768 kbps
ျပဳလုပ္ၿပီး configuration မ်ား... All connections between routers, BGP on R2 and R3 (including iBGP peering), loopback0 interface on R1 (with IP address of 1.1.1.1 /24)
Objective: ISP မွ local သို႔လာေသာ traffic ေတြကို R1-R2 link ကိုသာသံုးေစၿပီး R1-R3 link ကို backup link ျဖစ္ေအာင္ျပဳလုပ္ျခင္း။

Firstly... Basic BGP configuration on R1:
R1(config)# router bgp 65065
R1(config-router)# network 1.1.1.0 mask 255.255.255.0
R1(config-router)# neighbor 172.16.12.1 remote-as 65001
R1(config-router)# neighbor 172.16.12.5 remote-as 65001
.....
.....
*Mar  1 03:52:45.519: %BGP-5-ADJCHANGE: neighbor 172.16.12.1 Up
*Mar  1 03:52:49.515: %BGP-5-ADJCHANGE: neighbor 172.16.12.5 Up

Checking R2 and R3...
R2# sh ip bgp
BGP table version is 2, local router ID is 172.16.12.9
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop         Metric  LocPrf   Weight   Path
* i1.1.1.0 /24     172.16.12.10        0       100           0       65065 i
*>                      172.16.12.2          0                        0       65065 i

R3# sh ip bgp
BGP table version is 2, local router ID is 172.16.12.10
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop         Metric  LocPrf   Weight   Path
* i 1.1.1.0 /24    172.16.12.9         0       100            0       65065 i
*>                      172.16.12.6         0                         0       65065 i

Start tuning MED on R1:
R1(config-router)# exit
R1(config)# ip access-list standard BGP_NETWORKS
R1(config-std-nacl)# permit 1.1.1.0 0.0.0.255

R1(config-std-nacl)# route-map MED_100 permit 10
R1(config-route-map)# match ip address BGP_NETWORKS
R1(config-route-map)# set metric 100

R1(config-router)# neighbor 172.16.12.5 route-map MED_100 out
R1(config-router)# do clear ip bgp *
.....
.....
*Mar  1 04:06:05.014: %BGP-5-ADJCHANGE: neighbor 172.16.12.1 Down User reset
*Mar  1 04:06:05.014: %BGP-5-ADJCHANGE: neighbor 172.16.12.5 Down User reset
*Mar  1 04:06:43.766: %BGP-5-ADJCHANGE: neighbor 172.16.12.5 Up
*Mar  1 04:06:48.154: %BGP-5-ADJCHANGE: neighbor 172.16.12.1 Up

See result on R3
R3# sh ip bgp
BGP table version is 6, local router ID is 172.16.12.10
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop       Metric   LocPrf   Weight   Path
*>i1.1.1.0 /24    172.16.12.9        0       100              0     65065 i
*                        172.16.12.6                  100             0     65065 i

13/6/2011

BGP - Part2

Internal-BGP (iBGP) and External-BGP (eBGP)
iBGP: iBGP ကို autonomous 1ခုအတြင္းမွာအသံုးျပဳ ပါတယ္။ ၄င္းကို External BGP router မွ route information ေတြကို internal network အတြင္းသို႔ inject လုပ္ခ်င္တာေၾကာင့္ အသံုးျပဳရ ျခင္းျဖစ္ပါတယ္။ iBGP ကိုအဓိကအားျဖင့္ internal network အတြင္းမွ internet ဘက္သို႔ထြက္ရန္ တစ္ခုထက္ပိုေသာ route မ်ားရွိပါကအသံုးျပဳပါတယ္။ iBGP ကို internal network မွာ fast converge လုပ္နုိင္ရန္ IGP protocol တစ္ခုခု or Static route နွင့္တြဲသံုးရပါတယ္။

eBGP: BGP route information ကို အျခား autonomous systems သို႔ distribute လုပ္ရန္အတြက္ eBGP ကိုသံုးပါတယ္ (eg. Routing between internal network and ISPs)။ eBGP ကို ISP သို႔ static route နွင့္ လြယ္လြယ္ကူကူေရာက္ရွိနုိင္ျခင္း (or) small-sized internal network ျဖစ္ေနပါက သံုးရန္မသင့္ေတာ္ပါ။

Some important parameters for BGP path selection
Weight: outbound measurement / internally ျဖစ္ပါတယ္။ ဆိုလိုတာက router တစ္ခုတြင္ destination တစ္ေနရာအတြက္ ၄င္းကိုယ္ပိုင္ exit (to next hop) ကို administrator သတ္မွတ္ျခင္းျဖစ္ပါတယ္။ Router က၄င္းကိုသတ္မွတ္ေပးထားတဲ့ weight value ကို အျခား router ဆီသို႔ sharing (influencing) မလုပ္ပဲ ကိုယ္တိုင္အတြက္ ၄င္းေပၚတြင္သာ configure လုပ္တာျဖစ္လို႔ က်ေနာ္က internally လို႔ ထပ္ျဖည္႔ၿပီး မွတ္ထားပါတယ္။ လြယ္လြယ္မွတ္ခ်င္ရင္ ”ကိုယ့္ထြက္ေပါက္ ကိုယ့္ဘာသာသတ္မွတ္” တယ္လို႔သာမွတ္ထားလိုက္။ Router က weight တန္ဖိုးျမင့္တဲ့ route ကို best route လို႔သတ္မွတ္ပါတယ္။
Local Preference: outbound measurement / externally ျဖစ္ပါတယ္။ Local network ရဲ႕ edge router မွာသာအသံုးမ်ားၿပီး internal network က host ေတြ internet ကိုထြက္ပို႔ ကိုယ္က သင့္ေတာ္တယ္ မသင့္ေတာ္တယ္လို႔ advertising (influencing so “externally”) လုပ္ရန္ဒီ parameter ကိုသံုးပါတယ္။ ဥပမာ… edge router A နွင့္ edge router B ကို internal router C က connect လုပ္ထားတယ္ဆိုပါစို႔… administrator က router A ရဲ႕ local preference ကို 200 လို႕ျပင္ထားၿပီး router B မွာ default (100) အတိုင္းထားပါက router C ရဲ႕ routing table တြင္ internet ကိုသြားဖို႔ best route ကို router A လို႔ေဖာ္ျပေနတာကိုေတြ႔နုိင္ပါတယ္။ မွတ္ခ်က္… eBGP မွာ effective မျဖစ္ပါ။
Multiple-exit discriminator (MED): ISP ကေန ကိုယ့္ local network ကို၀င္ရန္ ပိုေကာင္းေသာ interface ကို edge router တြင္ သတ္မွတ္ေပး (eg. with route-map) ၿပီး ISP ကို advertise လုပ္ျခင္းျဖစ္ပါတယ္။ Dual-homed ပံုစံနွင့္ျမင္ၾကည့္ပါ။ အျခား parameter ေတြနဲ႔မတူတာက MED မွာ တန္ဖိုးနည္းတဲ့ route က best route ျဖစ္ပါတယ္။ အမွန္က ကိုယ့္ local network ကို ၀င္တာျဖစ္လို႔ (organization ဘက္ကၾကည့္ရင္) Multiple-entrance discriminator လို႔မွတ္ရင္ ပိုအဆင္ေျပပါလိမ့္မယ္။ Protocol designer ေတြက ISP ဘက္ကအျမင္နွင့္ၾကည့္တာေၾကာင့္ multiple-exit လို႔သံုးတာျဖစ္ပါတယ္။ Configuration နွင့္ၾကည့္ရင္ပိုျမင္နုိင္ပါတယ္…
AS-path: Autonomous system တစ္ခုမွ ေနာက္ AS သို႔ route လုပ္ရာမွာျဖတ္သန္းခဲ့တဲ့ AS အေရအတြက္ျခင္း နွုိင္းယွဥ္ၿပီး AS-path တိုတာကို best route အျဖစ္ထားျခင္း ျဖစ္ပါတယ္။ AS-path မွာ routing loop ကို detect လုပ္နုိင္တဲ့ အားသာခ်က္ရွိပါတယ္။

13/6/2011