You are not logged in.
I configured my system many years ago to use pppoe at boot time to connect to my ISP.
After updating my system fully on Frdiay and rebooting this morning, the systemd unit from the rp-pppoe (adsl.service) package failed.
The service file makes calls to scripts e.g. pppoe-start, pppoe-stop that helped manage connections once configured but they've been removed.
I followed the instructions in the package's HOW_TO_CONNECT document.
Which basically says to create a <peer_name> file use 'pppd call <peer_name>' and to then issue command
pppd call <peer_name>
I change the adsl.service file
[Unit]
Description=ADSL daemon
[Service]
Type=forking
# ExecStart=/usr/bin/pppoe-start
# ExecStop=/usr/bin/pppoe-stop
ExecStart=/usr/bin/pppd -s -I eno1
[Install]
WantedBy=multi-user.target
There are 2 problems
1. The new ADSL.service fails saying there is pppoe reports Timeout and Network is down.
Sure enough the ethernet port has no active light and ip link shows eno1 status is down.
(I'm already stuck since I've never had to configure any previsouly (I think the now-missing pppoe-start script took care of that)
2.
# ip link set dev eno1 up
# systemctl start adsl.service
The network port's LED is now on after 5-10 sevonds.
> ip link
1: lo <LOOPBACK,UP,LOWER> ....
2. eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
link/ether <hex digits>
altname emp0s25
4: ppp0: <POINTTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc fq_code1 state UNKNOWN mode DEFAULT group default qlen 3
link/ppp
Seems to connect successfully but eno1 doesn't have an ip4 address and ping google.com says there is no name resolution. After a few minutes the ppp0 link disappears.
Since I think the obsolete/missing 'pppoe-start' script took care of all these things automatically I'm completely lost and realise I have no idea how to actually set up a usable DSL connection.
Before these changes the adsl.service connected everything automatically for me including access to DNS & DHCP so that eno1 would be assigned dynamic IP4 and IP6 addresses. Furthermore I could stop and restart the adsl service which would effectively assign new addresses to eno1 which I used quite often.
Sorry for such basic questions but "It always just worked".
How can I set up my system to replicate the previous behaviour?
Offline
I see two possibilities: Rollback to the previous version and exempting "rp-pppoe" from updates (fast and conservative) or reconfiguring your system to the new "rp-pppoe" (slower and progressive). What do you prefer?
Offline
Rolling back rp-pppoe -> 3.15-2 and ppp -> 2.4.9-3 works exactly as it used too - thanks for that! I'm no longer air-gapped!
That's a temporary fix though. I much prefer the progressive solution if anyone's willing to handhold me through the process since nit's clear I'm out of my depth.
It occurs to me that the live CD configures a working network connection "automatically".
I guess using DHCP. No idea about the DNS servers though - maybe google or cloudflares public ones?
Replicating that strikes me as a good solution too.
Offline
The service file makes calls to scripts e.g. pppoe-start, pppoe-stop that helped manage connections once configured but they've been removed.
Not only that - "/etc/ppp/pppoe.conf" is missing too. Fun fact: Even the post-installation remarks of the "rp-pppoe" 4.0 package mention possible changes to "/etc/ppp/pppoe.conf"...
The unit "adsl.service" is still installed, but completely non-functional. Please disable and ignore it for now.
[Unit] Description=ADSL daemon [Service] Type=forking # ExecStart=/usr/bin/pppoe-start # ExecStop=/usr/bin/pppoe-stop ExecStart=/usr/bin/pppd -s -I eno1 [Install] WantedBy=multi-user.target
That doesn't look right - "-s -I eno1" are parameters for "pppoe", not "pppd".
I followed the instructions in the package's HOW_TO_CONNECT document.
Which basically says to create a <peer_name> file use 'pppd call <peer_name>' and to then issue commandpppd call <peer_name>
No. You should create a peer file manually and then connect to this peer via "pppd call" command.
Assuming your pap/chap-secrets are still correct, create a file "/etc/ppp/peers/NAME" and replace the uppercase strings (NAME, YOUR_ISP, YOUR_USERNAME) with your correct values:
pty ´/usr/sbin/pppoe -s -I eno1´
sync
noauth
remotename YOUR_ISP
name YOUR_USERNAME
noipdefault
nodetach
noaccomp
nodeflate
nopcomp
novj
novjccomp
lcp-echo-interval 10
Try to connect via
pppd call NAME
Offline
Not only that - "/etc/ppp/pppoe.conf" is missing too. Fun fact: Even the post-installation remarks of the "rp-pppoe" 4.0 package mention possible changes to "/etc/ppp/pppoe.conf"...
A comment in "pppoe.conf" from the 3.15-2 pkg says pppoe.conf is only used by the scripts (removed in 4.0) and not by pppoe itself.
That doesn't look right - "-s -I eno1" are parameters for "pppoe", not "pppd"
Yes that's my mistake.
- I've upgraded ppp -> 2.5.0-1 and rp-pppoe -> 4.0-1
- I've created a peer file "DSL_PEER"
After rebooting:
- the ethernet port LED light is off. Sure enough eno1 is DOWN
> ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether <hex string> brd ff:ff:ff:ff:ff:ff
altname enp0s25
> sudo pppd call DSL_PEER
Warning: couldn't open ppp database /run/pppd/pppd2.tdb
Using interface ppp0
Connect: ppp0 <--> /dev/pts/2
pppoe: send (sendPacket): Network is down
pppoe: recv (receivePacket): Network is down
pppoe: send (sendPacket): Network is down
pppoe: send (sendPacket): Network is down
LCP: timeout sending Config-Requests
Connection terminated.
Modem hangup
pppoe: Timeout waiting for PADO packets
pppoe: send (sendPacket): Network is down
- Set link status UP
> sudo ip link set dev eno1 up
> sudo pppd call DSL_PEER
Warning: couldn't open ppp database /run/pppd/pppd2.tdb
Using interface ppp0
Connect: ppp0 <--> /dev/pts/2
Remote message: Login ok
PAP authentication succeeded
Cannot determine ethernet address for proxy ARP
local IP address <IP4 address>
remote IP address <IP4 address>
local LL address <20 digit hex-string hhhh:hhhh:hhhh:hhhh:hhhh>
remote LL address <20 digit hex-string hhhh:hhhh:hhhh:hhhh:hhhh>
...
That succeeded!
> ip addresss
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 30:5a:3a:75:08:0d brd ff:ff:ff:ff:ff:ff
altname enp0s25
inet6 <32 hex digits hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh>/64 scope global temporary dynamic
valid_lft 86146sec preferred_lft 86038sec
inet6 <32 hex digits hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh>/64 scope global dynamic mngtmpaddr proto kernel_ra
valid_lft 86146sec preferred_lft 86146sec
inet6 <20 hex digits hhhh:hhhh:hhhh:hhhh:hhhh>/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
3: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc fq_codel state UNKNOWN group default qlen 3
link/ppp
inet <IP4 address> peer <IP4 address>/32 scope global ppp0
valid_lft forever preferred_lft forever
inet6 <32 hex digits hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh:hhhh>/64 scope global dynamic mngtmpaddr proto kernel_ra
valid_lft 86141sec preferred_lft 3341sec
inet6 <20 hex digits hhhh:hhhh:hhhh:hhhh:hhhh> peer <20 hex digits hhhh:hhhh:hhhh:hhhh:hhhh>/128 scope link nodad
valid_lft forever preferred_lft forever
Progress - but I'm obviously missing something:
> ping archlinux.org
> ping: archlinux.org: Temporary failure in name resolution
> traceroute 4.4.4.4
traceroute to 4.4.4.4 (4.4.4.4), 30 hops max, 60 byte packets
connect: Network is unreachable
Offline
Hmmm. Looks like pppd only sets up the interfaces and nothing more.
When you are connected after "pppd call ..." enter the following commands:
ip route
ip -6 route
cat /etc/resolv.conf
and post their output here.
Offline
Sorry it's taken me so long to reply, life gets in the way sometimes
$ sudo pppd call DSL_PEER
After a successful login
$ ip route
168.95.98.254 dev ppp0 proto kernel scope link src 111.252.125.16
ip -6 route
2001:b011:8005:1197::/64 dev eno1 proto kernel metric 256 expires 86251sec pref medium
2001:b011:8005:c819::/64 dev ppp0 proto kernel metric 256 expires 86366sec pref medium
fe80::2621:24ff:fee9:63f dev ppp0 proto kernel metric 256 pref medium
fe80::ac2e:1a8b:d37b:4495 dev ppp0 proto kernel metric 256 pref medium
fe80::/64 dev eno1 proto kernel metric 256 pref medium
default via fe80::a697:33ff:fef9:d8d0 dev eno1 proto ra metric 1024 expires 1651sec mtu 1492 hoplimit 64 pref medium
default via fe80::2621:24ff:fee9:63f dev ppp0 proto ra metric 1024 expires 4466sec hoplimit 64 pref medium
$ cat /etc/resolv.conf
# Generated by resolvconf
nameserver 168.95.192.1
nameserver 168.95.1.1
resolve.conf hasn't changed during the package upgrades (manually using pppd call) nor during the downgrades (restoring the old pppoe.conf and the adsl.service file) nor rebooting.
Offline
You could try adding
defaultroute
usepeerdns
to your DSL_PEER file.
"usepeerdns" only if these aren't the correct DNS servers of your ISP already.
Looking through my old ppp configs I have
plugin rp-pppoe.so eno1
but that might not be necessary any more.
If proxyarp isn't supported anyway you could add
noproxyarp
to get rid of the error.
Offline
Since those are the correct DNS servers I've added:
defaultroute
noproxyarp
to my peer file and everything is connecting now!
I think there is still something mis-configured though since any connection I make isn't stable.
For example when I visit https:www.speedtest.net the connection terminates with
...
pppoe: read (syncReadFromPPP): Session 1: Value too large for defined data type
Modem hangup
Connect time 1.6 minutes.
Sent 39449 bytes, received 132172 bytes.
Connection terminated.
Some sites seem OK, for example I can read, login and post this message here but many other sites cause this same error.
Offline
Best guess, add
mtu 1492
Maybe even lower like 1480 or 1460.
Offline