| diff --git a/src/libsystemd-network/sd-dhcp-client.c b/src/libsystemd-network/sd-dhcp-client.c |
| index e5a1fdcd54..007ee8013d 100644 |
| --- a/src/libsystemd-network/sd-dhcp-client.c |
| +++ b/src/libsystemd-network/sd-dhcp-client.c |
| @@ -1581,6 +1581,10 @@ static int client_handle_ack(sd_dhcp_client *client, DHCPMessage *ack, size_t le |
| |
| r = dhcp_option_parse(ack, len, dhcp_lease_parse_options, lease, &error_message); |
| if (r == DHCP_NAK) { |
| + if (client->lease && client->lease->server_address != lease->server_address) { |
| + log_dhcp_client(client, "NAK from unexpected server, ignoring: %s", strna(error_message)); |
| + return -ENOMSG; |
| + } |
| log_dhcp_client(client, "NAK: %s", strna(error_message)); |
| return -EADDRNOTAVAIL; |
| } |