我有一台 OpenBSD 服务器,我想将其用作网关。OBSD 服务器具有以下接口 -
- em5(130.。.** 具有互联网连接的外部 IP)
- em0(内部 IP - 172.16.0.0/17)
我的默认网关是 130。。.1 并且可以通过 ping 访问。
目标是对 172.16.0.0/17 和 130 之间的流量进行 NAT。。.** 网络,以便具有 172.16.* IP 地址的客户端能够访问互联网。
route 命令显示网关设置正确。
ns1# route show
Routing tables
Internet:
Destination Gateway Flags Refs Use Mtu Prio Iface
default 130.**.**.1 UGS 4 5293 - 8 em5
我可以从这个 OpenBSD 服务器访问互联网。
现在,OBSD 上已启用转发。
ns1# sysctl -a|grep forwarding
net.inet.ip.forwarding=1
pf 具有以下配置。
ext = "em5"
priv = "em0"
table <martians> { 0.0.0.0/8 10.0.0.0/8 127.0.0.0/8 169.254.0.0/16 \
172.16.0.0/12 192.0.0.0/24 192.0.2.0/24 224.0.0.0/3 \
192.168.0.0/16 198.18.0.0/15 198.51.100.0/24 \
203.0.113.0/24 }
set block-policy drop
set loginterface egress
set skip on lo0
match in all scrub (no-df random-id max-mss 1440)
match out on egress inet from !(egress:network) to any nat-to (egress:0)
antispoof quick for { egress $ext $priv}
#block in quick on egress from <martians> to any
block return out quick on egress from any to <martians>
block all
pass out quick inet
pass in on { $ext $priv} inet
pass in proto tcp to port 22 keep state
这个设置以前可以正常工作,但在我已恢复的一些更改之后,它停止工作了。我很难弄清楚是什么阻止了这种 NAT 流量。
OpenBSD 能够与互联网通信。
私有网络中的节点可以正常地相互通信。
但是,节点无法访问互联网。
我该如何解决这个问题?
我已尝试以下操作但目前失败:
- 重启 OBSD 服务器
- 禁用 pf,尝试然后重新启用它。
- 电缆改组后等待了几个小时,认为是一些缓存阻止了新的条目。
- 在不同的 n/w 中添加了另一个公共接口,并将默认网关更改为该接口。
以上均无法访问内部网络。
有人知道这里可能发生什么事吗?
更多信息:pfctl -sr 显示为空白。
ns1# pfctl -sr
ns1#
更新:@chuckx 对 pfctl -sr 的请求促使我让 pf 重新读取它的配置文件,现在它似乎可以完成它的工作,并且流量转发可以正常工作!