masquerading

un semplice servizio nat

NAT con systemd-networkd

Se quello che ci serve è un semplice servizio di masquerading possimo averlo facilmente ma ttenzione: questo imposta iptables (per vedere la tabella iptables --table nat --list), se si intende usare nftables (ad esempio per un firewall) è da evitare, ho fatto alcune prove e il mix non va (come esplicitamente scritto sulla documentazione di nftables).

Dopo tutti gli avvisi il lavoro è davvero facile: basta aggiungere nella sezione Network della configurazione dell'interfaccia di rete da cui proviane il traffico interno:

IPMasquerade=yes

Senza fare null'altro (neanche abilitare ip_forward in /etc/sysctl.conf), in effetti poi controllando /proc/sys/net/ipv4/ip_forward il valore è impostato a 1 dal sistema.

Ad oggi (2018-01-29) Questa funzionalità non è compatibile con l'uso di NAT di nftables (perché usa iptables, il vecchio sistema di firewall).