From: florian Date: Thu, 13 May 2021 11:22:15 +0000 (+0000) Subject: RFC 4861 4.1 allows router solicitations from the unspecified address X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=18ef43d74b8a6115262fd4b6abb68ac1b714a388;p=openbsd RFC 4861 4.1 allows router solicitations from the unspecified address (::). A short survey suggests that some systems respond with a multicast router advertisement and other don't. Andrew Forgue pointed out a usecase for this, booting a UEFI system over http in an IPv6 network only. ("IPv6 support for UEFI IPv6 booting" on bugs@ a long time ago) There is also no downside in allowing this, any host on the layer 2 network can solicit a router advertisement. OK phessler --- diff --git a/usr.sbin/rad/engine.c b/usr.sbin/rad/engine.c index 9a939830ea5..7c999bc5447 100644 --- a/usr.sbin/rad/engine.c +++ b/usr.sbin/rad/engine.c @@ -1,4 +1,4 @@ -/* $OpenBSD: engine.c,v 1.18 2021/01/19 16:54:48 florian Exp $ */ +/* $OpenBSD: engine.c,v 1.19 2021/05/13 11:22:15 florian Exp $ */ /* * Copyright (c) 2018 Florian Obser @@ -480,8 +480,9 @@ parse_rs(struct imsg_ra_rs *rs) len = rs->len; - if (!IN6_IS_ADDR_LINKLOCAL(&rs->from.sin6_addr)) { - log_warnx("RA from non link local address %s on %s", hbuf, + if (!(IN6_IS_ADDR_LINKLOCAL(&rs->from.sin6_addr) || + IN6_IS_ADDR_UNSPECIFIED(&rs->from.sin6_addr))) { + log_warnx("RA from invalid address %s on %s", hbuf, if_indextoname(rs->if_index, ifnamebuf)); return; }