Да присуствует.. Вот все настроечки, если ничего не забыл упомянуть:
--------------------------
rc.conf
defaultrouter="1.1.1.1"
ifconfig_fxp0="inet 1.1.1.2 netmask 255.255.255.240"
ifconfig_vr0="inet 2.2.2.2 netmask 255.255.255.0"
ifconfig_fxp1="inet 192.168.5.1 netmask 255.255.255.0"
firewall_enable="YES"
firewall_script="/usr/local/scripts/replug/rc.firewall"
ipnat_enable="YES"
ipnat_program="/sbin/ipnat -CF -f"
ipnat_rules="/usr/local/scripts/replug/ipnat.rules"
ipnat_flags=""
--------------------------
ipnat.rules
map fxp0 192.168.5.0/24 -> 1.1.1.2/32 proxy port ftp ftp/tcp
map fxp0 192.168.5.0/24 -> 1.1.1.2/32 portmap tcp/udp auto
map fxp0 192.168.5.0/24 -> 1.1.1.2/32
map vr0 192.168.5.105/32 -> 2.2.2.2/32 proxy port ftp ftp/tcp
map vr0 192.168.5.105/32 -> 2.2.2.2/32 portmap tcp/udp auto
map vr0 192.168.5.105/32 -> 2.2.2.2/32
Ну например, пустить какой-то хост, через другого провайдера. Правила натирования местами менять пробовал.
--------------------------
rc.firewall
#### localnets
${ipfw} add 00005 pass all from any to any via lo0
${ipfw} add 00006 deny all from any to 127.0.0.0/8
${ipfw} add 00020 pass all from ${localnet} to any via ${local_iface}
${ipfw} add 00030 pass all from any to ${localnet} via ${local_iface}
#### counts
${ipfw} add 0010 count ip from any to ${localnet} 3389 via tun*
${ipfw} add 0011 count ip from ${localnet} 3389 to any via tun*
${ipfw} add 0012 count ip from any to any in via ${out_iface}
${ipfw} add 0013 count ip from any to any out via ${out_iface}
${ipfw} add fwd 1.1.1.1 all from 1.1.1.2 to not me
#${ipfw} add 00016 fwd 192.168.5.1,8080 tcp from ${localnet} to any 80 via ${local_iface}
#${ipfw} add 00015 fwd 192.168.5.1,2121 tcp from ${localnet} to any 21 via ${local_iface}
${ipfw} add 0500 allow icmp from any to any
${ipfw} add allow all from any to any frag
#### allow VPN
${ipfw} add 1000 allow all from any to any via gif*
${ipfw} add 1100 allow all from any to any via tun*
${ipfw} add 1200 allow udp from "table(1)" to "table(1)" isakmp
${ipfw} add 1300 allow esp from "table(1)" to "table(1)"
${ipfw} add 1400 allow ipencap from "table(1)" to "table(1)"
${ipfw} add 1500 allow gre from any to ${out_ip}
${ipfw} add 1600 allow gre from ${out_ip} to any
#### security
${ipfw} add 15000 pass udp from any to any via ${out_iface}
${ipfw} add 15010 pass tcp from any 20 to ${out_ip} 1024-65534 via ${out_iface}
${ipfw} add 15010 pass tcp from any 1024-65534 to ${out_ip} 1024-65534 via ${out_iface}
#${ipfw} add 15020 pass tcp from ${out_ip} 1024-65534 to any 1024-65534 via ${out_iface}
${ipfw} add 15050 pass tcp from ${out_ip} 1024-65535 to any via ${out_iface}
${ipfw} add 15060 pass tcp from any to ${out_ip} 1024-65535 via ${out_iface} established
${ipfw} add 65534 deny log all from any to any
ядро
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPDIVERT
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=1000
options DUMMYNET
options IPFILTER
options IPFILTER_LOG
ОС: FreeBSD 6.2-RELEASE-p9
Вот примерно так пытался сделать, не получается. Каждую пинуту по статичным маршрутам ещё делаю пинги для переключения на резервный канал.
Фаирвол показал сейчас как есть, при тестах убирал запреты.
Я так понимаю, что все пакеты пуляются по дефотроуту, то есть даже при поступлении пакета на 2.2.2.2 с него идет на 1.1.1.1..
Читал, что в случае с pf/ipf все много проще и видел правила с организацией маршрутов для интерфейса. Где-то что-то я недопонимаю.. Посоветуйте. Я ipfw\ipnat тока вчера настроил по ману, может как-то неправильно сделано..
Спасибо. С наступающим.