Ethernet Troubleshooting
This document shows simple ways to troubleshoot Ethernet settings on CE devices. It doesn't matter whether the connection uses DHCP, static IP, or PPPoE. This guide explains the main steps and commands to diagnose and fix common problems.
It includes:
- How to log in to the CE terminal and view the last settings.
- Check the current IP address and interface status.
- View the system log for Ethernet interfaces.
- View the run-time service for Ethernet interfaces.
- Verify the system's network settings using UCI.
By following the steps in this guide, users can diagnose and fix most Ethernet problems themselves.
Troubleshooting Steps
- Cloud
- UCI
- Run-Time
- Testing
- Log
Cloud configuration verification
This section details how to check the configurations made in the cloud. The commands below can be used to verify the cloud configuration.
Access the CE Terminal
Follow these steps to gain access to the CE device via the Command Line Interface (CLI).
sudo su -
The sudo su - command starts a shell session with superuser privileges, enabling execution of tasks that require elevated permissions, such as networking and system configuration.
Verify the Last Applied Configuration
This command is used to view information about the last successfully applied Ethernet configuration. Here this command is used to check the configuration details of the eth0 Ethernet interface from the stored configuration response JSON file.
cat /tmp/last_config_response.json | jq '.interfacesConfig.ethernet.eth0'
This example output shows the last configuration done on Ethernet.
Example Response:
{
"disable": false,
"trafficPolicy": null,
"zoneType": "wan",
"multiWanConfigType": "dhcp",
"isPrimaryMultiWan": false,
"isSecondaryMultiWan": false,
"multiWanFailOverTime": null,
"multiWanRestoreTime": null,
"multiWanPingTarget": null,
"multiWanNotificationEmail": null,
"interfaceName": "eth0",
"configType": "dhcp",
"bridgeGroup": null,
"addresses": [
{
"address": "10.255.254.50",
"netmask": "255.255.255.0",
"gatewayIp": null,
"announce": false
}
],
"description": "WAN Interface eth0",
"isAutoConfigured": 0,
"status": null,
"duplex": null,
"mtu": 0,
"speed": null,
"isHubInterface": null,
"pppoeUser": null,
"pppoePassword": null,
"multiWanConfig": {
"interfaceName": "eth0",
"targetIps": [
"8.8.8.8",
"4.2.2.2"
],
"failureInterval": 5,
"recoveryInterval": 5,
"pingInterval": 5,
"pingTimeout": 2,
"multiWANMetric": 1,
"multiWANWeight": 2,
"enable": false
}
}
Q:1 What is the purpose of cloud configuration verification?
Cloud configuration verification ensures that the CE device has correctly received and applied the latest Ethernet settings pushed from the cloud platform. By checking the stored configuration, you can confirm: Whether the correct interface type (DHCP, Static, PPPoE) was applied, Whether IP, netmask, gateway, and Multi‑WAN settings were delivered properly, Whether any mismatch exists between cloud settings and the CE’s actual runtime behavior. This step helps identify configuration sync issues before moving on to deeper troubleshooting.
Q:2 Which file stores the last configuration received from the cloud?
The last configuration received from the cloud is stored in: /tmp/last_config_response.json. This JSON file contains the most recent Ethernet configuration applied to the CE, including interface type, IP settings, Multi‑WAN parameters, and other interface attributes. It is the primary reference for verifying what the cloud has pushed to the device.
UCI Configuration Verification
This section focuses on verifying the Ethernet configuration stored in the UCI system.
Verify Network Configuration Details
Check the network configuration using the Unified Configuration Interface (UCI). To check the network settings on an Ethernet interface, use the following command. This command displays the UCI network configuration for an Ethernet network. Specify the desired Ethernet interface to check in the command, for example, eth0. Replace eth0 with the actual Ethernet interface name to which the configuration is applied. This command displays the UCI network configuration for only the specified Ethernet interface.
uci show netwrok | grep eth0
The given one is just an example output; when this command is run, it will show something like this.
Example Response
network.loopback=interface
network.loopback.device='lo'
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.@globals[0]=globals
network.@globals[0].packet_steering='1'
network.eth0=interface
network.eth0.device='eth0'
network.eth0.default_wan='1'
network.eth0.disabled='0'
network.eth0.proto='static'
network.eth0.ipaddr='172.20.10.8'
network.eth0.netmask='255.255.255.0'
network.eth0.dns='172.20.10.1'
network.eth3=interface
network.eth3.device='eth3'
network.eth3.proto='static'
network.eth3.netmask='255.255.255.0'
network.eth3.disabled='0'
network.eth3.ipaddr='172.30.1.1'
network.@rule[0]=rule
network.@rule[0].priority='901'
network.@rule[0].lookup='main'
network.wlm0=interface
network.wlm0.disabled='1'
network.wlm0.proto='3g'
network.wlm0.pppname='wlm0'
network.wlm0.device='ttyUSB0'
network.wlm0.apn='comgt'
network.wlm0.ipv6='0'
network.wlm0.delegate='0'
network.wlm0.metric='2'
network.wlm0.ip4table='2'
network.f85c71f21c3040bdb4abcd168fa8e900=route
network.f85c71f21c3040bdb4abcd168fa8e900.target='172.30.2.0'
network.f85c71f21c3040bdb4abcd168fa8e900.netmask='255.255.255.0'
network.f85c71f21c3040bdb4abcd168fa8e900.gateway='172.31.0.2'
network.f85c71f21c3040bdb4abcd168fa8e900.table='main'
network.f85c71f21c3040bdb4abcd168fa8e900.proto='static'
network.f85c71f21c3040bdb4abcd168fa8e900.metric='1'
network.f85c71f21c3040bdb4abcd168fa8e900.interface='br25'
network.1777530465de4eafada07376f1239abf=route
network.1777530465de4eafada07376f1239abf.target='172.30.1.0'
network.1777530465de4eafada07376f1239abf.netmask='255.255.255.0'
network.1777530465de4eafada07376f1239abf.gateway='172.31.0.1'
network.1777530465de4eafada07376f1239abf.table='main'
network.1777530465de4eafada07376f1239abf.proto='static'
network.1777530465de4eafada07376f1239abf.metric='1'
network.eth1=interface
network.eth1.proto='static'
network.eth1.device='eth1'
network.eth1.ipaddr='100.100.100.2'
network.eth1.netmask='255.255.255.0'
network.eth1.dns='172.20.10.1'
Q:1 What is the purpose of verifying the UCI Ethernet configuration?
Verifying the UCI Ethernet configuration helps confirm whether the CE device is using the correct network settings at the system level. This check allows you to: Ensure the interface (e.g., eth0) is configured with the correct IP address, netmask, DNS, and protocol (DHCP/Static/PPPoE), Detect mismatches between cloud‑pushed settings and the CE’s actual applied configuration, Identify issues such as disabled interfaces, incorrect IP assignments, or missing routes, Validate that the CE is using the intended network interface for WAN or LAN roles. In short, UCI verification ensures the CE’s active system configuration matches what you expect.
Q:2 Which checks should I do if grep shows no output?
If the command returns no output, it means the CE could not find any UCI entries matching the interface name you searched for. To resolve this: Check for typos The command in your example contains a typo: uci show netwrok | grep eth0 It should be: uci show network | grep eth0. Verify the interface name Ensure the interface exists on the CE. For example, the device may use eth1, eth2, or wan instead of eth0. List all network configurations Run: uci show network. This helps you identify the correct interface name. Check if the interface is deleted or not configured If the interface is missing entirely, it may not be configured or may have been removed. No output simply means the CE has no matching UCI configuration for the interface you searched for.
Run time Configuration Verification
Run the following commands given here to check the running status of Ethernet
Check Network Service Status
To check the status of the Ethernet network, run the following command.
/etc/init.d/network status
When this command is run, an output similar to the example below appears.
Example Response
running
To manually start or stop the network service, use the following commands.
/etc/init.d/network start
/etc/init.d/network stop
Q:1 How to check if the Ethernet network service is currently on or off?
You can check the current status of the Ethernet network service by running: /etc/init.d/network status. If the output shows running, the network service is active. If it shows stopped, inactive, or no output at all, the service is not running.
Q:2 What to do if running “/etc/init.d/network status” shows stopped or inactive?
If the network service is stopped or inactive: Start the service manually:- /etc/init.d/network start, Check for configuration errors Incorrect UCI settings or invalid interface parameters can prevent the service from starting, Review logs for errors:- logread | grep network. Restart the device if needed A reboot can help apply pending configuration changes. If the service still fails to start, re‑verify the Ethernet configuration in UCI and the cloud configuration.
Test Verification
Validate the Assigned IP Address and Network Configuration
Use this command to view the status of current network interfaces and the IP addresses assigned to them. Here it is used to check basic information about the Ethernet interface (eth0). It displays network-related details of the eth0 interface. Replace eth0 with the name of the Ethernet interface on which the settings are configured or which is to be checked.
ifconfig eth0
The example output of ifconfig eth0 shown here is just for reference. It does not remain the same in every case; it may vary.
Example Response
eth0 Link encap:Ethernet HWaddr 08:00:27:3A:BA:D5
inet addr:172.20.10.4 Bcast:172.20.10.15 Mask:255.255.255.240
inet6 addr: fe80::a00:27ff:fe3a:bad5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13056 errors:0 dropped:0 overruns:0 frame:0
TX packets:24309 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2965802 (2.8 MiB) TX bytes:3967903 (3.7 MiB)
Check Internet Connectivity from CE Device
Run the ping test:
The ping command can be used on the CE device to check internet connectivity.
ping 8.8.8.8
The given one is just an example output; when this command is run, it will show something like this.
Example Response
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=113 time=63.279 ms
64 bytes from 8.8.8.8: seq=1 ttl=113 time=49.643 ms
64 bytes from 8.8.8.8: seq=2 ttl=113 time=82.592 ms
Q:1 What does it mean if the ping command shows “Request timed out” or no response?
If ping 8.8.8.8 shows Request timed out, it indicates that the CE device is unable to reach the internet. Common causes include: No IP address assigned to the Ethernet interface, Incorrect gateway or DNS configuration, WAN cable unplugged or link down, ISP outage or upstream network issue, Firewall rules blocking outbound traffic. This is a strong sign that the CE’s WAN interface or upstream connectivity needs further troubleshooting.
Q:2 How do I stop the ping test after starting it?
To stop an ongoing ping test, press: Ctrl + C. This immediately stops the ping process and shows a summary of packets sent, received, and lost.
Log Verification
System Log Inspection
Use this command to check for networking-related events and errors in the system logs. The logread | grep eth0 command is used to view logs related to the eth0 Ethernet interface.
logread | grep eth0
The example output of logread | grep eth0 shown here is just for reference. It does not remain the same in every case; it may vary.
Example Response
Jun 19 09:30:26 manual-testing kernel: e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 08:00:27:3a:ba:d5
Jun 19 09:30:26 manual-testing kernel: e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection
Jun 19 09:30:26 manual-testing kernel: 8021q: adding VLAN 0 to HW filter on device eth0
Jun 19 09:30:26 manual-testing kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
Jun 19 09:30:29 manual-testing mwan3-hotplug[5005]: hotplug called on eth0 before mwan3 has been set up
Jun 19 09:30:30 manual-testing firewall: Reloading firewall due to ifup of eth0 (eth0)
Jun 19 09:30:33 manual-testing firewall: Reloading network due to ifup of eth0 (eth0)
Jun 19 09:56:41 manual-testing hiclouds_config.sh[10866]: configuring interface eth0
Jun 19 09:57:08 manual-testing mwan3-hotplug[17649]: Execute ifup event on interface eth0 (eth0)
Jun 19 09:57:10 manual-testing mwan3track[18019]: Check (ping) success for target "8.8.8.8" on interface eth0 (eth0). Current score: 0
Jun 19 09:57:10 manual-testing mwan3track[18019]: Interface eth0 (eth0) is connecting
Jun 19 09:57:15 manual-testing mwan3track[18019]: Check (ping) success for target "8.8.8.8" on interface eth0 (eth0). Current score: 1
Jun 19 09:57:20 manual-testing mwan3track[18019]: Check (ping) success for target "8.8.8.8" on interface eth0 (eth0). Current score: 2
Jun 19 09:57:20 manual-testing mwan3track[18019]: Interface eth0 (eth0) is online
Jun 19 09:57:20 manual-testing mwan3-hotplug[18988]: Execute connected event on interface eth0 (eth0)
Jun 19 10:00:26 manual-testing netifd: eth0 (3736): udhcpc: sending renew to server 172.20.10.1
Jun 19 10:00:26 manual-testing netifd: eth0 (3736): udhcpc: lease of 172.20.10.4 obtained from 172.20.10.1, lease time 3600
Jun 19 10:06:21 manual-testing hiclouds_config.sh[4391]: configuring interface eth0
Jun 19 10:06:26 manual-testing mwan3track[18019]: Stopping mwan3track for interface "eth0". Status was "online"
Jun 19 10:06:50 manual-testing hiclouds_config.sh[8401]: configuring interface eth0
Jun 19 10:07:12 manual-testing mwan3-hotplug[13856]: Execute ifup event on interface eth0 (eth0)
Jun 19 10:07:17 manual-testing mwan3track[14927]: Check (ping) success for target "4.2.2.2" on interface eth0 (eth0). Current score: 0
Jun 19 10:07:17 manual-testing mwan3track[14927]: Lost 1 ping(s) on interface eth0 (eth0). Current score: 0
Jun 19 10:07:17 manual-testing mwan3track[14927]: Interface eth0 (eth0) is connecting
Jun 19 10:07:22 manual-testing mwan3track[14927]: Check (ping) success for target "8.8.8.8" on interface eth0 (eth0). Current score: 1
Jun 19 10:07:28 manual-testing mwan3track[14927]: Check (ping) success for target "8.8.8.8" on interface eth0 (eth0). Current score: 2
Jun 19 10:07:28 manual-testing mwan3track[14927]: Interface eth0 (eth0) is online
Jun 19 10:07:28 manual-testing mwan3-hotplug[16450]: Execute connected event on interface eth0 (eth0)
Jun 19 10:10:19 manual-testing mwan3track[14927]: Check (ping) failed for target "8.8.8.8" on interface eth0 (eth0). Current score: 4
Jun 19 10:13:00 manual-testing mwan3track[14927]: Check (ping) failed for target "8.8.8.8" on interface eth0 (eth0). Current score: 4
Jun 19 10:25:47 manual-testing mwan3track[14927]: Check (ping) failed for target "8.8.8.8" on interface eth0 (eth0). Current score: 4
Jun 19 10:30:26 manual-testing netifd: eth0 (3736): udhcpc: sending renew to server 172.20.10.1
Jun 19 10:30:26 manual-testing netifd: eth0 (3736): udhcpc: lease of 172.20.10.4 obtained from 172.20.10.1, lease time 3600
Jun 19 11:00:26 manual-testing netifd: eth0 (3736): udhcpc: sending renew to server 172.20.10.1
Jun 19 11:05:43 manual-testing mwan3track[14927]: Check (ping) failed for target "8.8.8.8" on interface eth0 (eth0). Current score: 4
Jun 19 11:15:27 manual-testing netifd: eth0 (3736): udhcpc: sending renew to server 172.20.10.1
Jun 19 11:15:27 manual-testing netifd: eth0 (3736): udhcpc: lease of 172.20.10.4 obtained from 172.20.10.1, lease time 3600
Jun 19 11:16:53 manual-testing mwan3track[14927]: Check (ping) failed for target "8.8.8.8" on interface eth0 (eth0). Current score: 4
Jun 19 11:35:01 manual-testing mwan3track[14927]: Check (ping) failed for target "8.8.8.8" on interface eth0 (eth0). Current score: 4