OS X、数据包过滤器 (PF)、路由选项

OS X、数据包过滤器 (PF)、路由选项

我试图在 OS X 10.10 上使用 pfctl (PF) 设置“基于策略”的路由,但是无论我做什么,我都会从 pfctl 收到“语法错误”。配置相当简单:

cat ./test.conf

inf="en0"
outf="en1"
inn="192.168.1.0/24"
outg="192.168.2.1"

pass in on $inf from $inn route-to ( $outf, $outg )
--

pfctl -n -v -f ./test.conf
pfctl: Use of -f option, could result in flushing of rules
present in the main ruleset added by the system at startup.
See /etc/pf.conf for further details.

inf = "en0"
outf = "en1"
inn = "192.168.1.0/24"
outg = "192.168.2.1"
230.conf:6: syntax error

有人知道正确的语法,路线选项在 OS X 上尚未实现/支持吗?

谢谢

**更新:正确的语法(和空行)将是

从 $inn ** 传入 $inf route-to ( $outf $outg )

答案1

经过几个小时的头脑风暴,我终于找到了正确的语法和错误所在。1. 非常愚蠢的 (在我看来) pf 解析,你必须在最后一个非空行之后有一个空行。即:

最后一条规则传递参数!!!否则你会得到语法错误。

  1. route-to 的正确语法应该是从 $inn 传递到 $inf route-to ($outf $outg),这与“常规”传递语句略有不同,但我花了好几个小时才弄明白。

相关内容