#1142714 network-manager: NetworkManager 1.58.0 ignores DHCP Router (Option 3) when Option 121 is present

Package:
network-manager
Source:
network-manager
Description:
network management framework (daemon and userspace tools)
Submitter:
Bogdan Vasiliev
Date:
2026-07-24 20:27:02 UTC
Severity:
normal
Tags:
#1142714#5
Date:
2026-07-24 13:20:17 UTC
From:
To:
After upgrading from NetworkManager 1.56.1 to 1.58.0, the default gateway received via DHCP Option 3 is no longer installed if the DHCP reply also contains RFC3442 Classless Static Routes (Option 121).

Client tcpdump:
tcpdump: listening on eno1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
17:58:43.082398 ***:f5:e1 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 333: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 319)
    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from ***:f5:e1, length 291, xid 0xa0bdfb95, secs 1, Flags [none] (0x0000)
	  Client-Ethernet-Address ***:f5:e1
	  Vendor-rfc1048 Extensions
	    Magic Cookie 0x63825363
	    DHCP-Message (53), length 1: Request
	    Client-ID (61), length 7: ether ***:f5:e1
	    Parameter-Request (55), length 17:
	      Subnet-Mask (1), Time-Zone (2), Domain-Name-Server (6), Hostname (12)
	      Domain-Name (15), MTU (26), BR (28), Classless-Static-Route (121)
	      Default-Gateway (3), Static-Route (33), YD (40), YS (41)
	      NTP (42), Unknown (119), Classless-Static-Route-Microsoft (249), Unknown (252)
	      RP (17)
	    MSZ (57), length 2: 576
	    Requested-IP (50), length 4: 10.10.10.2
	    Hostname (12), length 7: "chronos"
	    END (255), length 0
17:58:43.086579 ***:aa:5e > ***:f5:e1, ethertype IPv4 (0x0800), length 364: (tos 0xc0, ttl 64, id 151, offset 0, flags [none], proto UDP (17), length 350)
    10.10.10.1.67 > 10.10.10.2.68: [udp sum ok] BOOTP/DHCP, Reply, length 322, xid 0xa0bdfb95, secs 1, Flags [none] (0x0000)
	  Your-IP 10.10.10.2
	  Server-IP 10.10.10.1
	  Client-Ethernet-Address ***:f5:e1
	  Vendor-rfc1048 Extensions
	    Magic Cookie 0x63825363
	    DHCP-Message (53), length 1: ACK
	    Server-ID (54), length 4: 10.10.10.1
	    Lease-Time (51), length 4: 86400
	    RN (58), length 4: 43200
	    RB (59), length 4: 75600
	    Subnet-Mask (1), length 4: 255.255.255.0
	    BR (28), length 4: 10.10.10.255
	    Default-Gateway (3), length 4: 10.10.10.1
	    Domain-Name (15), length 3: "***"
	    Hostname (12), length 7: "*****"
	    Classless-Static-Route (121), length 8: (10.10.20.0/24:10.10.10.3)
	    NTP (42), length 4: 10.10.10.1
	    Domain-Name-Server (6), length 4: 10.10.10.1
	    END (255), length 0


$ nmcli connection show LAN | grep -E 'DHCP4|IP4|ignore-auto-routes|route-table'
IP4.ADDRESS[1]:                         10.10.10.2/24
IP4.GATEWAY:                            --
IP4.ROUTE[1]:                           dst = 10.10.10.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 10.10.20.0/24, nh = 10.10.10.3, mt = 100
IP4.DNS[1]:                             10.10.10.1
IP4.DOMAIN[1]:                          ***
DHCP4.OPTION[1]:                        broadcast_address = 10.10.10.255
DHCP4.OPTION[2]:                        dhcp_client_identifier = 01:***:f5:e1
DHCP4.OPTION[3]:                        dhcp_lease_time = 86400
DHCP4.OPTION[4]:                        dhcp_server_identifier = 10.10.10.1
DHCP4.OPTION[5]:                        domain_name = lan
DHCP4.OPTION[6]:                        domain_name_servers = 10.10.10.1
DHCP4.OPTION[7]:                        expiry = 1784984378
DHCP4.OPTION[8]:                        host_name = ****
DHCP4.OPTION[9]:                        ip_address = 10.10.10.2
DHCP4.OPTION[10]:                       next_server = 10.10.10.1
DHCP4.OPTION[11]:                       ntp_servers = 10.10.10.1
DHCP4.OPTION[12]:                       requested_broadcast_address = 1
DHCP4.OPTION[13]:                       requested_domain_name = 1
DHCP4.OPTION[14]:                       requested_domain_name_servers = 1
DHCP4.OPTION[15]:                       requested_domain_search = 1
DHCP4.OPTION[16]:                       requested_host_name = 1
DHCP4.OPTION[17]:                       requested_interface_mtu = 1
DHCP4.OPTION[18]:                       requested_ms_classless_static_routes = 1
DHCP4.OPTION[19]:                       requested_nis_domain = 1
DHCP4.OPTION[20]:                       requested_nis_servers = 1
DHCP4.OPTION[21]:                       requested_ntp_servers = 1
DHCP4.OPTION[22]:                       requested_rfc3442_classless_static_routes = 1
DHCP4.OPTION[23]:                       requested_root_path = 1
DHCP4.OPTION[24]:                       requested_routers = 1
DHCP4.OPTION[25]:                       requested_static_routes = 1
DHCP4.OPTION[26]:                       requested_subnet_mask = 1
DHCP4.OPTION[27]:                       requested_time_offset = 1
DHCP4.OPTION[28]:                       requested_wpad = 1
DHCP4.OPTION[29]:                       rfc3442_classless_static_routes = 10.10.20.0/24 10.10.10.3
DHCP4.OPTION[30]:                       routers = 10.10.10.1
DHCP4.OPTION[31]:                       subnet_mask = 255.255.255.0
ipv4.route-table:                       0 (unspec)
ipv4.ignore-auto-routes:                no
ipv6.route-table:                       0 (unspec)
ipv6.ignore-auto-routes:                no

$ ip route
10.10.10.0/24 dev eno1 proto kernel scope link src 10.10.10.2 metric 100
10.10.20.0/24 via 10.10.10.3 dev eno1 proto dhcp src 10.10.10.2 metric 100

#1142714#10
Date:
2026-07-24 15:09:33 UTC
From:
To:
Hi,

did you use dhclient as dhcp backend via some custom setting in
/etc/NetworkManager/?

Michael

Am 24.07.26 um 15:20 schrieb Bogdan Vasiliev:

#1142714#17
Date:
2026-07-24 17:51:41 UTC
From:
To:
Hi Bogdan,

thanks for the feedback.

Please report this issue to upstream then at
https://gitlab.freedesktop.org/NetworkManager/

(and please report back with the issue number so I can mark the issue as
forwarded accordingly).

Debian doesn't ship any patches in that regard, so this needs to be
handled by upstream in case there is a regression.

Thanks,
Michael

Am 24.07.26 um 17:43 schrieb Bogdan Vasiliev:

#1142714#22
Date:
2026-07-24 17:52:58 UTC
From:
To:
Am 24.07.26 um 19:51 schrieb Michael Biebl:

Small correction:

https://gitlab.freedesktop.org/NetworkManager/NetworkManager

#1142714#27
Date:
2026-07-24 20:25:08 UTC
From:
To:
Hi,

The upstream issue is NetworkManager#1990
<https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/work_items/1990>
.

Bogdan