Posted: Tue Aug 25, 2015 11:56 Post subject: Configuring native IPv6 - Issues with radvd
I have been trying to configure IPv6 on my router for quite some time without success. I have been able to do this on K3.0 in the past but it is really slow on my e4200 so I need to stick with K2.6.
Hopefully someone can shed some light or assist with this one.
Router: Linksys e4200
Firmware: dd-wrt.v24-27745_NEWD-2_K2.6_mega-nv60k.bin
Kernel: Linux DD-WRT 2.6.24.111 #26697 Tue Aug 25 01:12:51 CEST 2015 mips GNU/Linux
radvd fails to start properly and returns an error. Tried restarting it manually without success. Using the default configuration for radvd with a prefix 64. The configuration seems to get updated properly with my DNS information obtained from DHCP.
root@DD-WRT:/# cat /var/log/messages | grep radvd
Dec 31 19:00:08 DD-WRT daemon.info radvd[929]: version 2.10 started
Dec 31 19:00:08 DD-WRT daemon.err radvd[929]: getifaddrs failed: Invalid argument
Dec 31 19:00:08 DD-WRT daemon.warn radvd[929]: no auto-selected prefix on interface br0, disabling advertisements
Dec 31 19:00:08 DD-WRT daemon.err radvd[941]: getifaddrs failed on br0: Invalid argument
Dec 31 19:00:08 DD-WRT daemon.err radvd[941]: Unable to setsockopt NETLINK_NO_ENOBUFS: Protocol not available
Dec 31 19:00:08 DD-WRT user.info syslog: radvd : RADVD daemon successfully started
Dec 31 19:00:10 DD-WRT daemon.err radvd[941]: getifaddrs failed on br0: Invalid argument
Dec 31 19:00:15 DD-WRT user.info syslog: radvd : RADV daemon successfully stopped
Dec 31 19:00:15 DD-WRT daemon.info radvd[941]: sending stop adverts
Dec 31 19:00:15 DD-WRT daemon.info radvd[941]: removing /var/run/radvd.pid
Dec 31 19:00:15 DD-WRT daemon.info radvd[941]: returning from radvd main
Dec 31 19:00:16 DD-WRT daemon.info radvd[1383]: version 2.10 started
Dec 31 19:00:16 DD-WRT daemon.err radvd[1383]: getifaddrs failed: Invalid argument
Dec 31 19:00:16 DD-WRT daemon.warn radvd[1383]: no auto-selected prefix on interface br0, disabling advertisements
Dec 31 19:00:16 DD-WRT daemon.err radvd[1384]: getifaddrs failed on br0: Invalid argument
Dec 31 19:00:16 DD-WRT daemon.err radvd[1384]: Unable to setsockopt NETLINK_NO_ENOBUFS: Protocol not available
Dec 31 19:00:16 DD-WRT user.info syslog: radvd : RADVD daemon successfully started
Aug 25 07:48:21 DD-WRT daemon.err radvd[1384]: getifaddrs failed on br0: Invalid argument
Also, I do receive RA on vlan 2 (at least I think based on this)
Code:
root@DD-WRT:/# radvdump
#
# radvd configuration generated by radvdump 2.10
# based on Router Advertisement from fe80::212:43ff:fea9:89e5
# received by interface vlan2
#
interface vlan2
{
AdvSendAdvert on;
# Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
AdvManagedFlag on;
AdvOtherConfigFlag on;
AdvReachableTime 600000;
AdvRetransTimer 0;
AdvCurHopLimit 64;
AdvDefaultLifetime 9000;
AdvHomeAgentFlag off;
AdvDefaultPreference high;
AdvSourceLLAddress on;
AdvLinkMTU 1500;
}; # End of interface definition
Aug 26 07:01:21 DD-WRT daemon.err radvd[6816]: getifaddrs failed on br0: Invalid argument
Aug 26 07:01:21 DD-WRT daemon.warn radvd[6816]: br0 received RS or RA on br0 but br0 is not ready and setup_iface failed
/*
* Saves the first link local address seen on the specified interface to iface->if_addr
*
*/
int setup_linklocal_addr(struct Interface *iface)
{
struct ifaddrs *addresses = 0;
if (getifaddrs(&addresses) != 0) {
flog(LOG_ERR, "getifaddrs failed on %s: %s", iface->props.name, strerror(errno));
} else {
[...]
Is there a different structure for getifaddrs when used on K2.6 (not working) and K3.0 (working)?