Страница 1 из 1

SAMS + IPFW + IPNAT

Добавлено: 2009-07-25 10:12:57
alt7
Доброе время суток!
Ниже привожу существующую схему сети:
[сеть компьютеров 192.168.2.0/24]----[rl0 FREEBSD rl1]----[DSL modem 192.168.1.0/24]----Интернет
сейчас на сервере FreeBSD добавилась карточка dc0 ----[10.2.2.0/24]

rl0: 192.168.2.1/24
rl1: 192.168.1.2/24
dc0: 10.2.2.2/24

В свое время настроил по статье: http://www.lissyara.su/?id=1718 доступ в интернет для компьютеров сети 192.168.2.0/24 через DSL модем (ip 192.168.1.1/24). Все работает и работало нормально, но сейчас появилась необходимость компьютерам сети 192.168.2.0/24 предоставть доступ к сети 10.2.2.0/24 через nat. Пробую настроить nat. Если настраиваю nat (nat работает), то доступ в инет пропадает, подскажите, что и как необходимо дополнительно настроить, требуется ли прописывать нат для сети Интерент, настраивать форвард squid в ipfw?

привожу существующие настройки
rc.conf

Код: Выделить всё

defaultrouter="192.168.1.1"
gateway_enable="YES"
hostname="test"
ifconfig_rl0="inet 192.168.2.1  netmask 255.255.255.0"
ifconfig_rl1="inet 192.168.1.2  netmask 255.255.255.0"
ifconfig_dc0="inet 10.2.2.2  netmask 255.255.255.0"
#--------------------------------------------------------
firewall_enable="YES"
firewall_logging="YES"
firewall_script="/etc/firewall.sh"
#--------------------------------------------------------
router_enable="YES"
#--------------------------------------------------------
tcp_drop_synfin="YES"
icmp_drop_synfin="YES"
icmp_log_redirect="YES"
#--------------------------------------------------------
ipnat_enable="YES"
ipnat_rules="/etc/ipnat.rules"
#--------------------------------------------------------
apache_enable="YES"
squid_enable="YES"
mysql_enable="YES"
sams_enable="YES"
ipnat.rules

Код: Выделить всё

bimap dc0 192.168.2.0/24 -> 10.2.2.2/32
firewall.sh

Код: Выделить всё

ipfw="/sbin/ipfw -q"
LanOut="dc0"
IpOut="10.2.2.2"
LanIn1="rl1"
IpIn1="192.168.1.2"
ournet1='192.168.1.0/24'
LanIn2="rl0"
IpIn2="192.168.2.1"
ournet2='192.168.2.0/24'
outnet='10.0.0.0/8'
${ipfw} -f flush
${ipfw} add check-state

${ipfw} add allow all from any to any
${ipfw} add deny ip from any to any

Re: SAMS + IPFW + IPNAT

Добавлено: 2009-07-25 11:08:44
goshanecr
Слушай, если уже ipfw есть, то почему не сделать с его и natd помощью?
/etc/natd.conf

Код: Выделить всё

use_sockets             yes
same_ports              yes
unregistered_only       yes
dynamic                 yes
/etc/firewall

Код: Выделить всё

$ipfwcmd add divert natd ip from 192.168.2.0/24 to 10.2.2.0/24 out via dc0
$ipfwcmd add divert natd ip from any to 10.2.2.2/32 in via dc0
/etc/rc.conf

Код: Выделить всё

natd_enable="YES"
natd_interface="dc0"
natd_flags=" -f /etc/natd.conf"
Но если честно то не совсем понятно что ты хочешь сделать. 10.2.2.0/24 это другая локалка которой тоже нужен инет или что?
Распиши подробней ситуацию, что требуется сделать.

Re: SAMS + IPFW + IPNAT

Добавлено: 2009-07-25 15:17:43
alt7
Ситуация следующая:
Компьютеры 192.168.2.0/24 должный ходить в интернет через DSL модем (собственно они сейчас ходят в инет, инет тарифицируется, режутся баннеры и т.д. с помощью связки SQUID+SAMS+Rejik). Но так, же пользователи сети 192.168.2.0/24 должный иметь возможность ходить через nat на компьютеры, ftp сервера сети 10.2.2.0/24 при этом, что бы этот трафик никак не тарифицировался. Ну, вот собственно и все. Если я настраиваю nat, то компьютеры сети 192.168.2.0/24 ходят без проблем в сеть 10.2.2.0/24, но при этом пропадает возможность ходить в инет, если отключаю nat, то ходят в инет, но не ходят в сеть 10.2.2.0/24. Вот и прошу подсказать, что и как настраивать дополнительно.

Re: SAMS + IPFW + IPNAT

Добавлено: 2009-07-26 16:44:54
goshanecr
А так как я предложил не работает?

Re: SAMS + IPFW + IPNAT

Добавлено: 2009-07-28 9:06:45
alt7
Да, nat работает, только в rc.conf пришлось записать по другому немного иначе не запускалася natd
/etc/rc.conf

Код: Выделить всё

natd_enable="YES"
natd_interface="dc0"
natd -f /etc/natd.conf
Я потом посидел, разобрался, в чем была причина. Дело в том, что ip адрес из сети10.2.2.0/24 раздается по DHCP, кроме этого указывается другой шлюз по умолчанию и dns сервера. Если же я прописываю руками ip адрес и шлюз по умолчанию и т.д., то все нормально. Вопрос есть еще один, как настроить, что бы сервер получал по DHCP только ip адрес, а все остальное оставлял как есть? НИже мой rc.conf

/etc/rc.conf

Код: Выделить всё

defaultrouter="192.168.1.1"
gateway_enable="YES"
hostname="test.ru"
ifconfig_rl0="inet 192.168.2.1  netmask 255.255.255.0"
ifconfig_rl1="inet 192.168.1.2  netmask 255.255.255.0"
ifconfig_dc0="inet 10.2.2.2  netmask 255.255.255.0"
#ifconfig_dc0="DHCP media 100baseTX mediaopt full-duplex"
#--------------------------------------------------------
firewall_enable="YES"
firewall_logging="YES"
firewall_script="/etc/firewall.sh"
#--------------------------------------------------------
keymap="ru.koi8-r"
linux_enable="YES"
moused_enable="YES"
sshd_enable="YES"
usbd_enable="YES"
#--------------------------------------------------------
router_enable="YES"
route add -net 10.0.0.0/8 10.2.2.1
#--------------------------------------------------------
tcp_drop_synfin="YES"
icmp_drop_synfin="YES"
icmp_log_redirect="YES"
#--------------------------------------------------------
natd_enable="YES"
natd_interface="dc0"
natd -f /etc/natd.conf
#--------------------------------------------------------
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_msp_queue_enable="NO"
sendmail_outbound_enable="NO"
#--------------------------------------------------------
apache_enable="YES"
squid_enable="YES"
mysql_enable="YES"
sams_enable="YES"