0

I am trying to set up a PPPoE routed connection to my ISP on a tagged VLAN. I can complete the connection successfully: I receive my IP and the IP of the other point. This is the relevant log:

apr 08 11:24:51 dns pppd[19644]: Plugin rp-pppoe.so loaded.
apr 08 11:24:51 dns pppd[19645]: pppd 2.4.7 started by tempadmin, uid 1000
apr 08 11:24:51 dns pppd[19645]: Send PPPOE Discovery V1T1 PADI session 0x0 length 4
apr 08 11:24:51 dns pppd[19645]:  dst ff:ff:ff:ff:ff:ff  src d0:50:99:c1:08:6b
apr 08 11:24:51 dns pppd[19645]:  [service-name]
apr 08 11:24:51 dns pppd[19645]: Recv PPPOE Discovery V1T1 PADO session 0x0 length 16
apr 08 11:24:51 dns pppd[19645]:  dst d0:50:99:c1:08:6b  src dc:99:14:97:8d:d6
apr 08 11:24:51 dns pppd[19645]:  [service-name] [AC-name MIBNG205]
apr 08 11:24:51 dns pppd[19645]: Send PPPOE Discovery V1T1 PADR session 0x0 length 4
apr 08 11:24:51 dns pppd[19645]:  dst dc:99:14:97:8d:d6  src d0:50:99:c1:08:6b
apr 08 11:24:51 dns pppd[19645]:  [service-name]
apr 08 11:24:51 dns pppd[19645]: Recv PPPOE Discovery V1T1 PADS session 0xe93 length 4
apr 08 11:24:51 dns pppd[19645]:  dst d0:50:99:c1:08:6b  src dc:99:14:97:8d:d6
apr 08 11:24:51 dns pppd[19645]:  [service-name]
apr 08 11:24:51 dns pppd[19645]: PADS: Service-Name: ''
apr 08 11:24:51 dns pppd[19645]: PPP session is 3731
apr 08 11:24:51 dns pppd[19645]: Connected to dc:99:14:97:8d:d6 via interface enp7s0.1036
apr 08 11:24:51 dns pppd[19645]: using channel 19
apr 08 11:24:51 dns pppd[19645]: Using interface ppp0
apr 08 11:24:51 dns pppd[19645]: Connect: ppp0 <--> enp7s0.1036
apr 08 11:24:51 dns pppd[19645]: sent [LCP ConfReq id=0x1 <mru 1492> <magic 0xd41fa14a>]
apr 08 11:24:51 dns systemd-udevd[19646]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
apr 08 11:24:51 dns NetworkManager[3412]: <info>  [1554715491.2380] manager: (ppp0): new Ppp device (/org/freedesktop/NetworkManager/Devices/33)
apr 08 11:24:51 dns pppd[19645]: rcvd [LCP ConfReq id=0x2 <mru 1492> <auth pap> <magic 0xb04d6be8>]
apr 08 11:24:51 dns pppd[19645]: sent [LCP ConfAck id=0x2 <mru 1492> <auth pap> <magic 0xb04d6be8>]
apr 08 11:24:51 dns pppd[19645]: rcvd [LCP ConfAck id=0x1 <mru 1492> <magic 0xd41fa14a>]
apr 08 11:24:51 dns pppd[19645]: sent [LCP EchoReq id=0x0 magic=0xd41fa14a]
apr 08 11:24:51 dns pppd[19645]: sent [PAP AuthReq id=0x1 user="vodafoneadsl" password="vodafoneadsl"]
apr 08 11:24:51 dns pppd[19645]: rcvd [LCP EchoRep id=0x0 magic=0xb04d6be8]
apr 08 11:24:51 dns NetworkManager[3412]: <info>  [1554715491.2561] devices added (path: /sys/devices/virtual/net/ppp0, iface: ppp0)
apr 08 11:24:51 dns NetworkManager[3412]: <info>  [1554715491.2561] device added (path: /sys/devices/virtual/net/ppp0, iface: ppp0): no ifupdown configuration found.
apr 08 11:24:51 dns pppd[19645]: rcvd [PAP AuthAck id=0x1 "3063979"]
apr 08 11:24:51 dns pppd[19645]: Remote message: 3063979
apr 08 11:24:51 dns pppd[19645]: PAP authentication succeeded
apr 08 11:24:51 dns pppd[19645]: peer from calling number DC:99:14:97:8D:D6 authorized
apr 08 11:24:51 dns pppd[19645]: sent [IPCP ConfReq id=0x1 <addr 0.0.0.0>]
apr 08 11:24:51 dns pppd[19645]: rcvd [IPCP ConfReq id=0x1 <addr 109.116.168.1>]
apr 08 11:24:51 dns pppd[19645]: sent [IPCP ConfAck id=0x1 <addr 109.116.168.1>]
apr 08 11:24:51 dns pppd[19645]: rcvd [IPCP ConfNak id=0x1 <addr 109.116.170.7>]
apr 08 11:24:51 dns pppd[19645]: sent [IPCP ConfReq id=0x2 <addr 109.116.170.7>]
apr 08 11:24:51 dns pppd[19645]: rcvd [IPCP ConfAck id=0x2 <addr 109.116.170.7>]
apr 08 11:24:51 dns pppd[19645]: local  IP address 109.116.170.7
apr 08 11:24:51 dns pppd[19645]: remote IP address 109.116.168.1
apr 08 11:24:51 dns NetworkManager[3412]: <info>  [1554715491.3604] device (ppp0): state change: unmanaged -> unavailable (reason 'connection-assumed', sys-iface-state: 'external')
apr 08 11:24:51 dns pppd[19645]: Script /etc/ppp/ip-up started (pid 19683)
apr 08 11:24:51 dns NetworkManager[3412]: <info>  [1554715491.3612] device (ppp0): state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'external')
apr 08 11:24:51 dns pppd[19645]: Script /etc/ppp/ip-up finished (pid 19683), status = 0x0

I have set the default route to go thought the PPP:

default dev ppp0 scope link 
10.1.0.0/24 dev enp8s0 proto kernel scope link src 10.1.0.1 
10.40.0.0/24 via 10.40.0.2 dev tun0 
10.40.0.2 dev tun0 proto kernel scope link src 10.40.0.1 
10.41.0.0/24 via 10.41.0.2 dev tun1 
10.41.0.2 dev tun1 proto kernel scope link src 10.41.0.1 
10.70.0.0/24 dev wg0 proto kernel scope link src 10.70.0.1 
10.99.0.0/24 dev enp3s0.99 proto kernel scope link src 10.99.0.1 
10.100.0.0/21 dev br0 proto kernel scope link src 10.100.0.1 
10.150.0.0/24 dev vboxnet0 proto kernel scope link src 10.150.0.1 
109.116.168.1 dev ppp0 proto kernel scope link src 109.116.170.7 
169.254.0.0/16 dev enp8s0 scope link metric 1000 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 

I also have MASQUERADING in place and everything is open in my iptables.

IPTABLES -S:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o ppp0 -j ACCEPT

IPTABLES -S -t nat:

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o ppp0 -j MASQUERADE

With this config I can:

  1. Perform UDP DNS queries everywhere (tested with dig @x.x.x.x www.google.com)

However ping fails (I cannot even ping the remote PPPoE endpoint) and TCP connections get stuck after the SYN/ SYN,ACK phase. Here is a WireShark screenshot where you can see:

  1. DNS query working as expected.
  2. ICMP failing.
  3. TCP handshake successful.
  4. TCP stuck.
  5. FIN, ACK successful.

I really do not understand what is going on. Routes seem to be fine since I can dig an arbitrary DNS just fine. Also TCP handshake works. Pings do not however. I do not think it is an MTU/MSS problem since I cannot ping even with a very small packet (but I can send and receive ~100 bytes worth of UDP).

What am I missing? I must point out that the same connection dialed by my ISP provided router works flawlessly. I did an inspection of what my ISP provided router does with pppoe-sniff but it does not return any special configuration.

I'm using an Intel® i210 network card (on this board https://www.asrockrack.com/general/productdetail.asp?Model=E3C226D2I#Specifications) on Ubuntu 18.04.2 LTS (Linux dns 4.15.0-47-generic #50-Ubuntu SMP Wed Mar 13 10:44:52 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux).

Thank you in advance for any suggestion.


Related but unhelpful:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.