Go to main content

Troubleshooting Network Administration Issues in Oracle® Solaris 11.4

Exit Print View

Updated: November 2020
 
 

Troubleshooting Network Connectivity and Configuration Issues

The following are general guidelines for troubleshooting network connectivity and configuration issues.

One of the first signs of trouble on a network is loss of communications by one or more of the systems. If a system does not to come up the first time that it is added to the network, the problem might be a faulty NIC or a problem with a network daemon that is managed by SMF.

If a single system that previously was connected to the network suddenly develops a network problem, the problem could be its network interface configuration. If the systems on a network can communicate with each other, but not with other networks, the problem could be the router. Or, the problem could be with the other network.

Performing Basic Network Configuration Checks

You can troubleshoot network configuration problems with a single system by using the dladm and ipadm commands. These two commands, when used without any options, provide useful information about your current network configuration. The output of both commands displays information about the current state of the link, IP interface, and IP address, respectively.

    The following are some of the ways in which you can use these commands to troubleshoot configuration issues:

  • Use the dladm command to display general information about all of the datalinks that are on a system:

    # dladm
    LINK        CLASS     MTU     STATE     OVER
    net0        phys      1500    up        --
    
  • Display information about the mapping between the datalinks, their generic names, and the corresponding network device instances as follows:

    # dladm show-phys
    LINK     MEDIA        STATE     SPEED     DUPLEX     DEVICE
    net0     Ethernet     up        1000      full       e1000g0
  • Use the ipadm command to display general information about all of the IP interfaces that are on a system:

    # ipadm
    NAME         CLASS/TYPE STATE     UNDER  ADDR
    lo0          loopback   ok        --     --
     lo0/v4       static    ok        --     127.0.0.1/8
     lo0/v6       static    ok        --     ::1/128
     net0         ip        ok        --     --
     net0/v4      static    ok        --     203.0.113.10/24
  • Use the ipadm show-if interface command to display information about a specific IP interface:

    # ipadm show-if net0
    IFNAME     CLASS    STATE    ACTIVE OVER
    net0       ip       ok       yes    --
    
  • Display information about all of the interfaces on a system as follows:

    # ipadm show-if
    IFNAME       CLASS        STATE     ACTIVE     OVER
    lo0          loopback     ok        yes        --
    net0         ip           ok        yes        --
  • Display information about all of the IP addresses on the system as follows:

    # ipadm show-addr
    ADDROBJ          TYPE       STATE     ADDR
    lo0/v4           static     ok        127.0.0.1/8
    net0/v4          static     ok        192.0.2.3/24
  • Use the ipadm show-addr interface command to display information about a specific interface's IP address:

    # ipadm show-addr net0
    ADDROBJ           TYPE     STATE        ADDR
    net0/v4           dhcp     ok           203.0.113.10/24
  • Display the properties of a specific IP address as follows:

    # ipadm show-addrprop net0/v4
    ADDROBJ    PROPERTY   PERM CURRENT         PERSISTENT     DEFAULT         POSSIBLE
    net0/v4    broadcast  r-   203.0.113.10    --             203.255.255.255  --
    net0/v4    deprecated rw   off             --             off             on,off
    net0/v4    prefixlen  rw   24              --             8               1-30,32
    net0/v4    private    rw   off             --             off             on,off
    net0/v4    reqhost    r-   --              --             --              --
    net0/v4    transmit   rw   on              --             on              on,off
    net0/v4    zone       rw   global          --             global          --

See the ipadm(8) man page.

Verifying That Network Services and Daemons Are Running

A critical step in troubleshooting issues with network connectivity is to determine the current status of all of the SMF network services that are running on the system.

You can verify the current status of the SMF network services that are running on the system as follows:

$ svcs -x service-name

The output of this command shows all of the services that are in a maintenance state.

To investigate further, check the log file as follows:

$ svcs -Lv service-name-from-svcs-x-output

Or, use the following command to check the log file:

$ view `svcs -L service-name-from-svcs-x-output

You can use either of the following commands to check whether the network SMF service is online or in a degraded state:

$ svcs '*network*' | grep -v online
$ svcs '*network*' | egrep 'maint|degrade|off|disable

Use the following command to obtain more information about the state of the svc:/network/loopback:default SMF service:

$ svcs -xv svc:/network/loopback:default
svc:/network/loopback:default (loopback network interface)
 State: online since Thu Dec 05 19:30:54 2013
   See: man -M /usr/share/man -s 1M ifconfig
   See: /system/volatile/network-loopback:default.log
Impact: None.

Running Basic Network Diagnostic Checks

Less obvious causes of network problems are those that degrade network performance. If the network is having problems, you can run a series of software checks to diagnose and fix basic problems. For example, you can use the ping command to quantify problems, such as the loss of packets by a system. Or, you can use the netstat command to display routing tables and protocol statistics. For more information about the various methods that you can use to troubleshoot these types of networking problems, see Using Observability Tools to Monitor Network Traffic Usage and Resources for Monitoring and Detecting Problems on a TCP/IP Network.

Third-party network diagnostic programs also provide a number of tools for troubleshooting network issues. Refer to the third-party product documentation for specifics.

    The following are some of the methods that you can use to perform basic network software checking:

  • Use the netstat command to display network information.

    The netstat command displays a variety of useful information for troubleshooting network connectivity issues. The type of information that is displayed depends on the options that you specify. See Monitoring and Analyzing the Network in Administering TCP/IP Networks, IPMP, and IP Tunnels in Oracle Solaris 11.4 and the netstat(8) man page.

  • Check the /etc/inet/hosts database to ensure that all of the entries are correct and current.

    See the hosts(5) man page.

  • Try to connect to the local system by using the telnet command.

    See the telnet(1) man page.

  • Ensure that the inetd network daemon is running.

    # /usr/bin/pgrep inetd
    883

    The previous output indicates that the inetd daemon is running on the system with the process ID 883.

  • If IPv6 is enabled on your network, verify that the svc:/network/routing/ndp SMF service is enabled.

    # svcs ndp
    STATE          STIME    FMRI
    online         Apr_20   svc:/network/routing/ndp:default

    The previous output indicates that the svc:/network/routing/ndp SMF service is enabled.

  • Check the system's router and routing information.

Troubleshooting Issues When Adding a Persistent Route

You use the route command to manage the network routing tables and to add, modify, and remove persistent routes. Always specify the –p option to ensure that any changes you make to the network routing tables persist across system reboots.


Note -  It is important to use care when adding persistent routes to make sure that any routes that are being added do not conflict with any existing persistent configuration.

Check whether a route already exists in the persistent configuration as follows:

# route -p show
persistent: route add default 203.0.113.1 -ifp net0

If the route already exists in the persistent configuration, the information that is in the network routing tables (which is not persistent) might differ from the persistent configuration.

The following example illustrates this point further. In this example, an attempt is made to add a persistent route to the net1 interface. However, the command fails because that persistent route already exists for the net0 interface, per the previous example's output.

# route -p add default 203.0.113.1 -ifp net1
add net default: gateway 203.0.113.1
add persistent net default: gateway 203.0.113.1: entry exists
Warning: persistent route might not be consistent with routing table.

Running the route –p show command again reveals that the persistent route did not change and is still configured for net0, as shown in the following output:

# route -p show
persistent: route add default 203.0.113.1 -ifp net0

However, the command did change the routing tables in the kernel to use net1, as shown in the following output:

# netstat -nr

Routing Table: IPv4
  Destination          Gateway           Flags  Ref     Use Interface
-------------------- ------------------- -----  ----    --- ---------
default              203.0.113.1         UG       2       1 net1
203.0.113.0          203.0.113.78        U        3       0 net1
127.0.0.1            127.0.0.1           UH       2     466 lo0 
.
.
.

Therefore, it is always a best practice to delete any existing persistent route configuration prior to adding a new route. See Creating Persistent (Static) Routes in Configuring an Oracle Solaris 11.4 System as a Router or a Load Balancer.