為虛擬機器進行透明代理時遇到問題

為虛擬機器進行透明代理時遇到問題

首先是基本拓樸:

  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

我嘗試了更通用的方法,將mangle表與 --set-markand一起使用ip rule add fwmark,但我沒有得到它。

我想讓我困惑的是所有東西都在同一個盒子上運行。

感謝您的任何指導。

答案1

事實證明這個問題毫無意義。 Tcpdump 顯示虛擬機器的子網路 192.168.122.0/24 甚至從未出現在核心路由決策中。我猜 libvirtd 在移交給內核網路堆疊之前會進行自己的網路處理。

回到繪圖板。

相關內容