Итак, по порядку. Стоит Сервак (FreeBSD 6), на нем поднят IPFW+NAT+NETAMS.
Опции ядра:
options BRIDGE
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPDIVERT
options DUMMYNET
options TCP_DROP_SYNFIN
Файл rc.conf:
#Внутренная сеть, VLAN 224
ifconfig_bge0="inet 192.168.224.211 netmask 255.255.255.0"
hostname="brain.myname.ru"
#Поднята VLAN для
ifconfig vlan82 create inet 122.122.193.197 netmask 255.255.255.192 vlan 82 vlandev bge0
defaultrouter="82.162.193.193"
route add -net 192.168.225.0 192.168.224.254 -netmask 255.255.255.0
usbd_enable="YES"
sshd_enable="YES"
kern_securelevel_enable="NO"
...
### Nat
natd_enable="YES"
natd_interface="vlan82"
natd_flags="-m"
### IPFW
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="Simple" (см. ниже)
tcp_extentions="NO"
firewall_quiet="NO"
firewall_logging="YES"
gateway_enable="YES"
Файд rc.firewall
# set these to your outside interface network and netmask and ip
oif="vlan82"
onet="122.122.193.0"
omask="255.255.255.192"
oip="82.162.193.197"
# set these to your inside interface network and netmask and ip
iif="bge0"
inet="192.168.224.0"
imask="255.255.255.0"
iip="192.168.224.211"
...
### NAT on
${fwcmd} add 1100 divert natd all from any to any via ${natd_interface}
...
### Allowed traffic
${fwcmd} add 1240 allow tcp from any to any via ${oif}
...
### Allow Internal net
${fwcmd} add 4000 allow all from any to any via ${iif}
...
(примерная схема такая, порты и все такое не важно)
Итак, в такой конфигурации сервак отлично работает как шлюз... но задача такая: надо несколько компов настроить с внешними адресами из сети 122.122.193.0 маска 255.255.255.192 но чтобы шлюзом был наш сервак, например берем комп, подаем ему 82-ю VLAN (провайдер), даем адрес 122.122.193.199 а адрес шлюза - внутренинй адрес нашего сервака 192.168.224.211.
Задача - чтобы весь внешний траффик от этого компа проходил через сервак для подсчета траффика. Если просто указать сервак в качестве шлюза то получаем "no route to host", короче не работает... добавлял в rc.firewall перед NAT:
${fwcmd} add 1091 allow all from 122.122.193.199 to any
${fwcmd} add 1092 allow all from any to 122.122.193.199
не работает... мож будут мысли?
пока буду эксперементировать с fwd, но готов выслушать предложения...