Analyze network configuration data from sosreport archives, extracting interface configurations, routing tables, active connections, firewall rules (firewalld/iptables), and DNS settings from the sosreport directory structure to diagnose network connectivity and configuration issues
/plugin marketplace add openshift-eng/ai-helpers/plugin install sosreport@ai-helpersThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill provides detailed guidance for analyzing network configuration and connectivity from sosreport archives, including interfaces, routing, firewall rules, and DNS configuration.
Use this skill when:
/sosreport:analyze command's network analysis phaseNetwork Interfaces:
sos_commands/networking/ip_-o_addr - IP addressessos_commands/networking/ip_link - Link statussos_commands/networking/ip_-s_link - Link statistics with errorsetc/sysconfig/network-scripts/ - Network configuration files (RHEL)Routing:
sos_commands/networking/ip_route - Routing tablesos_commands/networking/ip_-6_route - IPv6 routing tableproc/net/route - Kernel routing tableNetwork Connections:
sos_commands/networking/netstat_-neopa - Active connectionssos_commands/networking/ss_-tupna - Socket statisticsproc/net/tcp - TCP connectionsproc/net/udp - UDP connectionsFirewall:
sos_commands/firewalld/ - Firewalld configurationsos_commands/iptables/iptables_-vnxL - iptables rulessos_commands/nftables/ - nftables configurationDNS and Resolution:
etc/resolv.conf - DNS serversetc/hosts - Static hostname mappingsetc/nsswitch.conf - Name resolution orderNetwork Services:
sos_commands/networking/networkmanager_info - NetworkManager statussystemctl status NetworkManager outputList all network interfaces:
if [ -f sos_commands/networking/ip_-o_addr ]; then
cat sos_commands/networking/ip_-o_addr
fi
Check interface states:
if [ -f sos_commands/networking/ip_link ]; then
# Look for interface states (UP/DOWN)
grep -E "^[0-9]+:" sos_commands/networking/ip_link
fi
Parse interface information:
Check for interface errors:
if [ -f sos_commands/networking/ip_-s_link ]; then
# Look for RX/TX errors, drops, overruns
cat sos_commands/networking/ip_-s_link
fi
Identify interface issues:
Check default route:
if [ -f sos_commands/networking/ip_route ]; then
grep "^default" sos_commands/networking/ip_route || echo "No default route found"
fi
Review routing table:
if [ -f sos_commands/networking/ip_route ]; then
cat sos_commands/networking/ip_route
fi
Check IPv6 routing:
if [ -f sos_commands/networking/ip_-6_route ]; then
cat sos_commands/networking/ip_-6_route
fi
Identify routing issues:
Check active connections:
if [ -f sos_commands/networking/netstat_-neopa ]; then
cat sos_commands/networking/netstat_-neopa
elif [ -f sos_commands/networking/ss_-tupna ]; then
cat sos_commands/networking/ss_-tupna
fi
Count connections by state:
# Count TCP connection states
if [ -f sos_commands/networking/netstat_-neopa ]; then
grep "^tcp" sos_commands/networking/netstat_-neopa | awk '{print $6}' | sort | uniq -c
fi
Find listening services:
# Show what's listening on which ports
if [ -f sos_commands/networking/netstat_-neopa ]; then
grep "LISTEN" sos_commands/networking/netstat_-neopa
fi
Check for connection issues:
Check if firewalld is active:
if [ -d sos_commands/firewalld ]; then
# Firewalld is present
if [ -f sos_commands/firewalld/firewall-cmd_--list-all-zones ]; then
cat sos_commands/firewalld/firewall-cmd_--list-all-zones
fi
fi
Review iptables rules:
if [ -f sos_commands/iptables/iptables_-vnxL ]; then
cat sos_commands/iptables/iptables_-vnxL
fi
Check firewall zones and rules:
Identify firewall issues:
Check DNS servers:
if [ -f etc/resolv.conf ]; then
cat etc/resolv.conf
fi
Review /etc/hosts:
if [ -f etc/hosts ]; then
# Show non-comment, non-empty lines
grep -v "^#\|^$" etc/hosts
fi
Check hostname resolution:
# Check hostname
if [ -f hostname ]; then
cat hostname
fi
# Check FQDN
if [ -f etc/hostname ]; then
cat etc/hostname
fi
Verify nsswitch configuration:
if [ -f etc/nsswitch.conf ]; then
grep "^hosts:" etc/nsswitch.conf
fi
Identify DNS issues:
Look for network-related errors:
# Connection refused errors
grep -i "connection refused" sos_commands/logs/journalctl_--no-pager 2>/dev/null | head -20
# Timeout errors
grep -i "timeout\|timed out" sos_commands/logs/journalctl_--no-pager 2>/dev/null | head -20
# Network unreachable
grep -i "network.*unreachable\|no route to host" sos_commands/logs/journalctl_--no-pager 2>/dev/null | head -20
# DNS resolution failures
grep -i "could not resolve\|dns.*fail\|name resolution" sos_commands/logs/journalctl_--no-pager 2>/dev/null | head -20
Check for link state changes:
grep -i "link.*up\|link.*down\|carrier.*lost" sos_commands/logs/journalctl_--no-pager 2>/dev/null | head -20
Look for network device errors:
grep -i "network.*error\|eth[0-9].*error\|transmit.*error" var/log/dmesg 2>/dev/null
Create a structured summary with the following sections:
Interface Summary:
Routing Summary:
Connectivity Summary:
Firewall Summary:
DNS Summary:
Network Issues:
Missing network files:
Multiple network configurations:
IPv6 presence:
The network analysis should produce:
NETWORK CONFIGURATION SUMMARY
==============================
NETWORK INTERFACES
------------------
Interface: {name}
State: {UP|DOWN}
IP Addresses: {ipv4}, {ipv6}
MAC: {mac_address}
MTU: {mtu}
RX Errors: {rx_errors} packets, {rx_dropped} dropped
TX Errors: {tx_errors} packets, {tx_dropped} dropped
Status: {OK|WARNING|CRITICAL}
ROUTING
-------
Default Gateway: {gateway_ip} via {interface}
Total Routes: {count}
Key Routes:
{destination} via {gateway} dev {interface}
Status: {OK|WARNING|CRITICAL}
Issues:
- {routing_issue_description}
CONNECTIVITY
------------
Total Active Connections: {count}
Connections by State:
ESTABLISHED: {count}
TIME_WAIT: {count}
CLOSE_WAIT: {count}
SYN_SENT: {count}
Listening Services:
{port}/{protocol} - {service_name} (PID {pid})
Status: {OK|WARNING|CRITICAL}
Issues:
- {connectivity_issue_description}
FIREWALL
--------
Type: {firewalld|iptables|nftables|none}
Default Zone: {zone_name} (if firewalld)
Allowed Services: {service1}, {service2}, ...
Allowed Ports: {port1/protocol}, {port2/protocol}, ...
Active Rules Count: {count}
Status: {OK|WARNING|CRITICAL}
Potential Issues:
- {firewall_issue_description}
DNS CONFIGURATION
-----------------
DNS Servers: {dns1}, {dns2}, {dns3}
Search Domains: {domain1}, {domain2}
Hostname: {hostname}
FQDN: {fqdn}
Status: {OK|WARNING|CRITICAL}
Issues:
- {dns_issue_description}
NETWORK ERRORS FROM LOGS
------------------------
Connection Refused: {count} occurrences
Timeouts: {count} occurrences
DNS Failures: {count} occurrences
Link State Changes: {count} occurrences
Recent Network Errors:
{timestamp}: {error_message}
CRITICAL NETWORK ISSUES
-----------------------
{severity}: {issue_description}
Evidence: {file_path_or_log_excerpt}
Impact: {impact_description}
Recommendation: {remediation_action}
RECOMMENDATIONS
---------------
1. {actionable_recommendation}
2. {actionable_recommendation}
DATA SOURCES
------------
- Interfaces: {sosreport_path}/sos_commands/networking/ip_-o_addr
- Routes: {sosreport_path}/sos_commands/networking/ip_route
- Connections: {sosreport_path}/sos_commands/networking/netstat_-neopa
- Firewall: {sosreport_path}/sos_commands/firewalld/
- DNS: {sosreport_path}/etc/resolv.conf
# Check interface IP addresses
$ cat sos_commands/networking/ip_-o_addr
1: lo inet 127.0.0.1/8 scope host lo
2: eth0 inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
2: eth0 inet6 fe80::a00:27ff:fe4e:66a1/64 scope link
# Check for errors
$ cat sos_commands/networking/ip_-s_link | grep -A 4 "eth0"
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
RX: bytes packets errors dropped overrun mcast
15234567 98234 0 0 0 123
TX: bytes packets errors dropped carrier collsns
8765432 54321 15 0 0 0
# Interpretation: eth0 has 15 TX errors - investigate cable/switch
# Check firewalld active zone
$ grep -A 20 "public" sos_commands/firewalld/firewall-cmd_--list-all-zones
public (active)
target: default
services: ssh dhcpv6-client http https
ports: 8080/tcp 9090/tcp
...
# Interpretation: HTTP/HTTPS allowed, custom ports 8080 and 9090 open
# Count connection states
$ grep "^tcp" sos_commands/networking/netstat_-neopa | awk '{print $6}' | sort | uniq -c
234 ESTABLISHED
1523 TIME_WAIT
12 CLOSE_WAIT
5 SYN_SENT
# Interpretation:
# - Excessive TIME_WAIT (normal after closing connections)
# - CLOSE_WAIT suggests application not properly closing sockets
# - SYN_SENT indicates outbound connection attempts failing
| Issue Type | Severity | Impact |
|---|---|---|
| No network interface | Critical | Complete loss of connectivity |
| No default route | Critical | No external connectivity |
| Interface errors >1% | Warning | Potential packet loss |
| Excessive TIME_WAIT | Warning | May indicate performance issue |
| Missing DNS server | Critical | Name resolution failure |
| Firewall blocking required port | High | Service unavailable |
| IPv6 autoconfiguration failure | Low | IPv6 connectivity issue |