Linux PPPD – Fails but NetworkManager Works

modemnetworkingpoint-to-point-protocolUbuntu

So I'm trying to get my PtP modem "Telit ME910" connected to the Verizon LTE network via pppd using Ubuntu 16.04.

If I hook it up and go through the standard Network Manager steps of "Enable Mobile Broadband", it will find the default APN and list it, so I can then select "Verizon 4G LTE Contract 1" and it connects beautifully. It created the ppp0 interface with an IP, and I can then PING 8.8.8.8 successfully.

If I hook it up and go issue "pppd call verizon", it will create the ppp0 interface with an IP, but PING fails? I know ModemManager & NetworkManager are doing more that pppd is, but I can't trace out what I'm missing. Any assistance would be amazing.

/etc/ppp/peers/verizon:

/dev/ttyUSB1
115200
connect "/usr/sbin/chat -v -f /etc/ppp/peers/verizon-chat"
noauth
#nodefaultroute

defaultroute
replacedefaultroute
usepeerdns

local
debug
persist

#updetach
nodetach

The Details of the working connection:

# ip route show table all
default dev ppp0  proto static  scope link  metric 700 
169.254.0.0/16 dev ppp0  scope link  metric 1000 
local 100.124.161.186 dev ppp0  table local  proto kernel  scope host  src 100.124.161.186 
broadcast 100.124.161.186 dev ppp0  table local  proto kernel  scope link  src 100.124.161.186 
broadcast 127.0.0.0 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101 pref medium
local ::1 dev lo  table local  proto none  metric 0  pref medium
ff00::/8 dev eno1  table local  metric 256 linkdown  pref medium
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101 pref medium

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:100.113.251.242  P-t-P:0.0.0.0  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:260 errors:0 dropped:0 overruns:0 frame:0
          TX packets:301 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:82504 (82.5 KB)  TX bytes:62112 (62.1 KB)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     700    0        0 ppp0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 ppp0

Syslog here: workingSyslog

Details of the failed connection:

# ip route show table all
default dev ppp0  scope link 
10.64.64.64 dev ppp0  proto kernel  scope link  src 100.122.108.86 
local 100.122.108.86 dev ppp0  table local  proto kernel  scope host  src 100.122.108.86 
broadcast 127.0.0.0 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
local 127.0.0.1 dev lo  table local  proto kernel  scope host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  table local  proto kernel  scope link  src 127.0.0.1 
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101 pref medium
local ::1 dev lo  table local  proto none  metric 0  pref medium
ff00::/8 dev eno1  table local  metric 256 linkdown  pref medium
unreachable default dev lo  table unspec  proto kernel  metric 4294967295  error -101 pref medium

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:100.122.108.86  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0
          TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:38 (38.0 B)  TX bytes:2065 (2.0 KB)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
10.64.64.64     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0  

Syslog here: failedSyslog

Any hints or advice are greatly appreciated. I have gone as far as manually altering the routing tables and interface settings for ppp0 so they match exactly what I see when I use the GUI(NetworkManager) but it still refuses to allow even a simple PING 8.8.8.8 to get through on ppp0. So clearly there are some networking details that aren't reflected by the standard "ifconfig/route -env/ ip route show table all" type commands that are causing the disconnect.

Best Answer

So after searching long and hard, I finally added "+ipv6" to my ppp options file, and everything started working. Now to figure out and understand why that option is required!