KVM 上的虚拟化防火墙

KVM 上的虚拟化防火墙

我有一些使用 KVM (CentOS7) 虚拟化并连接到我的家庭网络的虚拟机(家庭实验室)。最近,我尝试通过将它们放在单独的网络中来隔离它们,并且我想在与其他虚拟机相同的主机上使用虚拟化 pfsense 来实现此目的。

首先,我在 virt-manager 中为我的实验室主机创建了隔离网络。 在此输入图像描述

然后我创建了带有 2 个网卡的 vm 并安装了 pfsense。一个接口的地址为 192.168.1.100(家庭 LAN),另一个接口的地址为 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>

我将我的一台虚拟机(测试服务器)移至内部 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服务器,我可以curl它(curlhttp://10.13.37.54)来自 pfsense vm,因此内部网络工作正常。我的 pfsense 上也有互联网连接(我可以更新操作系统,例如,curlhttp://google.com)。从测试服务器我可以 ping pfsense 和 google.com,但是当我尝试卷曲时http://google.com由于某种原因,我经常遇到超时(其他网站也是如此)。我可以将 google.com 域解析为 IP,因此 dns(udp 数据包)工作正常,但我无法建立 TCP 3 向握手。我正在发送 SYN 数据包,但没有收到任何信息。以下是从内部实验室网络捕获的数据包的样子(在 pfsense 上捕获): 在此输入图像描述

答案1

我在其他论坛上得到了答案,事实证明我所要做的就是禁用硬件校验和卸载,链接到文档

相关内容