-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Implementing TLS termination in a different process is a good idea, because it allows to use multiple CPU cores and keeps the complex TLS code outside of the ircd event loop.
The problem with the currently recommended design using stunnel is that it requires configuring transparent proxying, which itself requires enabling connection tracking in the Linux kernel. This is bad, because connection tracking causes a significant overhead when defending from DoS attacks.
The PROXY protocol allows a TCP or UDP proxy to pass to the backend the original IP address of the proxied connection, hence removing the need for transparent proxying.
While it was originally invented by the Haproxy developers, nowadays it is implemented also by nginx, stunnel and many other programs.
For details and an example implementation see https://www.haproxy.org/download/3.2/doc/proxy-protocol.txt.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status