pf rdr+route-to

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
iigor
проходил мимо

pf rdr+route-to

Непрочитанное сообщение iigor » 2010-03-27 13:18:17

Всем привет!


Задача такая. Есть 2 линка. tun0 и tun1. Через эти линки доступен некоторый адрес:порт. пусть 10.10.10.10:80. Локальный комп имеет адрес 2.2.2.2 Необходимо перенаправлять
2.2.2.2:81 -> 10.10.10.10:80 через tun0
2.2.2.2:82 -> 10.10.10.10:80 через tun1


Поскольку после rdr пакет уже никак не отличить - нужно использовать tag

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

nat on tun0 from $int_if:network to any -> $tun_addr0
nat on tun1 from $int_if:network to any -> $tun_addr1


rdr on $int_if inet proto tcp to 2.2.2.2 port 81 tag G1 -> 10.10.10.10 port 80
rdr on $int_if inet proto tcp to 2.2.2.2 port 82 tag G2 -> 10.10.10.10 port 80

pass in quick on $int_if route-to (tun0 $tun_addr0) tagged G1 keep state
pass in quick on $int_if route-to (tun1 $tun_addr1) tagged G2 keep state


В результате

Пакеты уходят правильно, возвращается ответ, но клиенту не отсылается(возможно что-то с состояниями не так). Без route-to всё замечательно. (отправляется через дефолтный маршрут, конечно.) Не работает как через tun0, так и через tun1. Т.е. не работает даже тогда, когда route-to оставляет маршрут без изменений.

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

# tcpdump -ni tun1

13:05:53.078646 IP 10.0.5.71.59553 > 194.247.133.19.1433: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>
13:05:53.082044 IP 194.247.133.19.1433 > 10.0.5.71.59553: S 4086661049:4086661049(0) ack 269971866 win 16384 <mss 1380,nop,nop,sackOK>
13:05:55.752842 IP 194.247.133.19.1433 > 10.0.5.71.59553: S 4086661049:4086661049(0) ack 269971866 win 16384 <mss 1380,nop,nop,sackOK>
13:05:56.086955 IP 10.0.5.71.59553 > 194.247.133.19.1433: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>
13:06:02.021776 IP 10.0.5.71.59553 > 194.247.133.19.1433: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>
13:06:02.315709 IP 194.247.133.19.1433 > 10.0.5.71.59553: S 4086661049:4086661049(0) ack 269971866 win 16384 <mss 1380,nop,nop,sackOK>




#tcpdump -ni rl0 tcp and port 81
13:05:53.078614 IP 172.16.3.48.1817 > 172.16.3.62.1436: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>
13:05:56.086932 IP 172.16.3.48.1817 > 172.16.3.62.1436: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>
13:06:02.021756 IP 172.16.3.48.1817 > 172.16.3.62.1436: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>


# pfctl -ss | grep 80
self tcp 172.16.3.48:1817 -> 10.0.5.71:59553 -> 194.247.133.19:80       ESTABLISHED:SYN_SENT
self tcp 194.247.133.19:80 <- 172.16.3.62:82 <- 172.16.3.48:1817       CLOSED:SYN_SENT

Хостинговая компания 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/

iigor
проходил мимо

Re: pf rdr+route-to

Непрочитанное сообщение iigor » 2010-03-27 13:36:06

последняя цитата была недостаточно обработана. Нужно вот так:

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

# tcpdump -ni tun1

13:05:53.078646 IP 10.0.5.71.59553 > 10.10.10.10.80: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>
13:05:53.082044 IP 10.10.10.10.80 > 10.0.5.71.59553: S 4086661049:4086661049(0) ack 269971866 win 16384 <mss 1380,nop,nop,sackOK>
13:05:55.752842 IP 10.10.10.10.80 > 10.0.5.71.59553: S 4086661049:4086661049(0) ack 269971866 win 16384 <mss 1380,nop,nop,sackOK>
13:05:56.086955 IP 10.0.5.71.59553 > 10.10.10.10.80: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>
13:06:02.021776 IP 10.0.5.71.59553 > 10.10.10.10.80: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>
13:06:02.315709 IP 10.10.10.10.80 > 10.0.5.71.59553: S 4086661049:4086661049(0) ack 269971866 win 16384 <mss 1380,nop,nop,sackOK>




#tcpdump -ni rl0 tcp and port 81
13:05:53.078614 IP 2.2.2.100.1817 > 2.2.2.2:82: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>
13:05:56.086932 IP 2.2.2.100.1817 > 2.2.2.2:82: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>
13:06:02.021756 IP 2.2.2.100.1817 > 2.2.2.2:82: S 269971865:269971865(0) win 65535 <mss 1260,nop,nop,sackOK>


# pfctl -ss | grep 80
self tcp 2.2.2.100:1817 -> 10.0.5.71:59553 -> 194.247.133.19:80       ESTABLISHED:SYN_SENT
self tcp 10.10.10.10:80 <- 2.2.2.2:82 <- 2.2.2.100:1817       CLOSED:SYN_SENT