linux网络管理之网络排错

Posted 大江东流水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux网络管理之网络排错相关的知识,希望对你有一定的参考价值。

网络问题可归纳为硬件问题和软件设置问题两类:

硬件问题通常需要通过一些专门的设备来分析硬件。

软件设置问题大多数是设置以及概念理解的问题。

1.硬件问题

(1)网线问题

例如:网线被截断,网线过度扭曲变形造成信号不良,自制网络接头品质不良,网络接头与设备接触不良。

(2)网卡,Hub以及Router等网络设备问题

例如:网卡不稳定、质量不佳,或者与整体系统的兼容性不好。个网络设备的接头质量不佳,接触不良,造成信号衰减。网络设备所处环境恶劣导致宕机问题。各网络使用方法不良,造成设备功能衰减。

(3)设备配置

例如:架设的网线过长,导致信号衰减严重(以太网CAT5E的网线理论限制长度约90m,两设备之间距离大于90m时,信号就容易出现问题)。其他噪声干扰。局域网上,节点或其他设备过多。

2.软件问题

(1)网卡的IP/Netmask设置错误

例如:IP冲突,子网掩码配置错误,网卡驱动程序使用错误,网卡的IRQ和I/O Address的设置冲突等。

(2)路由问题

例如:默认路由配置错误,路由接口与实际不符,使得数据包无法顺利发送。

(3)通信协议不相符

例如:两台linux机器要通过NFS通信协议传输数据时,两边都需要支持rpcbind这个启动RPC协议的程序才行。

(4)网络负荷问题

例如:同时有大量的数据包涌进同一个网络时,就有可能造成网络的停顿甚至故障。(思博伦打流测试等)

(5)其他问题

例如:一些port被防火墙阻挡,应用程序本身的bug,应用程序用户的网络设置,不同操作系统的兼容性等。

3.处理思路

(1)了解问题:是刚发生的问题,还是之前有人做了什么动作之后导致的无法连接。

(2)确认局域网连接:用ping来沟通两台机器或路由器

(3)确认对外连接

(4)确认DNS查询:利用nslookup,host,或dig命令

(5)确认Internet节点:利用traceroute检查各节点是否有问题。

(6)确认服务器状态是否正常。

(7)防火墙或者权限问题

4.处理流程

(1)网卡工作确认

a.确认网卡是否已近驱动成功

观察网卡信息是否被内核捕获

[root@localhost ~]# dmesg |grep -in eth
1740:[    2.275192] e1000 0000:02:01.0 eth0: (PCI:66MHz:32-bit) 00:0c:29:14:b5:f9
1741:[    2.275204] e1000 0000:02:01.0 eth0: Intel(R) PRO/1000 Network Connection
1783:[    6.039168] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
1784:[    6.044525] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
由1741行可知,网卡使用的模块为e1000,使用的芯片Intel,由1784行,可知1000M的全双模式。
[root@localhost ~]# lspci |grep -i ethernet
02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
使用的是虚拟网卡

查看网卡的模块

[root@localhost ~]# lsmod |grep 1000
e1000                 137500  0     #模块已近加载到内核
[root@localhost ~]# modinfo e1000
filename:       /lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/net/ethernet/intel/e1000/e1000.ko.xz   #内核模块位置(注意:不同内核版本使用的驱动程序是不一样的。所以,自己编译的驱动程序需要重新编译。)
version:        7.3.21-k8-NAPI
license:        GPL
description:    Intel(R) PRO/1000 Network Driver
author:         Intel Corporation, <linux.nics@intel.com>
rhelversion:    7.4
srcversion:     9E0A112E5D47C996E7C4A58
alias:          pci:v00008086d00002E6Esv*sd*bc*sc*i*
alias:          pci:v00008086d000010B5sv*sd*bc*sc*i*

若驱动不成功,则需要编译网卡驱动程序。

b.确认是否可以手动直接建立IP参数

建立IP测试

[root@localhost ~]# ifconfig eth0 192.168.42.200

Connection closed by foreign host.

Disconnected from remote host(192.168.42.181:22) at 12:06:08.

Type `help to learn how to use Xshell prompt.
[c:~]$ ssh 192.168.42.200


Connecting to 192.168.42.200:22...
Connection established.
To escape to local shell, press Ctrl+Alt+].

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Thu Nov 21 01:07:32 2019 from 192.168.42.1
[root@localhost ~]# 

能够正常检测并响应,则证明网卡设置是没有问题的。

(2)局域网内各项链接设备检测

a.明确局域网网段

b.检查Gateway与DNS的设置

(3)确认路由表规则

使用ping来连接DNS解析服务器。

[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 223.5.5.5
[root@localhost ~]# ping 223.5.5.5
PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.
64 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=36.2 ms
64 bytes from 223.5.5.5: icmp_seq=2 ttl=128 time=36.7 ms
64 bytes from 223.5.5.5: icmp_seq=3 ttl=128 time=36.4 ms
64 bytes from 223.5.5.5: icmp_seq=4 ttl=128 time=37.2 ms

能通,则表明与外部网络连接没有问题。不通,则可能是防火墙或者路由的问题了。

检查路由:

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.42.2    0.0.0.0         UG    100    0        0 eth0
192.168.42.0    0.0.0.0         255.255.255.0   U     100    0        0 eth0

(4)主机名与IP查询的DNS错误

[root@localhost ~]# ping 223.5.5.5
PING 223.5.5.5 (223.5.5.5) 56(84) bytes of data.
64 bytes from 223.5.5.5: icmp_seq=1 ttl=128 time=36.4 ms

[root@localhost ~]# ping www.baidu.com

DNS地址能通,但是不能访问域名,大多是DNS配置问题,检查/etc/resove.conf以及/etc/hosts文件。

(5)公网问题

使用traceroute跟踪路由

(6)服务器问题

上述均没有问题,却某台机器登录不不上,最大的可能是主机的配置问题。

a.主机没有开发开该服务

b.主机的权限设置错误

c.安全机制配置错误

例如SElinux是用来更细微的控制主机访问的一种核心机制,SElinux会阻挡服务的提供。此外,/etc/hosts.deny、PAM模块等,都可能造成用户无法登录的问题。

d.防火墙设置问题

可使用tcpdump来跟踪数据包,以便顺利的了解防火墙是否设置错误。

以上是关于linux网络管理之网络排错的主要内容,如果未能解决你的问题,请参考以下文章

Linux网络排错

大型园区网络排错篇之概念开山之作

网络包排错指南-类linux 平台

linux下网络排错与查看

Linux网络问题排错

Linux的网络排错