BGP Keepalive Timer Calculator for Packet Load

August 24, 2026

BGP Keepalive Timer Calculator

Model BGP timer negotiation, hold-time detection, keepalive packet rate, update churn, and router control-plane load before changing neighbor timers.

⚙Real BGP Presets
📡Session And Timer Inputs
Count neighbor adjacencies on this router or route reflector.
Effective hold time is the lower advertised hold value.
Effective Keepalive
60.0
seconds
Formula: min(local keepalive, negotiated hold / 3)
Failure Detection
180.0
seconds by BGP hold timer
Formula: hold timer, or BFD interval x multiplier
Keepalive Wire Load
0.039
kbps
Formula: sessions x directions x bytes x 8 / interval
Total BGP Packet Rate
0.14
packets per second
Formula: keepalive pps + churn-adjusted UPDATE pps

Full Breakdown

📊Packet Accounting Reference
19 B
BGP keepalive message minimum
59 B
BGP plus TCP plus IPv4 headers
79 B
BGP plus TCP plus IPv6 headers
73 B
Ethernet counted with IPv4 packet
📘BGP Timer Profiles
ProfileKeepalive / HoldDetection TargetPractical Use
Classic default60s / 180sUp to 180 secondsStable eBGP WAN, conservative peering, low CPU overhead.
Moderate iBGP30s / 90sUp to 90 secondsHome lab route reflector or small internal mesh.
Fast edge10s / 30sUp to 30 secondsDual uplink failover when BFD is unavailable.
Aggressive lab3s / 9sUp to 9 secondsTesting only unless jitter and CPU headroom are known.
BFD-assisted60s / 180s plus BFDSub-second to a few secondsFast failure detection while BGP timers stay relaxed.
🖥Vendor And Profile Comparison
Platform Or StackCommon DefaultTimer StyleHome Lab Note
Cisco IOS / IOS XE60s / 180sNeighbor timers or peer-group timersOften paired with BFD for fast edge failover.
Juniper Junos30s / 90s commonly seenHold-time driven with keepalive behavior derived from itCheck group-level settings before blaming one peer.
Arista EOS60s / 180sGlobal, peer-group, or neighbor configurationLeaf-spine fabrics usually prefer BFD over tiny hold timers.
FRRouting60s / 180sNeighbor timers are easy to overridePopular for Proxmox, Linux routers, and lab route reflectors.
BIRDImplementation profile dependentProtocol-level keepalive and hold controlsUseful for Linux route servers and small IX-style labs.
OpenBGPDConservative defaultsNeighbor or group-oriented configurationFavor stable timers on small firewalls with limited CPU.
📦Control-Plane Packet Size Reference
Layer CountedBytes UsedFormula BasisWhen To Use
BGP message only19 bytesBGP marker, length, and type fieldsProtocol documentation or message-only math.
BGP over TCP IPv459 bytes19 BGP + 20 TCP + 20 IPv4Router CPU receive queue estimates without Layer 2.
BGP over TCP IPv679 bytes19 BGP + 20 TCP + 40 IPv6IPv6 peering sessions without Layer 2 framing.
Ethernet plus IPv473 bytes59 Layer 3 bytes + 14 EthernetRough wire load on switched home lab links.
VLAN Ethernet plus IPv477 bytes73 bytes + 4 byte 802.1Q tagTagged transit, lab trunks, and router-on-stick links.
🧭Preset Scenario Comparison
ScenarioSessionsTimersWhy It Matters
Single ISP eBGP160s / 180sDefault behavior is usually fine for a single uplink.
Dual-WAN edge210s / 30sFaster route withdrawal after broadband failure.
IXP peering router8030s / 90sMany peers make small timer changes visible in pps.
Route reflector pair4030s / 90siBGP scale is mostly session count and churn sensitivity.
BFD-assisted core2460s / 180sBFD handles fast failure; BGP stays calm.
🔧Timer Tuning Tips
Use hold timers for stability and BFD for speed. A 3-second BGP keepalive can work in a lab, but it also makes brief CPU stalls and WAN jitter look like failures. If the platform supports BFD, keep BGP timers moderate and var BFD own the fast detection path.
Estimate control-plane load in both directions. Each BGP speaker sends keepalives, so a route reflector with 60 clients sees a different packet budget than a single edge router. Add UPDATE churn when testing route leaks, flap storms, or full-table changes.

Use the calculator to test your assumptions before you touch the configuration. Set your timers wrong and it won’t be faster or more stable, it will be unstable. You don’t want the fastest border gateway protocol config, you want to find the sweet spot between too much on the control plane and not enough time to detect an issue.

That leaves us with the hold timer. That’s the glue in this relationship, the thing that will tell your neighbor when it’s okay to say, “The connection is dead.” And then there’s the heartbeat, the keepalive. According to RFC 4271, the keepalive needs to be no less than a third of the hold time. Why? Because if you have too much delay between scheduling the keepalives they might miss each other’s heartbeats or talk over one another. So if you shorten your hold time down to ten seconds, you need to shorten the keepalive. You can’t get quick failover if your heart isn’t beating quickly.

Finding the Right Balance for Your Network Timers

These timers is normally considered a static number (they are typically copied from blogs or the manual). Little thought is given to physical cost of this little packet. Sure, it’s tiny, barely nineteen bytes of payload in a BGP keepalive, but you’re sending it all the time. 100 times? Double that for return traffic. Add your TCP and IP headers. You’re creating a continual stream of overhead. The tool reflects those layers on the wire, and what had been a trivial setting becomes a measurable load on an already busy route reflector.

The actual problem is route updates. While keepalives are regular, UPDATEs is a mess. One link flap cause hundreds of announcements and withdrawals. To model that noise, the calculator add a churn multiplier. It shows the contrast between an orderly internal network and a peering session at the edge of the internet.

How do you know whether your router has enough CPU cycles to handle those updates while keeping pace with the keepalive rhythm? Because if the parser gets behind due to churn it may miss a keepalive and time out erroneously. And that’s where folks mess up. They look at the fastest possible detection time and they forget about their processing budget. Sub-second failure detection is nice in a data center fabric. Three minutes could of being just right in a stable WAN edge or a home lab. The reference tables on the page outline how each profile strikes a balance between speed and resource usage.

This is where BFD often comes into play. BFD take over the detection job from BGP. That means the protocol timers can be kept relaxed and BFD monitors the link for silence. This division of labor make the control plane calm.

Jitter is another silent killer. Packets don’t show up on time in a congested link. Too-tight timers makes a small delay in the queue appear as a link failure. You flap routes for no reason. Acknowledge the imperfect nature of networks and use a jitter margin when you use the calculator. It’s a practical adjustment to account for real-world conditions.

So yes, fine tune your BGP. But do so with restraint. Responsiveness sounds exciting, but a fast timer will result in instability. Resilience is what you’re after, not reactivity. You can’t react to every ripple; your network must be able to ride out the storm.

Test your assumptions first using the tool. What’s the CPU load? How many packets per second? Respect the hold time. This is a small thing, but it matters. Actually, it should of mattered more.

BGP Keepalive Timer Calculator for Packet Load

Related posts

Leave a Comment