I work for an ISP that's in the process of making its infrastructure IPv6-ready. Our core routers already have a working setup, but a large portion of our fiber customers are behind a router running Debian Squeeze.

Enabling IPv6 capabilities on linux wasn't a problem, however, once we assigned an IPv6 address and working routes to the linux router it immediately transmitted working addresses and routes to all systems behind it, which kind of wasn't what we want.

Our current plan involves setting IPv6 addresses manually on all systems, but I can't seem to find the switch or option to tell the kernel to not perform router advertisements.

Any suggestions?

  • 1
    Are you sure you're not running radvd? Linux by itself shouldn't be originating router advertisements.
    – Celada
    Commented Jan 17, 2013 at 15:23
  • Yes, fairly certain -- neither router has the software installed. Commented Jan 17, 2013 at 15:25
  • 1
    Well, that's mysterious then. Something is sending out those router advertisements, and I'm pretty sure it's not the kernel (the kernel does accept router advertisements autonomously without any help from userspace software, but doesn't send them as far as I know).
    – Celada
    Commented Jan 17, 2013 at 15:31

3 Answers 3


to disable RA acceptance:

sysctl -w net.ipv6.conf.<interface>.forwarding=0
sysctl -w net.ipv6.conf.all.forwarding=0
sysctl -w net.ipv6.conf.<interface>.accept_ra=0
sysctl -w net.ipv6.conf.all.accept_ra=0

or add something like this to /etc/network/interfaces

pre-up echo 0 > /proc/sys/net/ipv6/conf/<interface>/forwarding
pre-up echo 0 > /proc/sys/net/ipv6/conf/<interface>/accept_ra
pre-up echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra
pre-up echo 0 > /proc/sys/net/ipv6/conf/default/accept_ra
  • I still need it to do forwarding. I just need it to stop sending out or forwarding router advertisements. Commented Jan 17, 2013 at 15:41
  • forwarding=0 wont disable packet forwarding. ipv6 settings are very convoluted, unfortunately
    – h3rrmiller
    Commented Jan 17, 2013 at 15:43
  • this is for RA acceptance btw. it sounds like you need to disable radvd. take a look in /etc/radvd.conf and change AdvSendAdvert on to AdvSendAdvert off in the desired interface.
    – h3rrmiller
    Commented Jan 17, 2013 at 15:45

It almost sounds like you're bridging layer 2 between the LAN and WAN interfaces. If that's the case then lots of your user's internal traffic might end up on the WAN, and all Router Advertisements on the WAN (which are meant for the CPE) are actually bridges to the LAN.

If this is the case then:

  1. stop doing that bridging, it can easily compromise your user's security
  2. use ebtables to filter between LAN and WAN

I really hope I'm wrong here...

  • I'm pretty sure I'm not bridging anything. Commented Jan 18, 2013 at 8:15
  • If you're not bridging then something on your CPE is sending out those Router Advertisements. The kernel doesn't do that. Usually radvd is the tool used to send them, but maybe there is some other software that does it on your box. Commented Jan 18, 2013 at 13:49

What you probably really want is DHCP-PD (Prefix Delegation). With DHCP-PD, your IPv6 setup will look a lot more like your IPv4 setup.

In IPv4, you use DHCP to assign a single IPv4 address to the customer, then the customer uses NAT to distribute local IPs to its network (usually via DHCP as well).

In IPv6, you use DHCP-PD to assign a /64 to the customer, then the customer uses router adv. to assign addresses from this /64 to its internal network. There are scripts around to update the radvd configuration whenever the /64 you assign changes.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .