Ядро собрано с:############## IPFW - NAT ############################################
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options IPFIREWALL_NAT
############## IPFILTER ##############################################
options IPFILTER
options IPFILTER_LOG
options DUMMYNET
######################################################################
############## PPPOE #################################################
options LIBALIAS
options NETGRAPH
options NETGRAPH_SOCKET
options NETGRAPH_IFACE
options NETGRAPH_PPP
options NETGRAPH_ETHER
options NETGRAPH_PPPOE
######################################################################
в rc.conf :
################# IPFW ##########################################
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_type="/etc/firewall.conf"
firewall_quiet="NO"
firewall_logging="YES"
#################################################################
#
################# NATD ##########################################
natd_enable="YES"
natd_program="/sbin/natd"
natd_interface="xxx.xx.xx.xx"
natd_flags="-u -m" # mogno dobavit "-l" dlya loga
#################################################################
в firewall.conf :
# default in rc.firewall
add 00010 pass all from any to any via lo0
add 00011 deny all from any to 127.0.0.0/8
add 00012 deny ip from 127.0.0.0/8 to any
# anti-hack from outside
add 00013 deny ip from me to any in recv ng0
# ssh
add 01020 allow tcp from 192.168.1.0/24 to me 22 keep-state
add 01030 deny all from any to xxx.xx.xx.xx 22 in via ng0
# dns
add 02040 allow all from any to any 53
add 02041 allow all from any 53 to xxx.xx.xx.xx
# smtp
add 02060 allow all from xxx.xx.xx.xx 25 to any
add 02061 allow all from any to me 25
add 02062 deny log all from 192.168.0.0/16 to any 25
# nat
add 03000 divert natd all from 192.168.1.20/32 to not 192.168.0.0/16 out via ng0
add 03999 divert natd all from not 192.168.0.0/16 to xxx.xx.xx.xx in via ng0
#nat 123 config if ng0 log
#add 03000 nat 123 log ip4 from 192.168.1.20/32 to not 192.168.0.0/16 out via ng0
#add 03999 nat 123 log ip4 from not 192.168.0.0/16 to xxx.xx.xx.xx in via ng0
# http
add 04100 allow all from xxx.xx.xx.xx 80 to any
add 04101 allow all from any 80 to xxx.xx.xx.xx
# internal LAN
add 05001 allow all from any to any via nfe0
add 05002 allow all from any to any via re0
#add 05003 allow all from any to any via re1
#add 05004 allow all from any to any via lo0
add 05005 allow all from any to any via ng0
# deny all
add 64998 allow tcp from any to any established
add 64999 deny ip6 from any to any
add 65000 deny log all from any to any
то что показывает kldstat:
Id Refs Address Size Name
1 7 0xc0400000 5ffbcc kernel
2 1 0xc0a00000 6921c acpi.ko
3 1 0xc432e000 22000 linux.ko
в /var/run/dmesg.boot что касаеться ipfw:
ipfw2 (+ipv6) initialized, divert enabled, rule-based forwarding enabled, default to accept, logging limited to 100 packets/entry by default
Если фаервол использовать с natd - все работает на ура.
При использовании в фаерволе опций ната ядра:
nat 123 config if ng0 log
add 03000 nat 123 log ip4 from 192.168.1.20/32 to not 192.168.0.0/16 out via ng0
add 03999 nat 123 log ip4 from not 192.168.0.0/16 to xxx.xx.xx.xx in via ng0
пакеты уходят но не видно чтоб возвращались.
Пинг при таком раскладе работает, RDP тоже. При получении почты с внешнего почтовика соединение есть, получаю количество писем, но сами письма не получаються, сеанс висит в ожидании получения. Таже картина происходит с потоковым видео, соединение вроде происходит, но не получаю изображение.
в системе еще установлен ipnat.
Что подправить чтоб нат-ядра заработал?