信息安全从业人员^_^
一个未入门de情报学胖子(邮箱:tenghm1986@163.com)
Toggle navigation
信息安全从业人员^_^
主页
About Me
归档
标签
网卡相关设置
2019-08-15 08:06:11
1346
0
0
heming
# 网卡丢包排查与说明 ## 1. 通过ifconfig查看网卡相关数值 ``` ➜ ~ ifconfig lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 14716 bytes 7326278 (6.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 14716 bytes 7326278 (6.9 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.11.33.251 netmask 255.255.240.0 broadcast 10.11.47.255 inet6 fe80::5f83:a4de:3bf3:664a prefixlen 64 scopeid 0x20<link> ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet) RX packets 294405 bytes 85901411 (81.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 11319 bytes 2115111 (2.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ``` 若所要查看的网卡不显示则检查网卡驱动或重新插拔网卡。 若显示则需要关注其中的几个参数 - mtu 代表网络层最大支持的包长。 - RX errors 代表总的收包的错误数量。包括 too-long-frames 错误,Ring Buffer 溢出错误,CRC 校验错误,帧同步错误,fifo overruns以及 missed packages 等。 - RX dropped 表示数据包已经进入网卡驱动的 Ring Buffer 但由于内存不足等系统原因,导致拷贝到内核协议栈内存的 sk\_buff 中被丢弃。 - RX/TX overruns 表示由于 Ring Buffer 传输的 IO 大于内核能处理的IO导致。该字段增大意味数据包没有放入 Ring Buffer 就被网卡所丢弃了。 **首先查看下线路上可传递mtu与之比较。通常修改该参数可解决大部分丢包问题。** 使用 ifconfig 修改网卡的mtu,重启后会恢复默认设置。 > ifconfig eth0 mtu 9000 up 其他错误可尝试使用 ethtool 修改rx和tx值。 使用 ethtool 查看 eth0 网卡驱动设置 > ethtool -g eth0 使用 ethtool 修改 eth0 网卡驱动rx和tx参数 此处的值时 rx 与 tx 的 Ring Buffer 的收包数量值,建议是在当前基础上按2倍逐渐增大。 Buffer越小延迟越低,但会带来吞吐量的下降和丢包率的增加。 > ethtool -G eth0 rx 512 > ethtool -G eth0 tx 512 ## 2. 通过 ethtool 查看网卡的相关配置 现在的网卡一般会有很多offload特性,用来减轻cpu的负担。 ``` ➜ ~ ethtool -k eth0 Features for eth0: rx-checksumming: off [fixed] tx-checksumming: off tx-checksum-ipv4: off [fixed] tx-checksum-ip-generic: off [fixed] tx-checksum-ipv6: off [fixed] tx-checksum-fcoe-crc: off [fixed] tx-checksum-sctp: off [fixed] scatter-gather: on tx-scatter-gather: on [fixed] tx-scatter-gather-fraglist: off [fixed] tcp-segmentation-offload: off tx-tcp-segmentation: off [fixed] tx-tcp-ecn-segmentation: off [fixed] tx-tcp-mangleid-segmentation: off [fixed] tx-tcp6-segmentation: off [fixed] generic-segmentation-offload: on generic-receive-offload: on large-receive-offload: off [fixed] rx-vlan-offload: off [fixed] tx-vlan-offload: off [fixed] ntuple-filters: off [fixed] receive-hashing: off [fixed] highdma: on [fixed] rx-vlan-filter: off [fixed] vlan-challenged: off [fixed] tx-lockless: off [fixed] netns-local: on [fixed] tx-gso-robust: off [fixed] tx-fcoe-segmentation: off [fixed] tx-gre-segmentation: off [fixed] tx-gre-csum-segmentation: off [fixed] tx-ipxip4-segmentation: off [fixed] tx-ipxip6-segmentation: off [fixed] tx-udp_tnl-segmentation: off [fixed] tx-udp_tnl-csum-segmentation: off [fixed] tx-gso-partial: off [fixed] tx-sctp-segmentation: off [fixed] tx-esp-segmentation: off [fixed] tx-udp-segmentation: off [fixed] fcoe-mtu: off [fixed] tx-nocache-copy: off loopback: off [fixed] rx-fcs: off [fixed] rx-all: off [fixed] tx-vlan-stag-hw-insert: off [fixed] rx-vlan-stag-hw-parse: off [fixed] rx-vlan-stag-filter: off [fixed] l2-fwd-offload: off [fixed] hw-tc-offload: off [fixed] esp-hw-offload: off [fixed] esp-tx-csum-hw-offload: off [fixed] rx-udp_tunnel-port-offload: off [fixed] tls-hw-tx-offload: off [fixed] tls-hw-rx-offload: off [fixed] rx-gro-hw: off [fixed] tls-hw-record: off [fixed] ``` 说明其中的几个特性 - TSO (tcp segmentation offload) 是利用网卡对tcp数据包分片减轻cpu负荷的技术,有时也被叫做 LSO (Large segmentation offload)。TSO 是针对 TCP 的,UFO (udp fragmentation offload) 是针对 UDP 的。 - GSO (generic segmentation offload) 比TSO更通用,思想是尽可能推迟数据分片的发送到网卡数据驱动。会检查网卡的功能,如TSO和UFO,若是直接发送给网卡,否就自己分片再发送给网卡。 - LRO (large receive offload) 将接收到的多个TCP聚合成一个大包再转发给内核协议栈。 - GRO (generic receive offload) 和LRO类似更通用。 - RSS(receive side scaling) 多队列。将不同的网络流分成不同的队列,再分别将这些队列分配给不同cpu处理。 其中lro、gro 和丢包相关,若组包后包长大于mtu协议栈会对包进行丢弃(部分协议栈会)。需要关闭相关功能或者增大协议栈处理上限数值。tcpdump若抓不到包也可能与这两个选项相关。 > ethool -k eth0 lro off > ethool -k eth0 gro off
上一篇:
suricata内核丢包及抓包工作模式解读
下一篇:
流量探针竞品调研
0
赞
1346 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网
Please enable JavaScript to view the
comments powered by Disqus.
comments powered by
Disqus
文档导航