IPv6 Router Advertisements Not Working – Quick Fixes

Network & Connectivity Intermediate 👁 6 views 📅 Jun 22, 2026

When devices don't get an IPv6 address, it's usually the router not sending RA or the firewall blocking it. Here's how to fix it fast.

Cause 1: Router Advertisement Service Is Disabled

This is the most common reason. I see it all the time on home routers and cheap office gear. The router just isn't sending out Router Advertisements (RAs). Without them, devices don't know they should get an IPv6 address via SLAAC.

Had a client last month with a Netgear Nighthawk. After a firmware update, IPv6 just stopped. Turned out the update reset the IPv6 settings to disabled. Took me 10 minutes to find it.

Fix: Log into your router's web interface. Look for IPv6 settings. Usually under Advanced > IPv6 or Network > IPv6. Make sure Router Advertisement is enabled. On OpenWrt or dd-wrt, check the radvd service is running:

systemctl enable radvd
systemctl start radvd

If you can't find the option, check the router's manual. Some brands hide it. TP-Link often has it under Advanced > IPv6 > SLAAC. If it's disabled, enable it and save. Then reboot the router. Wait 2 minutes, then check a connected device for an IPv6 address. On Windows, run ipconfig and look for a link-local address (starts with fe80::). That means the device sees the network but hasn't gotten a global address yet. If you see a global address (starts with 2001: or 2600:), it's working.

Checklist:

  • Radvd or equivalent service is enabled
  • RA interval is set (default is 30-300 seconds)
  • Prefix is correct (usually your ISP gives you a /64)

Cause 2: Firewall or Packet Filter Is Blocking RA

This one's sneaky. The router sends RA, but the firewall on the router or the client device blocks it. I've seen this with pfSense and Windows Firewall. On pfSense, the default rule blocks all incoming ICMPv6, including RA. You need a rule to allow ICMPv6 type 134 (Router Advertisement).

Last week, a small office had Windows 10 machines that couldn't get IPv6. Turned out the Windows Firewall blocked RA because of a group policy. We added an inbound rule for ICMPv6 type 134 and it worked instantly.

Fix on pfSense: Go to Firewall > Rules > WAN. Add a rule: Protocol = ICMPv6, ICMP Subtype = Router Advertisement. Set action to Pass. Save and apply.

Fix on Windows: Open Windows Firewall with Advanced Security. Create a new inbound rule. Choose Custom > All programs > Protocol Type = ICMPv6. Under ICMP settings, select Specific ICMP types, then tick Router Advertisement. Set action to Allow. Apply to all profiles.

Fix on Linux client: Check if iptables blocks ICMPv6:

iptables -L | grep icmpv6
# If blocked, add:
iptables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT

Also check sysctl -a | grep net.ipv6.conf.all.accept_ra. If it's 0, set it to 1: sysctl -w net.ipv6.conf.all.accept_ra=1.

Cause 3: Router Advertisement Interval Too Long or Missing

Sometimes the RA is sent, but the interval is set too high. Default is normally 30 to 300 seconds. If your router is set to 600 seconds (10 minutes), devices might give up before getting the RA. This happens on custom routers or after a reset.

Had a client running OpenWrt on an old Linksys. RA interval was set to 600 seconds. Devices would randomly lose IPv6 for 10 minutes. Set it to 60 seconds. Problem solved.

Fix: On OpenWrt, edit /etc/config/dhcp. Look for the config dhcp 'lan' section. Add or change:

option ra_interval '60'

On a standard consumer router, look for RA settings. Some call it "Router Advertisement Interval" or "RA Interval". Set it to 30-60 seconds. Save and reboot.

For Linux-based routers: If using radvd, check /etc/radvd.conf. Look for AdvDefaultLifetime and AdvInterval. Set AdvInterval to 30-60.

One more tip: On Windows clients, you can force a request for RA with ipconfig /renew6. That tells the device to ask for a new IPv6 address right now.

Quick Reference Summary

CauseSymptomFix
RA service disabledNo RAs sent at allEnable RA on router, start radvd
Firewall blocking RARAs sent but client ignores themAllow ICMPv6 type 134 on both sides
RA interval too highDevices get IPv6 but drop it randomlySet interval to 30-60 seconds

If you still can't get IPv6 after these fixes, check your ISP. Some ISPs don't give a /64 prefix. But that's a different problem. These three fixes solve 90% of RA failures I run into. Try them in order. You'll save yourself a headache.

Was this solution helpful?