Здравствуйте ^_^Очень удобная штука этот kernel NAT, в 7.2 версии даже багов почти нет уже, однако, есть одна неприятность, с которой видимо должно быть можно что-то сделать, вот мне и интересно, есть ли варианты. Как известно, kernel NAT конфигурится конструкцией вроде:
ipfw nat 123 config if ng0 same_ports \
redirect_port 192.168.1.3:1234 1234 \
redirect_port 192.168.1.4:5678 5678...однако, когда количество строчек (проброшенных портов или диапазонов портов - ужимаем как можем) вырастает до неприличного предела (в 7.2 версии это - меньше 20-ти) - то ipfw просит увеличить некий buf :
ipfw: redirect_port: buf is too small
Должно же быть можно как-то увеличить этот buf, будь он хоть переменной которую придётся править в сорцах и перекомпилировать ipfw !!.. Ведь вроде не такое уж и редкое дело, даже хардверные роутеры со своим busybox-ом позволяют делать гораздо больше этих правил (хоть у них и файерволл+нат другой, линуксовый)...
>[оверквотинг удален]
>можем) вырастает до неприличного предела (в 7.2 версии это - меньше
>20-ти) - то ipfw просит увеличить некий buf :
>
>ipfw: redirect_port: buf is too small
>
>Должно же быть можно как-то увеличить этот buf, будь он хоть переменной
>которую придётся править в сорцах и перекомпилировать ipfw !!.. Ведь вроде
>не такое уж и редкое дело, даже хардверные роутеры со своим
>busybox-ом позволяют делать гораздо больше этих правил (хоть у них и
>файерволл+нат другой, линуксовый)...Откройте файлы исходников /usr/src/sys/netinet/ip_fw.h и /usr/include/netinet/ip_fw.h и увеличьте размер буффера(В обоих файлах) с
#define NAT_BUF_LEN 1024
на
#define NAT_BUF_LEN 8192После чего пересоберите мир(сам ipfw завязан на этом параметре) и ядро(для netinet).
Увеличение буффера до 8192 увеличит предел с 20-и до преблизительно 120-200 -а.