Centos

KVM 上的虛擬化防火牆

  • March 10, 2019

我有幾個用 KVM (CentOS7) 虛擬化並連接到我的家庭網路的 vms (homelab)。最近我試圖通過將它們放在單獨的網路中來隔離它們,並且我想在與其他虛擬機相同的主機上使用虛擬化 pfsense 來做到這一點。

首先,我在 virt-manager 中為我的實驗室主機創建了隔離網路。 在此處輸入圖像描述

然後我用 2 個網卡創建了 vm 並安裝了 pfsense。一個介面的地址為 192.168.1.100(家庭區域網路),另一個介面的地址為 10.13.37.1(實驗室網路)。 在此處輸入圖像描述 在此處輸入圖像描述

pfsense xml 轉儲:

<interface type='direct'>
 <mac address='52:54:00:52:37:3f'/>
 <source dev='enp1s0' mode='bridge'/>
 <target dev='macvtap0'/>
 <model type='virtio'/>
 <alias name='net0'/>
 <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='network'>
 <mac address='52:54:00:65:58:d6'/>
 <source network='lab' bridge='virbr1'/>
 <target dev='vnet1'/>
 <model type='virtio'/>
 <alias name='net1'/>
 <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</interface>

我將我的一個 vm(測試伺服器)移動到內部 pfsense 網路並將 pfsense ip 地址設置為網關,以測試我是否能夠連接到網際網路。

測試伺服器 (10.13.37.54) xml 轉儲:

<interface type='network'>
 <mac address='52:54:00:eb:ce:db'/>
 <source network='lab' bridge='virbr1'/>
 <target dev='vnet0'/>
 <model type='virtio'/>
 <alias name='net0'/>
 <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

測試伺服器上正在執行 www 伺服器,我可以從 pfsense vm 捲曲它(捲曲http://10.13.37.54),因此內部網路工作正常。我在 pfsense 上也有網際網路連接(我可以更新作業系統,例如 curl http://google.com)。從測試伺服器我可以 ping pfsense 和 google.com,但是當我嘗試 curl http://google.com時,由於某種原因,我經常出現超時(其他站點也是如此)。我可以將 google.com 域解析為 IP,因此 dns(udp 數據包)工作正常,但我無法建立 TCP 3 向握手。我正在發送 SYN 數據包,但沒有收到任何回复。以下是從內部實驗室網路擷取的數據包的樣子(在 pfsense 上擷取): 在此處輸入圖像描述

我在另一個論壇上得到了答案,原來我所要做的就是禁用硬體校驗和解除安裝,連結到文件

引用自:https://unix.stackexchange.com/questions/505445