Comment 4 for bug 1937110

Revision history for this message
Matt Heller (matthew-f-heller) wrote :

The Ubuntu Jammy installer initrd is missing the /etc/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes hook for dhclient. The /sbin/dhclient-script included in the initrd assumes the hook is present and if the "rfc3442_classless_static_routes" DHCP is sent by the DHCP server it ignores the the "routers" DHCP option and defers to the rfc3442 hook to setup the routing ...except that hook is missing so ultimately no routing is configured if the rfc3442 option 121 ("classless-static-routes" w/ ISC dhcpd) exists in the DHCP response. This means networking doesn't function and we cannot install Ubuntu.

My colleague tested modifying the initrd by adding the /etc/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes file and reports that works.

--Matt

# from the initrd rescue shell
(initramfs) ls /etc/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes
ls: cannot access /etc/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes: No such file or directory

# showing that the "routers" option is ignored if rfc3442 info is sent
(initramfs) grep -C1 classless /sbin/dhclient-script

            # if we have $new_rfc3442_classless_static_routes then we have to
            # ignore $new_routers entirely
            if [ ! "$new_rfc3442_classless_static_routes" ]; then
                    # set if_metric if IF_METRIC is set or there's more than one router
--
        if [ -z "$new_routers" ] || ping -q -c 1 "${new_routers%% *}"; then
            # if we have $new_rfc3442_classless_static_routes then we have to
            # ignore $new_routers entirely
            if [ ! "$new_rfc3442_classless_static_routes" ]; then
                    if [ -n "$alias_ip_address" ] &&