网络运维

网络问题排查

 

网络模型

  • 这是我们的网络知识框架

数据传输路径

  • 这是知识框架中串联的线

排查问题路径-自下而上

链路层

  1. 网线是否正常

   # ethtool ens33
   Settings for ens33:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
	Supports Wake-on: d
	Wake-on: d
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes
  1. 网卡状态

]# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:23:a7:0a brd ff:ff:ff:ff:ff:ff
    inet 192.168.74.130/24 brd 192.168.74.255 scope global secondary noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::ae29:4ab5:ecb8:118d/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever


或者检查网卡是否正常工作: ifconfig ethN

* 基于Debian的Linux的(永久)网络配置文件在/etc/network/interfaces,
* 基于Red Hat的Linux的(永久)网络配置文件在/etc/sysconfig/network_scripts/ifcfg-<interface>

网络层

  1. IP|NETMASK|GATEWAY
]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
UUID=bd385c8f-3c98-4afd-acc9-bc78f744bf16
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.74.130
NETMASK=255.255.255.0
GATEWAY=192.168.74.2
  1. DNS
    1. /etc/resolve.conf
    2. nsloop
    3. dig

                检查dns例子

                dig www.baidu.com
                nslookup www.baidu.com

                DNS配置文件/etc/resolv.conf ,也可以写在网络配置文件中(网络重启后会发现/etc/resolv.conf中的映射关系就是网络配置文件中DNS映射关系)

 

  1. 路由
    1. ip route
    2. route

注解:route -n和 ping配合使用
route -n 以IP而不是主机名的形式显示网关等信息,一方面更快,另一方面不涉及DNS,通过route命令查看内核路由,检验具体的网卡是否连接到目标网路的路由,之后就可以尝试ping 网关,排查与网关之间的连接。
如果无法ping通网关,可能是网关限制了ICMP数据包,或者交换机设置的问题

 

        3. 是否可以正常路由到远程主机:traceroute

traceroute www.baidu.com
想要查看网络连接,最直接最常用的命令是ping,ping得通,说明路由工作正常,但是如果ping不通,traceroute命令可以查看从当前主机到目标主机的全部“跳”的过程。traceroute和ping命令都是使用ICMP协议包。

传输层

         服务端口

    1. ss
    2. netstat
    3. nmap
    4. telnet

            telnet 查看远程主机有没有开放某个端口
            nmap 查看远程主机的端口号是否开放或者是被过略(防火墙屏蔽)
            telnet 220.181.111.188 80
            nmap -p 80 220.181.111.188

            

本机查看监听端口netstat -lnp | grep :PORT 或者 lsof -i:PORT
netstat常见参数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

应用层

  1. 应用状态

    1. ps
    2. systemctl
    3. log日志

防火墙

  1. iptables
  2. firewall

Selinux:一般不会用到,如果有最好关掉,省心
getenforce、setenforce

 

网络较慢的排查

1. traceroute

前面提到的traceroute不仅可以查看路由的正确性,还可以查看网络中每一跳的延时,从而定位延时最高的网络区段。

2. iftop
iftop命令类似于top命令,查看哪些网络连接占用的带宽较多

3. tcpdump

当一切排查手段都无济于事时仍然不能找到网络速度慢、丢包严重等原因时,往往祭出杀手锏——抓包。抓包的最佳手段是在通信的双方同时抓取,这样可以同时检验发出的数据包和收到的数据包,tcpdump是常用的抓包工具。

 
posted @ 2021-11-24 11:00  天人互动  阅读(171)  评论(0)    收藏  举报