Package: ipxe
Version: 1.0.0+git-20190125.36a4c85-5.1
Severity: normal
Tags: ipv6

Hi,

My infrastructure has IPv6 and is announcing IPv6-only DNS servers over
Router Announcements in addition to having regular DHCPv4. The Router
Announcements have the Managed Bit set, but the DHCPv6 server doesn't
answer if there is no host-specific data in the DHCP configuration.

I have a certain machine that doesn't boot in this environment. A trace
shows the following.

- machine is turned on, link up
- Intel Boot Agent does DHCPv4, gets next-server and boot file name
  undionly.kpxe
- Intel Boot Agent does tftp, downloading undionly.kpxe.
- undionly.kpxe does DHCPv4, gets next server and URL to an ipxe menu.
- undionly.kpxe does Router Solicitation and receives a Router
  Announcement
- undionly.kpxe tries to reach a DHCPv6 server multiple times, no reply
- I do NOT see the system doing IPv6 DAD, nor do I see the system
  joining any multicast groups. According to RFC4861 7.2.1, the node
  MUST join at least the all-nodes multicast group and the
  solicited-node multicast group belonging to the MAC address of the
  Interface.
- undionly.kpxe sends out an AAAA query for the host name part of the
  URL via IPv6 to one of the name servers given in the Router
  Announcements (the DNS server is on a different network, so the packet
  gets actually sent to the default gateway).
- The default gateway sends a neighbor solicitation for the IPv6 address
  that the DNS query was sent from, using the correct solicited-node
  multicast IPv6 and MAC addresses
- the system doesn't react to this neighbor solicitation
- the system re-sends the DNS query and ignores the neighbor
  solicitation again.
- this repeats a couple of times until ipxe gives up

The IPXE feature list given on the console while running also does not
contain any reference to IPv6 being enabled.

What kind of confuses me is that a Thinkpad X121e connected to the same
switch port with the same cable boots off this network just fine. It
doesn't join the multicast groups either, but it looks like it is able
to make sense out of the neighbor solicitation, responds properly, gets
its DNS queries answered and is able to continue the boot process
despite the RFC violation of not joining those multicast groups.

Turning off the RDNSS option in the router announcements made the system
use the IPv4 name servers from the DHCPv4 assignment, which eventuelly
allowed the machine to boot.

So I think we're having three bug reports here:

- the IPv6 RFC violation of not doing IPv6 DAD and not joining required
  multicast groups
- not being able to properly receive the multicasted neighbor
  solicitation of the gateway on one particular type of hardware
- not trying one of the other DNS servers after the queries to the first
  one were unsuccessful

I am not reporting this upstream since upstream has advanced
considerably since this package was uploaded to Debian. Do you need help
packaging a current version of ipxe?

Can I do anything else to help with this bug report and/or ipxe?

Greetings
Marc

Reply via email to