Ramblings of an aging IT geek
← Ramblings of an aging IT geek
networking

running bgp at home, for reasons i can only half justify

A short note on running BIRD and announcing routes between a couple of homelab boxes, mostly to understand BGP properly rather than because anything actually needed it.

Network cables and a small switch on a desk

I now run BGP at home, between two machines that could have happily talked over a static route I would have typed once and forgotten. There is no operational need for this. There is, however, every educational need, because the only way I have ever actually understood a protocol is to run it somewhere it can break and I have to fix it.

I put BIRD on both boxes, gave them private ASNs out of the 64512 range, and set up a session over the link between them.

protocol bgp uplink {
    local as 64512;
    neighbor 10.0.0.2 as 64513;
    ipv4 {
        import all;
        export all;
    };
}

A few minutes of birdc show protocols showing Idle, then Connect, then finally Established, and a route I announced on one box appeared on the other. Genuinely satisfying, in the way only pointless competence is.

What I got out of it was a feel for the thing the diagrams never give you: how a session comes up, what the states actually mean, how a withdrawn prefix propagates, why a flapping link makes everyone miserable. None of which I needed at home. All of which I will be glad of the next time I am staring at a real BGP session at work wondering why it won't come up. Better to have already broken it in a place where the only thing depending on it is my own stubbornness.