On Fri, Oct 19, 2012 at 10:06:30AM -0400, Tom Beecher wrote:
> That much I follow, but the 172 route still doesn't appear. To clarify,
> I manually added that with :
>
> route add -host 172.16.100.100 dev eth0
>
> It was my assumption that because the 172 route was manually added I
> needed to access it through the kernel protocol, which is why that's why
> I was going in that direction.
Yes, you are right, manually added routes should be imported by kernel
protocol (while 'native' device routes that are created by kernel
could be imported using direct protocol).
> Am I missing something else simple here?
There is one issue related to routes without gateway, see this thread:
http://www.mail-archive.com/[email protected]/msg01039.html
In short, there are two ways to fix it. Either use attached patch to BIRD
source and rebuild, or create these routes with another 'protocol source'.
I don't know whether 'protocol source' could be changed when route is
added using 'route' command, but for 'ip' command you can use
ip route add 172.16.100.100/32 dev eth0 proto static
instead of just
ip route add 172.16.100.100/32 dev eth0
--
Elen sila lumenn' omentielvo
Ondrej 'SanTiago' Zajicek (email: [email protected])
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."
diff --git a/sysdep/linux/netlink/netlink.c b/sysdep/linux/netlink/netlink.c
index 0830097..af8e7bd 100644
--- a/sysdep/linux/netlink/netlink.c
+++ b/sysdep/linux/netlink/netlink.c
@@ -846,19 +846,6 @@ nl_parse_route(struct nlmsghdr *h, int scan)
else
{
ra.dest = RTD_DEVICE;
-
- /*
- * In Linux IPv6, 'native' device routes have proto
- * RTPROT_BOOT and not RTPROT_KERNEL (which they have in
- * IPv4 and which is expected). We cannot distinguish
- * 'native' and user defined device routes, so we ignore all
- * such device routes and for consistency, we have the same
- * behavior in IPv4. Anyway, users should use RTPROT_STATIC
- * for their 'alien' routes.
- */
-
- if (i->rtm_protocol == RTPROT_BOOT)
- src = KRT_SRC_KERNEL;
}
break;