Project

General

Profile

Actions

Bug #14756

closed

Link loss causes interfaces configured as Track Interface for IPv6 to lose their IPv4 addresses

Added by Steve Wheeler 8 months ago. Updated 6 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
Interfaces
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
Plus Target Version:
23.09
Release Notes:
Default
Affected Version:
2.7.0
Affected Architecture:
All

Description

An interface configured as 'Track Interface' for IPv6 will lose it's static IPv4 address if the NIC link is brought down.
This means that services configured to run on it will fail.

This prevents service restarts when the link is bounced in particular package restarts by rc.newwanip. In many cases this is actually the preferred behaviour since these are not WAN interfaces.

Sine this is the default LAN config it hides issues due to service restarts in that situation.

Whether or not the behaviour is preferred should not happen, the interface should not lose it's v4 address.

Actions #1

Updated by Jim Pingle 8 months ago

  • Assignee set to Jim Pingle
  • Plus Target Version changed from 23.09 to 24.01

In rc.linkup if either IPv4 or IPv6 is dynamic it hits the path with interface_bring_down() even if one is static.

I think we should take the time to fix this up better by teaching interface_bring_down() to selectively act on IPv4 or IPv6 (or both) as needed. Then in rc.linkup it could pass only the family to act on as needed.

That kind of change is going to need a lot more soak time left for testing/shakedown than we have left for this release, so let's nudge this back.

Actions #2

Updated by Jim Pingle 8 months ago

  • Plus Target Version changed from 24.01 to 24.03
Actions #3

Updated by Jim Pingle 7 months ago

  • Status changed from New to In Progress
  • Plus Target Version changed from 24.03 to 23.09

Looking more at interface_bring_down() it doesn't seem like it could be readily adapted this way since it wants to work on the interface as a whole and has some operations that are not specific to an address family.

So for now we should just exclude the static IPv4+track6 scenario from calling this function.

Actions #4

Updated by Jim Pingle 7 months ago

  • Status changed from In Progress to Feedback
  • % Done changed from 0 to 100
Actions #5

Updated by Jim Pingle 7 months ago

If testing this via patching, you may need to apply 49d0874fb4524e05a802eaeabbf6bf152860f3d4 first

Actions #6

Updated by Jim Pingle 7 months ago

  • Subject changed from Interfaces configured as trackv6 lose v4 addresses to Link loss causes interfaces configured as Track Interface for IPv6 to lose their IPv4 addresses
Actions #7

Updated by Azamat Khakimyanov 7 months ago

  • Status changed from Feedback to Resolved

Tested on 23.05_1

I was able to reproduce this bug.
After applying 49d0874fb4524e05a802eaeabbf6bf152860f3d4 and then 5cd87ac533d2b7666d1ff5e1ab5a3fdf2a78f9ea I didn't see this issue any more.

If LAN interface which has Track Interface for IPv6 goes down, it still has IPv4 and IPv6 (which it has just before going Down) addresses on a Dashboard, in /Status/Interfaces and in 'ifconfig -a' output.

I marked this Bug as resolved.

Actions #8

Updated by Jim Pingle 6 months ago

  • Target version changed from 2.8.0 to 2.7.1
Actions

Also available in: Atom PDF