10/28/2019

EOS - Find the interfaces with the most flaps

bn302.12:40:24#show int phy | egrep '^Eth' | awk '{print $3, $1}' | sort -rn | head -10
479 Ethernet9/25/2
23 Ethernet9/11/1
5 Ethernet9/34/1
5 Ethernet3/34/1

BGP Oscillation (RFC 3345)

BGP Oscillation (RFC 3345)
  • BGP Oscillation is common in the context of MED + RR, because,
    • BGP only advertise the best path and hide the full list. 
    • Similar to RR, it is also with BGP confederation
  • RFC 3345 has a very good depiction of how it happens
  • in RFC, there lists a couple of design options to avoid this kind of churn
    • In RFC 7964, advertises all available paths by using ADD-PATH
    • Always compare MED even from different AS;
    • Don't accept MED
    • Utilize other BGP attributes higher in the decision process. (a little risky, because if any prefix leaked w/o higher attribute and tied)
    • Assign a high IGP cost to inter-cluster-link

10/15/2019

AS_PATH and Community regexp tips

1. match certain # of as_path

ip as-path access-list SixAS permit ^._._._._._.$ any

2. community list for some specific ending number, like ending 123. Because there is a space at the end of comm list, so need an underscore _, like

ip community-list regexp Ending123 permit ^.*:.*123_$

10/08/2019

Router Server

References:

Router Server = Internet Exchange (IX) Route Server = eBGP RR
  • Used in internet exchange
  • eBGP RR, so no need a full mesh eBGP peering among all parties
  • Reduces configuration complexity and CPU/memory overhead on border routers
Requirements:
  • AS_PATH transparency:
    • RS doesn't append its own AS# in the AS_PATH
    • RS-client doesn't enforce first AS
  • Nexthop transparency: 
    • doesn't change NRLI's NH
  • MED transparency: 
    • doesn't change path MED
  • Path hiding:
    • Per RFC 4271, BGP only advertises the best path, and a later update will be considered as an implicit withdrawal of the existing path.  
    • In RFC 7947, it does mention the "path hiding". So the RS only advertises the best path, which could slow down the convergence time
EOS configurations:

service routing protocols model multi-agent  <<  must multi-agent
!

route-map rtmap-no-change-med permit 10
   set metric +0     << keep metric unchanged
!
router bgp 10
   router-id 10.255.255.251
   neighbor RS-Client peer group
   neighbor RS-Client next-hop-unchanged   << NH unchanged
   neighbor RS-Client as-path prepend-own disabled  << no own as#
   neighbor RS-Client route-map rtmap-not-change-med out << rtmap
   neighbor RS-Client password 7 xLcnzAMGHkI=
   neighbor RS-Client send-community
   neighbor RS-Client maximum-routes 12000
   neighbor 10.10.10.11 peer group RS-Client
   neighbor 10.10.10.11 remote-as 11
!

How many prefixes received? Considering the following scenario:
  • 3 peers advertising ONE prefix 
  • 2 route servers
  • And all 3 peers also have bilateral peering  
  • Then should be 5
Router1.15:19:15#sh ip bgp 11.111.1.1
BGP routing table information for VRF default
Router identifier 180.255.255.1, local AS number 65100
BGP routing table entry for 11.111.1.1/32
 Paths: 5 available
  12 111
    10.10.10.12 from 10.10.10.12 (10.255.255.12)  << from R2
      Origin IGP, metric 100, localpref 100, weight 0, received 00:00:19 ago, valid, external, ECMP head, ECMP, best, ECMP contributor
      Rx SAFI: Unicast
  11 111
    10.10.10.11 from 10.10.10.11 (10.255.255.11)  << from R1
      Origin IGP, metric 100, localpref 100, weight 0, received 00:00:19 ago, valid, external, ECMP, ECMP contributor
      Rx SAFI: Unicast
  11 111
    10.10.10.11 from 10.10.10.251 (10.255.255.251) << R1 vis RS1
      Origin IGP, metric 100, localpref 100, weight 0, received 00:00:19 ago, valid, external, ECMP, ECMP contributor
      Rx SAFI: Unicast
  11 111
    10.10.10.11 from 10.10.10.252 (10.255.255.252) << R1 via RS2
      Origin IGP, metric 100, localpref 100, weight 0, received 00:00:19 ago, valid, external, ECMP, ECMP contributor
      Rx SAFI: Unicast
  13 333 111
    10.10.10.13 from 10.10.10.13 (10.255.255.13)    << R3
      Origin IGP, metric 100, localpref 100, weight 0, received 00:00:19 ago, valid, external
      Rx SAFI: Unicast

Let's shut down the private peering to R2. So you can see the RS1 and RS2 don't advertise R2's path. 

Router.15:26:31(config-router-bgp)#sh ip bgp 11.111.1.1
BGP routing table information for VRF default
Router identifier 180.255.255.1, local AS number 65100
BGP routing table entry for 11.111.1.1/32
 Paths: 4 available
  11 111
    10.10.10.11 from 10.10.10.252 (10.255.255.252) << RS2
      Origin IGP, metric 100, localpref 100, weight 0, received 00:00:02 ago, valid, external, best
      Rx SAFI: Unicast
  11 111
    10.10.10.11 from 10.10.10.251 (10.255.255.251) << RS1
      Origin IGP, metric 100, localpref 100, weight 0, received 00:00:02 ago, valid, external
      Rx SAFI: Unicast
  11 111
    10.10.10.11 from 10.10.10.11 (10.255.255.11)   << R1
      Origin IGP, metric 100, localpref 100, weight 0, received 00:00:02 ago, valid, external
      Rx SAFI: Unicast
  12 111
    10.10.10.12 from 10.10.10.12 (10.255.255.12)   << R2
      Origin IGP, metric 100, localpref 100, weight 0, received 00:00:02 ago, valid, external
      Rx SAFI: Unicast

10/03/2019

EOS: A quick alias to show the interfaces with most util%

bn302#bash Cli -p15 -c 'srnz' | awk '{print $5, $8, $1}' | sort -r | more
Mbps Kpps Port
1.6% 4.5% Et9/36/1
1.5% 4.3% Et3/36/1
0.7% 0.5% Et13/33/1
0.7% 0.4% Et12/36/2

or set it as an alias


srnzsort bash Cli -p15 -c 'srnz' | awk '{print $5, $8, $1}' | sort -r | head -n 6

Updated note: The above command works with interface names/description defined. If not, have to change awk '{print $5, $8, $1}' to awk '{print $4, $7, $1}'

hs486.11:32:15#srnz
Port      Name        Intvl   In Mbps      %  In Kpps  Out Mbps      % Out Kpps
Et49/1                 0:05    9870.4 100.0%      812    9860.3  99.9%      811


hs486.12:14:45#bash Cli -p15 -c 'srnz' | awk '{print $4, $7, $1}' | sort -r | more
In In Port
100.0% 99.9% Et50/1
100.0% 99.9% Et49/4

How about some interfaces with description, some don't? hm.... Let me think about it..... :-)