Page MenuHomeVyOS Platform

Unable to access the Internet after opening PPPoE on-demand dialing
Closed, ResolvedPublicBUG

Description

I have tried to execute the following command:

set interfaces pppoe pppoe0 connect-on-demand

The network can't be linked. In fact, I found it for a long time, but I haven't submitted the bug report. I wonder if the official can know the reason or solve the bug?

Details

Difficulty level
Normal (likely a few hours)
Version
1.3-rolling-202006090117
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Event Timeline

Is this bug report not handled?

This comment was removed by c-po.
c-po triaged this task as Low priority.Jul 8 2020, 6:04 PM
c-po changed Difficulty level from Unknown (require assessment) to Normal (likely a few hours).
c-po changed Is it a breaking change? from Unspecified (possibly destroys the router) to Perfectly compatible.

A very fast look on the source indicated wrong dictionary keys which have bewn missed out during migration to get_config_dict() - please try next rolling.

Waiting for the next rolling version, thank you.

Dial on demand still doesn't work

Well a bit more verbosity would be good. As usual:

  • provide config
  • logfiles
  • routing table
  • interface ip list
 pppoe pppoe0 {
     authentication {
         password pass
         user user
     }
+    connect-on-demand
     default-route force
     description ISP
     dhcpv6-options {
         prefix-delegation {
             interface br1 {
                 address 101
                 sla-id 2
                 sla-len 8
             }
             interface br2 {
                 address 101
                 sla-id 1
                 sla-len 8
             }
             length 56
         }
     }
     firewall {
         in {
             ipv6-name WAN-IN
             name wan
         }
         local {
             ipv6-name WAN-LOCAL
             name wan-local
         }
     }
     idle-timeout 30
     ipv6 {
         address {
             autoconf
         }
         enable
     }
     mtu 1492
     source-interface eth5
 }

Have the opportunity to study whether it is because of pppd configuration file error?

@c-po When I manually add the following commands to the following file:

/etc/ppp/peers/pppoe0

Add the following command to realize on-demand dialing:

demand

The following errors are indicated:

local/remote LL address required for demand-dialling

Can't I dial on demand when I need to negotiate?

Issue can not be reproduced:

Topology:

VyOS PPPoE server (ACN):

set service pppoe-server access-concentrator 'ACN'
set service pppoe-server authentication local-users username vyos password 'vyos'
set service pppoe-server authentication mode 'local'
set service pppoe-server client-ip-pool start '10.1.1.100'
set service pppoe-server client-ip-pool stop '10.1.1.111'
set service pppoe-server interface eth1
set service pppoe-server local-ip '172.18.254.202'
set service pppoe-server name-server '10.100.100.1'
set service pppoe-server name-server '10.100.200.1'

VyOS PPPoE client (LR1)

set interfaces pppoe pppoe0 authentication password 'vyos'
set interfaces pppoe pppoe0 authentication user 'vyos'
set interfaces pppoe pppoe0 connect-on-demand
set interfaces pppoe pppoe0 default-route 'force'
set interfaces pppoe pppoe0 no-peer-dns
set interfaces pppoe pppoe0 source-interface 'eth1'

After commit on client the "on-demand" pppoe interface is created - indicated by the 10.64.64.64 ip address.

11: pppoe0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp
    inet 10.64.64.64 peer 10.112.112.112/32 scope global pppoe0
       valid_lft forever preferred_lft forever

Once I ping any address, the interface is dialed:

cpo@LR1.wue3# ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=56 time=9.26 ms
Jul 18 10:04:51 LR1 pppd[3182]: PPP session is 1
Jul 18 10:04:51 LR1 pppd[3182]: Connected to 00:50:56:b3:ad:d6 via interface eth1
Jul 18 10:04:51 LR1 pppd[3182]: Connect: pppoe0 <--> eth1
Jul 18 10:04:51 LR1 pppd[3182]: CHAP authentication succeeded
Jul 18 10:04:51 LR1 pppd[3182]: peer from calling number 00:50:56:B3:AD:D6 authorized
Jul 18 10:04:51 LR1 pppd[3182]: Local IP address changed to 10.1.1.100
Jul 18 10:04:51 LR1 pppd[3182]: Remote IP address changed to 172.18.254.202
Jul 18 10:04:52 LR1 pppd[3182]: Open ICMP 10.1.1.100 -> 1.1.1.1
Jul 18 10:04:53 LR1 ntpd[1503]: bind(23) AF_INET 11.1.11.11#123 flags 0x9 failed: Cannot assign requested address
Jul 18 10:04:53 LR1 ntpd[1503]: unable to create socket on dum1000 (34) for 11.1.11.11#123
Jul 18 10:04:53 LR1 ntpd[1503]: failed to init interface for address 11.1.11.11
Jul 18 10:04:53 LR1 ntpd[1503]: Listen normally on 35 pppoe0 10.1.1.100:123
Jul 18 10:04:53 LR1 ntpd[1503]: Deleting interface #32 pppoe0, 10.64.64.64#123, interface stats: received=0, sent=0, dropped=0, active_time=52 secs

I already know what the problem is, using dial on demand requires negotiation to be disabled (specify remote IP and local IP explicitly)?

I have no clue what you are talking about

Is it possible to report an error or warning when on-demand dialing is enabled without negotiation between remote IP and local IP? If warned, an error fallback should be supported

In T2585#70520, @c-po wrote:

I have no clue what you are talking about

The root cause is that in PPPoE's local and remote IP (local_ip and remote_ip) dial on demand cannot be enabled when the address needs to be negotiated

Because in my previous beta, an error was reported in this case, requiring that both fields be specified explicitly

I still don't get it - about which address you are talking about? 10.64.64.64 is pppd "hisaddr" which is 0x0a404040 + ppp unit number.

Even if no remote side is present on the link, the configuration works and syslog reports:

Jul 18 10:24:42 LR1 pppd[4265]: executing /etc/ppp/ip-pre-up.d/1000-vyos-pppoe-pppoe0
Jul 18 10:24:42 LR1 pppd[4265]: local  IP address 10.64.64.64
Jul 18 10:24:42 LR1 pppd[4265]: remote IP address 10.112.112.112

Strange? I'll find a chance to test it!

@c-po When I manually add the following commands to the following file:

/etc/ppp/peers/pppoe0

Add the following command to realize on-demand dialing:

demand

The following errors are indicated:

local/remote LL address required for demand-dialling

This is my error report at the time

Then I guess you have not tested the latest version. Closing as Invalid.

I just had a test, but the problem is still the same. See the picture. Is it strange? Why can't you reproduce

Your log is not very helpful - a full log would be much better, that'
s why we have those show interfaces .... log commands

Jul 18 17:40:57 vyos pppd[8458]: Terminating on signal 15
Jul 18 17:40:57 vyos pppd[8458]: Connect time 60.8 minutes.
Jul 18 17:40:57 vyos systemd[1]: Stopping Dialing PPP connection pppoe0...
Jul 18 17:40:57 vyos pppd[8458]: Sent 13235355 bytes, received 172781331 bytes.
Jul 18 17:40:57 vyos pppd[8458]: Script /etc/ppp/ip-down started (pid 21472)
Jul 18 17:40:57 vyos pppd[8458]: Script /etc/ppp/ipv6-down started (pid 21473)
Jul 18 17:40:57 vyos pppd[8458]: sent [LCP TermReq id=0x2 "User request"]
Jul 18 17:40:57 vyos pppd[8458]: rcvd [LCP TermAck id=0x2]
Jul 18 17:40:57 vyos pppd[8458]: Connection terminated.
Jul 18 17:40:57 vyos pppd[8458]: Connect time 60.8 minutes.
Jul 18 17:40:57 vyos pppd[8458]: Sent 13235355 bytes, received 172781395 bytes.
Jul 18 17:40:57 vyos pppd[8458]: Send PPPOE Discovery V1T1 PADT session 0x9a1 length 0
Jul 18 17:40:57 vyos pppd[8458]: dst 70:62:ac:bb:00:08 src 00:98:2b:f8:3f:16
Jul 18 17:40:57 vyos pppd[8458]:
Jul 18 17:40:57 vyos pppd[8458]: Sent PADT
Jul 18 17:40:57 vyos pppd[8458]: Script /etc/ppp/ipv6-down finished (pid 21473), status = 0x0
Jul 18 17:40:57 vyos pppd[8458]: Waiting for 1 child processes...
Jul 18 17:40:57 vyos pppd[8458]: script /etc/ppp/ip-down, pid 21472
Jul 18 17:41:02 vyos pppd[8458]: sending SIGTERM to process 21472
Jul 18 17:41:02 vyos pppd[8458]: Exit.
Jul 18 17:41:02 vyos systemd[1]: ppp@pppoe0.service: Main process exited, code=exited, status=5/NOTINSTALLED
Jul 18 17:41:02 vyos systemd[1]: ppp@pppoe0.service: Failed with result 'exit-code'.
Jul 18 17:41:02 vyos systemd[1]: Stopped Dialing PPP connection pppoe0.
Jul 18 17:41:02 vyos systemd[1]: Started Dialing PPP connection pppoe0.
Jul 18 17:41:02 vyos pppd[21487]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:02 vyos pppd[21487]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:02 vyos pppd[21487]: /usr/sbin/pppd: local/remote LL address required for demand-dialling
Jul 18 17:41:02 vyos pppd[21487]: local/remote LL address required for demand-dialling
Jul 18 17:41:02 vyos systemd[1]: ppp@pppoe0.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jul 18 17:41:02 vyos systemd[1]: ppp@pppoe0.service: Failed with result 'exit-code'.
Jul 18 17:41:07 vyos systemd[1]: ppp@pppoe0.service: Service RestartSec=5s expired, scheduling restart.
Jul 18 17:41:07 vyos systemd[1]: ppp@pppoe0.service: Scheduled restart job, restart counter is at 1.
Jul 18 17:41:07 vyos systemd[1]: Stopped Dialing PPP connection pppoe0.
Jul 18 17:41:07 vyos systemd[1]: Started Dialing PPP connection pppoe0.
Jul 18 17:41:07 vyos pppd[21526]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:07 vyos pppd[21526]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:07 vyos pppd[21526]: /usr/sbin/pppd: local/remote LL address required for demand-dialling
Jul 18 17:41:07 vyos pppd[21526]: local/remote LL address required for demand-dialling
Jul 18 17:41:07 vyos systemd[1]: ppp@pppoe0.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jul 18 17:41:07 vyos systemd[1]: ppp@pppoe0.service: Failed with result 'exit-code'.
Jul 18 17:41:12 vyos systemd[1]: ppp@pppoe0.service: Service RestartSec=5s expired, scheduling restart.
Jul 18 17:41:12 vyos systemd[1]: ppp@pppoe0.service: Scheduled restart job, restart counter is at 2.
Jul 18 17:41:12 vyos systemd[1]: Stopped Dialing PPP connection pppoe0.
Jul 18 17:41:12 vyos systemd[1]: Started Dialing PPP connection pppoe0.
Jul 18 17:41:12 vyos pppd[21629]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:12 vyos pppd[21629]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:12 vyos pppd[21629]: /usr/sbin/pppd: local/remote LL address required for demand-dialling
Jul 18 17:41:12 vyos pppd[21629]: local/remote LL address required for demand-dialling
Jul 18 17:41:12 vyos systemd[1]: ppp@pppoe0.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jul 18 17:41:12 vyos systemd[1]: ppp@pppoe0.service: Failed with result 'exit-code'.
Jul 18 17:41:18 vyos systemd[1]: ppp@pppoe0.service: Service RestartSec=5s expired, scheduling restart.
Jul 18 17:41:18 vyos systemd[1]: ppp@pppoe0.service: Scheduled restart job, restart counter is at 3.
Jul 18 17:41:18 vyos systemd[1]: Stopped Dialing PPP connection pppoe0.
Jul 18 17:41:18 vyos systemd[1]: Started Dialing PPP connection pppoe0.
...skipping...
Jul 18 17:41:02 vyos pppd[21487]: /usr/sbin/pppd: local/remote LL address required for demand-dialling
Jul 18 17:41:02 vyos pppd[21487]: local/remote LL address required for demand-dialling
Jul 18 17:41:02 vyos systemd[1]: ppp@pppoe0.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jul 18 17:41:02 vyos systemd[1]: ppp@pppoe0.service: Failed with result 'exit-code'.
Jul 18 17:41:07 vyos systemd[1]: ppp@pppoe0.service: Service RestartSec=5s expired, scheduling restart.
Jul 18 17:41:07 vyos systemd[1]: ppp@pppoe0.service: Scheduled restart job, restart counter is at 1.
Jul 18 17:41:07 vyos systemd[1]: Stopped Dialing PPP connection pppoe0.
Jul 18 17:41:07 vyos systemd[1]: Started Dialing PPP connection pppoe0.
Jul 18 17:41:07 vyos pppd[21526]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:07 vyos pppd[21526]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:07 vyos pppd[21526]: /usr/sbin/pppd: local/remote LL address required for demand-dialling
Jul 18 17:41:07 vyos pppd[21526]: local/remote LL address required for demand-dialling
Jul 18 17:41:07 vyos systemd[1]: ppp@pppoe0.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jul 18 17:41:07 vyos systemd[1]: ppp@pppoe0.service: Failed with result 'exit-code'.
Jul 18 17:41:12 vyos systemd[1]: ppp@pppoe0.service: Service RestartSec=5s expired, scheduling restart.
Jul 18 17:41:12 vyos systemd[1]: ppp@pppoe0.service: Scheduled restart job, restart counter is at 2.
Jul 18 17:41:12 vyos systemd[1]: Stopped Dialing PPP connection pppoe0.
Jul 18 17:41:12 vyos systemd[1]: Started Dialing PPP connection pppoe0.
Jul 18 17:41:12 vyos pppd[21629]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:12 vyos pppd[21629]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:12 vyos pppd[21629]: /usr/sbin/pppd: local/remote LL address required for demand-dialling
Jul 18 17:41:12 vyos pppd[21629]: local/remote LL address required for demand-dialling
Jul 18 17:41:12 vyos systemd[1]: ppp@pppoe0.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jul 18 17:41:12 vyos systemd[1]: ppp@pppoe0.service: Failed with result 'exit-code'.
Jul 18 17:41:18 vyos systemd[1]: ppp@pppoe0.service: Service RestartSec=5s expired, scheduling restart.
Jul 18 17:41:18 vyos systemd[1]: ppp@pppoe0.service: Scheduled restart job, restart counter is at 3.
Jul 18 17:41:18 vyos systemd[1]: Stopped Dialing PPP connection pppoe0.
Jul 18 17:41:18 vyos systemd[1]: Started Dialing PPP connection pppoe0.
Jul 18 17:41:18 vyos pppd[21696]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:18 vyos pppd[21696]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:18 vyos pppd[21696]: /usr/sbin/pppd: local/remote LL address required for demand-dialling
Jul 18 17:41:18 vyos pppd[21696]: local/remote LL address required for demand-dialling
Jul 18 17:41:18 vyos systemd[1]: ppp@pppoe0.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jul 18 17:41:18 vyos systemd[1]: ppp@pppoe0.service: Failed with result 'exit-code'.
Jul 18 17:41:23 vyos systemd[1]: ppp@pppoe0.service: Service RestartSec=5s expired, scheduling restart.
Jul 18 17:41:23 vyos systemd[1]: ppp@pppoe0.service: Scheduled restart job, restart counter is at 4.
Jul 18 17:41:23 vyos systemd[1]: Stopped Dialing PPP connection pppoe0.
Jul 18 17:41:23 vyos systemd[1]: Started Dialing PPP connection pppoe0.
Jul 18 17:41:23 vyos pppd[21807]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:23 vyos pppd[21807]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:23 vyos pppd[21807]: /usr/sbin/pppd: local/remote LL address required for demand-dialling
Jul 18 17:41:23 vyos pppd[21807]: local/remote LL address required for demand-dialling
Jul 18 17:41:23 vyos systemd[1]: ppp@pppoe0.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jul 18 17:41:23 vyos systemd[1]: ppp@pppoe0.service: Failed with result 'exit-code'.
Jul 18 17:41:28 vyos systemd[1]: ppp@pppoe0.service: Service RestartSec=5s expired, scheduling restart.
Jul 18 17:41:28 vyos systemd[1]: ppp@pppoe0.service: Scheduled restart job, restart counter is at 5.
Jul 18 17:41:28 vyos systemd[1]: Stopped Dialing PPP connection pppoe0.
Jul 18 17:41:28 vyos systemd[1]: Started Dialing PPP connection pppoe0.
Jul 18 17:41:28 vyos pppd[21855]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:28 vyos pppd[21855]: Plugin rp-pppoe.so loaded.
Jul 18 17:41:28 vyos pppd[21855]: /usr/sbin/pppd: local/remote LL address required for demand-dialling
Jul 18 17:41:28 vyos pppd[21855]: local/remote LL address required for demand-dialling
Jul 18 17:41:28 vyos systemd[1]: ppp@pppoe0.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Jul 18 17:41:28 vyos systemd[1]: ppp@pppoe0.service: Failed with result 'exit-code'.

Okay, and the reason you have not indicated your VyOS reason is because of?

Because I think I have already made clear my meaning. Here, he reminds me that I must specify the IP addresses of local and remote before I can start dialing on demand. Am I wrong? Or configuration problem? Why are you normal?

Initiate the link only on demand, i.e. when data traffic is present. With this option, the remote IP address must be specified by the user on the command line or in an options file. Pppd will initially configure the interface and enable it for IP traffic without connecting to the peer. When traffic is available, pppd will connect to the peer and perform negotiation, authentication, etc. When this is completed, pppd will commence passing data packets (i.e., IP packets) across the link.

It seems that my guess is right. If you want to use the peer without specifying its IP address, you need to do the following:

First use the normal negotiation link, then record the remote and local IP obtained through negotiation in a file, set the on-demand link, and then start normally. I am not sure how to implement it in vyos. Maybe you can solve this problem?

erkin set Issue type to Bug (incorrect behavior).Aug 30 2021, 5:33 AM
erkin removed a subscriber: Active contributors.