I have isc-dhcp42-server-4.2.4_1 installed from ports on an amd64 8.3-p3 machine acting as an IPv6 router using SLAAC and stateless DHCPv6.

When machines do DHCPv6 Information Requests (per the RA's O flag), I can see in the DHCPv6 server logging the requests like this:

Sep 10 01:20:31 chombo dhcpd: Information-request message from fe80::e812:4ecc:5220:8206 port 546, transaction ID 0x5A5CE500 Sep 10 01:20:31 chombo dhcpd: Sending Reply to fe80::e812:4ecc:5220:8206 port 546
Sep 10 01:20:31 chombo dhcpd: send_packet6: No route to host
Sep 10 01:20:31 chombo dhcpd: dhcpv6: send_packet6() sent -1 of 92 bytes

I used tcpdump to watch the exchange and the replies never make it onto the wire. Looking at my route table[1], I see the usual scoped link-local routes, plus this one:

Destination  Gateway  Flags  Netif Expire
fe80::/10    ::1      UGRS   lo0

Okay, so it looks like link-local is routed to the loopback by default. As a test, I changed that to the lan interface:

# route delete -inet6 fe80:: -prefixlen 10
delete net fe80::
# route add -inet6 fe80:: -prefixlen 10 -iface lan
add net fe80::: gateway lan

Which fixes the "No route to host" problem (machines now get DHCPv6 just fine). The rub is, I will need to do DHCPv6 on fxp0 as well.

Why would there be that fe80::/10 via lo0 route in the first place?

How do I get the DHCPv6 replies to go out the interfaces on which the requests came in? Is this a bug in isc-dhcp42-server such that it isn't correctly setting the interface scope on its replies?

1: http://pastie.org/4694484
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to