日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nf_conntrack: table full, dropping packet

發布時間:2023/10/18 编程问答 74 如意码农
生活随笔 收集整理的這篇文章主要介紹了 nf_conntrack: table full, dropping packet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考:linux 路由跟蹤表滿錯誤 nf_conntrack: table full, dropping packet 原理解決方法

說明

ping,dmesg 或者 /var/log/messages日志中這個報錯,說明服務器網絡方面遇到了瓶頸。

此時查看 cat /proc/sys/net/netfilter/nf_conntrack_maxcat /proc/sys/net/netfilter/nf_conntrack_count的值相等或者非常接近。

但是cpu、mem、DiskIO各方面都還有余力。(一開始我懷疑是宿主機的問題,實際并不是。)

技術深入

  • 連接跟蹤的能力由nf_conntrack模塊提供,該模塊一般不會被開機加載,通過lsmod命令查看,該模塊被iptable_nat模塊調用,用來實現網絡地址轉發(NAT)、包過濾和負載均衡(支持隨機和輪詢)等功能。

  • nf_conntrack 跟蹤所有網絡連接,記錄存儲在 1 個哈希表里。

    通過cat /proc/net/nf_conntrack | head -1可以查看記錄的詳情。

ipv4 2 tcp 6 429397 ESTABLISHED src=192.168.122.1 dst=192.168.122.195 sport=35866 dport=22 src=192.168.122.195 dst=192.168.122.1 sport=22 dport=35866 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2

  • nf_conntrack跟蹤所有網絡連接,所以 ping 本機也會留下一條記錄:

ipv4 2 icmp 1 25 src=127.0.0.1 dst=127.0.0.1 type=8 code=0 id=20087 src=127.0.0.1 dst=127.0.0.1 type=0 code=0 id=20087 mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2

問題處理

  • 關閉使用連接跟蹤的程序,比如docker、libvirt、防火墻(類似于禁用模塊)
  • 調整內核參數
  • 設置不跟蹤的連接

在云上環境一般會配置安全組策略,虛機無需另外配置防火墻,所以關閉即可,不能關閉的可以調整 nf_conntrack 相關內核參數。

附錄

linux /etc 目錄下面 modprobe.d/ modules-load.d/ motd 的作用

  modprobe.d/目錄:該目錄包含了一些用于配置內核模塊加載的文件。在這個目錄中,可以創建一些以.conf為后綴的文件,用于指定內核模塊的加載選項。這些文件中的配置可以影響到系統啟動時內核模塊的加載行為。
modules-load.d/目錄:該目錄包含了一些用于配置系統啟動時自動加載內核模塊的文件。在這個目錄中,可以創建一些以.conf為后綴的文件,用于指定需要在系統啟動時自動加載的內核模塊。這些文件中的配置會在系統啟動時被讀取,并相應地加載指定的內核模塊。
motd文件:motd是"Message of the Day"的縮寫,意為每日消息。在Linux系統中,motd文件用于在用戶登錄時顯示一些系統相關的信息,如系統版本、登錄提示、重要通知等。motd文件可以用于向用戶提供一些重要的系統信息或者警告。

總結起來,modprobe.d/目錄用于配置內核模塊加載選項,modules-load.d/目錄用于配置系統啟動時自動加載的內核模塊,而motd文件則用于在用戶登錄時顯示系統相關的信息。

使用iptables規則實現負載均衡

隨機:(Random balancing)

  iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -m statistic --mode random --probability 0.33  -j DNAT --to-destination 10.0.0.2:1234
iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -m statistic --mode random --probability 0.33 -j DNAT --to-destination 10.0.0.3:1234
iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -j DNAT --to-destination 10.0.0.4:1234

輪詢:(Round Robin)

有3個server,3個server輪詢處理流量包,則規則配置如下:

  iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -m statistic --mode nth --every 3 --packet 0 -j DNAT --to-destination 10.0.0.2:1234
iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination 10.0.0.3:1234
iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -j DNAT --to-destination 10.0.0.4:1234

總結

以上是生活随笔為你收集整理的nf_conntrack: table full, dropping packet的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。