Есть рутер, на нем несколько сеток и интерфейсов. В нем же организован прозрачный прокси и нат.
ipfw add divert natd all from 192.168.0.0/24 to any out via rl3
ipfw add divert natd all from 192.168.1.0/24 to any out via rl3
ipfw add divert natd all from any to 212.0.100.133 in via rl3
ipfw add deny icmp from any to any frag
ipfw add fwd 192.168.0.1,3128 tcp from 192.168.0.0/24 to any 80
ipfw add fwd 192.168.1.1,3128 tcp from 192.168.1.0/24 to any 80
ipfw add fwd 212.0.100.193,3128 tcp from 212.0.100.192/28 to any 80
# -- sysinstall generated deltas -- #
ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig_rl1="inet 192.168.1.1 netmask 255.255.255.0"
ifconfig_rl2="inet 212.0.100.193 netmask 255.255.255.192"
ifconfig_rl3="inet 212.0.100.133 netmask 255.255.255.240"
defaultrouter="212.0.100.129"
На сетке 212.0.100.128/28 висят сервера. Клиенты на остальных.
Так вот в чем дело - есть около 100 правил, но не все работают адекватно - что-то просачивается сквозь правила. Например группа:
ipfw -f add pipe 15 ip from 192.168.0.11 to 212.0.100.128/28
ipfw -f add pipe 15 ip from 212.0.100.128/28 to 192.168.0.11
ipfw -f add pipe 10 ip from 192.168.0.11 to 212.0.100.192/26
ipfw -f add pipe 10 ip from 212.0.100.192/26 to 192.168.0.11
ipfw -f add pipe 1 ip from 192.168.0.11 to www.aport.ru
ipfw -f add deny all from 192.168.0.11 to www.aska.ru
ipfw -f add deny all from 192.168.0.11 to lite.icq.com
ipfw -f add deny all from 192.168.0.11 to icq.com
ipfw -f add pipe 1 ip from www.aport.ru to 192.168.0.11
ipfw -f add deny ip from any to any
Так вот - если оставляю предпоследнее правило
ipfw -f add pipe 1 ip from www.aport.ru to 192.168.0.11 - клиент не дышит. Если вместо него пишу
ipfw -f add pipe 1 ip from any to 192.168.0.11 - клиент получает все, и ICQ и aport и т.д. Как же его правильно зарубать-то? Чего я тут недопонимаю?