I have been experimenting with this and Wireguard into the router doesn’t work. I think I may be coming up against CGNAT?
The assigned IP address that the Hex is getting is from the dongle
192.168.225.22/24
but outbound requests appear to come from:
31.94.34.49
The built in Cloud Dynamic DNS is propagating the 31.94.34.49 when the main ether1 “goes down” which is good.
After checking the notes here: https://www.waveshare.com/wiki/SIM7600G-H_4G_DONGLE
What is the difference between RNDIS, NDIS, PPP, and ECM?
Answer:
The IP obtained by different dialing methods is different and has different characteristics. Please refer to the following table for details:

Below is a detailed description of the various dials:
- NDIS driver for Internet access (9001 mode)
This method must depend on the Linux system and is suitable for application scenarios that need to be developed using Linux network socket programming. After loading the driver into the kernel, connect the SIM7600 to the motherboard with a USB cable. After the SIM7600 is turned on, the wwan0 network can be recognized. port, you can access the Internet through this network port. The bottom layer of this method depends on the USB virtual serial port of SIM7600. This dial-up method can obtain the IP provided by the public operator, and the network speed is faster.
RNDIS refers to Remote NDIS. The implementation of RNDIS based on USB is TCP/IP over USB, which is to run TCP/IP on the USB device, making the USB device look like a network card. This method only needs simple configuration, the motherboard will recognize the USB0 network card, and quickly obtain the USB0 network card and module or the operator's IP network access; RNDIS network speed is relatively fast, which is one of the most commonly used dial-up methods.
These two are the "NDIS" standard under Linux. ECM is the abbreviation of the Ethernet Networking Control Model. ECM meets the requirements of the CDC on USB. The data call established through standard CDC-ECM is routed through the router, and the obtained IP address is a private IP such as 192.168; if the kernel supports this way, no additional driver is required. All data interacting with the module through the USB bus is constrained by relevant protocols and standards, and the module reaches the module through the USB hardware to complete the interaction with the Linux motherboard.
This method must depend on the Linux system and is suitable for application scenarios that need to be developed using Linux network socket programming. After configuring and running the relevant scripts, connect the SIM7600 with a USB cable. After the SIM7600 is powered on, dial up the pppd script to identify it. To the ppp0 network port, you can access the Internet through this network port and obtain the operator's IP. The bottom layer of this method depends on the USB virtual serial port of SIM7600.
I thought maybe the dongle was in the wrong mode (9018) which clearly specifies getting a private IP address - I changed modes to 9001 and 9011 (not with the Modem Init command but explicitly via Putty on a separate machine) but still get a private address in those modes.
Does it seem more likely that the 192.168 address is in fact coming from the carrier network dynamically as part of CGNAT and not the dongle and this means it is only effective for outbound traffic not remote admin when the main internet connection goes down?