Here’s a great command for verifying (or just practicing) your BGP regular expression filters. In the example below, I want to only see the routes where AS54 is the last AS in the AS path*. I’m pretty sure that my regular expression is correct, but I want to verify it by running it against my BGP database.
Here’s the full BGP database:
r6(config)#do sh ip bgp | b Netw
Network Next Hop Metric LocPrf Weight Path
*> 28.119.16.0/24 204.12.1.254 0 0 54 i
*> 28.119.17.0/24 204.12.1.254 0 0 54 i
*> 112.0.0.0 54.1.3.254 0 0 54 50 60 i
*> 113.0.0.0 54.1.3.254 0 0 54 50 60 i
*> 114.0.0.0 54.1.3.254 0 0 54 i
*> 115.0.0.0 54.1.3.254 0 0 54 i
*> 116.0.0.0 54.1.3.254 0 0 54 i
*> 117.0.0.0 54.1.3.254 0 0 54 i
*> 118.0.0.0 54.1.3.254 0 0 54 i
*> 119.0.0.0 54.1.3.254 0 0 54 i
*> 205.90.31.0 204.12.1.3 0 200 254 ?
*> 220.20.3.0 204.12.1.3 0 200 254 ?
*> 222.22.2.0 204.12.1.3 0 200 254 ?Here’s the results of filtering with ^54_ :
r6(config)#do sh ip bgp regex ^54_
BGP table version is 14, local router ID is 150.1.6.6
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
*> 28.119.16.0/24 204.12.1.254 0 0 54 i
*> 28.119.17.0/24 204.12.1.254 0 0 54 i
*> 112.0.0.0 54.1.3.254 0 0 54 50 60 i
*> 113.0.0.0 54.1.3.254 0 0 54 50 60 i
*> 114.0.0.0 54.1.3.254 0 0 54 i
*> 115.0.0.0 54.1.3.254 0 0 54 i
*> 116.0.0.0 54.1.3.254 0 0 54 i
*> 117.0.0.0 54.1.3.254 0 0 54 i
*> 118.0.0.0 54.1.3.254 0 0 54 i
*> 119.0.0.0 54.1.3.254 0 0 54 i
*Thanks to apep for the correction. See comment section for details.