Коллеги!
Может ли ipfw конфликтовать с железом и если да, то так это можно вылечить?
Предыстория такова. Имеется простенький роутер на Фре 7.0 + squid + sarg. Всё по минимуму, статическая адресация, два интерфейса, один смотрит наружу, другой в локалку. В ядро вкомпилены все соответствующие опции, кроме IPFIREWALL_FORWARD (прозрачный прокси не юзается. Машинка - старенький AMD атлон с гигом оперативки и IDE-шным винтом. Работает отлично уже не первый месяц.
Возникла идея проапгрейдить это дело. Собрал P4, два гига оперативки, винт SATA. Далее:
-ставлю фрю с того же диска
-собираю ядро с теми же опциями
-переношу конфиг Ipfw со старой тачки на новую. Единственное, что изменяю, так это имена интерфейсов.
запускаю. На первом же правиле получаю Invalid_argument Закрываю первое правило, вылетает второе и т.д. Если оформляю загрузку правил не файлом а скриптом, то они вроде как загружаются (вывод ipfw -ad list их показывает) но ни черта не работают. Точнее работают непредсказуемо - у юзеров интернет появляется и пропадает самым замысловатым образом. Если отключить ipfw (в rc.conf вместо firewall_type="/etc/fw.conf" говорю firewall_type="OPEN" то роутер работает, интернет раздаётся, то есть NAT и прочая требуха работоспособна.Вопрос: Почему две тачки с абсолютно одинаковой системой ядром и конфигами ведут себя с точностью до наоборот? Одна работает прекрасно, вторая - не работает вообще. Единственная принципиальная разница между тачками это IDE на старой и SATA на новой. Ну и AMD против Intel конечно. Может ли в этом быть причина вылета ipfw?
Подробности:
fw.conf
add 1000 pass all from any to any via lo0
add 1003 deny tcp from any to x.x.x.x 80 via xl0
add 1005 fwd 127.0.0.1,3128 tcp from 192.168.1.0/24 to any 80 via rl0
add 1100 divert natd ip from 192.168.1.0/24{10,101,102,103,106,107,109,11,111,112,114,115,116,13,130,137,15,16,17,18,19,192,193,194,20,222,226,23,249,250,4,40,5,41,51,61,62,63,64,65,67,7,73,74,77,80,82,84,85,86,87,88,41,105} to any out xmit xl0
add 1200 divert natd ip from any to x.x.x.x
add 1300 allow ip from any to any via xl0
add 1400 allow all from any to any
rc.conf
defaultrouter="x.x.x.x"
gateway_enable="YES"
hostname="Router"
ifconfig_xl0="inet x.x.x.x netmask x.x.x.x"
ifconfig_rl1="inet 192.168.1.1 netmask 255.255.255.0"
firewall_enable="YES"
firewall_type="/etc/fw.conf"
natd_enable="YES"
squid_enable="YES"
sshd_enable="YES"
natd_interface="xl0"
natd_flags="-f /etc/natd.conf"
inetd_enable="YES"
usbd_enable="YES"
natd.conf
same_ports yes
use_sockets yes
unregistered_only no