Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Oct 2022 08:08:38 GMT
From:      Kristof Provost <kp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 7ca75b93b9fa - stable/12 - dhclient-script: cope with /32 address leases
Message-ID:  <202210130808.29D88cLM050404@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/12 has been updated by kp:

URL: https://cgit.FreeBSD.org/src/commit/?id=7ca75b93b9facd6dd0a733f25f577a1c9862a46b

commit 7ca75b93b9facd6dd0a733f25f577a1c9862a46b
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2022-10-05 10:11:07 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2022-10-13 07:56:50 +0000

    dhclient-script: cope with /32 address leases
    
    On certain cloud platforms (Google Cloud, Packet.net and others) the
    DHCP server offers a /32 address. This makes adding the default route
    fail since it is not reachable via any interface. Linux's
    dhclient-script seem to usually have a special case for that and
    explicitly adds an interface route to the router's address.
    
    FreeBSD's dhclient-script already has a special case for when the router
    address is the same as the leased address. Now also add one for when
    it's a different address that doesn't fall in the interface's subnet.
    
    PR:             241792
    Event:          Aberdeen hackathon 2022
    Submitted by:   sigsys@gmail.com
    Reviewed by:    dch, kp, bz (+1 on the idea, not reviewed), thj
    MFC after:      1 week
    
    (cherry picked from commit fd6ecc184dbc64b9b3f7866b34812fb93df62925)
---
 sbin/dhclient/dhclient-script | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sbin/dhclient/dhclient-script b/sbin/dhclient/dhclient-script
index 3439fd960773..c5649e1a1d2a 100755
--- a/sbin/dhclient/dhclient-script
+++ b/sbin/dhclient/dhclient-script
@@ -173,6 +173,10 @@ add_new_routes() {
 			if [ "$new_ip_address" = "$router" ]; then
 				route add default -iface $router >/dev/null 2>&1
 			else
+				if [ "$new_subnet_mask" = "255.255.255.255" ]; then
+					route add "$router" -iface "$interface" >/dev/null 2>&1
+				fi
+
 				route add default $router >/dev/null 2>&1
 			fi
 		fi



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