Disabling IPv6 on *one* network interface in Debian
Bjørn Mork
bjorn at mork.no
Fri Feb 4 15:16:07 CET 2011
Brandon Applegate <brandon at burn.net> writes:
> I'm *thinking* it's a race condition. Debian is going to create that
> interface on demand with vconfig. So I think pre-up is trying to run
> and the interface isn't created yet.
Correct. You can see this if you add non-failing pre-up commands and
run "ifup --verbose". The pre-up commands are run first, and then
run-parts /etc/network/if-pre-up.d
which eventually will call
/etc/network/if-pre-up.d/vlan
which in turn will create the interface using vconfig. So you either
need to stick the sysctl cmmands into e.g.
/etc/network/if-pre-up.d/zz-late-pre-up
or something like that, or use some other trick.
> This is messy, but what about:
>
> post-up ifconfig eth0.100 down
> post-up sysctl -w net.ipv6.conf.eth0/100.autoconf=0 post-up sysctl -w
> net.ipv6.conf.eth0/100.accept_ra=0
> post-up ifconfig eth0.100 up
Yes, that will work, but seems a bit messy like you say. How about just
changing the defaults for new interfaces before bringing this interface up:
iface eth0.100 inet static
pre-up sysctl -w net.ipv6.conf.default.autoconf=0
pre-up sysctl -w net.ipv6.conf.default.accept_ra=0
address a.b.c.d
netmask 255.255.255.0
network a.b.c.0
You might want to add
up sysctl -w net.ipv6.conf.default.autoconf=1
up sysctl -w net.ipv6.conf.default.accept_ra=1
as well, to restore the proper defaults for other interfaces brought up
later.
Bjørn
More information about the ipv6-ops
mailing list