Subnet Doesn't Work Through Router
![]()
I have a Linksys WRT54G running OpenWrt firmware (7.09). I have aiccu and radvd installed (and the rest of the IPv6 stack). I have no problem ping6-ing from the router, but I cannot get to any IPv6 sites from my computers. The routed computers do get IPv6 addresses in the subnet. ping6 on the routed computers will resolve the IPv6 address of a hostname, but never actually ping it.
Here is my /etc/radvd.conf:
interface br-lan
{
AdvSendAdvert on;
prefix 2001:2978:18b::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
Here is my /etc/init.d/radvd (I added the ip commands.):
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50
start() {
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
mkdir -p /var/log
mkdir -p /var/run
ip -6 addr add 2001:4978:18b::1/64 dev br-lan
ip -6 route add 2001:4978:18b::/64 dev br-lan
/usr/sbin/radvd
}
stop() {
killall radvd
ip -6 route del 2001:4978:18b::/64 dev br-lan
ip -6 addr del 2001:4978:18b::1/64 dev br-lan
echo 0 > /proc/sys/net/ipv6/conf/all/forwarding
}
I know the tunnel is working, but I can't get the subnet to route. Here's the IPv6 routing table (route -A inet6):
Kernel IPv6 routing table
Destination Next Hop Flags Metric Ref Use Iface
::1/128 :: U 0 0 0 lo
2001:4978:f:173::/128 :: U 0 0 0 lo
2001:4978:f:173::1/128 2001:4978:f:173::1 UC 0 1 1 sixxs
2001:4978:f:173::2/128 :: U 0 22 0 lo
2001:4978:f:173::/64 :: U 256 1 0 sixxs
2001:4978:18b::/128 :: U 0 0 0 lo
2001:4978:18b::1/128 :: U 0 0 0 lo
2001:4978:18b::/64 :: U 256 0 0 br-lan
2001:4978:18b::/64 :: U 1024 0 0 br-lan
fe80::/128 :: U 0 0 0 lo
fe80::200:ff:fe00:0/128 :: U 0 13 0 lo
fe80::20f:66ff:fe39:11b9/128 :: U 0 0 0 lo
fe80::20f:66ff:fe39:11bb/128 :: U 0 0 0 lo
fe80::4878:f:173:2/128 :: U 0 0 0 lo
fe80::/64 :: U 256 0 0 eth0
fe80::/64 :: U 256 0 0 br-lan
fe80::/64 :: U 256 0 0 eth0.0
fe80::/64 :: U 256 0 0 eth0.1
fe80::/64 :: U 256 0 0 wl0
fe80::/64 :: U 256 0 0 sixxs
ff02::1/128 ff02::1 UC 0 1 1 br-lan
ff00::/8 :: U 256 0 0 eth0
ff00::/8 :: U 256 0 0 br-lan
ff00::/8 :: U 256 0 0 eth0.0
ff00::/8 :: U 256 0 0 eth0.1
ff00::/8 :: U 256 0 0 wl0
ff00::/8 :: U 256 0 0 sixxs
::/0 2001:4978:f:173::1 UG 1024 72 0 sixxs
If anyone can help me, it would be greatly appreciated.
Subnet Doesn't Work Through Router
![]()
Hi,
I can't solve your problem, but at least I can say, your radv.conf looks good. I'm using OpenWRT (kernel 2.4.34) too, and that's my radvd.conf:
interface br-lan
{
AdvSendAdvert on;
MinRtrAdvInterval 3;
MaxRtrAdvInterval 10;
#
# Disable Mobile IPv6 support
#
AdvHomeAgentFlag off;
#
# example of a standard prefix
#
prefix 2a01:198:282::/64
# prefix fec0:0:0:1::/64
{
AdvOnLink on;
AdvAutonomous on;
# AdvRouterAddr off;
AdvRouterAddr on;
};
};
And /proc/sys/net/ipv6/conf/all/forwarding is "1" here, too.
This are my ipv6 sysctls, may be you can find differences at your settings:
root@OpenWrt:/etc/ppp/ip-up.d# sysctl -a | grep ipv6
sysctlnet.ipv6.conf.sixxs.router_solicitation_delay = 1
: error: 'net.ipv6.conf.eth0.1.router_solicitation_delay' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.1.router_solicitation_interval' is an unknown key
sysctl: net.ipv6.conf.sixxs.router_solicitation_interval = 4
net.ipv6.conf.sixxs.router_solicitations = 3
net.ipv6.conf.sixxs.dad_transmits = 1
net.ipv6.conf.sixxs.autoconf = 1
net.ipv6.conf.sixxs.accept_redirects = 1
net.ipv6.conf.sixxs.accept_ra = 1
net.ipv6.conf.sixxs.mtu = 1280
net.ipv6.conf.sixxs.hop_limit = 64
net.ipv6.conf.sixxs.forwarding = 1
net.ipv6.conf.wl0.router_solicitation_delay = 1
net.ipv6.conf.wl0.router_solicitation_interval = 4
net.ipv6.conf.wl0.router_solicitations = 3
net.ipv6.conf.wl0.dad_transmits = 1
net.ipv6.conf.wl0.autoconf = 1
net.ipv6.conf.wl0.accept_redirects = 1
net.ipv6.conf.wl0.accept_ra = 1
net.ipv6.conf.wl0.mtu = 1500
net.ipv6.conf.wl0.hop_limit = 64
net.ipv6.conf.wl0.forwarding = 1
error: 'net.ipv6.conf.eth0.1.router_solicitations' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.1.dad_transmits' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.1.autoconf' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.1.accept_redirects' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.1.accept_ra' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.1.mtu' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.1.hop_limit' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.1.forwarding' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.0.router_solicitation_delay' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.0.router_solicitation_interval' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.0.router_solicitations' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.0.dad_transmits' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.0.autoconf' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.0.accept_redirects' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.0.accept_ra' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.0.mtu' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.0.hop_limit' is an unknown key
sysctl: error: 'net.ipv6.conf.eth0.0.forwarding' is an unknown key
net.ipv6.conf.br-lan.router_solicitation_delay = 1
net.ipv6.conf.br-lan.router_solicitation_interval = 4
net.ipv6.conf.br-lan.router_solicitations = 3
net.ipv6.conf.br-lan.dad_transmits = 1
net.ipv6.conf.br-lan.autoconf = 1
net.ipv6.conf.br-lan.accept_redirects = 1
net.ipv6.conf.br-lan.accept_ra = 1
net.ipv6.conf.br-lan.mtu = 1500
net.ipv6.conf.br-lan.hop_limit = 64
net.ipv6.conf.br-lan.forwarding = 1
net.ipv6.conf.default.router_solicitation_delay = 1
net.ipv6.conf.default.router_solicitation_interval = 4
net.ipv6.conf.default.router_solicitations = 3
net.ipv6.conf.default.dad_transmits = 1
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitations = 3
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.eth0.router_solicitation_delay = 1
net.ipv6.conf.eth0.router_solicitation_interval = 4
net.ipv6.conf.eth0.router_solicitations = 3
net.ipv6.conf.eth0.dad_transmits = 1
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.mtu = 1500
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.forwarding = 1
net.ipv6.conf.lo.router_solicitation_delay = 1
net.ipv6.conf.lo.router_solicitation_interval = 4
net.ipv6.conf.lo.router_solicitations = 3
net.ipv6.conf.lo.dad_transmits = 1
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.mtu = 16436
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.forwarding = 1
net.ipv6.neigh.sixxs.locktime = 0
net.ipv6.neigh.sixxs.proxy_delay = 80
net.ipv6.neigh.sixxs.anycast_delay = 100
net.ipv6.neigh.sixxs.proxy_qlen = 64
net.ipv6.neigh.sixxs.unres_qlen = 3
net.ipv6.neigh.sixxs.gc_stale_time = 60
net.ipv6.neigh.sixxs.delay_first_probe_time = 5
net.ipv6.neigh.sixxs.base_reachable_time = 30
net.ipv6.neigh.sixxs.retrans_time = 100
net.ipv6.neigh.sixxs.app_solicit = 0
net.ipv6.neigh.sixxs.ucast_solicit = 3
net.ipv6.neigh.sixxs.mcast_solicit = 3
net.ipv6.neigh.wl0.locktime = 0
net.ipv6.neigh.wl0.proxy_delay = 80
net.ipv6.neigh.wl0.anycast_delay = 100
net.ipv6.neigh.wl0.proxy_qlen = 64
net.ipv6.neigh.wl0.unres_qlen = 3
net.ipv6.neigh.wl0.gc_stale_time = 60
net.ipv6.neigh.wl0.delay_first_probe_time = 5
net.ipv6.neigh.wl0.base_reachable_time = 30
net.ipv6.neigh.wl0.retrans_time = 100
net.ipv6.neigh.wl0.app_solicit = 0
net.ipv6.neigh.wl0.ucast_solicit = 3
net.ipv6.neigh.wl0.mcast_solicit = 3
sysctl: error: 'net.ipv6.neigh.eth0.1.locktime' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.proxy_delay' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.anycast_delay' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.proxy_qlen' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.unres_qlen' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.gc_stale_time' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.delay_first_probe_time' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.base_reachable_time' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.retrans_time' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.app_solicit' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.ucast_solicit' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.1.mcast_solicit' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.locktime' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.proxy_delay' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.anycast_delay' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.proxy_qlen' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.unres_qlen' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.gc_stale_time' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.delay_first_probe_time' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.base_reachable_time' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.retrans_time' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.app_solicit' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.ucast_solicit' is an unknown key
sysctl: error: 'net.ipv6.neigh.eth0.0.mcast_solicit' is an unknown key
net.ipv6.neigh.br-lan.locktime = 0
net.ipv6.neigh.br-lan.proxy_delay = 80
net.ipv6.neigh.br-lan.anycast_delay = 100
net.ipv6.neigh.br-lan.proxy_qlen = 64
net.ipv6.neigh.br-lan.unres_qlen = 3
net.ipv6.neigh.br-lan.gc_stale_time = 60
net.ipv6.neigh.br-lan.delay_first_probe_time = 5
net.ipv6.neigh.br-lan.base_reachable_time = 30
net.ipv6.neigh.br-lan.retrans_time = 100
net.ipv6.neigh.br-lan.app_solicit = 0
net.ipv6.neigh.br-lan.ucast_solicit = 3
net.ipv6.neigh.br-lan.mcast_solicit = 3
net.ipv6.neigh.eth0.locktime = 0
net.ipv6.neigh.eth0.proxy_delay = 80
net.ipv6.neigh.eth0.anycast_delay = 100
net.ipv6.neigh.eth0.proxy_qlen = 64
net.ipv6.neigh.eth0.unres_qlen = 3
net.ipv6.neigh.eth0.gc_stale_time = 60
net.ipv6.neigh.eth0.delay_first_probe_time = 5
net.ipv6.neigh.eth0.base_reachable_time = 30
net.ipv6.neigh.eth0.retrans_time = 100
net.ipv6.neigh.eth0.app_solicit = 0
net.ipv6.neigh.eth0.ucast_solicit = 3
net.ipv6.neigh.eth0.mcast_solicit = 3
net.ipv6.neigh.lo.locktime = 0
net.ipv6.neigh.lo.proxy_delay = 80
net.ipv6.neigh.lo.anycast_delay = 100
net.ipv6.neigh.lo.proxy_qlen = 64
net.ipv6.neigh.lo.unres_qlen = 3
net.ipv6.neigh.lo.gc_stale_time = 60
net.ipv6.neigh.lo.delay_first_probe_time = 5
net.ipv6.neigh.lo.base_reachable_time = 30
net.ipv6.neigh.lo.retrans_time = 100
net.ipv6.neigh.lo.app_solicit = 0
net.ipv6.neigh.lo.ucast_solicit = 3
net.ipv6.neigh.lo.mcast_solicit = 3
net.ipv6.neigh.default.gc_thresh3 = 1024
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh1 = 128
net.ipv6.neigh.default.gc_interval = 30
net.ipv6.neigh.default.locktime = 0
net.ipv6.neigh.default.proxy_delay = 80
net.ipv6.neigh.default.anycast_delay = 100
net.ipv6.neigh.default.proxy_qlen = 64
net.ipv6.neigh.default.unres_qlen = 3
net.ipv6.neigh.default.gc_stale_time = 60
net.ipv6.neigh.default.delay_first_probe_time = 5
net.ipv6.neigh.default.base_reachable_time = 30
net.ipv6.neigh.default.retrans_time = 100
net.ipv6.neigh.default.app_solicit = 0
net.ipv6.neigh.default.ucast_solicit = 3
net.ipv6.neigh.default.mcast_solicit = 3
net.ipv6.mld_max_msf = 10
net.ipv6.bindv6only = 0
net.ipv6.icmp.ratelimit = 100
net.ipv6.route.min_adv_mss = 12
net.ipv6.route.mtu_expires = 600
net.ipv6.route.gc_elasticity = 0
net.ipv6.route.gc_interval = 30
net.ipv6.route.gc_timeout = 60
net.ipv6.route.gc_min_interval = 0
net.ipv6.route.max_size = 4096
net.ipv6.route.gc_thresh = 1024
Thomas
Subnet Doesn't Work Through Router
root@gehenna:~# cat /etc/radvd.conf
# For more examples, see the radvd documentation.
interface eth0.0
{
AdvSendAdvert on;
prefix 2001:41e0:ff42:b00::/64
{
};
};
Is the only thing you need for radvd, nothing more, nothing less.
(Forwarding enabled of course, and 2000::/3 for stupid kernels, and you have to manually add the local IPv6 address on that interface.)
Subnet Doesn't Work Through Router
It is a little stupid thing in Linux, you will have to also have a 2000::/3 route to the nexthop router (the PoP). (it is mentioned in the FAQ, but it is indeed not something you might think about and guess... but that is where a forum is for ;)
Thus add:
ip -6 ro add 2000::/3 via 2001:4978:f:173::1
ip -6 addr add 2001:4978:18b::1/64 dev br-lan ip -6 route add 2001:4978:18b::/64 dev br-lan
The first one is enough there btw. If you check the routing list you see two entries, you only need the first one.
I am using OpenWRT/X-WRT very happily btw ;)
Subnet Doesn't Work Through Router
![]()
ip -6 ro add 2000::/3 via 2001:4978:f:173::1 does nothing. (I didn't think it would seeing as ::/0 via 2001:4978:f:173::1 was already in the routing table.) traceroute6 on a routed computer gives me:
traceroute to ipv6.google.com (2001:4860:0:2001::68), 30 hops max, 40 byte packets
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
send failed: Operation not permitted
The problem must be my router because ping6 2001:4978:18b::1 (the router) does not work.
Subnet Doesn't Work Through Router
ip -6 ro add 2000::/3 via 2001:4978:f:173::1 does nothing. (I didn't think it would seeing as ::/0 via 2001:4978:f:173::1 was already in the routing table.)
Due to the Linux networking folks thinking that ::/0 was not a good thing for a default route as it might forward link-locals, site-locals and other such addresses, for some kernels (fixed in 2.6's), when you enable IPv6 forwarding, ::/0 is not a default for forwarded packets, and one has to use 2000::/3. On the kernel used in OpenWRT Kamikaze this problem is the case.
traceroute6 on a routed computer gives me: traceroute to ipv6.google.com (2001:4860:0:2001::68), 30 hops max, 40 byte packets send failed: Operation not permitted
Check 'ip6tables' if you are blocking yourself, that is most likely the only thing which can cause that error message.
|