Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

That tells nndpd to answer NDP requests for the entire /80 from which we'll be assigning IPv6 addresses to our devices. Obviously you will need to change that IP prefix to your own.

There is a handy program to help you with ip subnetting: apt install ipcalc


The rule should use the  static or iface option. We saw some flakiness with auto.

There is a handy program to help you with ip subnetting: apt install ipcalc

Then you'll want to start nndpd and tell it to start on boot.

Code Block
systemctl start ndppd
systemctl enable ndppd

It doesn't come with init/systemd scripts so we just did this:

Code Block
sudo chmod a+x /etc/rc.local

Then edited /etc/rc.local to add:

Code Block
/usr/local/sbin/ndppd -d

Running that command with sudo will start nndpd manually.


Then you'll want to start nndpd and tell it to start on boot.

Code Block
systemctl start ndppd
systemctl enable ndppd


Once nndpd is running try ping6 ipv6.google.com again from one of your devices. For us it worked right away!

Congratulations! You now have a global IPv6 address for every device on your virtual network.


Code Block
curl -4 ifconfig.co
curl -6 ifconfig.co

Should return your ZeroTier gateway addresses.

Step 4f: IPv6 Security (optional)

...

Code Block
languagebash
*filter
:INPUT ACCEPTDROP [0:0]
:FORWARD DROP [0:0]
-A FORWARD -i zt+ -s 2001:19f0:6001:01a6::/64 -j ACCEPT
-A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
:OUTPUT ACCEPT [0:0]
COMMIT

...