=== The task ===
Let's suppose the following:
* your server's ip address is **1.2.3.4**,
* and you wish to route for the subnet **192.168.1.0/24**
* Your primary ethernet adapter is **enp2s0**
* and the secondary is **enp7s0**
* this document does not contain info on setting up DHCP for the subnet. (e.g. use fix IP addresses)
=== Add a new netplan file ===
network:
version: 2
renderer: networkd
ethernets:
enp7s0:
dhcp4: no
addresses: [192.168.1.1/24]
gateway4: 1.2.3.4
nameservers:
addresses: [8.8.8.8]
routes:
- to: 192.168.1.0/24
via: 192.168.1.1
metric: 100
then run:
netplan generate
netplan apply
=== Enable packet forwarding ===
/etc/sysctl.conf
Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
then run:
sysctl -p
=== Set up a NAT rule in ufw ===
add the following in /etc/ufw/before.rules BEFORE the ** *filter ** rules
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.34.0/24 -o enp2s0 -j MASQUERADE
COMMIT
Note, that each section must be between:
*tablename
...
COMMIT
=== Firewall checks ===
Make sure your firewall allows the traffic needed.
For example ufw:
~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
...