PPPoE default route issue

Hi,

i’m currently using 1.4-rolling-202209130217 on PCEngines APU.4D4 board.

What i use:
PPPPoE
Static routes to PPPoE
Firewall
Wireguard

Since a couple of versions from time to time the default routes to PPPoE aren’t applied to the routing table.

Sometimes this happens at every time resetting the PPPoE connection by the ISP, sometimes not for days with several PPPoE resets in between.

Can confirm that this issue is not showing up with much older images like 1.4-rolling-202110292022

Issue can only be “fixed” with restarting to entire router.

My config:

PPPoE config:

 pppoe pppoe0 {
     authentication {
         password xxxxxxxx
         user xxxxxxxxxx@xxxx.xx
     }
     description "WAN"
     dhcpv6-options {
         pd 0 {
             length 56
         }
         rapid-commit
     }
     firewall {
         in {
             ipv6-name pppoe0-6-IN
             name pppoe0-4-IN
         }
         local {
             ipv6-name pppoe0-6-LOCAL
             name pppoe0-4-LOCAL
         }
         out {
             ipv6-name pppoe0-6-OUT
             name pppoe0-4-OUT
         }
     }
     ipv6 {
         address {
             autoconf
         }
     }
     mtu 1492
     no-peer-dns
     source-interface eth0
 }

Default route config:

 route 0.0.0.0/0 {
     interface pppoe0 {
     }
 }
 route6 ::/0 {
     interface pppoe0 {
     }
 }

Route missing after two days of successful operation after PPPoE connection was resetted by the ISP (happened at september 17th at aroud 3-4am):

ip route show:

10.0.0.0/30 dev wg1 proto kernel scope link src 10.0.0.1 
62.155.240.157 dev pppoe0 proto kernel scope link src 79.198.16.160 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2

ip -6 route show:

::1 dev lo proto kernel metric 256 pref medium
fe80::9ecc:83ff:fec8:a1e4 dev pppoe0 proto kernel metric 256 pref medium
fe80::ccdd:5d3e:58c1:4b52 dev pppoe0 proto kernel metric 256 pref medium
fe80::/64 dev lo proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev wg1 proto kernel metric 256 pref medium

PPPoE log:

Sep 17 03:15:41 pppd[2424]: rcvd [LCP ConfAck id=0x4 <mru 1492> <magic 0x7ca6d7d7>]
Sep 17 03:15:41 pppd[2424]: sent [LCP EchoReq id=0x0 magic=0x7ca6d7d7]
Sep 17 03:15:41 pppd[2424]: sent [PAP AuthReq id=0x2 user="xxxxx@xxxxx.xxx" password=<hidden>]
Sep 17 03:15:41 pppd[2424]: rcvd [LCP EchoRep id=0x0 magic=0x1f202515]
Sep 17 03:15:41 pppd[2424]: rcvd [PAP AuthAck id=0x2 "SRU=34826#SRD=84715#"]
Sep 17 03:15:41 pppd[2424]: Remote message: SRU=34826#SRD=84715#
Sep 17 03:15:41 pppd[2424]: PAP authentication succeeded
Sep 17 03:15:41 pppd[2424]: peer from calling number 7C:FF:4D:F9:F1:71 authorized
Sep 17 03:15:41 pppd[2424]: sent [IPCP ConfReq id=0x3 <addr 0.0.0.0>]
Sep 17 03:15:41 pppd[2424]: sent [IPV6CP ConfReq id=0x2 <addr fe80::11a2:c6d7:1914:8b83>]
Sep 17 03:15:41 pppd[2424]: rcvd [IPCP ConfReq id=0xc4 <addr 62.155.240.157>]
Sep 17 03:15:41 pppd[2424]: sent [IPCP ConfAck id=0xc4 <addr 62.155.240.157>]
Sep 17 03:15:41 pppd[2424]: rcvd [IPCP ConfNak id=0x3 <addr 79.198.24.55>]
Sep 17 03:15:41 pppd[2424]: sent [IPCP ConfReq id=0x4 <addr 79.198.24.55>]
Sep 17 03:15:41 pppd[2424]: rcvd [IPV6CP ConfReq id=0x85 <addr fe80::9ecc:83ff:fec8:a1e4>]
Sep 17 03:15:41 pppd[2424]: sent [IPV6CP ConfAck id=0x85 <addr fe80::9ecc:83ff:fec8:a1e4>]
Sep 17 03:15:41 pppd[2424]: rcvd [IPCP ConfAck id=0x4 <addr 79.198.24.55>]
Sep 17 03:15:41 pppd[2424]: Script /etc/ppp/ip-pre-up started (pid 160739)
Sep 17 03:15:41 pppd[2424]: Script /etc/ppp/ip-pre-up finished (pid 160739), status = 0x0
Sep 17 03:15:41 pppd[2424]: local  IP address 79.198.24.55
Sep 17 03:15:41 pppd[2424]: remote IP address 62.155.240.157
Sep 17 03:15:41 pppd[2424]: Script /etc/ppp/ip-up started (pid 160742)
Sep 17 03:15:41 pppd[2424]: rcvd [IPV6CP ConfAck id=0x2 <addr fe80::11a2:c6d7:1914:8b83>]
Sep 17 03:15:41 pppd[2424]: local  LL address fe80::11a2:c6d7:1914:8b83
Sep 17 03:15:41 pppd[2424]: remote LL address fe80::9ecc:83ff:fec8:a1e4
Sep 17 03:15:41 pppd[2424]: Script /etc/ppp/ipv6-up started (pid 160743)
Sep 17 03:15:41 pppd[2424]: Script /etc/ppp/ipv6-up finished (pid 160743), status = 0x0
Sep 17 03:15:45 pppd[2424]: Script /etc/ppp/ip-up finished (pid 160742), status = 0x0
Sep 17 05:21:03 pppd[2424]: rcvd [LCP TermReq id=0x4d]
Sep 17 05:21:03 pppd[2424]: LCP terminated by peer
Sep 17 05:21:03 pppd[2424]: Connect time 125.4 minutes.
Sep 17 05:21:03 pppd[2424]: Sent 9227 bytes, received 65501 bytes.
Sep 17 05:21:03 pppd[2424]: Script /etc/ppp/ip-down started (pid 170438)
Sep 17 05:21:03 pppd[2424]: Script /etc/ppp/ipv6-down started (pid 170439)
Sep 17 05:21:03 pppd[2424]: sent [LCP TermAck id=0x4d]
Sep 17 05:21:03 pppd[2424]: Modem hangup
Sep 17 05:21:03 pppd[2424]: Connection terminated.
Sep 17 05:21:03 pppd[2424]: Connect time 125.4 minutes.
Sep 17 05:21:03 pppd[2424]: Sent 9227 bytes, received 65501 bytes.
Sep 17 05:21:03 pppd[2424]: Script /etc/ppp/ipv6-down finished (pid 170439), status = 0x0
Sep 17 05:21:04 pppd[2424]: Script /etc/ppp/ip-down finished (pid 170438), status = 0x0
Sep 17 05:21:34 pppd[2424]: Send PPPOE Discovery V1T1 PADI session 0x0 length 12

show log protocol static:

Sep 15 11:16:23 router.de staticd[881]: [VTVCM-Y2NW3] Configuration Read in Took: 00:00:00
Sep 15 11:17:51 router.de staticd[881]: [VTVCM-Y2NW3] Configuration Read in Took: 00:00:00
Sep 15 11:17:52 router.de staticd[881]: [VTVCM-Y2NW3] Configuration Read in Took: 00:00:00

show log kernel:

Sep 17 03:01:35 kernel: [pppoe0-6-IN-default-D]IN=pppoe0 OUT=pppoe0 MAC= SRC=2001:0470:0001:0332:0000:0000:0000:00d9 DST=2003:00f4:8fff:15e5:464e:6dff:fe70:820d LEN=88 TC=0 HOPLIMIT=248 FLOWLBL=0 PROTO=UDP SPT=44300 DPT=161 LEN=48 
Sep 17 03:01:37 kernel: [pppoe0-6-IN-default-D]IN=pppoe0 OUT=pppoe0 MAC= SRC=2001:0470:0001:0c84:0000:0000:0000:0096 DST=2003:00f4:8fff:15e5:9a9b:cbff:fe75:ccc4 LEN=88 TC=0 HOPLIMIT=248 FLOWLBL=0 PROTO=UDP SPT=34908 DPT=161 LEN=48 
Sep 17 03:01:40 kernel: [pppoe0-6-IN-default-D]IN=pppoe0 OUT=pppoe0 MAC= SRC=2001:0470:0001:0c84:0000:0000:0000:00eb DST=2003:00f4:8fff:15e5:de39:6fff:fecc:20a6 LEN=88 TC=0 HOPLIMIT=248 FLOWLBL=0 PROTO=UDP SPT=47803 DPT=161 LEN=48 
Sep 17 03:01:45 kernel: [pppoe0-6-IN-default-D]IN=pppoe0 OUT=pppoe0 MAC= SRC=2001:0470:0001:0c84:0000:0000:0000:01ea DST=2003:00f4:8fff:15e5:e6fb:5dff:fe5d:f093 LEN=88 TC=0 HOPLIMIT=248 FLOWLBL=0 PROTO=UDP SPT=56210 DPT=161 LEN=48 
Sep 17 03:01:48 kernel: [pppoe0-6-IN-default-D]IN=pppoe0 OUT=pppoe0 MAC= SRC=2001:0470:0001:0c84:0000:0000:0000:01c3 DST=2003:00f4:8fff:15e5:0e8e:29ff:fec0:2c78 LEN=88 TC=0 HOPLIMIT=248 FLOWLBL=0 PROTO=UDP SPT=56163 DPT=161 LEN=48 
Sep 17 03:15:41 kernel: pppoe0: renamed from ppp0
Sep 17 05:21:34 kernel: pppoe0: renamed from ppp0
Sep 17 07:24:52 kernel: pppoe0: renamed from ppp0
Sep 17 09:28:05 kernel: pppoe0: renamed from ppp0

You can delete the

 route 0.0.0.0/0 {
     interface pppoe0 {
     }
 }

from CLI as the route should get auto installed unless no-default-route is specified.

Hi,
same issue after deleting the default routes.
After pppoe reconnect show ip route isn’t showing any default route until restarting the router again.

 pppoe pppoe0 {
     authentication {
         password xxxxx
         user xxxx@xxxx.xxx
     }
     description "xxxx"
     dhcpv6-options {
         pd 0 {
             length 56
         }
         rapid-commit
     }
     firewall {
         in {
             ipv6-name pppoe0-6-IN
             name pppoe0-4-IN
         }
         local {
             ipv6-name pppoe0-6-LOCAL
             name pppoe0-4-LOCAL
         }
         out {
             ipv6-name pppoe0-6-OUT
             name pppoe0-4-OUT
         }
     }
     ipv6 {
         address {
             autoconf
         }
     }
     mtu 1492
     no-peer-dns
     source-interface eth0
 }

Have tested with 1.4-rolling-202110292022 where the default-route auto option for pppoe was existing, there no issues at all.
Upgrading to later versions where this option is missing, same issues.

Hi @AWHarvard,

I am trying to reproduce this issue using VyOS as PPPoE server. Unfortunately I can’t reproduce the issue.

Can you also provide the log when it reconnects and assigns the IP to the interface?

Thanks,
@c-po

Hi, sorry for the late reply.
I’ve done some more testing.
Issue can be reproduced with letting the Ethernet connection from the modem connected and only reconnect the 2 VDSL wires to the modem.
After that PPP gets assigned a new IP but the default route is missing.

Tested two ways of config with the same result:

First: no-default-route set for PPP and configuring the interface route manually.
Second no-default-route NOT set for PPP and not doing any static routing.

Unfortunately i was unable to get more into the logs but I’ve downloaded all from /var/log, i could provide logs from these files as needed.