Re: [gentoo-user] Disable IPv6 on specific interface

2014-12-30 Thread Mick
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.

-- 
Regards,
Mick


signature.asc
Description: This is a digitally signed message part.


Re: [gentoo-user] Disable IPv6 on specific interface

2014-12-30 Thread Zesen Qian
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 (钱泽森)



Re: [gentoo-user] Disable IPv6 on specific interface

2014-12-30 Thread covici
Mick michaelkintz...@gmail.com wrote:

 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.

You may be able to use the feature of modprobe that executes a command
when the module loads and that way disable the ipv6 interface.  I have
not tried this myself.


-- 
Your life is like a penny.  You're going to lose it.  The question is:
How do
you spend it?

 John Covici
 cov...@ccs.covici.com



Re: [gentoo-user] Disable IPv6 on specific interface

2014-12-30 Thread Mick
On Tuesday 30 Dec 2014 10:10:04 Zesen Qian wrote:
 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. 

Right, I didn't think that you would want to disable IPv6 completely, but 
mentioned it for completeness.


 Module tg3 has
 only on parameters which control the debug level.

Yes, I thought it unlikely that a hardware driver would be used to configure 
IPv6, but it was worth checking.


 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.

I'm afraid I don't know of any other way to do it.

-- 
Regards,
Mick


signature.asc
Description: This is a digitally signed message part.


Re: [gentoo-user] Disable IPv6 on specific interface

2014-12-30 Thread Zesen Qian
cov...@ccs.covici.com writes:

 Mick michaelkintz...@gmail.com wrote:

 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.

 You may be able to use the feature of modprobe that executes a command
 when the module loads and that way disable the ipv6 interface.  I have
 not tried this myself.

Hello Covici,
Yes, there's a rule named install modulename [command..] in
modprobe, but aren't they only applied to modprobe itself? I mean, in my
case the ipv6 and tg3 is loaded automatically(maybe by udev?), not by
running modprobe ipv6. is this kind of module loading also affected by
modprobe rule(in /etc/modprobe.d/*.conf)?

-- 
Zesen Qian (钱泽森)



Re: [gentoo-user] Disable IPv6 on specific interface

2014-12-30 Thread covici
Zesen Qian gentoo-u...@dnspod-free.mydnspod.net wrote:

 cov...@ccs.covici.com writes:
 
  Mick michaelkintz...@gmail.com wrote:
 
  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.
 
  You may be able to use the feature of modprobe that executes a command
  when the module loads and that way disable the ipv6 interface.  I have
  not tried this myself.
 
 Hello Covici,
 Yes, there's a rule named install modulename [command..] in
 modprobe, but aren't they only applied to modprobe itself? I mean, in my
 case the ipv6 and tg3 is loaded automatically(maybe by udev?), not by
 running modprobe ipv6. is this kind of module loading also affected by
 modprobe rule(in /etc/modprobe.d/*.conf)?

I think so, as I use it for my soundcard modules which udev loads.

-- 
Your life is like a penny.  You're going to lose it.  The question is:
How do
you spend it?

 John Covici
 cov...@ccs.covici.com