Привет. Есть хост на Freebsd со следующими интерфейсами:
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether 30:0e:d5:cf:54:ca
inet6 fe80::320e:d5ff:fecf:54ca%re0 prefixlen 64 scopeid 0x1
inet 172.16.0.1 netmask 0xffffff00 broadcast 172.16.0.255
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet 1000baseT <full-duplex>
status: active
re0.12: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 30:0e:d5:cf:54:ca
inet 172.16.12.1 netmask 0xffffff00 broadcast 172.16.12.255
inet6 fe80::320e:d5ff:fecf:54ca%re0.12 prefixlen 64 scopeid 0x4
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
media: Ethernet 1000baseT <full-duplex>
status: active
vlan: 12 parent interface: re0
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
options=80000<LINKSTATE>
inet6 fe80::320e:d5ff:fecf:54ca%tun0 prefixlen 64 scopeid 0x5
inet [SKIPPED] --> [SKIPPED] netmask 0xffffffe0
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Opened by PID 36484
Я хочу, чтобы весь трафик, который приходит на re0.12, заворачивался в tun0. В pf.conf прописано следующее:
lan_if = "re0"
vlan_if = "re0.12"
vpn_if = "tun0"
set skip on lo0
nat on $vpn_if inet from $vlan_if:network to any -> $vpn_if
pass in on $vlan_if route-to ($vpn_if $vpn_if:peer) inet from ($vlan_if:network) keep state
pass from { lo0, $lan_if:network, $vlan_if:network } to any keep state
При этом правило с route-to почему-то не работает, и трафик всё равно уходит в default gw. Что делать?