The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"PF с балансировкой +Squid"
Отправлено ikarus, 20-Окт-10 15:02 
>> freebsd7.3, есть настроенный PF с балансировкой round-robin по двум внешним каналам
>> задача: сделать редирект 80го порта на сквида
>> вообщем все работает, однако никак не могу до конца понять отношения pf
>> и сквида.
>> когда работаем без сквида, то тут видно (по pftop) что пакетики бегут
>> то в один канал то в другой, все нормально, но что
>> происходит когда идет редирект на сквида? куда он дальше шлет пакеты?
>> на шлюз по-умолчанию?
> Если в PFе не указано другого, то да, на шлюз по умолчанию.

я видимо не очень понимаю как работает сквид... и вообще прокси-сервер..

вообщем при таком конфиге:
какой путь у пакета с 80м портом назначения?
попадет он под балансировку?

pf.conf:
--------------------------------------------------------
ext_if1="rl0" #внешний интерфейс 1го прова
ext_if2="rl2" #внешний интерфейс 2го прова
ext_gw1="192.168.1.8" #шлюз 1го прова
ext_gw2="192.168.1.8" #шлюз 2го прова
int_if="rl1" #локальный интерфейс
localnet="172.16.1.0/24" #локальная сеть

den_host="172.16.1.2" #моё

set skip on lo0

set loginterface rl0
set loginterface rl1
set loginterface rl2

#нормализация трафа
scrub in all
scrub out all

nat-anchor "ftp-proxy/*"

rdr-anchor "ftp-proxy/*"

#редирект на сквида
rdr on $int_if proto tcp from $localnet to any port 80 -> 127.0.0.1 port 3128

#натим внешние интерфейсы
nat on $ext_if1 from $int_if:network to any -> ($ext_if1)
nat on $ext_if2 from $int_if:network to any -> ($ext_if2)

#редирект на ftp-proxy
rdr pass on $int_if proto tcp from $den_host to any port {ftp,ftp-data} -> 127.0.0.1 port 8021 #редирект на ftp-proxy

block all #блок всего по-умолчанию

antispoof quick for { lo0 $int_if }

anchor "ftp-proxy/*"

pass out log on $int_if from any to $localnet

#пропускаем все пакеты для шлюза из локали
pass in quick log on $int_if from $localnet to $int_if

#балансировка
pass in route-to { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin from $localnet to any

#основные выпускающие правила
pass out log on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out log on $ext_if1 proto {udp, icmp} from any to any
pass out log on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out log on $ext_if2 proto {udp, icmp} from any to any

pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any

-----------------------------------------------------------------------------------

squid собран с поддержкой pf-transparent

squid.conf
----------------------------------------------------------------------------------

acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl localnet src 172.16.1.0/24 # RFC1918 possible internal network

acl CONNECT method CONNECT

http_access allow manager localhost
#http_access deny manager

http_access allow localnet
http_access allow localhost

http_access deny all

http_port 127.0.0.1:3128 intercept

hierarchy_stoplist cgi-bin ?

cache_dir ufs /usr/local/squid/cache 256 16 256

coredump_dir /usr/local/squid/cache

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

cache_mem 128 MB
maximum_object_size 64 MB
cache_store_log /usr/local/squid/logs/store.log
visible_hostname pavlik
-----------------------------------------------------------------

очень большое желание представлять всю схему досканально :)

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

На сайте действует частичное премодерирование - после публикации некоторые сообщения от анонимов могут автоматически скрываться ботом. После проверки модератором ошибочно скрытые сообщения раскрываются. Для ускорения раскрытия можно воспользоваться ссылкой "Сообщить модератору", указав в качестве причины обращения "скрыто по ошибке".



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру