New: ipv6 forward cause strange route
Subsystems (2)
A message that is not in the archive (sent off-list or not yet received): [email protected]/
(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).
Quoted 69 lines · On Sat, 17 Oct 2009 10:42:01 GMT [email protected] wrote:
http://bugzilla.kernel.org/show_bug.cgi?id=14427
Summary: ipv6 forward cause strange route
Product: Networking
Version: 2.5
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: IPV6
AssignedTo: [email protected]
ReportedBy: [email protected]
Regression: NoWhen enabling forwarding for IPv6 on interface, in the routing table local appears new route. It like route to local ip but with all host bits set to 0. Example:
--------------------------------------------------# cat /proc/sys/net/ipv6/conf/eth0/forwarding 0 # ip -6 addr add 2001:db8:1:1::5/64 dev eth0 # ip -6 route show table local ... local 2001:db8:1:1::5 via :: dev lo proto none metric 0 mtu 16436 advmss 16376 hoplimit 4294967295 ... # echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding # ip -6 route show table local ... local 2001:db8:1:1:: via :: dev lo proto none metric 0 mtu 16436 advmss 16376 hoplimit 4294967295 local 2001:db8:1:1::5 via :: dev lo proto none metric 0 mtu 16436 advmss 16376 hoplimit 4294967295 ... -------------------------------------------------- After enabling forwarding, route "2001:db8:1:1:: via :: dev lo" is added. No matter, forwarding is enabled before or after adding of address, this route is "on" with forwarding and "off" without it. Such behavior causes problems with /127 network masks. For example: -------------------------------------------------- # echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding # ip -6 addr add 2001:db8:1:1::5/127 dev eth0 # ip -6 route add default via 2001:db8:1:1::4 RTNETLINK answers: Invalid argument -------------------------------------------------- But if we disable forwarding (and strange route) when adding needed route, we will succeed. -------------------------------------------------- # echo 0 > /proc/sys/net/ipv6/conf/eth0/forwarding # ip -6 route add default via 2001:db8:1:1::4 # echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding -------------------------------------------------- Default route remains in the table after enabling forwarding and it is doing in work. But in this case we still can not access 2001:db8:1:1::4, because it is routed to loopback: -------------------------------------------------- # ping6 -c 1 2001:db8:1:1::4 PING 2001:db8:1:1::4(2001:db8:1:1::4) 56 data bytes 64 bytes from 2001:db8:1:1::5: icmp_seq=1 ttl=64 time=0.114 ms -------------------------------------------------- We get reply from self interface.This was tested on x86 and
x86_64with 2.6.30 kernel and some previous versions on ArchLinux (2.6.30 x86 andx86_64), Ubuntu (2.6.28-15-genericx86_64) and gentoo (2.6.30-gentoo-r5x86_64).
Hello.
This is not a bug but a feature of IPv6 called "subnet anycast address." The address is automatically assigned on routers.
References:
RFC 2526: Reserved IPv6 Subnet Anycast Addresses
RFC 3627: Use of /127 Prefix Length Between Routers Considered Harmful
--yoshfuji
Quoted 79 lines · Andrew Morton
(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).
Quoted 65 lines · On Sat, 17 Oct 2009 10:42:01 GMT [email protected] wrote:
http://bugzilla.kernel.org/show_bug.cgi?id=14427
Summary: ipv6 forward cause strange route
Product: Networking
Version: 2.5
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: IPV6
AssignedTo: [email protected]
ReportedBy: [email protected]
Regression: NoWhen enabling forwarding for IPv6 on interface, in the routing table local appears new route. It like route to local ip but with all host bits set to 0. Example:
--------------------------------------------------# cat /proc/sys/net/ipv6/conf/eth0/forwarding 0 # ip -6 addr add 2001:db8:1:1::5/64 dev eth0 # ip -6 route show table local ... local 2001:db8:1:1::5 via :: dev lo proto none metric 0 mtu 16436 advmss 16376 hoplimit 4294967295 ... # echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding # ip -6 route show table local ... local 2001:db8:1:1:: via :: dev lo proto none metric 0 mtu 16436 advmss 16376 hoplimit 4294967295 local 2001:db8:1:1::5 via :: dev lo proto none metric 0 mtu 16436 advmss 16376 hoplimit 4294967295 ... -------------------------------------------------- After enabling forwarding, route "2001:db8:1:1:: via :: dev lo" is added. No matter, forwarding is enabled before or after adding of address, this route is "on" with forwarding and "off" without it. Such behavior causes problems with /127 network masks. For example: -------------------------------------------------- # echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding # ip -6 addr add 2001:db8:1:1::5/127 dev eth0 # ip -6 route add default via 2001:db8:1:1::4 RTNETLINK answers: Invalid argument -------------------------------------------------- But if we disable forwarding (and strange route) when adding needed route, we will succeed. -------------------------------------------------- # echo 0 > /proc/sys/net/ipv6/conf/eth0/forwarding # ip -6 route add default via 2001:db8:1:1::4 # echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding -------------------------------------------------- Default route remains in the table after enabling forwarding and it is doing in work. But in this case we still can not access 2001:db8:1:1::4, because it is routed to loopback: -------------------------------------------------- # ping6 -c 1 2001:db8:1:1::4 PING 2001:db8:1:1::4(2001:db8:1:1::4) 56 data bytes 64 bytes from 2001:db8:1:1::5: icmp_seq=1 ttl=64 time=0.114 ms -------------------------------------------------- We get reply from self interface.Quoted 4 lines
This was tested on x86 and
x86_64with 2.6.30 kernel and some previous versions on ArchLinux (2.6.30 x86 andx86_64), Ubuntu (2.6.28-15-genericx86_64) and gentoo (2.6.30-gentoo-r5x86_64).--
To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 6 lines · I wrote:
This is not a bug but a feature of IPv6 called "subnet anycast address." The address is automatically assigned on routers.
References:
RFC 2526: Reserved IPv6 Subnet Anycast Addresses
RFC 3627: Use of /127 Prefix Length Between Routers Considered Harmful
I should say "Subnet-router anycast address" and
RFC3513: Internet Protocol Version 6 (IPv6) Addressing Architecture".
Sorry for confusion.
--yoshfuji
Quoted 6 lines · YOSHIFUJI Hideaki
Quoted 2 lines
RFC 2526: Reserved IPv6 Subnet Anycast Addresses
RFC 3627: Use of /127 Prefix Length Between Routers Considered HarmfulI should say "Subnet-router anycast address" and
RFC3513: Internet Protocol Version 6 (IPv6) Addressing Architecture".
FWIW, please note that commercial vendors haven't implemented this very extensively, and there's also some recent activity arguing this is not very useful:
http://tools.ietf.org/html/draft-kohno-ipv6-prefixlen-p2p-00
We'll likely get better idea how folks react to this during the next week's IETF.
Signature · 3 lines
Pekka Savola "You each name yourselves king, yet the Netcore Oy kingdom bleeds." Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings