一、网卡相关概念
网卡:网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。
网络模型:OSI网络模型、TCP/IP网络模型
LINUX网络收发流程:
1. 内核分配一个主内存地址段(DMA缓冲区),网卡设备可以在DMA缓冲区中读写数据
2. 当来了一个网络包,网卡将网络包写入DMA缓冲区,写完后通知CPU产生硬中断
3. 硬中断处理程序锁定当前DMA缓冲区,然后将网络包拷贝到另一块内存区,清空并解锁当前DMA缓冲区,然后通知软中断去处理网络包。(发包与之相反)。
网卡速率:百兆网卡、千兆网卡、万兆网卡
网卡种类:电口网卡、光口网卡
网卡插槽:主板集成网卡、pcie网卡
bond:网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术
二、配置网卡以及开启关闭重启网卡
1、查看网卡的型号
lspci |grep Eth
2、配置网卡IP的方法
2种方式,1种通过图形化界面配置,1种是通过添加配置文件配置
vi /etc/sysconfig/network-scripts/ifcfg-ethx
3、网卡服务的相关命令
重启网卡:service network restart
开启、关闭指定网卡:ifdown/ifup ethx 或者ifconfig ethx up/down
手动添加浮动ip:ifconfig ethx:0 192.168.1.1 netmask 255.255.255.0
4、查看和配置网卡接口的功能
ethtool ethx
三、网卡问题常用排查工具
1、/var/log/message
先通过系统日志查看是否有报错信息。
2、ifconfig –a查看网卡的统计情况
红色框中记录了网卡运行过程中累积的各项指标统计情况,各指标含义如下:
RX errors: 表示总的收包的错误数量,这包括 too-long-frames 错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。
RX dropped: 表示数据包已经进入了 Ring Buffer,但是由于内存不够,上层协议不支持等系统原因,导致在拷贝到内存的过程中被丢弃。
RX overruns: 表示了 fifo 的 overruns,这是由于 Ring Buffer(aka Driver Queue) 传输的 IO 大于 kernel 能够处理的 IO 导致的,而 Ring Buffer 则是指在发起 IRQ 请求之前的那块 buffer。
RX frame: 表示 misaligned 的 frames。
对于 TX 的来说,出现上述 counter 增大的原因主要包括 aborted transmission, errors due to carrirer, fifo error, heartbeat erros 以及 windown error,而 collisions 则表示由于 CSMA/CD 造成的传输中断。一般情况下TX的这类数值基本没有变化。
3、sar –n DEV 查看网卡的流量
4、netstat –s 查看网络协议统计数据
该命令可显示每个协议的各类统计数据,查看网络存在的连接,显示数据包的接收和发送情况。重点关注drop和error相关的计数是否有大量的报错。
5、tcpdump 抓包分析工具
命令格式:
tcpdump host IP -s 0 -i ethx -w /tmp/ip.cap
6、netstat –an /ss 查看主机网络链接情况