pfSense:如何将流量从 WAN 端口路由出去?

pfSense:如何将流量从 WAN 端口路由出去?

专家版

我想在 pfSense 中创建一个路由,将流量发送到身体的广域网端口,而不是PPPoE 广域网端口。我想与我的 DSL 调制解调器上的 Web 服务器通信;让我查看当前的同步速率和 SnR 裕度。调制解调器看不到发往它的数据包,因为它们是通过PPPoE 隧道


长版本

我的 pfSense 路由器负责通过 DSL 设置到我的 ISP 的 PPPoE 连接。当 LAN 上的一台机器想要将数据包发送到互联网时,默认路由会通过点对点连接连接。这些数据包被包裹在PPPoE 报头,通过以太网电缆发送到我的 DSL 调制解调器。然后从那里发送到 ISP 和整个互联网。

+----------------------+                  +----------------------+    
|IPv4 header (20 bytes)|    +--------+    |PPPoE header (8 bytes)|    +-----+    {‾‾‾‾‾‾‾‾}
|                      |===>|pfSense |===>|IPv4 header (20 bytes)|===>|Modem|===>{Internet}
|                      |    +--------+    |                      |    +-----+    {________}
|                      |                  |                      |
+----------------------+                  +----------------------+

我想要一种从 WAN 端口本身发送数据包的方法 - 而不是 PPPoE WAN 端口。

我的调制解调器就在那里,有一个 http 接口,我可以在那里监控

  • 连接速度
  • 信噪比
  • 带宽
  • 连接时间

192.168.2.1每当我尝试为目的地(调制解调器将侦听 HTTP 请求的 IP)设置路由时,广域网港口,他们最终还是走出了点对点连接港口。

不同之处在于它们被包装在 PPPoE 协议包中,并且调制解调器不会发送该数据包,而是将其传送给 ISP。

鉴于 pfSense 无法将流量引导出物理 WAN 端口:我如何将流量引导出 pfSense 上的物理 WAN 端口?


这是我问的同一个问题3 年前在 pfSense 论坛上

我的调制解调器有一个 Web 界面。它很方便,因为我可以查看它是否实际已连接、线路噪音、错误率等。

如果我将调制解调器连接到我的台式电脑(而不是 pfSense PC),我可以正常 ping 和浏览调制解调器的 Web 界面。调制解调器的 IP 是 192.168.0.254,监听端口 8080。我还可以从我的电脑对活动进行数据包跟踪:

正在 ping 调制解调器

ARP REQ    Phalanx => Broadcast     192.168.0.98  -?- 192.168.0.254
ARP RESP   Phalanx <= Ovislink_LAN  192.168.0.254 -!- 192.168.0.98
IP/ICMP    Phalanx => Ovislink_LAN  192.168.0.98  =>  192.168.0.254 ECHO
IP/ICMP    Phalanx <= Ovislink_LAN  192.168.0.98  <=  192.168.0.254 ECHOREPLY

您可以看到我的机器正在执行 ARP 广播,询问调制解调器(Ovislink)的 MAC 地址。调制解调器以其 IP 响应,回显发出,然后我收到回复。当我连接到调制解调器的 Web 端口时,可以看到类似的详细信息:

连接到 Web 端口 8080

ARP REQ     Phalanx => Broadcast    192.168.0.98       -?- 192.168.0.254
ARP RESP    Phalanx <= Ovislink_LAN 192.168.0.254      -!- 192.168.0.98
IP/TCP      Phalanx => Ovislink_LAN 192.168.0.98:50001 =>  192.168.0.254:8080 SYN
IP/TCP      Plalanx <= Ovislink_LAN 192.168.0.98:50001 <=  192.168.0.254:8080 SYNACK
IP/TCP      Phalanx => Ovislink_LAN 192.168.0.98:50001 =>  192.168.0.254:8080 ACK

ARP 请求后,TCP 连接建立,并进行正常的 SYN、SYN ACK、ACK 流程。一切正常。

现在,我不再将调制解调器连接到台式电脑,而是将其连接到运行 pfSense 的电脑。

笔记:之前,我已将 pfSense 的 LAN IP 地址更改为192.168.1.1/16,而不是192.168.1.1/24。这是因为我的网络已经192.168.0.0/16

我做的第一件事就是禁用“阻止私人网络”下的功能Interfaces->WAN,因为我的调制解调器的 LAN 接口正在作为 运行。这将删除 下阻止所有 RFC1918 流量的192.168.0.254第一个防火墙条目。接下来我添加了一条防火墙规则:Firewall->Rules

行动:经过
界面:广域网
协议:TCP
来源:单个主机或别名,192.168.0.254
目的地:LAN 子网
目的端口范围:任何
日志包:是的
描述:ADSL调制解调器

保存并应用更改后,我尝试使用该Diagnostics->Ping功能在 WAN 端执行 ping 操作192.168.0.254。当然,没有成功。

我考虑了一下,我觉得我不能只允许 TCP 数据包从 进入 WAN 192.168.0.254,我还需要允许 ARP 响应数据包(否则 pfSense 怎么能找到它试图发送 IP 数据包的硬件的 MAC 地址?)。我还想到我不能说 LAN 作为目的地,因为实际上是 WAN 接口在 ping。所以我将防火墙规则更新为:

行动:经过
界面:广域网
协议:任何
来源:单个主机或别名,192.168.0.254
目的地:任何
目的端口范围:任何
日志包:是的
描述:ADSL调制解调器

现在当我 ping 它时...不起作用。这并不奇怪。所以我决定运行数据包跟踪:

界面:广域网
主机地址:192.168.0.254
数数:1
详细程度:满的

我启动了跟踪,从 执行了 ping Diagnostics->Ping,但什么也没得到。没有 ping 回复,跟踪中也没有数据包。

所以现在我想到,只是因为:

  • pfSense 处于192.168.1.1/16子集
  • 我的桌面在192.168.0.98/16子网上
  • 我的服务器在192.168.0.10/16子网上

也许调制解调器不在/16子网上。我将调制解调器重新插入我的桌面,连接到网络界面,看到它设置为192.168.0.254/24。所以我重新配置调制解调器192.168.1.254/24。然后我重新配置

  • 192.168.1.98我的桌面是
  • 服务器192.168.1.10
  • 现在调制解调器192.168.1.254
  • 除了 pfSense 之外192.168.1.1

我将调制解调器重新连接到 pfSense 盒,尝试 ping 它,但...没有回应。我对来自的数据包进行数据包跟踪,192.168.1.254但我看到...没有。

所以现在我很困惑,正在寻求帮助。

答案1

我认为我已经成功完成了您的请求。您需要添加接口、网关和规则,以便将流量路由到调制解调器 IP 范围内的网关。

所以我的设置:十亿路由器连接到电话线 - 设置为桥接模式。pfsense 路由器通过局域网电缆连接到十亿路由器。pfsense 版本 2.1.5

pfSense 设置为有 3 个接口:

  • WAN - 通过 re0 的 PPPOE(作为安装向导的一部分进行设置)
  • LAN - em0 上的 dhcp 主机,使用 dhcp 在 192.168.1.128 和 192.168.1.192 之间分配 IP(作为安装向导的一部分进行设置)
  • MODEMACCESS - re0 上的 dhcp 客户端(必须在设置后手动添加)

网关:

  • GW_WAN - 接口 = WAN;网关 IP 地址 = 动态;默认网关
  • MODEMACCESS_DHCP - 接口 = MODEMACCESS ;网关 IP 地址 = dhcp;非默认网关

规则:

  • 在 WAN 下,我有通常的 2 个阻止和一个全部通过,网关 = 默认
  • 在 LAN 下,我有 192.168.1.1/24 源和 192.168.1.1/24 目标锁定规则以及一些从 192.168.1.x 到 !192.168.1.x 的队列分配规则,网关 = 默认
  • 在 MODEMACCESS 下,源 192.168.1.1/24 到目标 10.0.0.2/24,网关为 MODEMACCESS_DHCP

设备 IP:

  • 十亿路由器ip 10.0.0.2
  • pfSense 局域网 IP:192.168.1.1
  • pfSense WAN 公网 IP 由 PPPOE 决定
  • pfSense MODEMACCESS IP 由十亿 DHCP 服务器决定

我可以通过在 LAN 网络上的任何 PC 上的任何浏览器中输入 10.0.0.2(或主机名)来访问十亿路由器 Web GUI。我可以通过 LAN 网络上连接的任何设备访问互联网(通过 pfsense 上的 PPPOE 连接)。

答案2

不确定 DSL 是否可行... 您能否创建仅包含 WAN 参数的防火墙规则?换句话说,转到防火墙 > 规则 > WAN 并在那里创建规则。确保限制流量不包括 PPPoE,即 LAN > WAN。

答案3

在我看来,您的调制解调器路由器处于桥接模式,并且 pfSense 路由器设置了 PPPoE 客户端 ID,以便直接从 ISP 接收您的公共 IP。确保路由器未处于桥接模式,并且设置为 dhcp 服务器。然后告诉 pfSense 通过 DHCP 获取其 WAN IP。

这真的只是一个猜测......

答案4

要进行此设置,您需要一个交换机来插入调制解调器。PFSense 防火墙将插入具有两个端口的交换机。一个端口最初将显示为 OPT 端口,但您可以重命名它。防火墙将使用 PPPoE 连接作为 WAN 接口,但您可以通过 opt 接口路由到调制解调器。

相关内容