pfSense 版本:2.3.4-RELEASE
我们最近从 WatchGuard 防火墙转换为使用 pfSense。我们几乎已经让所有东西都按我们想要的方式运行,但似乎有一个小问题无法解决。我们基本上有两个网络段:一个用于我们的计算机,一个用于我们的电话系统。每个网络段都在自己的子网上,通过不同的接口进入 pfSense 路由器。我们希望能够从“计算机段”上的客户端 PC 管理“电话段”上的电话系统。
以前,在 WatchGuard 配置中,我们配置了静态路由,该路由告诉路由器如何在不同子网之间路由。我正在尝试使用网关和静态路由在 pfSense 路由器上设置类似的东西。
以下是我们想要做的一些例子:
- 客户端 10.17.9.25 想要使用 IP 地址为 10.18.1.3 的 Cisco UC500 系列路由器的 Web 管理 UI。
- 客户端 10.17.9.25 想要使用 IP 地址为 10.1.10.1 的 Cisco Unity 软件的 Web 管理 UI。
- 客户端 10.17.9.25 想要使用 IP 地址为 10.18.1.4 的思科智能交换机的 Web 管理 UI
我们已经配置、测试并运行了以下接口:
- 广域网(不太适用于这个问题)
- 局域网
- IP 地址:10.17.1.1/16
- OPT1PHONE
- IP 地址:10.18.1.1/16
我们已经配置、测试并运行了以下网关:
- 电话网关
- 接口:Opt1Phone
- 网关地址:10.18.1.1
- 监控IP:10.18.1.1
我们已经配置、测试并运行了以下静态路由:
- 网络:10.1.10.0/30 网关:PhoneGW 接口:Opt1Phone
电话部分是不久前由供应商设置的。我不知道他们为什么选择设置两个不同的子网(10.18.0.0/16 子网和 10.1.10.1/30 子网)。我本来希望一切都在一个子网中,但我不是 VoIP 解决方案专家,而且系统已经设置好并运行正常,所以我看不出有什么理由更改它。
从“计算机段”上的客户端,我可以 ping 和浏览(使用 Web 浏览器)到 10.1.10.1 和 10.18.1.3。它们都物理上位于 UC500 设备上。我无法 ping 或浏览到 10.18.1.4,这是交换机的管理 Web UI。
从我阅读的关于 pfSense 静态路由的文章中,它说“对于直接连接到防火墙任何接口的网络,不需要添加路由...”。由于智能交换机的管理网站 IP 地址为 10.18.1.4/16,并且 OPT1PHONE 接口的电缆直接插入智能交换机,我认为路由应该与我们已经配置的路由一起工作。但由于某种原因,事实并非如此。因此,为了尝试让它工作,我认为这就像为 10.18.1.4 地址添加静态路由一样简单。以下是我配置它的方法:
Network: 10.18.1.0/24 Gateway: PhoneGW Interface: Opt1Phone
我尝试使用 10.18.1.1/16 作为路由的网络,但 pfSense 不允许我这样做,因为该子网已用于接口。这很合理(请参阅我上面关于路由应该如何工作的观点),但由于没有静态路由,路由就无法工作,所以我认为我可能能够让 pfSense 使用此静态路由识别路由。由于这也不起作用,我猜这不是正确的方法。
静态路由是使用 pfSense 执行此操作的正确方法吗?我知道我遗漏了一些东西,但我不知道是什么。如果有人能给我指明正确的方向,我将不胜感激。
以下是 pfSense 路由器上当前正在运行的路由的修剪打印输出:
Destination Gateway Flags Use Mtu Netif Expire
=========== ======= ====== === === ===== ======
10.1.10.0/30 10.18.1.1 UGS 307 1500 igb2
10.17.0.0/16 link#1 U 6293358 1500 igb0
10.17.1.1 link#1 UHS 0 16384 lo0
10.18.0.0/16 link#3 U 6 1500 igb2
10.18.1.1 link#3 UHS 279582 16384 lo0
这是使用我的测试静态路由配置的 pfSense 路由器的路由的修剪打印输出:
Destination Gateway Flags Use Mtu Netif Expire
=========== ======= ====== === === ===== ======
10.1.10.0/30 10.18.1.1 UGS 307 1500 igb2
10.17.0.0/16 link#1 U 6293358 1500 igb0
10.17.1.1 link#1 UHS 0 16384 lo0
10.18.0.0/16 link#3 U 6 1500 igb2
10.18.1.0/24 10.18.1.1 UGS 28 1500 igb2
10.18.1.1 link#3 UHS 279582 16384 lo0
我尝试从 pfSense 路由器执行 ping 操作,以查看通信中断的位置:
- 我可以从 10.18.1.1/16 的 OPT1PHONE 接口 ping 到 10.18.1.4/16 的目标设备 IP 地址
- 我可以从 10.17.1.1/16 的 LAN 接口 ping 通 10.18.1.1/16 的 OPT1PHONE 接口
- 我可以从位于 10.17.9.25/16 的 LAN 客户端 ping 到位于 10.18.1.1/16 的 OPT1PHONE 接口
- 我可以从位于 10.17.9.25/16 的 LAN 客户端 ping 到位于 10.18.1.3/16 的目标设备 IP 地址
- 我不能从位于 10.17.9.25/16 的 LAN 客户端 ping 位于 10.18.1.4/16 的目标设备 IP 地址。
从没有测试静态路由的路由表来看,路由器似乎应该知道如何从 10.17.0.0/16 子网到达 10.18.0.0/16 子网。两个子网都定义了正确的网关,并且 ping 操作(大部分)都证实了这一点。甚至到具有 10.18.1.1 网关的 10.1.10.0/30 网络的静态路由也能正常工作。我认为我应该能够 ping 并浏览 10.18.1.4/16 的 Web GUI,因为路由器知道 10.18.0.0/16 子网及其所在的接口。但是,出于某种原因,这不起作用。
答案1
答案2
您的设置太大/太复杂,我没法理解。也许您也是这样。那么我该如何解决这个问题呢?也许告诉您,会对您有所帮助。
您面临两个基本工程问题:
- 您不知道为什么您当前的设置会这样工作
- 你想让你的系统按照你想要的方式运行
要解决 (1.),你需要了解你的系统。什么是理解?理解意味着你有一个符合现实的心理模型。你如何确保它符合现实?你采用你的心理模型,预测系统在某些给定条件下的行为方式。然后你实际上将系统带入这些条件,然后你措施。然后将测量结果与预测结果进行比较。测量结果和预测结果是否相同?
如果答案是肯定的,那么你的思维模型就是正确的。你能验证的独立预测越多,你对思维模型的正确性就越有信心。
如果不是,那么你的思维模型就是错误的。你需要修正你的模型。给定测量值,你能否调整你的模型以适应测量值?
具体来说:如果您认为您已正确设置了网络,那么它应该如何运行?您如何衡量它?
我的基本网络工程工具是ping
、traceroute
和tcpdump
(又称数据包捕获)。因此数据包应该从此处的接口出来。是吗?将您的笔记本电脑连接到 C1 的接口,然后从 C1 到 R 执行 ping 操作,并查看tcpdump
从 C1 出来的内容。网络设备通常具有本机数据包捕获工具,因此您可以在那里 (例如在下一个交换机上) 进行数据包捕获,而无需拔出电缆并将其连接到笔记本电脑。
继续 (2.)。你有一个难以实现/复杂的目标。你会怎么做?你分而治之。也就是说,你将问题分解成各个部分。然后你一个接一个地实现它们,然后一步一步地将它们组合在一起。然后你在每一步验证你的预测是否正确。
关于你的问题,假设你想要一个这样的网络:
C1 - N1 - R - N2 - C2
其中 R 是路由器,N1 和 N2 是网络,C1 和 C2 是客户端。您希望 C1 能够与 C2 通信。好的,让我们简化问题:
- C1 需要能够与 R 通信
- C2 也一样
- R 需要转发数据包
我们可以进一步减少。我们减少(1.):
- a. C1 必须能够向 R 发送数据包
- b. R 必须能够向 C1 发送数据包
我们可以进一步减少 a.(和 b.):
- C1 必须知道将发往 R 的数据包发送到哪里(C1 必须将需要到达 R 的数据包发送到哪一个下一跳,或者 C1 必须将发往 R 的数据包丢弃到哪个接口?)
- R 必须能够识别并接收发往它的数据包
等等。上述每个点都是您在减少问题时做出的假设。您要做的是让您的系统符合实现从模型得出的预测所需的条件。也就是说:如果我像这样配置 C1 的接口,像那样配置 R 的接口,那么 C1 将能够 ping R。好的,我们现在就配置我们的系统,就像我认为正确一样。现在让我们测量一下。ping 是否有效?如果不行,我在线路上看到什么包?R 上的 tcpdump 向我显示了哪些数据包。等等。
所以这就是我要做的事情。我会把所有东西分成小部分,验证每个部分是否按预期工作,并在每个点进行测量(tcpdump),以防某些部分没有按预期工作。
答案3
据我了解,您的情况是这样的。您的所有客户端都连接到 LAN 10.17.0.0/16,而所有其他交换机都连接到 Opt1Phone 10.18.0.0/16。以下静态路由应该适合您。试试看。
Network: 10.18.0.0/16 Gateway: PhoneGW Interface: Opt1Phone
Network: 10.1.10.1/30 Gateway: PhoneGW Interface: Opt1Phone