I am using the SLAAC IPV6 configuration where DUT is receiving RA from another node with preferred lifetime and valid lifetime = 60s and after 20s, it receives another RA with preferred lifetime and valid lifetime = 30s
Observation:
DUT updates both preferred lifetime and valid lifetime = 30s on receiving second RA.
As per RFC 4862 section 5.5.3. Router Advertisement Processing,
If the advertised prefix is equal to the prefix of an address configured by stateless autoconfiguration in the list, the preferred lifetime of the address is reset to the Preferred Lifetime in the received advertisement.
1. If the received Valid Lifetime is greater than 2 hours or
greater than RemainingLifetime, set the valid lifetime of the
corresponding address to the advertised Valid Lifetime.
2. If RemainingLifetime is less than or equal to 2 hours, ignore
the Prefix Information option with regards to the valid
lifetime, unless the Router Advertisement from which this
option was obtained has been authenticated (e.g., via Secure
Neighbor Discovery [RFC3971]). If the Router Advertisement
was authenticated, the valid lifetime of the corresponding
address should be set to the Valid Lifetime in the received
option.
3. Otherwise, reset the valid lifetime of the corresponding
address to 2 hours.
Expected Behavior:
In this case, prefix addr and length are same for both RAs. So, only preferred lifetime should have been updated and valid lifetime should not get updated.
Please clarify if this is a bug as per RFC statement or I am missing anything here.
Code: Select all
ip monior logs
---------------------------------
Router Advertisement with valid lifetime and preffered lifetime = 60000sec
11:34:00.829977 4: eth1 inet6 dead::182e:f968:84e8:fd9f/64 scope global tentative noprefixroute dynamic
11:34:00.832163 valid_lft 60000sec preferred_lft 60000sec
11:34:02.481507 4: eth1 inet6 dead::182e:f968:84e8:fd9f/64 scope global noprefixroute dynamic
11:34:02.486292 valid_lft 59999sec preferred_lft 59999sec
After sometime, another Router Advertisement with valid lifetime and preffered lifetime = 30sec
11:34:20.862114 4: eth1 inet6 dead::182e:f968:84e8:fd9f/64 scope global noprefixroute dynamic
11:34:20.864392 valid_lft 30sec preferred_lft 30sec
Both valid lifetime and preffered lifetime is updated to 30sec
After 30 seconds, entry is deleted as valid life time is 0 sec
11:34:51.103425 Deleted 4: eth1 inet6 dead::182e:f968:84e8:fd9f/64 scope global noprefixroute dynamic
11:34:51.105531 valid_lft 0sec preferred_lft 0sec