-
Notifications
You must be signed in to change notification settings - Fork 32
Description
Currently we are running the gateways as a stateful firewall with state syncronization across all members which does not scale well, is beyond any recommendations and leads to problems like race conditions, where here the state sync to other gateway is slower than the reply-traffic. Also i noticed that flows regular time out on gateways not involved in the data path, which syncronizes the timeout to all other gateways often breaking existing flows or at least interrupting the flow until TCP retry is done.
Proposal would be to drop conntrackd state syncronization and replace it with a standard filter allowing all response traffic by default based on ephemeral/dynamic destination port towards the mesh. A stateful firewall needs to be implemented on the core routers in order to futher restrict traffic coming from internet to the networks handled by the core router, as using a ephemeral port for services is not restricted.
While the port ranges are well standardized, not all operating systems respect those and we have to consider that people are running legacy software
- 49152-65535 (RFC6335, used from Windows Vista, FreeBSD 4.6)
- 32768-60999 (Linux kernel standard)
- 32768-65535 (Solaris OS and AIX OS)
- 1024-65535 (RFC6056)
- 1025-60000 (Windows earlier than Vista)
Based on that table i'd propose to allow TCP/UDP/SCTP Destination Port 1024-65535 to support all variants.