Skip to content

Mini-guide: accepting a full table on 1GB RAM

Networking by liam_funky 4 replies 244 views
12 #1

Accepting a full table on 1GB RAM

1. The problem
A) You have a cheap box at Contabo or OVHcloud
B) 1GB RAM, maybe 512MB if you got the "legacy" plan
C) Full table is ~900k v4 + ~200k v6 = death by OOM

2. The filtering strategy
I. Use max-prefix limits aggressively
Ii. Filter bogons, Martians, default-only peers
Iii. Accept only /24 and shorter for v4, /48 and shorter for v6
Iv. Drop all paths with >50 prepends (noise reduction)

3. The software angle
A) BIRD with filtered table, not unfiltered
B) Disable BGP path damping (RAM hungry)
C) Reduce RPKI cache to 4 threads max

4. Results
I. Memory footprint: ~340MB stable
Ii. Convergence: ~4 minutes on Atom C2550
Iii. Not pretty; works

5. Criticism welcome
A) I know this is "wrong"
B) Tell me your worse setups

#2

1. Transparency: we ran this exact config at Vultr during a provisioning error in 2024.
2. Error budget burned in six hours.
3. Blameless postmortem showed the filtering masked a legitimate route leak from upstream.
4. Works until it doesn't; transparency about limits matters more than the savings.

#3

How does bird handle the v6 RIB with that filter

#4

I had the same OOM on 512MB legacy, bird just dies silently

POLISH SERVERS. LOUD FANS. GOOD PRICE.
#5

Which BIRD version? 2.x memory layout is totally different

Post a reply

You need an account to reply. Log in or register to join the conversation.

Post reply Preview Save draft