freebsd pf rdr локального порта на удал. для локального прил

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
iigor
рядовой
Сообщения: 10
Зарегистрирован: 2010-11-15 22:30:08

freebsd pf rdr локального порта на удал. для локального прил

Непрочитанное сообщение iigor » 2010-11-15 22:42:50

Добрый день!

дано

em0(11.11.11.11), tun0(10.0.1.1), tun1(10.0.2.1).

tun0 и tun1 в одну и ту же сеть (через разных провайдеров).
10.10.10.0/24

сделано
11.11.11.11:10001 -> 10.10.10.1:80 через tun0
11.11.11.11:10002 -> 10.10.10.1:80 через tun0

Но работает это только, когда пакет приходит через em0.

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

# pf config

ext_if="em0"
ext_addr="11.11.11.11"

int_if="lo0"

tun_if1="tun0"
tun_addr1="10.0.1.1"
tun_if2="tun1"
tun_addr2="10.0.2.1"

nat on $tun_if1 from any to any -> $tun_addr1
nat on $tun_if2 from any to any -> $tun_addr2

rdr on $ext_if inet proto tcp to $ext_addr port 10001 tag G1 -> 10.10.10.1 80
rdr on $ext_if inet proto tcp to $ext_addr port 10002 tag G2 -> 10.10.10.1 80

rdr on $int_if inet proto tcp to $ext_addr port 10001 tag G1 -> 10.10.10.1 80
rdr on $int_if inet proto tcp to $ext_addr port 10002 tag G2 -> 10.10.10.1 80

pass in all
pass out all

pass in quick on $ext_if route-to ($tun_if1 $tun_addr1) tagged G1 keep state
pass in quick on $ext_if route-to ($tun_if2 $tun_addr2) tagged G2 keep state

pass out quick route-to ($tun_if1 $tun_addr1) from $tun_addr1
pass out quick route-to ($tun_if2 $tun_addr2) from $tun_addr2
в случае доступа с локального компа

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

# pfctl -ss | grep 80

No ALTQ support in kernel
ALTQ related functions disabled
all tcp 10.10.10.1:80 <- 11.11.11.11:10001 <- 11.11.11.11:30267 CLOSED:SYN_SENT
all tcp 11.11.11.11:30267 -> 10.0.1.1:52876 -> 10.10.10.1:80 TIME_WAIT:TIME_WAIT
в случае доступа с компа 12.12.12.12 на 11.11.11.11:10001

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

# pfctl -ss | grep 80
No ALTQ support in kernel
ALTQ related functions disabled
all tcp 10.10.10.1:80 <- 11.11.11.11:10001 <- 12.12.12.12:63080 ESTABLISHED:ESTABLISHED
all tcp 12.12.12.12:63080 -> 10.0.1.1:55210 -> 10.10.10.1:80 ESTABLISHED:ESTABLISHED
tcpdump tun0

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

20:14:17.385633 IP 10.0.1.1.52876 > 10.10.10.1:80: Flags [S], seq 4061748027, win 65535, options [mss 1460,nop,wscale 3,sackOK,TS val 1138808799 ecr 0], length 0
20:14:17.390086 IP 10.10.10.1:80 > 10.0.1.1.52876: Flags [S.], seq 3088984230, ack 4061748028, win 16384, options [mss 1380,nop,wscale
0,nop,nop,TS val 0 ecr 0,nop,nop,sackOK], length 0
20:14:17.390100 IP 10.0.1.1.52876 > 10.10.10.1:80: Flags [R], seq 4061748028, win 0, length 0
20:14:20.385016 IP 10.0.1.1.51130 > 10.10.10.1:80: Flags [S], seq 4061748027, win 65535, options [mss 1460,nop,wscale 3,sackOK,TS val
1138811799 ecr 0], length 0
20:14:20.387668 IP 10.10.10.1:80 > 10.0.1.1.51130: Flags [S.], seq 544987895, ack 4061748028, win 16384, options [mss 1380,nop,wscale
0,nop,nop,TS val 0 ecr 0,nop,nop,sackOK], length 0
20:14:20.387682 IP 10.0.1.1.51130 > 10.10.10.1:80: Flags [R], seq 4061748028, win 0, length 0
tcpdump lo0

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


20:14:17.385612 IP 11.11.11.11.30267 > 11.11.11.11.10001: Flags [S], seq 4061748027, win 65535, options [mss 1460,nop,wscale 3,sackOK,TS val 1138808799 ecr 0], length 0
20:14:20.384998 IP 11.11.11.11.30267 > 11.11.11.11.10001: Flags [S], seq 4061748027, win 65535, options [mss 1460,nop,wscale 3,sackOK,TS val 1138811799 ecr 0], length 0
на em0 ничего.

Насколько я понимаю, нет последнего преобразования из
dst10.0.1.1:52876 в dst11.11.11.11:30267. Хотя может что-то ещё.

Это баг или так и должно быть? И как можно решить проблему?

// 8.1-release, pf модулем.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
set
рядовой
Сообщения: 20
Зарегистрирован: 2010-11-10 13:38:07
Контактная информация:

Re: freebsd pf rdr локального порта на удал. для локального

Непрочитанное сообщение set » 2010-11-18 16:27:34

iigor писал(а): No ALTQ support in kernel
ALTQ related functions disabled
all tcp 10.10.10.1:80 <- 11.11.11.11:10001 <- 11.11.11.11:30267 CLOSED:SYN_SENT
all tcp 11.11.11.11:30267 -> 10.0.1.1:52876 -> 10.10.10.1:80 TIME_WAIT:TIME_WAIT
[/code]

На ALTQ не должен ругатся если ядро нормально собрано...
Все относительно

iigor
рядовой
Сообщения: 10
Зарегистрирован: 2010-11-15 22:30:08

Re: freebsd pf rdr локального порта на удал. для локального

Непрочитанное сообщение iigor » 2010-11-18 18:38:50

да не нужен он мне. pf модулем подгружен.

разобрался. Там мутки были с тем, что пакет, приходя, не проходил через интерфейс.

Необходимо, насильно отправить его в lo0.