4 ms·
I will go through the bgpd.conf docs later today, to try to understand the protocol better. I wish there were an online BGP simulation GUI, rather than the pro
by unethical_ban 5y ago
I will go through the bgpd.conf docs later today, to try to understand the protocol better.
I wish there were an online BGP simulation GUI, rather than the prospect of spinning up a VM lab with a bunch of virtual switches and OpenBSD VMs.
- idorosen 5y agoMaybe read RFC4271 instead if you're looking to learn about the protocol rather than just about this implementation, just be aware there are many extension RFCs (see the list at the top of the link). https://datatracker.ietf.org/doc/html/rfc4271 https://datatracker.ietf.org/doc/html/rfc4271
- bcrl 5y agoBGP isn't actually all that complicated. Like virtually all routing protocols it is based on the concept of shortest path first route selection using Dijkstra's algorithm. BGP just defines a way for communicating the announcements and paths that feed into Dijkstra's. OSPF and IS-IS do pretty much the same thing, as well as a number of the mobile ad-hoc networking protocols. I was lucky enough to get paid to prototype a routing protocol a number of years back. Getting my hands dirty implementing Dijkstra's was a lot of fun!
- zajio1am 5y agoNo. OSPF and IS-IS really works by communicating the network topology and then each node independently computing shortest path route selection. But BGP (and also RIP and Babel) works by a distributed algorithm, where each node selects best routes for each destination from available routes received from neighbors, and announces selected best routes to neighbors.
- idorosen 5y agoIn networking parlance, BGP is a distance vector routing protocol, as opposed to link state routing protocols like OSPF. Distance vector: https://en.m.wikipedia.org/wiki/Distance-vector_routing_protocol https://en.m.wikipedia.org/wiki/Distance-vector_routing_prot... Link state: https://en.m.wikipedia.org/wiki/Link-state_routing_protocol https://en.m.wikipedia.org/wiki/Link-state_routing_protocol