Помогите пожалуйста найти изъян в настройке ната на сервере. Делал всё на основе статья на этом сайте: http://www.lissyara.su/articles/freebsd ... #example_7
Моя ситуация такая:
провайдером выдан пул адресов /29
мне надо разные подсети выводить в инет через разные ip адреса. Что-то не получается. На роутере инет есть, а клиенты в инет не идут.
Помогите пожалуйста, ткните носом. У меня отличия от 7-го примера Лисяры в том, что у него клиенты равномерно распределяются по внешним адресам (в смысле пакеты из сетки), а мне надо по определённым правилам закреплять тот или иной траффик за нужным ip'ом.
Код: Выделить всё
#!/bin/sh
FW="/sbin/ipfw -q"
extIF=rl0
intIF=re0
IP_56=1.2.3.56
IP_57=1.2.3.57
IP_58=1.2.3.58
IP_59=1.2.3.59
IP_60=1.2.3.60
# Opened ports on each IP
TCP_56=25,80,443,465,22,22001
TCP_57=25,465,22
TCP_58=22
TCP_59=22
TCP_60=22
PRX_PORTS=80,443
# Clear all previous data
${FW} flush
${FW} table all flush
# Custom IPFW settings
# ${FW} setautoincr 10
# Table with NAT'ed LANS
${FW} table 1 add 192.168.1.0/24
${FW} table 1 add 192.168.2.0/24
${FW} table 1 add 192.168.3.0/24
${FW} table 1 add 192.168.4.0/24
${FW} table 1 add 192.168.5.0/24
${FW} table 1 add 192.168.6.0/24
${FW} table 1 add 10.0.0.1/32
${FW} table 1 add 10.1.1.0/24
${FW} table 1 add 10.1.2.0/24
# Used forward DNS Servers
${FW} table 2 add 8.8.8.8/32
${FW} table 2 add 8.8.4.4/32
# RFC addresses
${FW} table 3 add 192.168.0.0/16
${FW} table 3 add 172.16.0.0/12
${FW} table 3 add 10.0.0.0/8
${FW} table 3 add 169.254.0.0/16
${FW} add allow all from any to me 22
${FW} add allow all from me 22 to any
${FW} add check-state
${FW} add allow all from any to any via lo0
${FW} add allow all from any to any via lo1
${FW} add allow all from any to any via lo2
${FW} add allow all from any to any via ${intIF}
${FW} add deny log all from any to table\(3\) in recv ${extIF}
${FW} add deny log all from table\(3\) to any in recv ${extIF}
${FW} add deny log all from any to 127.0.0.0/8
${FW} add deny log all from 127.0.0.0/8 to any
${FW} add deny log icmp from any to any frag
${FW} add deny log icmp from any to 255.255.255.255 in via ${extIF}
${FW} add deny log icmp from any to 255.255.255.255 out via ${extIF}
${FW} add deny log all from any to me 53 in via ${extIF}
${FW} add deny log tcp from any to ${IP_56} not ${TCP_56} in via ${extIF} setup
${FW} add deny log tcp from any to ${IP_57} not ${TCP_57} in via ${extIF} setup
${FW} add deny log tcp from any to ${IP_58} not ${TCP_58} in via ${extIF} setup
${FW} add deny log tcp from any to ${IP_59} not ${TCP_59} in via ${extIF} setup
${FW} add deny log tcp from any to ${IP_60} not ${TCP_60} in via ${extIF} setup
# Tags to packets. Пока пытаюсь выпустить все подсети через 56-ой адрес.
${FW} add count tag 56 all from table\(1\) to any in recv ${intIF}
${FW} nat 1 config ip ${IP_56} unreg_only reset same_ports \
redirect_port tcp 10.1.1.2:25 25 \
redirect_port tcp 10.1.1.4:80 80 \
redirect_port tcp 10.1.1.4:443 443 \
redirect_port tcp 10.1.1.2:465 465 \
redirect_port tcp 10.1.1.2:993 1993 \
redirect_port tcp 192.168.0.95:22 22001
${FW} nat 2 config ip ${IP_57} unreg_only reset same_ports \
redirect_port tcp 10.1.1.2:25 25 \
redirect_port tcp 10.1.1.2:465 465
# DNS Related rules
${FW} add allow all from me 53 to any keep-state
${FW} add allow all from me to table\(2\) 53 out via ${extIF} keep-state
# For traffic going from me to internet
${FW} add skipto 2000 tag 56 all from me to any out xmit ${extIF}
${FW} add nat 2 all from any to any out xmit ${extIF} tagged 57
${FW} add nat 2 all from any to ${IP_57} in recv ${extIF}
${FW} add 2000 nat 1 all from any to any out xmit ${extIF} tagged 1
${FW} add nat 1 all from any to ${IP_56} in recv ${extIF}
${FW} add allow all from any to any
Ладно, посыпаю голову пеплом, как уже не впервые, стоит написать просительный пост на форуме, как сам дохожу. Сделал пошагово по статье, вдмчиво читая комментарий к прохождениям пакетов в представленной схеме. Вроде работает.