ifconfig dropped包比较多问题处理
2022-03-05 20:52:50
上面的图仍然很能形容题目,现网某交易反应,其对应的几台主机察觉active-backup的bond网卡接口对应的备用网卡,rx包基础上全都是dropped状况,并且不停正在络续拉长。登岸确认后,查看主机筑设未察觉分外,同时对照了下附近主机的ifconfig输出(差异网段,差异交易)察觉也存正在该题目。
正在查验筑设未察觉分外,并且从外面阐述上来说,备用网卡是不走流量的(除非主用分外,备用切换为主),外面上来说,应当基础没有包通过才对。既然说欠亨,那就先tcpdump抓包看下内容:

从抓包阐述结果来看,都是来自于网合设置的VRRP组播包和ARP包。而调换机之间主备是走的VRRP允诺。上面的192.168.40.2便是个中一台调换机筑设切实实IP地点。又查验了下主机上确认未安置keepalive高可用包。于是思考是否是汇集设置筑设有题目。
说合汇集组同事举办排障阐述,汇集同事外现,这是组播包,是针对该汇集统统主机发送的,这与播送雷同,只但是一个是发送1次,一个是发送n次。备用网卡上收到这个包平常,由于统统的网卡上都邑收到云云的包。
从外面上来讲,确实说的通。但正在排障时,随机抽取了另一个机房的一台主机(主汇集架构基础相仿,都是调换机VRRP主备,主机网卡a-b bond形式),察觉正在该主机上备用网卡不存正在甩掉包的题目。其通过正在另一机房抓包反证,阐明B机房的备用网卡上也有同样的包存正在。通过对照以为依然体例的题目,可以和体例版本合系。由于察觉redhat体例上没有该题目。
既然版本差异,结果不相似,很可以新版本里某些参数发作了蜕化,我能念到的是sysctl 参数、 /boot/config-XXX筑设的kernel启动项,倘若找到相应的项,就能忽视网合设置发送的这种包变成的dropped。而正在对照了差异OS版本下tcp/ip、cast、接口等合系的sysctl参数后,未察觉有对应的职掌项。正在/boot/config-xx文献中也未找到有相对应的值。
放狗盘问,察觉翻墙用的google标准用不明确。退而求其次通过bing盘问,正在SUSE和redhat相应的knowledge页中找到了谜底。(吐槽下,本事文档检索,百度做的不是通常的烂)。
从2.6.37内核往后,改良了dropped包的统计格式,其不再是以纰谬包的格式统计,以下境况也司帐入dropped包。其值只是做为一种状况统计了。
而redhat和其他发行对应的发行版如SUSE、ubuntu等来比,kernel和包都相对版本要低极少,这和其战术相合,未确认安闲的,不会参预到此刻的发行版本中(说白了,让别人先踩坑,觉得适宜了,我再用)。正在未独立升级过kernel 的境况下,其只正在rhel7中才会有该境况发作,并且其kb给出了前后统计格式差异的源码,简直蜕化正在rt_kernel core/dev.c文献中,rhel7版本利用的如下: