Mick <michaelkintz...@gmail.com> writes:

> On Tuesday 30 Dec 2014 03:27:34 Zesen Qian wrote:
>> Hello list,
>> Sorry for hijacking Rich's thread, resend here.
>> I want to disable IPv6 on an certain interface, a simple google
>> tell me to add one line to /etc/sysctl.d/local.conf
>> net.ipv6.conf.enp4s0.disable_ipv6=1
>> Simple enough, but the problem I have is that both ipv6 and the
>> dirver of the network card(tg3) is loaded by modules. They 're not
>> loaded when the service sysctl is started, so there's no entry
>> named "net.ipv6.conf.enp4s0", which make sysctl not working.
>> So my question is that, is there any way to disable IPv6 on
>> specific interface, as early as I can? I want to make it early
>> because I don't want to receive any RA to mess up my route table.
>> I guess just adding sysctl to preup() in /etc/conf.d/net should do
>> the trick, but may I make it earlier?
>> Any comment is appreciated.
>
>
> Unless the kernel knows of the enp4s0 interface and therefore lists it under 
> sysctl, I can't see how it can be disabled.  You could try disabling IPv6 
> altogether in the kernel, but this may not be what you want to achieve.
>
> Alternatively, have a look with modinfo in the module options in the unlikely 
> chance that the module has some option which disables IPv6 functionality.

Hello Mick,
The module ipv6 has only three parameters, each of which is "disable
ipv6", "disable ipv6 on all interfaces", "disable autoconf on all
interfaces", none of these is what I want to achieve. Module tg3 has
only on parameters which control the debug level.
Currently I just call "sysctl net.ipv6.conf.enp4s0.disable_ipv6=1" in
preup(), which works just fine. I 'm just wondering if there 's some
more "proper" way to do it. Since in my opinion, this should be done at
the first moment when the interface is present, not when the interface
is up.

-- 
Zesen Qian (钱泽森)

Reply via email to