Bug 2082230

Summary: ip6-privacy (use_tempaddr) IPv6 addresses may be left after disconnect, preventing new autoactivation
Product: Red Hat Enterprise Linux 8 Reporter: Thomas Haller <thaller>
Component: NetworkManagerAssignee: Thomas Haller <thaller>
Status: CLOSED ERRATA QA Contact: David Jaša <djasa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.6CC: acabral, bgalvani, djasa, lrintel, rkhan, sukulkar, till, vbenes
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: NetworkManager-1.39.5-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-08 10:10:31 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
log showing problem #2 none

Description Thomas Haller 2022-05-05 15:28:05 UTC
there is a bug.

With ipv6.ip6-privacy enabled (use_tempaddr sysctl, IFA_F_MANAGETEMPADDR), kernel adds additional IPv6 addresses.

During REAPPLY, NML3Cfg would not delete them. Though it has to (at least usually).

The fix is at https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1209

Comment 1 Thomas Haller 2022-05-05 15:35:08 UTC
this seems quite bad.


There are two problems that this can cause.



1) during reapply, we might not delete such IPv6 secondary addresses.

Reproduce:

  have a profile active with ipv6.ip6-privacy enabled.
  check there is a secondary IPv6 address
  nmcli device modify $IFACE ipv6.method link-local
  The correct result would be that the secondary IP address is gone.

Actually... I was not able to reproduce this problem. That is, because we tend to toggle ipv6_disabled sysctl during reapply. That already removes all IPv6 addresses, avoiding the problem. I am not sure, whether there aren't situations were we would not do that. It also seems outright wrong to momentarily toggle ipv6_disabled, unless necessary. So we should have a CI test covering this.


2) during disconnect.

Reproduce:

  have a ethernet profile active with ipv6.ip6-privacy enabled
  check that we have a secondary address.
  unplug the cable (wait for the device to disconnect and go to "unavailable" state -- depending on ignore-carrier setting).
  The correct result would be that the secondary IP address is gone.

This seems easy to reproduce. An it has bad consequnces, because for this address we will generate a "external" connection (with ipv6.method=disabled). When you replug the cable, this prevents the previous connection to autoconnect again. The full test should replug the cable, and see that the previous profile autoconnects.

Comment 2 Thomas Haller 2022-05-05 15:52:08 UTC
Created attachment 1877356 [details]
log showing problem #2

logfile showing the issue. See details/description at top of the file.

Comment 5 David Jaša 2022-06-09 11:21:05 UTC
VERIFIED in NetworkManager-1.39.5-1.el8.x86_64, no addresses are around in all 3 scenarios (reapply, connection down, connection timed out).

Comment 7 errata-xmlrpc 2022-11-08 10:10:31 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (NetworkManager bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:7680