내 서버에는 단순화를 위해 세 가지 규칙이 있습니다.
iptables -t mangle -N RATE-LIMIT
iptables -t mangle -A RATE-LIMIT -m hashlimit --hashlimit-mode srcip --hashlimit-upto 100/sec --hashlimit-burst 20 --hashlimit-name conn_rate_limit -j RETURN
iptables -t mangle -A RATE-LIMIT -j DROP
iptables -t mangle -A INPUT -p tcp --dport 25565 ! -i lo -j RATE-LIMIT
이것은 나에게 제대로 작동하지만 다음과 같은 자세한 출력이 궁금합니다.
Chain INPUT (policy ACCEPT 11M packets, 921M bytes)
pkts bytes target prot opt in out source destination
5699K 264M RATE-LIMIT tcp -- !lo * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25565
...
Chain RATE-LIMIT (1 references)
pkts bytes target prot opt in out source destination
3060K 158M RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 limit: up to 100/sec burst 20 mode srcip
84990 3882K DROP all -- * * 0.0.0.0/0 0.0.0.0/0
첫 번째 규칙은 특정 소스 IP에서 100pps 미만인 모든 패킷과 일치하며, 그 미만인 경우 RETURN
다시 그곳으로 돌아가서 INPUT
계속되어야 합니다. 두 번째 규칙은 이 제한을 초과하는 모든 패킷을 삭제하며 기본적으로 이 체인의 기본 정책으로 작동해야 합니다.
체인 에는 INPUT
약 5,700,000개의 패킷이 내 RATE-LIMIT
체인으로 들어왔습니다. 하지만 체인에 두 규칙을 모두 추가하면 RATE-LIMIT
숫자가 훨씬 작아집니다. 내 이해로는 최대 5.700k를 더해야 합니다.
두 숫자가 같지 않은 이유는 무엇입니까?