Ceph Monitor iptables 규칙 이상한 동작

Ceph Monitor iptables 규칙 이상한 동작

iptablesCeph 클러스터를 설정하려고 합니다 . 현재 모니터링 서버 중 하나에 대한 규칙을 개발 중입니다.

모니터 데몬 청취 tcp/6789(공개 주소이므로 IP 주소가 제거됨):

# netstat -tunlp | grep ceph-mon
tcp        0      0 X.X.X.X:6789       0.0.0.0:*               LISTEN      2612/ceph-mon

tcp 포트 6789에 대한 연결을 허용하고 다른 모든 것을 제거하면 클러스터의 나머지 부분에 의해 모니터가 다운된 것으로 표시됩니다.

iptables -F INPUT
iptables -A INPUT -p tcp --dport 6789 -j ACCEPT
iptables -A INPUT -j DROP

혼란스럽게도 TCP 포트 6789에 대한 모든 연결을 제거해도 클러스터는 계속 실행됩니다.

iptables -F INPUT
iptbales -A INPUT -p tcp --dport 6789 -j DROP

내가 허락한다면원천tcp 포트 6789를 삭제하고 클러스터가 실행 중인 다른 모든 항목을 제거합니다.

iptables -F INPUT
iptables -A INPUT -p tcp --sport 6789 -j ACCEPT
iptables -A INPUT -j DROP

데몬이 포트 6789에서 수신 대기하고 있으므로 tcp 세그먼트의 대상 포트는 6789여야 하기 때문에 이는 나에게 이해가 되지 않습니다.

소스 포트 6789에서 작동하는 경우 tcpdump대상 포트 56052 및 소스 포트 6789로 들어오는 패킷을 볼 수 있습니다. 모니터 서버의 포트 56052에서 수신 대기 중인 항목이 없기 때문에 이는 나에게 훨씬 이해가 되지 않습니다.

여기서 뭔가 빠졌나요? 저는 SLES12 및 ceph 12.2.7을 사용하고 있으며 FORWARD 및 OUTPUT 체인에는 규칙이 없으며 모든 체인의 정책은 ACCEPT입니다.

답변1

연결 추적을 활성화하지 않았으므로 모니터가 다른 모니터와 통신을 시도할 때 방화벽을 통해 응답이 되돌아오는 것을 허용하지 않습니다. 문제를 해결하기 위해 다음 규칙을 추가했습니다.

iptables -I INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

감사해요AB상태 저장 방화벽에 대한 권장 사항을 확인하세요.

관련 정보