Есть вопросец.
Вобщем есть сервер учета траффика, на нем бежит биллинговая система Abills.
При подключения юзера по ВПН посредством ipfw поднимаються pipe'ы.
На том же ipfw поднят nat на внешний интерфейс.
Траффик генериться порядочный по 10Гб в среднем за 12 часов. И не очень мне нравиться как ведет себя ipfw по отношению к загрузке процессора. Приблизительно 10-20% загружает проц.
Машинка - Celeron 2.53, 1Гб ОЗУ + FreeBSD 6.1-Release.
Вот подумал может заменить ipfw natd на ipnat.
После 180-го правила идут пайпы, после них НАТ.
Подскажите как мне привязать ipnat, вместо natd в моем случае, чтобы логика файрволла не нарушилась.
Код: Выделить всё
#!/bin/sh
FwCMD="/sbin/ipfw"
LanOut="rl0"
LanIn="xl0"
IpOut="10.0.1.2"
IpIn="192.168.0.1"
NetMask="24"
NetIn="192.168.0.0"
ipfw -f flush
ipfw add 10 check-state
ipfw add 20 allow ip from any to any via lo0
ipfw add 30 deny ip from any to 127.0.0.0/8
ipfw add 40 deny ip from 127.0.0.0/8 to any
ipfw add 50 deny ip from 172.16.0.0/12 in via ${LanOut}
ipfw add 60 deny ip from any to 0.0.0.0/8 in via ${LanOut}
ipfw add 70 deny ip from any to 169.254.0.0/16 in via ${LanOut}
ipfw add 80 deny icmp from any to any frag
ipfw add 90 deny icmp from any to 255.255.255.255 in via ${LanOut}
ipfw add 100 deny icmp from any to 255.255.255.255 out via ${LanOut}
ipfw add 110 deny ip from 172.16.0.0/12 to any out via ${LanOut}
ipfw add 120 allow gre from me to 192.168.0.0/24 via xl0
ipfw add 130 allow gre from 192.168.0.0/24 to me via xl0
ipfw add 140 allow tcp from 192.168.0.0/24 1723 to me via xl0
ipfw add 150 allow tcp from me to 192.168.0.0/24 1723 via xl0
ipfw add 160 allow tcp from 192.168.0.0/24 to me 80 via xl0
#ipfw add 161 allow ip from any to me 53
#ipfw add 162 allow ip from me to any 53
#ipfw add 170 skipto 190 ip from 192.168.0.234 to any out
#ipfw add 171 skipto 190 ip from 192.168.0.235 to any out
#ipfw add 180 deny ip from 192.168.0.0/24 to any via ${LanOut}
#divert
ipfw add 17000 deny ip from 192.168.0.0/24 to any via ${LanOut}
${FwCMD} add 19000 divert natd ip from any to any out xmit ${LanOut}
${FwCMD} add 20000 divert natd ip from any to 10.0.1.2
${FwCMD} add 21001 allow tcp from any to any established
${FwCMD} add 21002 allow ip from ${IpOut} to any out xmit ${LanOut}
${FwCMD} add 21003 allow udp from any 53 to any via ${LanOut}
${FwCMD} add 21004 allow udp from any to any 53 via ${LanOut}
${FwCMD} add 21005 allow tcp from any to ${IpOut} 21 via ${LanOut}
${FwCMD} add 21006 allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
${FwCMD} add 21007 allow icmp from any to any icmptypes 0,8,11
${FwCMD} add 21008 allow tcp from any to ${IpOut} 22 via ${LanOut}
${FwCMD} add 21009 allow tcp from any to any
${FwCMD} add 21010 allow udp from any to any
${FwCMD} add 21011 allow icmp from any to any
${FwCMD} add 65534 deny ip from any to any