Routing problems on VPN servers running FreeBSD 8.0-RELEASE
Li, Qing
qing.li at bluecoat.com
Sat Feb 13 02:03:35 UTC 2010
>
> It'd be good to resolve this as soon as possible, because I have
> two clients who need servers installed this weekend. (They wanted
> them last week, but I was trapped away from the office by a
snowstorm.)
>
Luiz Otavio and I have been discussing offline about an issue with
the file /usr.sbin/ppp/arp.c in the past week or so. The ARP related
code in arp.c was missing a flag bit called "RTF_LLDATA".
Luiz Otavio and I just had a debug session on your issue. He was
able to reproduce it, and due to the missing RTF_LLDATA bit, the
proxy-arp entry made it into the routing table, which was not
suppose to happen. Since there is already a PPP host entry
for the remote end, you get the FILE EXIST error.
I believe the reason was due to its confusing the kernel code as
if mpd is installing a routing entry as in
"route add x.x.x.x/y -iface em0".
So you can wait for Luiz's patch, or you could do it yourself
and try the following 1 line fix:
========================================================================
========
-- usr.sbin/ppp/arp.c (revision 203430)
+++ usr.sbin/ppp/arp.c (working copy)
@@ -119,7 +119,7 @@
return 0;
}
arpmsg.hdr.rtm_type = add ? RTM_ADD : RTM_DELETE;
- arpmsg.hdr.rtm_flags = RTF_ANNOUNCE | RTF_HOST | RTF_STATIC;
+ arpmsg.hdr.rtm_flags = RTF_ANNOUNCE | RTF_HOST | RTF_STATIC |
RTF_LLDATA;
arpmsg.hdr.rtm_version = RTM_VERSION;
arpmsg.hdr.rtm_seq = ++bundle->routing_seq;
arpmsg.hdr.rtm_addrs = RTA_DST | RTA_GATEWAY;
========================================================================
========
I had to reintroduce the RTF_LLDATA flag for compatibility in r187094
back
in Jan. 2009. This change appears to be missing from the ppp port.
Please give the above fix a try and see if it resolves your issue.
-- Qing
More information about the freebsd-net
mailing list