Package: ifupdown Version: 0.6.8+nmu1 Severity: wishlist Tags: patch The attached patch (based on 0.7~alpha3) adds support for a "privext" option for IPv6 static, manual & v4tunnel, taking an integer parameter exactly as for the net.ipv6.conf.$INTERFACE.use_privaddr sysctl.
I've tested only manual (I'm using radvd). I find that the 'inet6' configuration for a given interface must be before the corresponding 'inet' configuration (if present) else the "privext" option won't take effect until the interface is *next* brought up (based on brief testing by taking the interface down then bringing it up again a second or so later). Not sure where/how to document this... -- | Darren Salt | linux or ds at | nr. Ashington, | Toon | RISC OS, Linux | youmustbejoking,demon,co,uk | Northumberland | Army | + Lobby friends, family, business, government. WE'RE KILLING THE PLANET. Watch carefully; the special effects are very expensive.
diff -ur ifupdown-0.7~alpha3/debian/testbuild ifupdown-0.7~alpha3+ds1/debian/testbuild --- ifupdown-0.7~alpha3/debian/testbuild 2007-12-21 14:24:07.000000000 +0000 +++ ifupdown-0.7~alpha3+ds1/debian/testbuild 2009-03-21 00:36:48.000000000 +0000 @@ -116,6 +116,7 @@ run-parts --verbose /etc/network/if-up.d Configuring interface eth0=eth0 (inet6) run-parts --verbose /etc/network/if-pre-up.d + ip link set dev eth0 up ip -6 addr add 3ffe:ffff:100:f101::1/64 dev eth0 @@ -183,10 +184,38 @@ run-parts --verbose /etc/network/if-up.d EOF +cat >tests/testcase.7 <<EOF +# RUN: -a +auto eth0 +iface eth0 inet static + address 1.2.3.4 + netmask 255.255.255.0 +iface eth0 inet6 static + address 3ffe:ffff:100:f101::1 + netmask 64 + privext 2 +EOF +cat >tests/up.7 <<EOF +====stdout==== +====stderr==== +Configuring interface eth0=eth0 (inet) +run-parts --verbose /etc/network/if-pre-up.d +ip addr add 1.2.3.4/255.255.255.0 dev eth0 +ip link set dev eth0 up + +run-parts --verbose /etc/network/if-up.d +Configuring interface eth0=eth0 (inet6) +run-parts --verbose /etc/network/if-pre-up.d +sysctl net.ipv6.conf.eth0.use_tempaddr=2 +ip link set dev eth0 up +ip -6 addr add 3ffe:ffff:100:f101::1/64 dev eth0 + +run-parts --verbose /etc/network/if-up.d +EOF result=true -for test in 1 2 3 4 5 6; do +for test in 1 2 3 4 5 6 7; do args="$(cat tests/testcase.$test | sed -n 's/^# RUN: //p')" ./ifup -nv --force -i tests/testcase.$test $args \ >tests/up-res-out.$test 2>tests/up-res-err.$test || diff -ur ifupdown-0.7~alpha3/ifupdown.nw ifupdown-0.7~alpha3+ds1/ifupdown.nw --- ifupdown-0.7~alpha3/ifupdown.nw 2007-12-21 14:22:19.000000000 +0000 +++ ifupdown-0.7~alpha3+ds1/ifupdown.nw 2009-03-21 00:38:11.000000000 +0000 @@ -4246,11 +4246,13 @@ media type -- Medium type, driver dependent hwaddress address -- Hardware address mtu size -- MTU size + privext int -- Privacy extensions (RFC3041) (0=off, 1=assign, 2=prefer) conversion hwaddress cleanup_hwaddress_for_iproute up + [[sysctl net.ipv6.conf.%iface%.use_tempaddr=%privext%]] ip link set dev %iface% [[mtu %mtu%]] [[address %hwaddress%]] up ip -6 addr add %address%[[/%netmask%]] dev %iface% [[ ip -6 route add default via %gateway% dev %iface% ]] @@ -4265,7 +4267,11 @@ is done by default. Such interfaces can be configured manually by means of *up* and *down* commands or /etc/network/if-*.d scripts. + options + privext int -- Privacy extensions (RFC3041) (0=off, 1=assign, 2=prefer) + up + [[sysctl net.ipv6.conf.%iface%.use_tempaddr=%privext%]] down @@ -4283,8 +4289,10 @@ dotted quad) gateway address -- Default gateway (colon delimited) ttl time -- TTL setting + privext int -- Privacy extensions (RFC3041) (0=off, 1=assign, 2=prefer) up + [[sysctl net.ipv6.conf.%iface%.use_tempaddr=%privext%]] ip tunnel add %iface% mode sit remote %endpoint% [[local %local%]] \ [[ttl %ttl%]] ip link set %iface% up diff -ur ifupdown-0.7~alpha3/inet6.defn ifupdown-0.7~alpha3+ds1/inet6.defn --- ifupdown-0.7~alpha3/inet6.defn 2007-12-21 14:29:51.000000000 +0000 +++ ifupdown-0.7~alpha3+ds1/inet6.defn 2009-03-21 00:38:20.000000000 +0000 @@ -23,11 +23,13 @@ media type -- Medium type, driver dependent hwaddress address -- Hardware address mtu size -- MTU size + privext int -- Privacy extensions (RFC3041) (0=off, 1=assign, 2=prefer) conversion hwaddress cleanup_hwaddress_for_iproute up + [[sysctl net.ipv6.conf.%iface%.use_tempaddr=%privext%]] ip link set dev %iface% [[mtu %mtu%]] [[address %hwaddress%]] up ip -6 addr add %address%[[/%netmask%]] dev %iface% [[ ip -6 route add default via %gateway% dev %iface% ]] @@ -42,7 +44,11 @@ is done by default. Such interfaces can be configured manually by means of *up* and *down* commands or /etc/network/if-*.d scripts. + options + privext int -- Privacy extensions (RFC3041) (0=off, 1=assign, 2=prefer) + up + [[sysctl net.ipv6.conf.%iface%.use_tempaddr=%privext%]] down @@ -60,8 +66,10 @@ dotted quad) gateway address -- Default gateway (colon delimited) ttl time -- TTL setting + privext int -- Privacy extensions (RFC3041) (0=off, 1=assign, 2=prefer) up + [[sysctl net.ipv6.conf.%iface%.use_tempaddr=%privext%]] ip tunnel add %iface% mode sit remote %endpoint% [[local %local%]] \ [[ttl %ttl%]] ip link set %iface% up