Swiftorial Logo
Home
Swift Lessons
Tutorials
Learn More
Career
Resources

Network Troubleshooting

Introduction

Network troubleshooting is the process of diagnosing and resolving issues within a computer network. This tutorial aims to provide a comprehensive guide on how to troubleshoot network problems in a Linux environment. We will cover various tools and techniques to identify and fix network issues.

1. Checking Network Connectivity

The first step in troubleshooting network issues is to check the basic connectivity. This can be done using the ping command. The ping command sends ICMP echo requests to the target host and waits for a reply.

Example:

ping google.com
PING google.com (172.217.15.110) 56(84) bytes of data.
64 bytes from lga25s56-in-f14.1e100.net (172.217.15.110): icmp_seq=1 ttl=57 time=11.9 ms
64 bytes from lga25s56-in-f14.1e100.net (172.217.15.110): icmp_seq=2 ttl=57 time=12.1 ms
                    

If you receive replies as shown above, it indicates that the network is reachable. If not, you may need to investigate further.

2. Checking Network Configuration

Verify the network configuration using the ifconfig or ip a command to ensure that the network interfaces are configured correctly.

Example using ifconfig:

ifconfig
eth0: flags=4163  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a00:27ff:fe4e:66a1  prefixlen 64  scopeid 0x20
                    

Example using ip a:

ip a
2: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
                    

Ensure that the IP addresses, subnet masks, and gateways are correctly configured.

3. Checking Routing

The route or ip route command can be used to check the routing table and ensure that the routes are correctly set.

Example using route:

route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
                    

Example using ip route:

ip route
default via 192.168.1.1 dev eth0 proto dhcp metric 100 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 
                    

Ensure that the default gateway is correctly set and that there are routes to the necessary networks.

4. DNS Issues

DNS (Domain Name System) issues can also cause network problems. Use the nslookup or dig command to check the DNS resolution.

Example using nslookup:

nslookup google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.15.110
                    

Example using dig:

dig google.com
; <<>> DiG 9.11.3-1ubuntu1.13-Ubuntu <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28749
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             300     IN      A       172.217.15.110
                    

Ensure that the DNS server is reachable and that it resolves domain names correctly.

5. Checking Firewall Settings

Firewalls can sometimes block network traffic. Use the iptables or ufw commands to check the firewall settings.

Example using iptables:

sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
                    

Example using ufw:

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
                    

Ensure that the necessary ports are open and that no rules are blocking the required traffic.

6. Advanced Tools

For more advanced troubleshooting, you can use tools like tcpdump and wireshark to capture and analyze network packets.

Example using tcpdump:

sudo tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
11:53:24.467610 IP 192.168.1.100 > 8.8.8.8: ICMP echo request, id 1, seq 1, length 64
11:53:24.467625 IP 8.8.8.8 > 192.168.1.100: ICMP echo reply, id 1, seq 1, length 64
                    

These tools provide detailed insights into the network traffic and can help identify specific issues.