[TUTORIAL] Proxmox PVE+ZeroTier One + NAT

catalin.bostan

New Member
Aug 19, 2023
1
3
3
This is a simple way to solve routing/masquerade problems via ZeroTier One and PVE for any networking segment.

Step 0 : Install ZeroTier One

Step 1: Enable IP Forwarding at kernel level

Edit the /etc/sysctl.conf file with nano/vi/whatever and uncomment the following line:

net.ipv4.ip_forward=1

To apply the changes immediately, run:

sysctl -p

File editing will make sure IP forwarding is enabled automatically on boot.

Step 2. Create a service file in /lib/systemd/system/zerotier-one-masquerade.service with the following contents:

[Unit]
Description=Enable ZeroTier One Routing
After=zerotier-one.service
Wants=zerotier-one.service
[Service]
Type=oneshot
ExecStart=/bin/bash -c "iptables -t nat -A POSTROUTING ! -o lo -j MASQUERADE"
[Install]
WantedBy=multi-user.target

Step 3. Reload systemctl

systemctl daemon-reload

Step 4
. Enable created services

systemctl enable zerotier-one-masquerade.service

After reboot this service will automatically start after zerotier-one service.​
If you want to test/apply without reboot run​
systemctl start zerotier-one-masquerade.service

Step 5. Enjoy

Warning!


0. Add needed firewall rules : THIS IS A WIDE OPEN ROUTER !
You have access to ANY NETWORK REACHABLE from PVE , be these internal or external !
1.you need to add appropriate routes on ZeroTier One controller​
2. zerotier-cli commands are not working because masquerade is global solved with " ! -o lo "
you can deactivate postrouting rule temporarily with:​
iptables -t nat -D POSTROUTING 1
and re-enable with​
systemctl start zerotier-one-masquerade.service

 
Last edited: