Package: ifupdown
Version: 0.8.41
Severity: wishlist

Issue
=====
Using "ip token", a command to specify a fixed Interface ID for IPv6 
addressing, is not yet abstracted by ifupdown.
A common use case are dynamic-prefix environments in which a fixed interface ID 
is wanted, e.g. for firewall openings of home routers etc.

Using "ip token" manually requires several non-obvious "hacks" in 
/etc/network/interfaces.


Functional Workaround
=====================
Using the following interface config:

auto eth0
iface eth0 inet dhcp
iface eth0 inet6 manual
 pre-up ip token set ::192.168.1.35 dev eth0
 post-up IF_ADDRESS=:: IF_NETMASK=0 /lib/ifupdown/settle-dad.sh

yields a functional setup.

This takes care of two things:
- Setting the "ip token" before the interface is first taken up. This is 
required to disable other addressing, such as EUI-64.
- Ensuring DAD is settled for all dynamic addresses on the interface, e.g. 
global addresses and ULAs, so IPv6 is fully up before other services start.


Proposed solution
=================
I initially considered something like:

auto eth0
iface eth0 inet dhcp
iface eth0 inet6 manual
 token ::192.168.1.35

to be a good solution, see also this report for bridge-utils
(since my actual case is with a bridge, which has the additional problem that 
the bridge's pre-up is not accessible):
 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1059332

However, since settling DAD is also required, potentially this would be easier / more 
straightforward, i.e. using "token" instead of "manual" as scheme?

auto eth0
iface eth0 inet dhcp
iface eth0 inet6 token
 token ::192.168.1.35

Reply via email to