Subnet Doesn't Work Through Router
Shadow Hawkins on Saturday, 12 July 2008 05:55:48
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
Shadow Hawkins on Saturday, 12 July 2008 08:02:20
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
Jeroen Massar on Saturday, 12 July 2008 10:37:08
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
Jeroen Massar on Saturday, 12 July 2008 10:35:13
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
Shadow Hawkins on Saturday, 12 July 2008 22:21:47
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
Jeroen Massar on Saturday, 12 July 2008 23:00:44 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.
Posting is only allowed when you are logged in. |