브리지의 동기화 에이전트

브리지의 동기화 에이전트

브리지 인터페이스(eth1과 eth2 사이)의 방화벽에 synproxy를 구현하려고 합니다. 내 규칙은 다음과 같습니다.

/usr/local/sbin/iptables -t raw -i PREROUTING -i br0 -m physdev --physdev-in eth1 -p tcp -m tcp --syn -j CT --notrack
/usr/local/sbin/iptables -A FORWARD -i br0 -m physdev --physdev-in eth1 -p tcp -m tcp -m state --state INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460
echo 0 > /proc/sys/net/netfilter/nf_conntrack_tcp_loose

eth1에 연결된 클라이언트와 eth2에 연결된 http 서버(192.168.0.1)가 있습니다.

이러한 규칙을 적용하면 curl 192.168.0.1클라이언트에서 실행하려고 하면 시간 초과가 발생합니다. 정상적인 TCP 요청은 진행되지 않는 것 같습니다.

br0에서 tcpdump를 실행하면 syn-ack 및 ack 패킷이 표시되지 않습니다. 모든 syn 패킷이 synproxy 대상에서 손실된 것 같습니다.

어떤 아이디어가 있나요?

답변1

Syn-ack 응답을 보낼 때 synproxy 모듈은 라우팅 테이블을 찾습니다. 주어진 경로를 기반으로 syn-ack 응답을 보낼 수 있도록 필수 경로를 추가해야 합니다.

관련 정보