ip_ 정보conntrack 추적 연결이 꽉 차서 네트워크 패키지 분실 문제에 대한 분석
2805 단어 서버사이트 트래픽네트워크 연결Linux 시스템 테마
kernel: ip_conntrack: table full, dropping packet.
kernel: printk: 1 messages suppressed.
kernel: ip_conntrack: table full, dropping packet.
kernel: printk: 2 messages suppressed.
kernel: ip_conntrack: table full, dropping packet.
이 안의 관건적인 정보는'ip_conntrack:tablefull,droppingpacket'입니다. 여기서 iptables와 관련이 있다고 판단할 수 있습니다. iptables 방화벽이 ip_를 사용했기 때문입니다.conntrack 핵 모듈은 연결 추적 기능을 실현하고 모든 출입 데이터 패키지는 연결 추적표에 기록됩니다. tcp,udp,icmp 등을 포함하고 연결 추적표가 가득 차면 패키지를 잃어버려 네트워크가 불안정합니다.
우리 서버는 확실히 iptables 방화벽을 열었고 사이트의 데이터가 매우 높을 때 자주 이 문제가 발생한다.이 문제의 원인은 웹 서버가 대량의 연결을 받았기 때문이다. iptables를 사용한 상황에서 iptables는 모든 연결을 링크 추적 처리한다. 그러면 iptables는 링크 추적표를 가지고 이 표가 가득 차면 위의 오류가 발생한다.
iptables의 링크 추적표 최대 용량 프로필은 다음과 같습니다.
centos5 netfilter 매개 변수 구성 파일:
/proc/sys/net/ipv4/netfilter/ip_conntrack_max /proc/sys/net/ipv4/ip_conntrack_max
centos6 netfilter 매개 변수 구성 파일:
/proc/sys/net/netfilter/nf_conntrack_max
왜냐하면 nf_conntrack은 3층에서 작동하며 IPv4 및 IPv6를 지원하며 ip_conntrack은 IPv4만 지원하므로 nf_conntrack 모듈은 Linux의 2.6.15 코어에 도입되고 ip_conntrack은 Linux의 2.6.22 커널에서 제거되었기 때문에 서로 다른 버전의 시스템, 프로필도 모두 같지 않습니다.현재 대부분의 ip_conntrack_*이미 nf_conntrack_* 대체, 많은 ip_conntrack_*단지 소프트 링크일 뿐, 원래의 ip_conntrack 설정 디렉터리/proc/sys/net/ipv4/netfilter/는 존재하지만 새로운 nf_conntrack은/proc/sys/net/net filter/에서 아래로 호환할 수 있도록 합니다.
구성 파일의 변화를 파악한 후에 이 문제를 어떻게 해결해야 하는지 살펴보겠습니다. 해결 방법은 일반적으로 두 가지가 있습니다.
1./proc/아래 매개 변수 조정
CentOS5/RHEL 5에서 적절한 contrack 항목을 확대할 수 있습니다.
(1) 실행
sysctl -w net.ipv4.netfilter.ip_conntrack_max=655360
(2)./etc/sysctl.conf에 추가:
net.ipv4.netfilter.ip_conntrack_max = 655360
(3).발효시키다
sysctl -p
CentOS 6/RHEL6에서:
(1) 실행
sysctl -w net.nf_conntrack_max=100000
(2)/etc/sysctl에 있습니다.conf에 추가:
net.nf_conntrack_max = 100000
(3) 적용 가능
sysctl -p
2、ip_ 사용하지 않음conntrack 모듈
CentOS5/RHEL 5:
ip_ 사용 안 함conntrack, state 모듈을 제거해야 합니다. 이 모듈을 사용하려면 ip_를 불러와야 하기 때문입니다.conntrack.iptables 규칙에 state 모듈과 같은 규칙이 나타나지 않았는지 확인하고 있으면 제거합니다.
그리고/etc/sysconfig/iptables - config에 설명합니다.
IPTABLES_MODULES="ip_conntrack_netbios_ns"
마지막으로 ip_ 제거conntrack 모듈:
[root@waiwei ipv4]# modprobe -r ip_conntrack_netbios_ns xt_state
CentOS6/RHEL6에서:
[root@waiwei ipv4]# modprobe -r nf_conntrack_ipv4 xt_state
[root@waiwei ipv4]# modprobe -r nf_conntrack
지금/proc/net/아래에는 nf_콘트라크야.
두 가지 방법 중 첫 번째는 간단하지만 근본적인 문제를 해결하지 않고 두 번째는 약간 번거롭지만 사용하기 때문에 상황에 따라 선택할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
집 서버 설계 (하드웨어 편)자신의 Redmine이나 ownCloud를 운용하기 위해 사쿠라 VPS, DigitalOcean, OpenShift 등을 놀랐습니다만, 침착 해 왔으므로 현상을 정리하고 싶습니다. 먼저 하드웨어 구성을 정리합니다. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.