freebsd 8.2
в ядре:
Код: Выделить всё
option IPFIREWALL
option IPFIREWALL_VERBOSE
option IPFIREWALL_VERBOSE_LIMIT=100
option IPFIREWALL_NAT
option IPFIREWALL_FORWARD
option IPDIVERT
option LIBALIAS
option ROUTETABLES=2
option DUMMYNET
option HZ="1000"
Код: Выделить всё
ifconfig_rl0="up"
ifconfig_rl1="up"
gateway_enable="YES"
ifconfig_rl0="inet 192.168.4.45/24"
defaultrouter="1.1.1.1"
inetd_enable="YES"
cloned_interfaces="vlan666"
ifconfig_vlan666="inet 1.1.1.2/30 vlan 666 vlandev rl1"
firewall_enable="YES"
firewall_nat_enable="YES"
dummynet_enable="YES"
firewall_type="/etc/ipfw.conf"
Код: Выделить всё
add 10 allow all from any to any via lo0
nat 1 config if vlan666 redirect_port tcp 192.168.4.55:22 22222
add 100 nat 1 tcp from any to 1.1.1.2 22222 via vlan666
add 100 allow tcp from any to 192.168.4.55 22 via rl0
nat 10 config if vlan666
add 20000 nat 10 ip from any to any via vlan666
add allow all from any to any
rl0 - интерфейс, смотрящий в локалку
rl1 - интерфейс. принимающий тэгом 666 влан, на котором белый адрес
нат работает адекватно, а вот редирект никак...
собсна, нужен редирект, чтобы при обращении к порту 22222 реального адреса я попадал на 22 порт 192.168.4.55
я понимаю, что это можно сделать при помощи баланса и многих других демонов, но нужно именно средствами ipfw, не прибегая к natd