I have a Raspberry Pi 5 with the latest OS build (Kernel 6.6.20+rpt-rpi-2712). I have a Quectel EC25 cellular module hat plugged into the pi using QMI mode. The modem connects successfully to the network and udhcpc assigns an ip address to the wwan0 interface. The problem is that I cannot get DNS to work. I have no other networking connections to the Pi ( no wifi and no ethernet ). Through the wwan0 interface, I can ping 8.8.8.8 - but not google.com.
I was unable to get NetworkManager to work and so I disabled it and installed systemd-networkd and systemd-resolved.
There is a default route through wwan0, and /etc/resolv.conf has 8.8.8.8 setup as a DNS server. Furthermore, resolvectl shows that the interface could be using 8.8.8.8 for DNS. How can I get DNS to work through the working wwan0 internet connection? Thanks. Modem:
pi@raspberrypi:~/Desktop $ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 003 Device 002: ID 2c7c:0125 Quectel Wireless Solutions Co., Ltd. EC25 LTE modem
Connection script:
pi@raspberrypi:~/Desktop $ cat connect-cellular.sh
sudo ip link set wwan0 down
echo 'Y' | sudo tee /sys/class/net/wwan0/qmi/raw_ip
sudo ip link set wwan0 up
sudo qmicli -p -d /dev/cdc-wdm0 --device-open-net='net-raw-ip|net-no-qos-header' --wds-start-network="apn='super',ip-type=4" --client-no-release-cid
sudo udhcpc -q -f -i wwan0
Connection output:
pi@raspberrypi:~/Desktop $ ./connect-cellular.sh
Y
[/dev/cdc-wdm0] Network started
Packet data handle: '2269121952'
[/dev/cdc-wdm0] Client ID not released:
Service: 'wds'
CID: '17'
udhcpc: started, v1.35.0
Dropped protocol specifier '.udhcpc' from 'wwan0.udhcpc'. Using 'wwan0' (ifindex=3).
udhcpc: broadcasting discover
udhcpc: broadcasting select for 100.84.137.75, server 100.84.137.76
udhcpc: lease of 100.84.137.75 obtained from 100.84.137.76, lease time 7200
Dropped protocol specifier '.udhcpc' from 'wwan0.udhcpc'. Using 'wwan0' (ifindex=3).
Interface:
pi@raspberrypi:~/Desktop $ ifconfig wwan0
wwan0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 100.84.137.75 netmask 255.255.255.248 destination 100.84.137.75
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 7 bytes 1425 (1.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 147 bytes 14394 (14.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ping:
pi@raspberrypi:~/Desktop $ ping -I wwan0 google.com
PING google.com (142.251.32.14) from 100.84.137.75 wwan0: 56(84) bytes of data.
^C
--- google.com ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4101ms
pi@raspberrypi:~/Desktop $ ping -I wwan0 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 100.84.137.75 wwan0: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=151 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=164 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=113 time=204 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 150.517/172.688/203.546/22.503 ms
Route:
pi@raspberrypi:~/Desktop $ ip route
default via 100.84.137.76 dev wwan0
100.84.137.72/29 dev wwan0 proto kernel scope link src 100.84.137.75
pi@raspberrypi:~/Desktop $ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 0 0 0 wwan0
100.84.137.72 0.0.0.0 255.255.255.248 U 0 0 0 wwan0
Resolvectl:
pi@raspberrypi:~/Desktop $ resolvectl status
Global
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (eth0)
Current Scopes: none
Protocols: -DefaultRoute -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 3 (wwan0)
Current Scopes: DNS LLMNR/IPv4
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 8.8.4.4
DNS Servers: 8.8.4.4 8.8.8.8
Link 4 (wlan0)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported