today I was trying the bgp dampening feature, and I wrote this simple tclsh script to flap an interface during my lab tests:
first, configure an interface with the route to flap:
R3#sh run int lo 10 | beg int interface Loopback10 ip address 10.10.10.10 255.255.255.0 end
then configure the network statement for that route under the bgp process:
R3#sh run | sec router bgp
router bgp 300
no synchronization
bgp log-neighbor-changes
bgp dampening
network 10.10.10.0 mask 255.255.255.0
neighbor 192.168.2.1 remote-as 200
neighbor 192.168.2.1 ebgp-multihop 2
neighbor 192.168.2.1 update-source Loopback0
no auto-summary
R3#
and here is the tclsh script, I reccomend a wait time of 40-50 sec with the default bgp timers
################################################################################## ## Tclsh BGPFLAP SCRIPT v0.1 Beta: a tclsh script to flap a bgp route ## By Marco Rizzi ( http://rizzitech.blogspot.com ) marco.rizzi.com[A_T]gmail.com ## Date Feb 28, 2010 ## licensed under a Creative Commons Attribution 3.0 United States License ## ( http://creativecommons.org/licenses/by/3.0/us/ ) ;-) ################################################################################## ### USAGE: BGPFLAP [interface_to_flap] [number_of_flaps] [wait_secs] ## DON'T USE ON PRODUCTION SYSTEMS, IT'S ONLY FOR LAB TESTING ## No warranty, provided "AS IS" ## Main procedure proc BGPFLAP {interface n_flaps wait} { ## Before you start, be shure you have a bgp process up and running ## and the interface you will flap declared under the bgp process ## BGP DAMPENING would be nice to have on neighbors too :-) ## calculates msecs to wait: 1 flap = 1 down + 1 up so wait/2 set wait [ expr {$wait/2 * 1000}] ## produces n flaps of the desired route shutting down the interface at wait/2 rate for {set i 0} {$i <= $n_flaps} {incr i} { ios_config "interface $interface" "shutdown" #wait, let bgp withdraw the route after $wait ios_config "interface $interface" "no shutdown" #wait, let bgp announce the route after $wait } } ################################# END OF SCRIPT ################################### ## ## ### USAGE: BGPFLAP [interface_to_flap] [number_of_flaps] [wait_secs] #### enjoy ;-)
Let's try with
R3(tcl)# R3(tcl)#BGPFLAP loopback10 6 45 *Feb 28 16:08:43.443: %LINK-5-CHANGED: Interface Loopback10, changed state to administratively down *Feb 28 16:08:44.447: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback10, changed state to down *Feb 28 16:09:05.467: %LINK-3-UPDOWN: Interface Loopback10, changed state to up *Feb 28 16:09:06.467: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback10, changed state to up !-- ...and so on
on the other side you can see:
R2#debug ip bgp dampening BGP dampening debugging is on for address family: IPv4 Unicast R2# *Feb 28 16:08:41.639: EvD: charge penalty 1000, new accum. penalty 1000, flap count 1 *Feb 28 16:08:41.643: BGP(0): charge penalty for 10.10.10.0/24 path 300 with halflife-time 15 reuse/suppress 750/2000 *Feb 28 16:08:41.647: BGP(0): flapped 1 times since 00:00:00. New penalty is 1000 R2# *Feb 28 16:09:12.671: EvD: accum. penalty 977, not suppressed R2# *Feb 28 16:09:21.083: EvD: accum. penalty decayed to 973 after 8 second(s) R2# *Feb 28 16:09:42.759: EvD: accum. penalty decayed to 958 after 22 second(s) *Feb 28 16:09:42.763: EvD: charge penalty 1000, new accum. penalty 1958, flap count 2 *Feb 28 16:09:42.767: BGP(0): charge penalty for 10.10.10.0/24 path 300 with halflife-time 15 reuse/suppress 750/2000 *Feb 28 16:09:42.767: BGP(0): flapped 2 times since 00:01:01. New penalty is 1958 R2# R2#sh ip bgp 10.10.10.0 BGP routing table entry for 10.10.10.0/24, version 24 Paths: (1 available, no best path) Flag: 0x820 Not advertised to any peer 300, (suppressed due to dampening) 192.168.3.1 (metric 65) from 192.168.3.1 (192.168.3.1) Origin IGP, metric 0, localpref 100, valid, external Dampinfo: penalty 3521, flapped 4 times in 00:05:19, reuse in 00:00:43 R2#
As you can see, 45 secs of flapping time is barely enough to let bgp announce/withdraw the route, here R2 has noticed only 4 flaps, with a penality of 3521 points...
hope this helps someone to play with bgp :-)
No comments:
Post a Comment