我将 pfSense 2.4.3p1 配置为透明防火墙。它在具有两个vtnet
半虚拟化适配器的虚拟机中运行:
- WAN (
vtnet0
) 连接到包含网关、DNS 和 DHCP 服务器的“远端”网络 - LAN (
vtnet1
) 连接到包含客户端的“近端”网络
防火墙将明确加入两个网段的广播域,使它们都在 192.168.1.1/24 内。NAT 被禁用。pf
将被启用,但现在它正在通过所有流量,同时我调试其他问题。存在包含成员 WAN 和 LAN 的网桥,分配给接口 LANBR。
我尝试了几种配置,但似乎没有一个有工作桥:
- 广域网有DHCP IP,其他没有IP:广域网收到IP,可以ping通192.168.1.1的网关,但局域网客户端无法访问防火墙或网关
- LANBR 具有 DHCP IP:无法从 WAN 接口获取 IP
- LAN 具有 DHCP IP:无法从 WAN 接口获取 IP
在任何情况下,LAN 上的客户端都无法 ping WAN 上的主机。在客户端尝试 ping 192.168.1.1 时运行 tcpdump 显示 ARP 请求来自客户端,被 pfSense 忽略,传递到 WAN,并且没有返回响应:
在客户端
ping 192.168.1.1
Pinging 192.168.1.1 with 32 bytes of data:
Reply from 192.168.1.163: Destination host unreachable.
Reply from 192.168.1.163: Destination host unreachable.
在防火墙上
tcpdump -e -i vtnet0 -n -t arp
0a:... > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.1 tell 192.168.1.windows, length 28
0a:... > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.1 tell 192.168.1.windows, length 28
0a:... > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.1 tell 192.168.1.windows, length 28
0a:... > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.1 tell 192.168.1.windows, length 28
这尤其奇怪,因为 pfSense 肯定知道该主机:
arp -a
? (192.168.1.1) at 0c:... on vtnet0 expires in 1170 seconds [ethernet]
这是怎么回事?