MailTcpForward

One plain-TCP (L4) forward served by traefik on the DNS VM. DNS VM is the single ingress: OPNsense/Mikrotik dst-nat the mail ports at it, traefik passes them through to the mail backend. TLS passthrough (no termination) - raw byte forward, so STARTTLS on 25/587 and IMAPS on 993 reach the backend untouched.

25 goes to PMG (spam filter, then PMG relays to the mail VM); 587/993 go straight to the mail VM. Maps to one tcp.router + tcp.service + entryPoint per entry under host.dns.reverseProxy.tcpForwards.

public sealed record MailTcpForward : IEquatable<MailTcpForward>

1. Properties

1.1. BackendHost

Backend LAN IP/host the bytes are forwarded to (PMG for 25, mail VM for 587/993).

public string BackendHost { get; init; }

1.2. BackendPort

Backend port on BackendHost. Usually same as ListenPort.

public int BackendPort { get; init; }

1.3. ListenPort

Port traefik listens on (the public mail port). Example: 25, 587, 993.

public int ListenPort { get; init; }

2. Operators

2.1. operator !=(MailTcpForward, MailTcpForward)

public static bool operator !=(MailTcpForward left, MailTcpForward right)
Table 1. Parameters
Name Type Description

left

MailTcpForward

right

MailTcpForward

Returns: bool

2.2. operator ==(MailTcpForward, MailTcpForward)

public static bool operator ==(MailTcpForward left, MailTcpForward right)
Table 2. Parameters
Name Type Description

left

MailTcpForward

right

MailTcpForward

Returns: bool