Помогите пожалуйста найти изъян в настройке ната на сервере. Делал всё на основе статья на этом сайте: 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Ладно, посыпаю голову пеплом, как уже не впервые, стоит написать просительный пост на форуме, как сам дохожу. Сделал пошагово по статье, вдмчиво читая комментарий к прохождениям пакетов в представленной схеме. Вроде работает.
