Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Sep 2012 02:09:13 -0700
From:      Darren Pilgrim <list_freebsd@bluerosetech.com>
To:        freebsd-net@freebsd.org
Subject:   isc-dhcp42-server "no route to host" error due to fe80::/10 route
Message-ID:  <504DAE39.3040204@bluerosetech.com>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?504DAE39.3040204>