過濾虛擬機器之間的流量

過濾虛擬機器之間的流量

我有一台裝有 Fedora 21 的機器,它充當兩個虛擬機器的主機系統。 VM 使用 QEMU/KVM/libvirt/virt-manager 組成。一台虛擬機器運行網路伺服器,另一台虛擬機器充當客戶端。客戶端可以存取伺服器,因此到目前為止網路運作良好。我認為它是透過主機上的 virbr0 介面進行管理的,該介面也充當虛擬機器的預設網關。

現在,在主機上,我想過濾虛擬機器的網路流量。例如,我想將其放入 netfilter 佇列中,並根據某些情況接受或刪除它。一個示例性的 iptables 規則是iptables -I FORWARD -i virbr0 -j NFQUEUE --queue-num 1

一般來說,它似乎有效,因為當我丟棄進入佇列的每個資料包時,虛擬機器將不再能夠存取網路上的網站。當然不是,預設網關會丟棄資料包。到目前為止還好。

但我無法阻止兩台虛擬機器之間的流量。即使我丟棄資料包,客戶端也能夠載入網頁伺服器虛擬機器提供的頁面。我認為這是因為虛擬化形成了一個網絡,其中兩個虛擬機器無需預設網關即可連接。

那麼有人可以告訴我如何透過 iptables 和 netfilter 佇列控制兩個虛擬機器之間的流量嗎?

我只想在主機上進行過濾工作。並且阻塞整個流量並不是有意的。它只是在某些情況下進行過濾。因此netfilter隊列。

相關內容