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

Ian*_*oyd 5 dsl-modem pfsense pppoe

专家版

我想在 pfSense 中创建一个路由,将流量发送到物理WAN端口,而不是PPPoE WAN端口。我想与我的 DSL 调制解调器上的网络服务器通话;让我看到当前的同步率和 SnR 余量。调制解调器看不到发往它的数据包,因为它们是通过PPPoE 隧道发送的。


长版

我的 pfSense 路由器负责通过 DSL 建立到我的 ISP 的 PPPoE 连接。当 LAN 上的机器想要将数据包发送到 Internet 时,默认路由通过PPPoE连接将数据包发送出去。那些包裹在PPPoE 标头中的数据包通过以太网电缆发送到我的 DSL 调制解调器。从那里他们被发送到 ISP,以及整个互联网。

+----------------------+                  +----------------------+    
|IPv4 header (20 bytes)|    +--------+    |PPPoE header (8 bytes)|    +-----+    {????????}
|                      |===>|pfSense |===>|IPv4 header (20 bytes)|===>|Modem|===>{Internet}
|                      |    +--------+    |                      |    +-----+    {________}
|                      |                  |                      |
+----------------------+                  +----------------------+
Run Code Online (Sandbox Code Playgroud)

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

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

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

每当我尝试为目的地192.168.2.1(调制解调器将侦听 HTTP 请求的 IP)设置路由以离开WAN端口时,它们最终会离开PPPoE端口。

不同之处在于它们被包裹在一个 PPPoE 协议数据包中,并且调制解调器没有被发送数据包,它被传送到 ISP。

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


这是我3 年前在 pfSense 论坛上问的完全相同的问题:

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

如果我将调制解调器连接到我的 destop PC(而不是 pfSense PC),我可以正常 ping 并浏览调制解调器的 Web 界面。调制解调器的 IP 是 192.168.0.254,并在端口 8080 上侦听。我还可以从我的 PC 数据包跟踪活动:

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
Run Code Online (Sandbox Code Playgroud)

你可以看到我的机器在做一个 ARP 广播,询问调制解调器的 MAC 地址(Ovislink)。调制解调器用它的 IP 响应,回声消失,我得到答复。当我连接到调制解调器的 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
Run Code Online (Sandbox Code Playgroud)

ARP请求后,通过正常的SYN、SYN ACK、ACK过程建立TCP连接。一切都很好。

现在,我没有将调制解调器连接到我的台式机,而是将它连接到运行 pfSense 的 PC。

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

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

操作:通过
接口: WAN
协议: TCP
源:单个主机或别名,192.168.0.254
目的地: LAN 子网
目的地端口范围:任何
日志数据包:
描述: ADSL 调制解调器

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

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

操作:通过
接口: WAN
协议:任何
来源:单个主机或别名,192.168.0.254
目的地:任何
目的地端口范围:任何
日志数据包:
描述: ADSL 调制解调器

现在,当我 ping 它时...不起作用。没有真正的惊喜。所以我决定运行一个数据包跟踪:

接口: WAN
主机地址: 192.168.0.254
计数: 1
详细级别:完整

我开始跟踪,从 ping Diagnostics->Ping,然后得到......什么都没有。没有 ping 回复,跟踪中也没有数据包。

所以现在我突然想到,仅仅因为:

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

也许调制解调器不在/16子网上。我将调制解调器插回我的桌面,连接到 Web 界面并查看它是否设置为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,我看到...没有。

所以现在我很难过,正在寻求帮助。

小智 2

我想我已经做到了你的要求。您需要添加接口、网关和规则,以将流量路由到调制解调器 IP 范围的网关。

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

pfsense 设置有 3 个接口:

  • WAN - PPPOE over re0(作为设置向导的一部分进行设置)
  • 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 连接)。