Docker 엔진(최신 버전 1.12.1)을 사용하여 Ubuntu 16.04 서버 및 Ubuntu 16.04 기반 Docker 이미지/컨테이너를 실행하세요.
(TCP를 사용하는 특정 포트에서) 다음을 제한해야 합니다.
- 초당 연결 수(10으로 가정)
- 동시 연결 수
로드 시 이에 대한 iptables 설정을 처리하는 Docker 컨테이너 내부에 진입점 스크립트를 생성할 수 있다면 완벽할 것입니다. 그러나 이것이 가능하지 않은 경우 호스트(Docker 컨테이너 외부)에서 어떻게 구성합니까?
현재 호스트 컴퓨터에 다음이 있습니다.
$ iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 DOCKER-ISOLATION all -- anywhere anywhere
2 DOCKER all -- anywhere anywhere
3 ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
4 ACCEPT all -- anywhere anywhere
5 ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain DOCKER (1 references)
num target prot opt source destination
1 ACCEPT tcp -- anywhere 172.17.0.2 tcp dpt:15672
Chain DOCKER-ISOLATION (1 references)
num target prot opt source destination
1 RETURN all -- anywhere anywhere
DOCKER
대상 포트가 port 인 경우 위의 두 규칙을 체인에 어떻게 추가합니까 5671
?
답변1
이것이 내가 하는 방법이다:
iptables -A INPUT -p tcp --syn --dport 5671-m connlimit \
--connlimit-above 10 --connlimit-mask 32 \
-j REJECT --reject-with tcp-reset