Add docs/tech_docs/linux/linux_troubleshooting2.md
This commit is contained in:
150
docs/tech_docs/linux/linux_troubleshooting2.md
Normal file
150
docs/tech_docs/linux/linux_troubleshooting2.md
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
Certainly! Below is a structured reference guide that incorporates your updates and organizes the troubleshooting steps from Layer 1 to Layer 7 of the OSI model, specifically tailored for Debian-based Linux systems. This guide is designed to be a comprehensive resource for diagnosing and resolving common networking issues.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Introduction
|
||||||
|
|
||||||
|
This reference guide is designed to assist with diagnosing and troubleshooting common networking issues on Debian-based Linux systems, following the relevant layers of the OSI model. It includes detailed commands and explanations for each layer, along with general tips and a troubleshooting scenario.
|
||||||
|
|
||||||
|
### Layer 1 (Physical Layer)
|
||||||
|
|
||||||
|
#### Verify Physical Connection:
|
||||||
|
|
||||||
|
- Ensure the Ethernet cable is properly connected.
|
||||||
|
- Check for link lights on the Ethernet port as a quick physical connectivity indicator.
|
||||||
|
|
||||||
|
### Layer 2 (Data Link Layer)
|
||||||
|
|
||||||
|
#### Check Interface Status:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ip link show
|
||||||
|
```
|
||||||
|
|
||||||
|
Look for the `UP` state to confirm that the interface is active.
|
||||||
|
|
||||||
|
#### Ensure the Correct MAC Address:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ip link show enp6s0
|
||||||
|
```
|
||||||
|
|
||||||
|
This command checks the MAC address and other physical layer properties.
|
||||||
|
|
||||||
|
### Layer 3 (Network Layer)
|
||||||
|
|
||||||
|
#### Verify IP Address Assignment:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ip addr show enp6s0
|
||||||
|
```
|
||||||
|
|
||||||
|
This confirms if an IP address is correctly assigned to the interface.
|
||||||
|
|
||||||
|
#### Check Routing Table:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ip route show
|
||||||
|
```
|
||||||
|
|
||||||
|
Ensure there's a valid route to the network or default gateway.
|
||||||
|
|
||||||
|
#### Ping Test for Local Network Connectivity:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ping -c 4 <gateway_ip>
|
||||||
|
ping -c 4 8.8.8.8
|
||||||
|
ping -c 4 www.google.com
|
||||||
|
```
|
||||||
|
|
||||||
|
Replace `<gateway_ip>` with your gateway IP address. Also, ping a public IP address (e.g., Google's DNS server 8.8.8.8) and a domain name to test external connectivity.
|
||||||
|
|
||||||
|
### Layer 4 (Transport Layer)
|
||||||
|
|
||||||
|
#### Testing Port Accessibility:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nc -zv <destination_ip> <port>
|
||||||
|
```
|
||||||
|
|
||||||
|
Netcat (`nc`) can test TCP port accessibility to a destination IP and port.
|
||||||
|
|
||||||
|
### Layer 7 (Application Layer)
|
||||||
|
|
||||||
|
#### DNS Resolution Test:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dig @<dns_server_ip> www.google.com
|
||||||
|
```
|
||||||
|
|
||||||
|
Replace `<dns_server_ip>` with your DNS server IP to test DNS resolution.
|
||||||
|
|
||||||
|
#### HTTP Connectivity Test:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -I www.google.com
|
||||||
|
```
|
||||||
|
|
||||||
|
This command checks for HTTP connectivity to a web service. The `-I` flag fetches only the headers. Omit it to retrieve the full webpage content.
|
||||||
|
|
||||||
|
### Additional Commands and Tips
|
||||||
|
|
||||||
|
- **Renew IP Address:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo dhclient -r enp6s0 && sudo dhclient enp6s0
|
||||||
|
```
|
||||||
|
|
||||||
|
This releases and renews the DHCP lease for the `enp6s0` interface.
|
||||||
|
|
||||||
|
- **Restart and Check Network Manager Status:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo systemctl restart NetworkManager
|
||||||
|
sudo systemctl status NetworkManager
|
||||||
|
```
|
||||||
|
|
||||||
|
This restarts the network management service and checks its status.
|
||||||
|
|
||||||
|
- **View Network Manager Logs:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo journalctl -u NetworkManager --since today
|
||||||
|
```
|
||||||
|
|
||||||
|
View today's logs for NetworkManager to identify issues.
|
||||||
|
|
||||||
|
- **Use `ethtool` for Diagnosing Physical Link Status and Speed:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ethtool enp6s0
|
||||||
|
```
|
||||||
|
|
||||||
|
This tool provides a detailed report on the physical link status.
|
||||||
|
|
||||||
|
- **System Logs for Networking Events:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dmesg | grep -i enp6s0
|
||||||
|
```
|
||||||
|
|
||||||
|
Check kernel ring buffer messages for the `enp6s0` interface.
|
||||||
|
|
||||||
|
### Troubleshooting Scenario: No Internet Connectivity
|
||||||
|
|
||||||
|
1. Verify physical connection (Layer 1)
|
||||||
|
2. Check interface status and IP address assignment (Layer 2 & 3)
|
||||||
|
3. Ping gateway, public IP, and domain (Layer 3)
|
||||||
|
4. Check DNS resolution (Layer 7)
|
||||||
|
5. Restart NetworkManager and check status
|
||||||
|
6. Review NetworkManager logs for any errors
|
||||||
|
7. Check system logs for interface-specific messages
|
||||||
|
|
||||||
|
### Notes:
|
||||||
|
|
||||||
|
- **Consistent Naming Convention:** This guide uses `enp6s0` as an example network interface name. Replace `enp6s0` with your actual interface name as necessary.
|
||||||
|
- **Permissions:** Some commands may require `sudo` to execute with administrative privileges.
|
||||||
|
|
||||||
|
This guide aims to be a comprehensive resource for networking issues on Debian-based Linux systems, following a systematic approach from the physical layer up to the application layer.
|
||||||
|
|
||||||
|
---
|
||||||
Reference in New Issue
Block a user