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