issue with route
Andre Oppermann
andre at freebsd.org
Thu Jun 2 04:33:29 PDT 2005
"Li, Qing" wrote:
>
>
> When I issued the following command by accident today:
>
> route add default -inet6 fe80:20d:56ff:fe8d:d4b0%fxp0
>
> The netstat shows the following:
>
> Internet:
> Destination Gateway Flags Refs Use Netif
> Expire
> default fe80:20d:56ff:fe8d:d4b0%fxp0 UGS 0
> 0 fxp0
> 10.9.44/24 link#1 U 1 0 fxp0
> 10.9.44.175 127.0.0.1 UGHS 0 0 lo0
> 127.0.0.1 link#4 UH 1 4 lo0
>
> So I went ahead and issued
>
> route add 10.1.1.1 -inet6 fe80::1%fxp0
>
> Internet:
> Destination Gateway Flags Refs Use Netif
> Expire
> default fe80:20d:56ff:fe8d:d4b0%fxp0 UGS 0
> 0 fxp0
> 10.1.1.1 fe80::1%fxp0 UGHS 0 0 fxp0
> 10.9.44/24 link#1 U 1 0 fxp0
> 10.9.44.175 127.0.0.1 UGHS 0 0 lo0
> 127.0.0.1 link#4 UH 1 4 lo0
>
> I verified this behavior on both FreeBSD 5.4 Release and 6.0-CURRENT.
Looks very strange indeed.
> I think this behavior is probably not intended and should be treated
> as a bug. I did a quick patch in sys/net/route.c
> (it's just as easy in sbin/route.c).
Unless this causes or supposed to cause some kind of automagic
IPv4 in IPv6 encapsulation? Can you check out if this is not
the case (RFC references, KAME folks)?
> -------------
> heavygear# cvs diff route.c
> Index: route.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/net/route.c,v retrieving revision 1.108
> diff
> -r1.108 route.c
> 746c747,748
> < if ((flags & RTF_GATEWAY) && !gateway)
> ---
> > if (flags & RTF_GATEWAY) {
> > if (!gateway)
> 747a750,752
> > if (dst && (dst->sa_family != gateway->sa_family))
> > senderr(EPERM);
> > }
> -------------
Please post unified diffs, they are far easier to read for humans.
> After the patch,
>
> -------------
> heavygear# route add 10.1.1.1 -inet6 fe80::1%fxp0
> route: writing to routing socket: Operation not permitted
EINVAL might be a more appropriate error code.
--
Andre
More information about the freebsd-net
mailing list