The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"PF балансировка между двумя каналами"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Маршрутизация, NAT / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"PF балансировка между двумя каналами"  +/
Сообщение от KomaLex (??) on 21-Янв-14, 11:17 
Вобщем вот конфиг, с моими пояснениями. То как я понимаю, но видима я что то не так понимаю. Потому что так как мне хочется не работает.

#Макросы. Описание интерфейсов и внутренних сетей
strnz_if="re1"
ttk_if="re2"
int_if="re0"


gw_strnz="8x.2xx.1xx.2xx"
strnz_ip="8x.2xx.1xx.2xx"

gw_ttk="192.168.22.1"
ttk_ip="192.168.22.2"

int_net="192.168.11.0/24"
ttk_net="192.168.22.0/24"

to_strnz="{ 192.168.11.2, 192.168.11.3 }"
to_ttk="{ 192.168.11.4 }"

#политика блокировки
set block-policy return
#пропускать все проверки на внутреннем интерфейсе 127.0.0.1
set skip on lo0
#Собирать пакеты перед отправкой
scrub in all

#NAT на обоих интерфейсах
nat on $strnz_if from $int_net to any -> ($strnz_if)
nat on $ttk_if from $int_net to any -> ($ttk_if)

#Блокировать все, правило по умолчанию
block all

#Разрешать входящие подключения, на портах 22, 1723 одного из каналов
pass in quick on $strnz_if proto tcp from any to $strnz_if port ssh keep state
pass in on $strnz_if proto tcp from any to $strnz_if port 1723
pass in quick inet proto icmp all icmp-type echoreq

#разрешить весь трафик на внутреннем интерфейсе адресованный в локальную сеть.
pass quick on $int_if from any to $int_net
#Разрешить весь собственный исходящий трафик на обоих каналах
pass out on $strnz_if from $strnz_if to any
pass out on $ttk_if from $ttk_if to any

#пересылать все пакеты, адресованные в локальную сеть за внешним интерфейсом шлюза ttk через его же шлюз
pass in quick on $int_if route-to ($ttk_if $gw_ttk) from $int_net to $ttk_net keep state
#пересылать весь трафик от компов из списка во второй канал
pass in quick on $int_if route-to ($strnz_if $gw_strnz) from $to_strnz to any keep state
#Все остальные идут через первый канал
pass in on $int_if route-to ($ttk_if $gw_ttk) from $int_net to any keep state

#А это как раз правила, позволяющие пересылать трафик в нужный канал не дефолтовый.
pass out quick route-to ($strnz_if $gw_strnz) from $strnz_ip to any keep state
pass out quick route-to ($ttk_if $gw_ttk) from $ttk_ip to any keep state

Так вот, все работает так как задумано. Компы ходят по тому каналу который нужно. Не работают входящие подключения. А вернее работают не так как надо. Работают только на том подключении, куда смотрит маршрут по умолчанию. А вот если, маршрут по умолчанию в сеть ttk 192.168.22.1 то входящие подключения на втором интерфейсе не работают. tcpdump показывает следующую картину:
Пакеты приходят и pf их пропускает, но ответ идет почему то не в тот интерфейс с которого пришел запрос, а в дефолтовый маршрут. Не понимаю почему так. Есть же вот эти два правила:


pass out quick route-to ($strnz_if $gw_strnz) from $strnz_ip to any keep state
pass out quick route-to ($ttk_if $gw_ttk) from $ttk_ip to any keep state

по моему разумению, они и должны реализовывать механизм передачи всех пакетов не в дефолтовый шлюз, а в шлюз этого интерфеса с которого уходят пакеты. Подскажите чего я не понимаю и что нужно дописать.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "PF балансировка между двумя каналами"  +/
Сообщение от KomaLex (??) on 21-Янв-14, 12:47 
Вот что происходит на том интерфейсе, к которому подключаюсь

# tcpdump -i re1 port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on re1, link-type EN10MB (Ethernet), capture size 65535 bytes
16:34:05.232763 IP empty.stranzit.ru.58928 > 90-188-239-76.pppoe.irtel.ru.ssh: Flags [P.], seq 304157750:304157802, ack 490218239, win 64970, length 52
16:34:05.235075 IP 90-188-239-76.pppoe.irtel.ru.ssh > empty.stranzit.ru.58928: Flags [P.], seq 1:69, ack 52, win 1041, length 68
16:34:05.420632 IP empty.stranzit.ru.58928 > 90-188-239-76.pppoe.irtel.ru.ssh: Flags [.], ack 69, win 64936, length 0
16:34:05.848780 IP empty.stranzit.ru.58928 > 90-188-239-76.pppoe.irtel.ru.ssh: Flags [P.], seq 52:104, ack 69, win 64936, length 52
16:34:05.851033 IP 90-188-239-76.pppoe.irtel.ru.ssh > empty.stranzit.ru.58928: Flags [P.], seq 69:121, ack 104, win 1041, length 52
16:34:05.865623 IP 90-188-239-76.pppoe.irtel.ru.40363 > empty.stranzit.ru.ssh: Flags [S], seq 4183855457, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 718641992 ecr 0], length 0
16:34:06.024056 IP empty.stranzit.ru.58928 > 90-188-239-76.pppoe.irtel.ru.ssh: Flags [.], ack 121, win 64910, length 0
16:34:08.864897 IP 90-188-239-76.pppoe.irtel.ru.40363 > empty.stranzit.ru.ssh: Flags [S], seq 4183855457, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 718644992 ecr 0], length 0
16:34:12.065024 IP 90-188-239-76.pppoe.irtel.ru.40363 > empty.stranzit.ru.ssh: Flags [S], seq 4183855457, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 718648192 ecr 0], length 0
16:34:15.265797 IP 90-188-239-76.pppoe.irtel.ru.40363 > empty.stranzit.ru.ssh: Flags [S], seq 4183855457, win 65535, options [mss 1360,sackOK,eol], length 0
16:34:18.465199 IP 90-188-239-76.pppoe.irtel.ru.40363 > empty.stranzit.ru.ssh: Flags [S], seq 4183855457, win 65535, options [mss 1360,sackOK,eol], length 0

empty.stranzit.ru это и есть мой внешний адрес. Он у них там видимо забит так, у провайдера в днс.
А вот что происходит на втором интерфейсе, к которому я не подключаюсь, но он указан как дефолтовый:


# tcpdump -i re2 port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on re2, link-type EN10MB (Ethernet), capture size 65535 bytes
16:34:05.865643 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 625843211 ecr 718641992], length 0
16:34:08.864719 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 625843211 ecr 718641992], length 0
16:34:08.864914 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 625843211 ecr 718644992], length 0
16:34:11.864718 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 625843211 ecr 718644992], length 0
16:34:12.065040 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 625843211 ecr 718648192], length 0
16:34:15.064717 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,TS val 625843211 ecr 718648192], length 0
16:34:15.265813 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:18.265716 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:18.465216 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:21.464719 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:21.664986 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:24.664717 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:27.865177 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:30.864719 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:36.864717 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:40.065306 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:43.064719 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0
16:34:49.064718 IP empty.stranzit.ru.ssh > 90-188-239-76.pppoe.irtel.ru.40363: Flags [S.], seq 1873817412, ack 4183855458, win 65535, options [mss 1360,nop,wscale 6,sackOK,eol], length 0

Может это как то поможет.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "PF балансировка между двумя каналами"  +/
Сообщение от KomaLex (??) on 22-Янв-14, 05:09 
Проблема решена, если кому интересно то писать надо:


pass in on $strnz_if reply-to ($strnz_if $gw_strnz) proto tcp from any to $strnz_if port ssh keep state
pass in on $ttk_if reply-to ($ttk_if $gw_ttk) proto tcp from any to $ttk_if port ssh keep state
pass in on $strnz_if reply-to ($strnz_if $gw_strnz) proto tcp from any to $strnz_if port 1723
pass in on $ttk_if reply-to ($ttk_if $gw_ttk)  proto tcp from any to $ttk_if port 1723
pass in inet proto icmp all icmp-type $icmp_types

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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