Linux 브리지의 트래픽을 모니터링 인터페이스로 미러링

Linux 브리지의 트래픽을 모니터링 인터페이스로 미러링

네트워크의 특정 지점을 통과하는 트래픽을 기록하고 모니터링하고 싶습니다. 따라서 궁극적으로 내 브리지를 통과하는 모든 트래픽이 전송된 모든 트래픽을 수신하는 다른 시스템의 IP 주소로 미러링되기를 원합니다.

대략적인 현재 설정은 다음과 같습니다.

  • 무차별 모드로 모니터링 인터페이스가 설정된 모니터링/로깅 서버
  • 모니터링하려는 네트워크 지점의 Linux 브리지
  • 대체 게이트웨이로 트래픽을 미러링하려고 시도하는 iptables 규칙
    • iptables -t mangle -A PREROUTING -j TEE --gateway <monitoring ip>
    • iptables -t mangle -A POSTROUTING -j TEE --gateway <monitoring ip>

그러나 지금까지 직접 ping을 시도하지 않는 한 모니터링 IP에 대한 인터페이스를 통해 트래픽이 흐르는 것을 볼 수 없습니다. 그러면 브리지와 모니터링 포트 모두에서 트래픽을 볼 수 있습니다.

주목할 만한 또 다른 문제가 있습니다. 모니터링 포트에 대한 ARP 확인을 위해 고정 경로를 설정해야 했습니다. 왜냐하면 어떤 이유로 항상 관리 포트의 MAC를 주소로 입력하기 때문입니다. 네트워크에 다른 클라이언트가 없는 경우 브리지가 모니터링 IP에 대해 관리 MAC 주소를 얻는 이유를 확인하지 못했습니다.

어떤 조언이라도 감사하겠습니다. 명확한 세부 정보를 충분히 제공하지 못한 경우 죄송합니다.

답변1

기본적으로 전환된 프레임은 iptables 규칙을 통해 전달되지 않습니다. 이 동작을 변경하려면 브리지 인터페이스에서 nf_call_iptables 옵션을 활성화해야 합니다(ip 명령 또는 /proc 파일 시스템을 통해).

ip link set dev br0 type bridge nf_call_iptables 1

모니터링 트래픽을 제한하려면 iptables 규칙에서 --phys-dev 일치를 사용하십시오.

관련 정보