Here is how I routed myself a block of IPv6 to my laptop, wherever I am in the world! Note that I deliberately route myself an entire /64, but only allow a /128 through tinc (to reduce the amount of junk I might drown in). It should be relatively trivial to swap addresses if necessary in future.
Mac OS X LaptopName = laptop ConnectTo = server DeviceType = tun Mode = router
#!/bin/sh ifconfig $INTERFACE up ifconfig $INTERFACE inet6 add 2001:0db8:1234:5678:cafe:babe:feed:face prefixlen 64 route add -inet6 2001:0db8:1234:5600::1 -prefixlen 56 -iface $INTERFACE route add -inet6 :: -prefixlen 0 2001:0db8:1234:5600::1
#!/bin/sh route delete -inet6 :: -prefixlen 0 route delete -inet6 2001:0db8:1234:5678:: -prefixlen 64 route delete -inet6 2001:0db8:1234:5678:cafe:babe:feed:face ifconfig $INTERFACE inet6 delete 2001:0db8:1234:5678:cafe:babe:feed:face prefixlen 64 ifconfig $INTERFACE down
#!/bin/sh sudo /opt/local/sbin/tincd -D -c ~/.tincDebian Linux Server
tunnel-5600
Name = server DeviceType = tun Mode = router Subnet = 0:0:0:0:0:0:0:0/0
#!/bin/sh ip addr add 2001:0db8:1234:5600::1/56 dev $INTERFACE ip link set $INTERFACE up
#!/bin/sh ip addr del 2001:0db8:1234:5600::1/56 dev $INTERFACE ip link set $INTERFACE downCommon
Subnet = 2001:0db8:1234:5678:cafe:babe:feed:face/128 -----BEGIN RSA PUBLIC KEY----- SNIP -----END RSA PUBLIC KEY-----
Address = 192.168.1.1 Subnet = 0:0:0:0:0:0:0:0/0 -----BEGIN RSA PUBLIC KEY----- SNIP -----END RSA PUBLIC KEY-----