Project

General

Profile

Actions

Bug #14434

open

PPPoE WAN interface with VIPs causes continuous interface restarting

Added by Bert Smith 11 months ago. Updated 2 months ago.

Status:
New
Priority:
High
Assignee:
-
Category:
PPP Interfaces
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Plus Target Version:
24.07
Release Notes:
Default
Affected Version:
2.7.0
Affected Architecture:
amd64

Description

I have a /28 routable legacy IP block from the ISP, and they assign the first usable address of the /28 block as a /32 to the PPPOE interface, so i have:

Routable block: x.x.x.64/28
PPPOE address: x.x.x.65/32
LAN address CARP VIP: x.x.x.65/28

This configuration worked fine in 22.05, but is broken in 23.01 and remains broken in 23.05.

The PPPOE connection establishes and calls /etc/rc.newwanip, which then calls find_interface_ip() and get_interface_ip() to determine the address assigned to pppoe0. These functions return NULL, which causes rc.newwanip to restart the pppoe0 interface. This then causes an endless loop. The logs show the correct interface name, but no IP:

rc.newwanip: on (IP address: ) (interface: WAND[opt5]) (real interface: pppoe0).

Looking through the find_interface_ip() function, i can see it looks for $interface_ip_arr_cache - this array exists, but is empty causing the function to fail and return NULL.

I can see that if $interface_ip_arr_cache does not exist, it should open /var/db/${interface}_ip

        if (!isset($interface_ip_arr_cache[$interface]) or $flush) {
                if (file_exists("/var/db/${interface}_ip")) {

The file /var/db/pppoe0_ip is present and contains the correct address.

I'm hoping someone more familiar with the codebase and changes between 22.05/23.01 could give some insight into this otherwise i'll be trying to track it down further.

Actions

Also available in: Atom PDF