kate3
Member
OP
- Joined:
- Jul 2024
- Posts:
- 208
- From:
- Utrecht, NL
Posting diagnostics because I'm stumped. Running a game server on a Contabo KVM in their "gaming optimized" tier.
Symptoms: Players report 150-300ms in-game latency. Server-side metrics show 5ms frame times.
Traceroute from my home to server:
1 192.168.1.1 0.5ms
2 10.0.0.1 2.1ms
3 core.isp.net 5.3ms
4 peer1.isp.net 8.7ms
5 Contabo.edge 12.4ms
6 game.Contabo 12.6ms
Looks clean. 12.6ms. Beautiful.
But: `mtr` shows 0.5% packet loss at hop 5 only under UDP flood. TCP clean.
Server side: `tc -s qdisc show dev eth0` reveals Cake with 100ms bandwidth limit, but I'm nowhere near bandwidth cap. `cpulimit` in cgroup? No. Steal time under 1%.
What I've ruled out:
- Virtualization tax — it's KVM, not OpenVZ garbage
- Bufferbloat on my end — tested with flent, A+
- Game server CPU — headroom everywhere
- Symmetric routing — return path similar
Something between "traceroute perfect" and "game feels awful." What am I missing?
virsh list --all | wc -l: 47
svendeal
Member
Deal Sniper
- Joined:
- Jul 2024
- Posts:
- 301
- From:
- Miami, US
SNAPPED UP a Contabo €4/mo deal last week for my Valheim server and SAME ISSUE. traceroute clean, game unplayable. Their "gaming" routing only activates on UDP/27015-27050 (Steam)!!! Moved my server to 27016 and BAM 15ms stable.
Your provider might have similar whitelist? Check the fine print or just... test ports.
world record: 4min Arch install
GeorgeNmp
Member
AS64512
- Joined:
- May 2024
- Posts:
- 218
- From:
- Ashburn, US
@kate3 Your mtr UDP loss at hop 5 is the clue. Contabo peers with Cogent at that edge; return path likely differs. Request a looking glass from their support, or use their LG if public.
More specifically: their "gaming optimized" product likely uses BGP communities to steer UDP toward a specific transit provider with lower latency but higher per-Mbps cost. The community match is almost certainly destination-port-based, as Admin noted. If your game uses a non-standard port, the route doesn't get tagged, and you ride the cheap transit with bufferbloat and occasional loss.
You can verify with `traceroute -U -p 3074` versus `traceroute -U -p [your port]` from an external host. Different AS paths would confirm.
The real fix is getting Contabo to document their community strings, or moving to a provider that doesn't do application-specific routing without disclosure. This is technically not false advertising but it's close.
iBGP, eBGP, don't care, just peer