On Tue, May 14, 2013 at 02:43:48PM +0300, Sergey Popovich wrote:
"onlink" option for ip-route(8) works as expected with IPv4, but current IPv6 implementation does not handle this option, agree.
For IPv6, attached patch works as expected and route learned into BIRD's routing table from kernel FIB. Thanks for good workaround for current Linux kernel IPv6 implementation weakness.
Well there is a problem that conceptual models of Linux IPv4, Linux IPv6, FreeBSD IPv4, ... routing tables are slightly different in some details and they are probably not really documented anywhere. BIRD tries to match its conceptual model of routing tables to these, but the match is probably not really exact.
BTW, why not to use link-local addressess as a next-hop? That would also solve the problem in a cleaner way. If you don't want to track automatic (MAC-based) link-local addres, you could use preconfigured link-local addresses (fe80::1/64, fe80::2/64) on the 'ptp' vlan. In that case, it would be enough to assign /64 prefix for a client (no need to assign a separate /128 IP).
Good point.
As for me (and from point of our helpdesk) this solution has one big disadvantage: traceroutes, from external networks to customer network(s) will indicate missing hop - customer gateway, configured with link-local address on its WAN interface (ICMP Destination unreachable dropped by our access server).
AFAIK this should not be a problem - In IPv6, gateway should use some other global address (like one from /64 used on local network) as a source addr for ICMP answers (or other its traffic), so there would be all hosts in the traceroute output.
There is other minor cases where link-layer address usage is not best choise: - some users like to connect their PC directly to Internet (:-)) (or at least do this to test connectivity and speed). - some "network" OS'es in network equipment does not allow (or make things a bit complicated) setting link-layer addresses.
BTW, choosing CPE properly supporting IPv6 (including prefix delegation) seems to be a nontrivial problem itself. One of my ideas about how to provide IPv6 in a small wireless ISP was to configure clients' prefixes in CPEs and use RIPng in CPEs to propagate it to an ISP router (to get proper link-local next-hops here), with some validation in ISP router, of course. -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."