PF route-to

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

PF route-to

Непрочитанное сообщение TITANius » 2010-01-14 21:58:30

Имеем: Локальную сеть (stge0) за роутером (192.168.0.1) который должен получать инет от другого роутера (192.168.2.111) по другой локальной сети (rl0) используя route-to (в дальнейшем, если разберусь, прикручу этим способом 3 инета)

конфиг роутера (упрощенно):

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

## macros
local_if="stge0"
dlan_if="rl0"

## hosts
RouterD = "192.168.2.111"
hosts = "{ 192.168.0.2 192.168.0.3 192.168.0.4 }"

## options
set block-policy drop
set skip on lo0
set timeout { frag 10, tcp.established 3600 }
scrub in all no-df fragment reassemble
scrub out all random-id max-mss 1400

## NAT
nat on $dlan_if from $hosts to !(self) -> ($dlan_if)

## filter rules
pass in all
pass out all

## allow NAT connection
pass in on $local_if route-to ($dlan_if $RouterD) from $local_if:network to any
два дня гугл тормошу, маны перечитываю, кучу вариантов испробовал и всё тчетно :(

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

ping ya.ru
PING ya.ru (213.180.204.8): 56 data bytes
ping: sendto: No route to host
ping: sendto: No route to host
Люди добрые, помогите кто чем может :)

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

_Гагарин
проходил мимо

Re: PF route-to

Непрочитанное сообщение _Гагарин » 2010-01-14 22:26:30

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

Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

Re: PF route-to

Непрочитанное сообщение TITANius » 2010-01-14 22:49:34

_Гагарин писал(а):схему нарисуй плиз, я старался но ничего не понял как утебя там выглядит все
Сказано - сделано. Это текущее решение (на неделе будет переделано).

Изображение

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

Re: PF route-to

Непрочитанное сообщение _FreeBSD » 2010-01-14 23:05:38

на Router T:
1. ставишь в rc.conf
defaultrouter="192.168.2.111"
2. в pf.conf

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

local_if="stge0"
dlan_if="rl0"

nat on $dlan_if from any to any -> ($dlan_if)

block all

pass in on $local_if from any to any
pass out on $dlan_if from $dlan_if to any
пакеты должны занатироваться и выйти в направлении дефаултроутера 192.168.2.111. А дальше уже надо 192.168.2.111 настроить и будет у тебя инет с работы.

Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

Re: PF route-to

Непрочитанное сообщение TITANius » 2010-01-14 23:15:07

_FreeBSD писал(а):на Router T:
1. ставишь в rc.conf
defaultrouter="192.168.2.111"
2. в pf.conf
ок, теперь представим что в РоутерТ заходит ещё одна сеть, через которую выдаётся ng0 ... +1 инет.

Как тогда реализовать round-robin роутинг в 2 инета ?


Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

Re: PF route-to

Непрочитанное сообщение TITANius » 2010-01-14 23:27:56

_FreeBSD писал(а):Адресные пулы NATвроде понятно написано
хоть убей, но у меня не получался работоспособный конфиг :(
может быть из-за того что пробовал без

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

1. ставишь в rc.conf
defaultrouter="192.168.2.111"
?

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

Re: PF route-to

Непрочитанное сообщение _FreeBSD » 2010-01-14 23:51:51

не ну я не знал что у тебя впн еще
ты скорее всего прав что надо делать через route-to
как видишь по ссылке выше сделать эту балансировку не трудно
вот только все ослажняется динамически создаваемым(и) интерфейсами ng*

вопрос:
1) мпд в качестве звонилки?
2) какую цель приследует весь этот гемор?

Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

Re: PF route-to

Непрочитанное сообщение TITANius » 2010-01-15 0:14:23

_FreeBSD писал(а):как видишь по ссылке выше сделать эту балансировку не трудно
я этот (и похожие) мануалы прочитал раз 20 ... пока безрезультатно :)
_FreeBSD писал(а):вот только все ослажняется динамически создаваемым(и) интерфейсами ng*
в этом проблемы нет ... если будет работать со статикой напишу скрипт создающий правила PF посде соединения/разрыва каждого из интерфейсов
_FreeBSD писал(а): вопрос:
1) мпд в качестве звонилки?
2) какую цель приследует весь этот гемор?
1. да, mpd5.4
2. стабильный и широкий канал в инет

завтра уже продолжу мучения ... надеюсь на вашу помощь :)

_Гагарин
проходил мимо

Re: PF route-to

Непрочитанное сообщение _Гагарин » 2010-01-15 1:13:06

закомменть в rc.conf
defaultroute, типо мы же будем слать куда хотим сами

давай пока простопопробуем послать пакеты хотябы в одну сторону, че-то я сосредоточился, поробуй такие правила:

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

int_if="stge0"
ext_if1="rl0"
ext_gw1 = "192.168.2.111"

#  правила nat для исходящих соединений
nat on $ext_if1 from any to any -> ($ext_if1)

block all

#  пропускаем все исходящие пакеты на внутреннем итерфейсе
pass out on $int_if from any to any
#  пропускаем (quick) пакеты, входящие во внутр. интерфейс
pass in quick on $int_if from any to any
#  всё из внутренней сети должно идти через шлюз $ext_gw1
pass in on $int_if route-to ($ext_if1 $ext_gw1) from any to any

#  основные "выпускаюшие" правила на внешнем интерфейсе
pass out on $ext_if1 from any to any

#  маршрутизация пакетов идущих с любого IP на $ext_if1 через $ext_gw1
pass out on $ext_if1 route-to ($ext_if1 $ext_gw1) from any to any 
как бы идея в том что из локалки пакеты должны уйти в сторону второго роутера

Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

Re: PF route-to

Непрочитанное сообщение TITANius » 2010-01-15 13:14:56

_Гагарин писал(а):давай пока просто попробуем послать пакеты хотя бы в одну сторону, че-то я сосредоточился, попробуй такие правила:

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

$ pfctl -sr
block drop all
pass out on stge0 all flags S/SA keep state
pass in quick on stge0 all flags S/SA keep state
pass in on stge0 route-to (rl0 192.168.2.111) inet all flags S/SA keep state
pass out on rl0 all flags S/SA keep state
pass out on rl0 route-to (rl0 192.168.2.111) inet all flags S/SA keep state
pass quick inet proto udp from any port = bootps to any port = bootps keep state
pass quick inet proto udp from any port = bootps to any port = bootpc keep state
pass quick inet proto udp from any port = bootpc to any port = bootps keep state
pass quick inet proto udp from any port = bootpc to any port = bootpc keep state
pass in inet proto icmp all icmp-type echoreq keep state
pass in inet proto icmp all icmp-type unreach keep state

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

$ ping ya.ru
ping: cannot resolve ya.ru: Host name lookup failure
:(

Смутные сомнения терзают меня ...

На роутере стоит dnsmasq-2.51,1 в качетве DNS + DHCP ... может это как-то влиять на ход экспериментов ?

UPD.: добавил в resolv.conf

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

nameserver 192.168.2.111

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

$ ping ya.ru
PING ya.ru (93.158.134.8): 56 data bytes
ping: sendto: No route to host
ping: sendto: No route to host
:unknown:

UPD2: добавил в в rc.conf

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

defaultrouter="192.168.2.111"
с теми же правилами

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

$ traceroute ya.ru
traceroute: Warning: ya.ru has multiple addresses; using 213.180.204.8
traceroute to ya.ru (213.180.204.8), 64 hops max, 40 byte packets
 1  192.168.2.111 (192.168.2.111)  0.255 ms  0.237 ms  0.185 ms
 2  94.27.125.132 (94.27.125.132)  1.098 ms  0.981 ms  0.804 ms
 3  94.27.125.177 (94.27.125.177)  5.271 ms  10.593 ms  5.361 ms
 4  94.27.125.165 (94.27.125.165)  2.126 ms  2.053 ms  1.598 ms
 5  94.27.127.106 (94.27.127.106)  8.590 ms  8.422 ms  8.669 ms
 6  94.27.127.106 (94.27.127.106)  8.460 ms  8.499 ms  8.579 ms
 7  85.223.129.29 (85.223.129.29)  9.596 ms  9.031 ms  9.963 ms
 8  85.223.129.25 (85.223.129.25)  9.024 ms  9.933 ms  9.227 ms
 9  te-6-1-ar1-co10.kv.sovam.net.ua (94.27.18.37)  9.433 ms  9.746 ms  9.350 ms
10  te-1-2-br0-co15.kv.sovam.net.ua (85.223.228.182)  111.686 ms  19.297 ms  20.384 ms
11  yandex-gw.ix.net.ua (195.35.65.88)  9.404 ms  9.493 ms  9.610 ms
12  titanium-vlan904.yandex.net (213.180.208.94)  34.310 ms  34.482 ms  37.732 ms
13  ya.ru (213.180.204.8)  31.832 ms  31.767 ms  31.608 ms
Заработало ... нужно было добавить роут ? а как же route-to в PF ? :st:

в простыми правилами ната для инета ng0 всё равно ходит через 192.168.2.111 :st:

Аватара пользователя
TITANius
сержант
Сообщения: 197
Зарегистрирован: 2009-10-27 11:33:10

Re: PF route-to

Непрочитанное сообщение TITANius » 2010-01-15 22:25:03

Сегодня пол дня с ban'ом потратил на возню с правилами (за что ему огромнейшее спасибо). Пришли к таким правилам:

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

int_if="stge0"
ext_if1="rl0"
ext_gw1 = "192.168.2.111"

#  правила nat для исходящих соединений
nat on $ext_if1 from any to any -> ($ext_if1)

block all

#  пропускаем все исходящие пакеты на внутреннем итерфейсе
pass out on $int_if from any to any

#  всё из внутренней сети должно идти через шлюз $ext_gw1
pass in on $int_if route-to ($ext_if1 $ext_gw1) from any to any

pass out on $ext_if1 from any to any

pass in inet proto icmp all icmp-type echoreq
pass out inet proto icmp all icmp-type echoreq
в итоге ходят локальные машины через РоутерД, но ping и tracert не проходят :( Может у кого есть какие мысли ? буду рад выслушать :)