问题描述:我在 pFsense 中创建了一条规则,以阻止来自我的 OPT1 网络的任何针对 RFC1918 的流量,并且它运行良好。现在,当我在 OPT1 网络 PC 上打开终端时,我无法 ping 通我的 OPT1 网络上的任何 IP,包括 DNS 和 DHCP。我使用命令行中的 ping 程序进行了测试,如下所示:
ping 192.168.57.1
为了让 PC 能够连接到互联网,我必须手动设置网关、DNS 服务器和客户端 PC 的 IP,这样它才能再次工作,但这次对我来说是个惊喜,因为据我所知,由于阻止规则,OPT1 网络上的客户端不应该能够与其本地网络上的网关通信。那么有人能向我解释一下这是如何工作的吗?此外,如果有人能给我指出一篇关于没有 DHCP 的网络如何工作的文章,我将不胜感激。
为了使事情更清楚,我将附上此例中的客户端配置以及有问题的 pFsense 规则的屏幕截图。
pFSense 配置:
客户端配置:
答案1
为了让 PC 在经过这样的操作后连接到互联网,我必须手动设置网关、DNS 服务器和客户端 PC 的 IP,并且它再次起作用,但这次对我来说是一个惊喜,因为据我所知,由于阻止规则,OPT1 网络上的客户端应该无法与其本地网络上的网关通信。
客户不说话到首先是网关。当您联系远程系统时,网关的 IP 地址绝对不会出现在 IP 数据包中的任何地方。(它们有“源”和“目标”字段,其中源是您的 PC,而目标就是目的地。)
相反,网关 IP 地址的唯一用途是让操作系统能够将其解析为第 2 层或 MAC 地址(然后向该 MAC 发送以太网帧)。路由器使用 MAC 报头来识别数据包是指向它的,然后使用 IP 报头来识别它需要转发数据包。
…这又引出了另一个相关点:PC 需要通过其 MAC 地址将数据包导向网关,这意味着它也可以将数据包导向任何其他MAC地址。也就是说,同一子网内主机之间的数据包实际上会绕过网关并且您根本无法使用网关的防火墙来控制它们。
此外,如果有人能向我指出一篇关于没有 DHCP 的网络如何工作的文章,我将不胜感激。
不太可能会有这样的文章,因为没有什么没有 DHCP 的网络工作方式很特别。(事实恰恰相反。)
DHCP 并不是使网络“正常工作”的根本原因;它所做的只是提供初始配置(IP 地址、DNS 服务器、网关地址)。一旦获得这些信息,网络就不会将 DHCP 用于其他任何用途。
因此,如果网络没有 DHCP 来提供该信息,那么您可以手动提供它(就像您在示例中所做的那样),但网络功能的方式根本不会改变。