Narbik focused on BGP throughout day 4. One of Narbik’s lecturing distinctives is that he explains the “why” of something before he explains the “how”. In other words, he didn’t stand up there and say “We all know that iBGP peers are expected to be full mesh, but what options can we use to avoid the full mesh requirement?” Yes, he got to that point eventually, but he started off explaining the evolution of the BGP protocol, the issues that designers were facing, decisions that were made along the way that may have solved an immediate issue but didn’t scale as the Internet grew, and then what was done to address scalability. Only then did he get into the mechanics of it all.
Important to Narbik is that his students understand the original purpose of the command they are configuring. His logic is that if you understand WHY a particular feature exists, it won’t be as hard as it might otherwise be to configure a seemingly obscure lab task. Now, Narbik has a way of pushing the boundaries of a technology, too. He can take a command and use it in a way that’s beyond its original intention to accomplish what he describes as “double-0-seven” stuff. But he makes sure you have a good understanding of it all first.
Here are a few miscellaneous notes I jotted down over the course of the day.
- A default route cannot be used to establish a BGP peer. In other words, for a BGP adjacency to form, there must be a specific route in the routing table for the BGP neighbor you need to reach.
- Next-hop-self is only effective on AS border routers, not on iBGP to iBGP. I’ve run into this in lab exercises, and never understood why next-hop-self sometimes worked and sometimes didn’t.
- “show ip bgp comm x” will display all routers on a router tagged with community “x”.
- When you have a “match” and a “set” in a route-map, don’t forget to include a catch-all route-map entry at the bottom for a permit if needed.
- “bgp bestpath as-path ignore” is a hidden command. This command overrides as-path in bestpath algorithm. This is a hidden because disabling as-path is generally a really bad idea – it can cause routing loops.
- “bgp bestpath med missing-as-worst”. If the advertised route does not have a med assigned, assume the med value to be the highest possible, i.e. the worst possible.
- Order of attributes/bestpath selection.
- eBGP over iBGP
- If routes are internal:
- If max-paths > 1, choose IGP with the lowest metric to the destination next-hop
- If metrics match, oldest route.
- If routes are external
- Oldest route.
- If bgp bestpath compare router-id, lowest RID.
- If RIDs match, lowest IP address.
- “debug ip policy” allows you to see what packets matched or didn’t match a PBR route-map and where the packet was forwarded as a result.