pf-et használ.
Így néz ki az ide vonatkozó két szabály:
nat on l2tp inet proto tcp from any to 10.2.2.200 port = ssh -> (l2tp) round-robin static-port
rdr pass on em0 inet proto tcp from any to 4.4.4.4 port = ssh -> 10.2.2.200
4.4.4.4 - pFsense WAN
10.2.2.200 - a NAS ip-je (az l2tp tunnel NAS felőli vége)
Az első a source nat, ez azért kell, mer a NAS-nak nem a pFsense a default gw-je. Ha az lenne, akkor nem lenne semmi gond.
Egyébként kipróbáltam, hogy mi történik akkor, ha ugyanezt nem egy l2tp kliens IP-jével akarom eljátszani hanem egy a pFsense LAN-ján (10.2.2.0/24) levő host-al. Érdekes módon így teljesen jól működik. tcpdump-al látom hogy bejön a WAN-on a kérés, forwardolja a belső hostnak, ahol már a pFsense LAN ip-jét látom forrésként (10.2.2.1). Majd a visszakapott választ a pFsense kiküldi a WAN-on annak a távoli gépnek aki eredetileg indította a sessiont.
Ha az l2tp-s klienssel csinálom ugyanezt, akkor az utolsó mondatban levő dolog nem megy, tehát a WAN-on nem megy ki a válasz :(
Nem tudom mennyire érthető, lehet hogy inkább rajzolnom kéne :)