【笔记】openwrt - full cone NAT(全锥NAT)、解决“arp_cache: neighbor table overflow!”

这篇具有很好参考价值的文章主要介绍了【笔记】openwrt - full cone NAT(全锥NAT)、解决“arp_cache: neighbor table overflow!”。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

openwrt 全锥形nat,OpenWRT ❄️,udp,openwrt,bitcomet,比特彗星,全锥NAT
openwrt 全锥形nat,OpenWRT ❄️,udp,openwrt,bitcomet,比特彗星,全锥NAT

最近安装了比特彗星(bitcomet)后,老是收到警告说日志的接收超过每秒上限了。一看日志,好家伙,一堆的kern.info kernel: [194004.157620] neighbour: arp_cache: neighbor table overflow!日志,还是kernel的,还是info的?

openwrt 全锥形nat,OpenWRT ❄️,udp,openwrt,bitcomet,比特彗星,全锥NAT

Sat Jan 28 15:47:41 2023 kern.warn kernel: [474996.419813] net_ratelimit: 1279 callbacks suppressed
Sat Jan 28 15:47:41 2023 kern.info kernel: [474996.419824] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:41 2023 kern.info kernel: [474996.424599] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:41 2023 kern.info kernel: [474996.426614] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:41 2023 kern.info kernel: [474996.433420] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:41 2023 kern.info kernel: [474996.433737] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:41 2023 kern.info kernel: [474996.434832] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:41 2023 kern.info kernel: [474996.435122] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:41 2023 kern.info kernel: [474996.435789] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:41 2023 kern.info kernel: [474996.436122] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:41 2023 kern.info kernel: [474996.440968] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:46 2023 kern.warn kernel: [475001.544054] net_ratelimit: 2432 callbacks suppressed
Sat Jan 28 15:47:46 2023 kern.info kernel: [475001.544064] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:46 2023 kern.info kernel: [475001.545075] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:46 2023 kern.info kernel: [475001.546204] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:46 2023 kern.info kernel: [475001.548341] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:46 2023 kern.info kernel: [475001.549918] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:46 2023 kern.info kernel: [475001.550398] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:46 2023 kern.info kernel: [475001.551738] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:46 2023 kern.info kernel: [475001.552784] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:46 2023 kern.info kernel: [475001.553170] neighbour: arp_cache: neighbor table overflow!
Sat Jan 28 15:47:46 2023 kern.info kernel: [475001.556931] neighbour: arp_cache: neighbor table overflow!

网上找问题原因、解决方法,最接近的就是lede的这个issue https://github.com/coolsnowwolf/lede/issues/6427#issuecomment-785553693,https://github.com/coolsnowwolf/lede/issues/6612

两个东西共同造成的arp_cache: neighbor table overflow!

  1. 在openwrt中打开了FullCone NAT(全锥NAT)
    openwrt 全锥形nat,OpenWRT ❄️,udp,openwrt,bitcomet,比特彗星,全锥NAT

  2. 在比特彗星(bitcomet)中默认设置了network.max_udp_pkt_per_sec(每秒最大udp数据包发送量)为1000

    openwrt 全锥形nat,OpenWRT ❄️,udp,openwrt,bitcomet,比特彗星,全锥NAT

    openwrt 全锥形nat,OpenWRT ❄️,udp,openwrt,bitcomet,比特彗星,全锥NAT

issue中提供的解决方法有两:

  1. 要么: 关闭Full Cone NAT

    💡个人情况
    我没用到nat、upnp,而是使用ipv6做端口监听,所以关了没作用

  2. 要么: 将network.max_udp_pkt_per_sec调小,比如100

但至于这些东西是什么?做什么的?什么意思?为啥这样这样就会有日志警告?那样那样设置就没有警告?是否有更好的解决方案?

下面逐一研究一下

arp cache和neighbor table

参考:

  1. Linux: Neighbour Table Overflow Error and Solution - https://www.cyberciti.biz/faq/centos-redhat-debian-linux-neighbor-table-overflow/

首先搞清楚哪里出现的日志信息

根据日志的含义,大概是arp表出现了问题(arp的邻居表溢出)。

💡关于arp(地址解析协议)的基本概念 - <>

查看arp表,没发现啥问题()

$ arp –a
IP address       HW type     Flags       HW address            Mask     Device
192.168.1.1     0x1         0x2         xxxxxxx     *        br-lan
192.168.1.2     0x1         0x2         xxxxxxx     *        br-lan
192.168.1.3     0x1         0x2         xxxxxxx     *        br-lan
192.168.1.4     0x1         0x2         xxxxxxx     *        br-lan
192.168.1.5     0x1         0x2         xxxxxxx     *        br-lan
192.168.1.6     0x1         0x2         xxxxxxx     *        br-lan
192.168.1.7     0x1         0x2         xxxxxxx     *        br-lan
192.168.1.8     0x1         0x2         xxxxxxx     *        br-lan

查看配置信息

net.ipv4.neigh.default.gc_thresh1     ── 存在于ARP高速缓存中的最少层数,如果少于这个数,垃圾收集器将不会运行。缺省值是128。
net.ipv4.neigh.default.gc_thresh2     ── 保存在 ARP 高速缓存中的最多的记录软限制。垃圾收集器在开始收集前,允许记录数超过这个数字 5 秒。缺省值是 512。
net.ipv4.neigh.default.gc_thresh3     ── 保存在 ARP 高速缓存中的最多记录的硬限制,一旦高速缓存中的数目高于此,垃圾收集器将马上运行。缺省值是1024。
net.ipv4.neigh.default.gc_stale_time  ── 决定检查一次相邻层记录的有效性的周期。当相邻层记录失效时,将在给它发送数据前,再解析一次。缺省值是60秒。
$ sysctl net.ipv4.neigh.default.gc_thresh1
net.ipv4.neigh.default.gc_thresh1 = 128
$ sysctl net.ipv4.neigh.default.gc_thresh2
net.ipv4.neigh.default.gc_thresh2 = 512
$ sysctl net.ipv4.neigh.default.gc_thresh3
net.ipv4.neigh.default.gc_thresh3 = 1024
$ sysctl net.ipv4.neigh.default.gc_interval
net.ipv4.neigh.default.gc_interval = 30
$ sysctl net.ipv4.neigh.default.gc_stale_time
net.ipv4.neigh.default.gc_stale_time = 60
$ grep . /proc/sys/net/ipv4/neigh/default/gc_thresh*
/proc/sys/net/ipv4/neigh/default/gc_thresh1:128
/proc/sys/net/ipv4/neigh/default/gc_thresh2:512
/proc/sys/net/ipv4/neigh/default/gc_thresh3:1024
# 编辑配置文件
vi /etc/sysctl.conf

# ========================
# Append the following values (this is taken from server that protects over 200 desktops running MS-Windows, Linux, and Apple OS X):
 ## works best with <= 500 client computers ##
# Force gc to clean-up quickly
net.ipv4.neigh.default.gc_interval = 3600
 
# Set ARP cache entry timeout
net.ipv4.neigh.default.gc_stale_time = 3600
 
# Setup DNS threshold for arp 
net.ipv4.neigh.default.gc_thresh3 = 4096
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh1 = 1024
# ========================

# 加载配置,使变更生效
sysctl -p

todo

FullCone NAT(全锥NAT)

更多: 关于全锥NAT、路由器四种NAT(Full Cone NAT/Restricted Cone NAT/Port Restricted Cone NAT/Symmetric NAT) - https://lawsssscat.blog.csdn.net/article/details/104637117

简单来说,开启full cone nat后,文章来源地址https://www.toymoban.com/news/detail-791733.html

Bitcomet为啥发送udp包

到了这里,关于【笔记】openwrt - full cone NAT(全锥NAT)、解决“arp_cache: neighbor table overflow!”的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 笔记本电脑如何安装openwrt

    联想E14笔记本 装机U盘 DiskImage v1.6 刷写工具 immortalwrt镜像 笔记本电脑如何安装openwrt 一、官方版 1.官网下载固件 2.BIOS关闭安全启动改为引导 3.用U盘启动进入PE系统后,需要先用PE系统自带的分区工具把电脑上待安装系统的硬盘分区删除掉,再打开写盘工具DiskImage,点Browse,选

    2024年04月28日
    浏览(95)
  • ARP攻击怎么解决最安全

    ARP攻击是指攻击者通过伪造网络中的ARP协议数据包,欺骗其他计算机的网络通信,从而实现中间人攻击等目的。 下面是ARP攻击的解决方法: 静态ARP表绑定MAC地址:在网络管理员的控制下,将主机的IP地址与MAC地址进行绑定,使网络中的所有主机在通信时都必须首先访问该表。

    2024年02月16日
    浏览(36)
  • 局域网ARP攻击是什么 局域网ARP断网攻击的解决方法

    在局域网中尤其是公司或者网络服务器所在的局域网,经常容易遭受到一些ARP断网攻击。另外一些电脑用户的电脑也时候会遭受APR攻击。很多电脑爱好者朋友都不知道ARP攻击是什么意思?以下yii666小编为大家简单介绍下,也会附上一些解决办法。 ARP攻击是什么意思? ARP攻击

    2024年02月06日
    浏览(35)
  • Full authentication is required to access this resource解决办法

    我们在使用postman调接口时候,有的时候需要权限才可以访问,否则可能会报下面这个错误 这个时候我们要做的 1 :访问登录接口如xxx/auth/login,拿到我们的token值; 2 :然后在返回postman调用的接口headers里,加上key-value key是Authorization,value是Bearer token; 如下: 注:我在这里

    2024年02月09日
    浏览(36)
  • 如何解决系统报错:nf_conntrack: table full, dropping packets

    在系统日志中(/var/log/messages),有时会看到大面积的下面的报错: 这说明系统接到了大量的连接请求,但是系统的连接跟踪表已经满了,无法再记录新的连接了。这时候,系统会丢弃新的连接请求。 在 CentOS 下,默认的连接跟踪表大小是 65536,可以通过下面的命令查看:

    2024年02月08日
    浏览(22)
  • 网速变慢、经常掉线ARP攻击解决思路

    不仅是我,包括很多人都对上网速度慢、经常掉线的问题苦恼不已,路由器IP地址被修改也会导致网络故障。 一般路由器获取的本身IP地址为192.168.1.100  网关为192.168.1.1,而外网IP、子网掩码、网关、DNS地址都是随机的,具体如图示: 为什么是随机的呢?因为你的上网方式是

    2024年02月05日
    浏览(52)
  • 【异常解决】postman请求提示Full authentication is required to access this resource

    在使用 postman 测试接口时,该接口需要在 Header 中传入 access_token ,实际上也在请求的 Header 中添加上了 access_token 参数,但是服务端还是返回401错误码,提示未登录, Full authentication is required to access this resource 。 然后将获取到的 access_token 输入到这个 Token 中去,如下图所示:

    2024年02月16日
    浏览(38)
  • 普联路由器的ARP欺骗的解决方法

    今天给大家介绍的是局域网中常见的ARP攻击,这种攻击就像感冒一样,虽然病不大,但造成的危害可不小,普联路由器可以很好解决ARP攻击,下面就给大家详细分析一下ARP攻击的原理和解决办法。     一、如果局域网内有ARP,就会出现频繁掉线的现象,重启电脑和路由器后恢

    2024年02月05日
    浏览(49)
  • MySQL错误sql_mode=only_full_group_by完美解决方案

    mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错。 错误提示:this is incompatible with sql_mode=only_full_group_by 1.查询数据库版本: SELECT VERSION(); 2.查看sql_mode的语句: select @@GLOBAL.sql_mode; 3.临时解决方案: 去掉ONLY_FULL_GROUP_BY,重新设置值。 SET

    2023年04月09日
    浏览(36)
  • 无法启动程序,丢失user32.dll gdi32full.dll win32u.dll解决办法

    首先确保dll文件放在正确的位置: 32位系统将dll文件放在C:WindowsSystem32 文件夹内。64位系统将dll文件放在C:WindowsSystem32 文件夹和C:WindowsSysWOW64 文件夹内,保存两份。 模块已加载,但找不到入口点DLLRegisterServer 通常在运行中注册动态库文件: regsvr32 xxx.dll (按回车键执行命令

    2024年02月05日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包