macOS pf 通过 VLAN 的非对称路由

macOS pf 通过 VLAN 的非对称路由

vlan0我有一个标记为 444 的VLAN 接口,其 IP 为172.16.16.16

VLAN 通过物理en0接口。

我有另一个mine0仅在计算机本地的接口。内部IP已分配192.168.168.168

我正在尝试使用规则在和binat之间执行 1:1 NATvlan0mine0

我的pf.conf

binat on vlan0 from 172.16.16.16 to any -> 192.168.168.168

设置 pf 规则后,我尝试使用该172.16.16.16地址进行 SSH。

我的输出tcpdump host 10.10.10.10

22:06:41.397177 IP 10.10.10.10.34755 > 172.16.16.16.ssh: Flags [S], seq 1984840961, win 26883, options [mss 1460,sackOK,TS val 4060403773 ecr 0,nop,wscale 7], length 0
22:06:41.397258 IP 192.168.168.168.ssh > 10.10.10.10.34755: Flags [S.], seq 2419525153, ack 1984840962, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 824423934 ecr 4060403773,sackOK,eol], length 0
22:06:42.400361 IP 192.168.168.168.ssh > 10.10.10.10.34755: Flags [S.], seq 2419525153, ack 1984840962, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 824424934 ecr 4060403773,sackOK,eol], length 0
22:06:42.425900 IP 10.10.10.10.34755 > 172.16.16.16.ssh: Flags [S], seq 1984840961, win 26883, options [mss 8861,sackOK,TS val 4060404802 ecr 0,nop,wscale 7], length 0
22:06:42.425994 IP 192.168.168.168.ssh > 10.10.10.10.34755: Flags [S.], seq 2419525153, ack 1984840962, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 824424958 ecr 4060404802,sackOK,eol], length 0
22:06:44.405921 IP 192.168.168.168.ssh > 10.10.10.10.34755: Flags [S.], seq 2419525153, ack 1984840962, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 824426935 ecr 4060404802,sackOK,eol], length 0
22:06:44.441985 IP 10.10.10.10.34755 > 172.16.16.16.ssh: Flags [S], seq 1984840961, win 26883, options [mss 8861,sackOK,TS val 4060406818 ecr 0,nop,wscale 7], length 0
22:06:44.442072 IP 192.168.168.168.ssh > 10.10.10.10.34755: Flags [S.], seq 2419525153, ack 1984840962, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 824426971 ecr 4060406818,sackOK,eol], length 0

每个 SYN 数据包 ( Flags [S]) 均通过接口传入vlan0

然而,每个 SYN ACK 数据包 ( Flags [S.]) 都会通过该en0接口。

我需要更改什么才能让数据包出去使用vlan0

答案1

如果您和另一台计算机之间存在路由器或防火墙:

SYN S Syn数据包,是会话建立请求。

该请求甚至可能无法到达目的地,即使到达目的地,您也可能得不到响应。如果一侧的安全性比另一侧更严格,则状态信息可能不存在。

如定位:思科网络服务新闻:

尝试这个:

将变量设置为您需要的接口。

# Static 1:1 NAT for the internal WWW servers
binat on $ext_if from $www1_int to any -> $www1_ext
binat on $ext_if from $www2_int to any -> $www2_ext

在这里找到的信息:FreeBSD 论坛

相关内容