Background
During an attack, players can still move their characters locally, but cannot cast spells, interact, use actions, receive chat messages, or get disconnected.
This likely means that connections remain open while the world server is overloaded or blocked from processing and responding to game packets. The issue may involve network saturation, excessive connections, packet flooding, database pressure, or a stalled world update loop.
Goals
Reduce unauthorized and abusive connections.
Protect the world server from excessive connection and packet load.
Detect overload early and fail clearly instead of leaving players in a “connected but unusable” state.
Keep the implementation simple and compatible with the existing server.
Proposed Measures
1. Hide the World Server
I've noticed we just changed the fixed ip to play.octowow.st, but we may do more like:
Allow public connections only to a small proxy or gateway service.
Allow the world server to accept connections only from the gateway’s private IP address.
Keep login/web services separated from the world server where possible.
2. Add Basic Gateway Filtering
The gateway should perform lightweight checks before forwarding traffic:
Validate a short-lived login token or session ticket.
Limit new connections per source IP.
Limit concurrent sessions per IP and account.
Reject invalid packet sizes and invalid protocol states early.
Apply short handshake and idle timeouts.
This does not stop large bandwidth DDoS attacks, but it prevents many unauthorized, malformed, and low-effort automated connections from reaching worldserver.
3. Temporary IP Blocking
The gateway should temporarily block a source IP for 10 minutes when it repeatedly triggers rules such as:
Too many new connections in a short period.
Repeated invalid or expired tokens.
Invalid packet length or malformed packets.
Excessive packet rate.
Repeated failed handshakes.
Repeated violations may use a longer temporary block period. Thresholds should be conservative at first to avoid blocking legitimate players behind shared NAT networks.
This plan will not replace upstream DDoS protection for large volumetric attacks. However, it should significantly reduce the impact of connection floods, malformed traffic, unauthorized direct connections, and packet abuse.
The primary benefit is to protect worldserver resources, raise the attacker’s cost, and keep failures controlled and visible rather than allowing players to remain stuck in an unusable session.