最近我的 Pi-Hole 出现了问题,解决后发现我的网络不再具有 DNS 解析。经过一些故障排除后,我发现 Unbound 进程(PI-Hole 上游)正在通过虚拟 NIC(192.168.5.1)向互联网发送 DNS 解析请求,而防火墙阻止该虚拟 NIC 通过端口 53 发送数据。唯一可以执行此操作的 IP 是 192.168.3.47 上的物理 NIC。我已暂时打开虚拟接口上的端口 53 流量。我之所以有这些虚拟接口,是因为 PI 上运行着 2 个进程,用于跨 VLAN 转发 UDP/IGMP 广播,从而从我的一些隔离 VLAN 启用 Chromecast/屏幕共享和 DLNA。它本质上充当了这种类型流量的路由器,因为管理 VLAN 的路由器没有能力做到这一点。这些设备是 VLAN1 上的 NAS、VLAN5 上的电视和 VLAN 5 上的移动设备。我想设置它,以便 PI 上的所有互联网流量始终通过物理 NIC 192.168.3.47 传出,这样我就可以恢复防火墙更改,并且所有内部流量保持不变。有人告诉我最佳做法是以某种方式修改路由表,但不确定该怎么做。
路由表:
默认通过 192.168.3.1 dev eth0 src 192.168.3.47 metric 202 <--- VLAN3 上的物理 NIC - 允许端口 53 流量。PI-Hole 位于此 IP 上,并通过 LAN 间路由将 DNS 返回到所有 VLAN,防火墙会隔离流量。
默认通过 192.168.5.1 dev eth0.5 proto dhcp src 192.168.5.47 metric 204 <--- 用于 UDP 广播/Chromecast 的虚拟 NIC 到隔离的 VLAN5 - 暂时允许端口 53 流量。电视和手机位于此 LAN 上。
默认通过 192.168.1.1 dev eth0.12 proto dhcp src 192.168.1.47 metric 205 <--- 用于 UDP/Chromecast 的虚拟 NIC 到隔离的 VLAN1。带有 DLNA 的 NAS 位于此子网上,防火墙对 VLAN 5 上的电视和手机开放。
192.168.1.0/24 dev eth0.12 proto dhcp 范围链接 src 192.168.1.47 度量 205 <--- VAN1。
192.168.3.0/24 dev eth0 proto dhcp 范围链接 src 192.168.3.47 度量 202 <--- VLAN3
192.168.5.0/24 dev eth0.5 proto dhcp 范围链接 src 192.168.5.47 度量 204 <---VLAN5。
假设我需要为通过 192.168.3.47 接口的所有流量添加默认路由。然后仅为 LAN 范围指定 VLAN3/VLAN5 的 LAN 范围,否定互联网流量。我认为这不会影响 UDP/IGMP 广播。这应该强制所有互联网流量通过 192.168.3.47 接口?请问能否就此处需要修改的内容以及如何/为什么修改提供一些建议。
任何帮助都非常感谢,威尔
答案1
根据您提供的路由表,您有三条默认路由。
您观察到的是预期行为。您应该删除不提供默认路由的接口上的默认路由(例如删除网关)。