가상 머신에 대한 투명 프록시를 수행하는 데 문제가 있음

가상 머신에 대한 투명 프록시를 수행하는 데 문제가 있음

먼저 기본 토폴로지는 다음과 같습니다.

  Internet
     |
  Gateway
     |
Workstation---eth0---virbr0
                       |
                       +-----+-----+
                       |     |     |
                      vm1   vm2   vm3 

내 워크스테이션에서 실행되고 eth0의 일부 포트(예: 8990)에서 수신 대기하는 트래픽 분석기를 테스트해야 합니다.

내가 원하는 규칙은 "virbr0을 떠나 포트 80으로 가는 모든 패킷은 대신 eth0의 포트 8990으로 가야 한다"는 것입니다. 포트 8990에서 실행되는 내 소프트웨어는 패킷을 검사한 후 패킷을 밀어넣기 위해 NAT 패킷 변조를 자체적으로 검사합니다.

나는 다음과 같은 다양한 변형을 사용하여 이것에 대해 고민해 왔습니다.

iptables -t nat -A PREROUTING -i virbr0 -p tcp --dport 80 -j DNAT \
    --to 10.0.0.10:8990

그리고 and 를 mangle사용하여 테이블을 사용하는 보다 일반적인 방법을 시도했지만 이해가 되지 않습니다.--set-markip rule add fwmark

제 생각에 혼란스러운 점은 모든 것이 동일한 상자에서 실행된다는 것입니다.

어떤 안내에도 감사드립니다.

답변1

이 질문은 무의미한 것으로 나타났습니다. Tcpdump는 VM의 서브넷 192.168.122.0/24가 커널 라우팅 결정에 전혀 나타나지 않음을 보여줍니다. libvirtd는 커널 네트워크 스택으로 전달되기 전에 자체 네트워크 처리를 수행하는 것 같습니다.

드로잉 보드로 돌아갑니다.

관련 정보