Lichen Liu

与其感慨路难行,不如马上出发

  • 主页
所有文章 友链 关于我

Lichen Liu

与其感慨路难行,不如马上出发

  • 主页

一次ping 遇到Invalid argument 报错的问题

2020-02-11

一台线上的虚拟机,ping localhost 时出现了sendmsg: Invalid argument的错误,偶尔会正常,同时ping 同网段的机器都有问题,但ping 跨网段的机器没有问题。但使用的ping 命令并没有附加什么参数。
查看strace 的结果,发现是在sendto 的系统调用中返回的EINVAL 错误,检查man 2 sendto,也只是说Invalid argument passed,但对比正常机器,strace 中输出的函数调用传参并无问题。

尝试了加路由,ifdown/ifup 等操作后,都没什么进展,之后做了些搜索,有人遇到过相同的问题,但没有回答。
考虑到ping 同网段也有相同问题,可能不是lo 网卡故障,是否跨网段涉及到arp 问题,马上用ip neigh 命令进行检查,发现只有网关的一条arp cache. 马上尝试手动添加arp cache,却出现了buffer 不足无法添加的报错,问题呼之欲出。
考虑到这台机器用作运行docker,通过ip netns list 查看到有多个network 的namespace(有名字的),通过ip netns exec <name> ip neigh 发现q已经有较多的arp cache,而这个docker 正好是用桥的方式使用网络,且是一个/22 的网段,多个netns 中大量的arp cache 占满了buffer,导致ping 同网段时没办法缓存新的ip-mac 映射。之后修改了net.ipv4.neigh.default.gc_thresh3 问题得到解决。

不过通过ip neigh 来看ping lo 没有产生127.0.0.1 的arp cache,似乎不需要,但是ping 也失败了,不知道为啥=。=

  • Linux
  • ping
  • arp

扫一扫,分享到微信

微信分享二维码
在linux kernel 源码中搜索syscall 的实现
Linux 网络bond mode 4 的xmit_hash_policy layer3+4 到底是如何hash 的
© 2023 Lichen Liu
Hexo Theme Yilia by Litten
  • 所有文章
  • 友链
  • 关于我

tag:

  • Linux
  • golang
  • xml
  • omitempty
  • test
  • art
  • AWS
  • Kernel
  • bonding
  • sk_buff
  • kernel
  • libvirt
  • libvirt-go
  • numa
  • ping
  • arp
  • 输入法
  • ovs
  • font
  • manjaro
  • 坑
  • 北京
  • 旅游

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 北京周末

    2023-03-22

    #北京#旅游

  • manjaro kde 升级后中文字体变成方块

    2021-02-18

    #font#manjaro#坑

  • sk_buff 简介

    2020-10-26

    #Linux#sk_buff#kernel

  • 使用ct_state 实现出口放行防火墙

    2020-05-15

    #ovs

  • /dev 下的null, zero, random等文件是怎么来的

    2020-03-07

    #Linux#Kernel

  • NUMA 内存策略 preferred 的效果

    2020-02-20

    #Linux#numa

  • 在linux kernel 源码中搜索syscall 的实现

    2020-02-20

    #Linux

  • 一次ping 遇到Invalid argument 报错的问题

    2020-02-11

    #Linux#ping#arp

  • Linux 网络bond mode 4 的xmit_hash_policy layer3+4 到底是如何hash 的

    2020-01-10

    #Linux#bonding

  • golang xml 如何忽略空结构体

    2020-01-09

    #golang#xml#omitempty

  • libvirt-go 的一个坑

    2020-01-07

    #golang#libvirt#libvirt-go

  • 在AWS 的Amazon Linux 上下载源码

    2019-12-23

    #Linux#AWS#Kernel

  • 中文测试

    2019-12-23

    #test#输入法

  • Hello world

    2019-12-18

    #test#art

  • 肥叉烧
  • 安全大手子
  • 物理学博士
  • 一个愣头青
普通上班族,会一点Linux, 想学SDN