with dnsmasq server setup: $ ip -4 a show ens8 3: ens8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 1.2.3.1/24 scope global ens8 valid_lft forever preferred_lft forever $ cat /etc/dnsmasq.d/test
interface=ens8 bind-dynamic no-resolv no-poll domain=test,1.2.3.4/24 dhcp-range=test,1.2.3.100,1.2.3.199,1m dhcp-host=52:54:00:f7:b2:99,1.2.3.50,1m on the test system: ubuntu@lp1831787-e:~$ dpkg -l systemd | grep ii ii systemd 242-7ubuntu3.2 amd64 system and service manager ubuntu@lp1831787-e:~$ ip -4 a show dev ens8 3: ens8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 1.2.3.50/24 brd 1.2.3.255 scope global dynamic ens8 valid_lft 106sec preferred_lft 106sec ubuntu@lp1831787-e:~$ ip -4 r default via 1.2.3.1 dev ens8 proto dhcp src 1.2.3.50 metric 1024 1.2.3.0/24 dev ens8 proto kernel scope link src 1.2.3.50 1.2.3.1 dev ens8 proto dhcp scope link src 1.2.3.50 metric 1024 then on dnsmasq server, change the test system addr to .60: $ cat /etc/dnsmasq.d/test interface=ens8 bind-dynamic no-resolv no-poll domain=test,1.2.3.4/24 dhcp-range=test,1.2.3.100,1.2.3.199,1m dhcp-host=52:54:00:f7:b2:99,1.2.3.60,1m ubuntu@dhcp-test:~$ sudo systemctl restart dnsmasq on test system, wait for dhcp lease to timeout: ubuntu@lp1831787-e:~$ ip -4 a show dev ens8 3: ens8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 1.2.3.60/24 brd 1.2.3.255 scope global dynamic ens8 valid_lft 114sec preferred_lft 114sec ubuntu@lp1831787-e:~$ ip -4 r default via 1.2.3.1 dev ens8 proto dhcp src 1.2.3.60 metric 1024 1.2.3.0/24 dev ens8 proto kernel scope link src 1.2.3.60 1.2.3.1 dev ens8 proto dhcp scope link src 1.2.3.60 metric 1024 ** Tags removed: verification-needed verification-needed-eoan ** Tags added: verification-done verification-done-eoan -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1831787 Title: Bogus routes after DHCP lease change Status in netplan: Invalid Status in systemd: Unknown Status in systemd package in Ubuntu: In Progress Status in systemd source package in Bionic: In Progress Status in systemd source package in Disco: In Progress Status in systemd source package in Eoan: Fix Committed Bug description: [impact] networkd does not remove old route(s) after DHCP address change [test case] on a system using networkd, that is connected to a network where you can control the addresses that the DHCP server provides, setup system with networkd to get address via DHCP, e.g. [Match] Name=ens3 [Network] DHCP=ipv4 (re)start networkd or reboot, so the system gets an ipv4 DHCP address, and corresponding route to the gateway. Then on the dhcp server, change the subnet to a different subnet. On the client, once its renews its DHCP address, the server will provide a new address in the new subnet, and the client will add a new default route to the new gateway address. However, the old default route to the old gateway address isn't removed. Note this also happens without changing the entire subnet, but is more subtle as shown in the original description. [regression potential] this affects how networkd handles routes, so has the potential to leave a system with partial or incorrect networking, or no networking at all. Any regression would most likely occur during networkd (re)start or during renewal of a DHCP lease, or when an interface is brought up. [other info] original description: --- Netplan config: network: version: 2 renderer: networkd ethernets: eno4: dhcp4: no eno1np0: dhcp4: no addresses: - 172.16.0.2/24 bridges: br0: dhcp4: yes interfaces: - eno4 On initial boot, machine got 10.0.15.109 IP address: May 03 13:09:41 ceph2 systemd-networkd[29349]: br0: Configured May 03 13:09:41 ceph2 systemd-networkd[29349]: br0: DHCPv4 address 10.0.15.109/23 via 10.0.15.253 At one point, DHCP server reserver this IP address and client eventually picked up new IP address: May 03 15:01:12 ceph2 systemd-networkd[1137]: br0: DHCPv4 address 10.0.15.128/23 via 10.0.15.253 This resulted in IP addresses: # ip -o a 1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever 1: lo inet6 ::1/128 scope host \ valid_lft forever preferred_lft forever 2: eno1np0 inet 172.16.0.2/24 brd 172.16.0.255 scope global eno1np0\ valid_lft forever preferred_lft forever 2: eno1np0 inet6 fe80::b226:28ff:fe53:56be/64 scope link \ valid_lft forever preferred_lft forever 6: br0 inet 10.0.15.128/23 brd 10.0.15.255 scope global dynamic br0\ valid_lft 503sec preferred_lft 503sec 6: br0 inet6 fe80::b8d7:5eff:fe6b:62a/64 scope link \ valid_lft forever preferred_lft forever So far, everything is fine. But, the routes on the machine are bogus: # ip r default via 10.0.15.253 dev br0 proto dhcp src 10.0.15.109 metric 100 default via 10.0.15.253 dev br0 proto dhcp src 10.0.15.128 metric 100 10.0.14.0/23 dev br0 proto kernel scope link src 10.0.15.128 10.0.15.253 dev br0 proto dhcp scope link src 10.0.15.109 metric 100 10.0.15.253 dev br0 proto dhcp scope link src 10.0.15.128 metric 100 172.16.0.0/24 dev eno1np0 proto kernel scope link src 172.16.0.2 routes with src 10.0.15.109 should have been removed when lease was renewed. I'm not sure if this is a bug in netplan or systemd. This is 18.04, systemd 37-3ubuntu10.21, netplan 0.40.1~18.04.4. To manage notifications about this bug go to: https://bugs.launchpad.net/netplan/+bug/1831787/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp