The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Policy based routing UDP портов"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Policy based routing UDP портов"  
Сообщение от dm (ok) on 28-Ноя-08, 19:01 
Доброго времени суток ! :)

Настроиваю pbr на FreeBSD порт 1194 TCP/UDP, поднимаю pbr на PF. TCP порт работает как надо,т.е. пакет приходит на один из внешних интерфейсов ($IF1,$IF2) порт 1194 и с него же уходит. Но по UDP происходит следующее, пакет приходит на интефейс, но уходит не согласна правилу в pf'e, а уходит через default route минуя файрвол.

Я возможно чегото не понимаю с UDP, почему так происходит? И возможна ли работа pbr UDP портов. Проверял с ipfw происходит абсолютно тоже самое.


Как решил эту проблему, в 7.1 появилась поддержка нескольких таблиц маршрутизации и приходится запускать несколько сервисов для разных интерфейсов, все работает, но хотелось бы разобраться с PBR и понять в чем проблема.

мои настройки:
pf rules:
pass in quick on $IF1 reply-to ($IF1 $GW1) proto {tcp udp} from <internet> to $ADDR1 port 1194
pass in quick on $IF2 reply-to ($IF2 $GW2) proto {tcp udp} from <internet> to $ADDR2 port 1194

default route:
#route get default
route to: default
destination: default
mask: default
gateway: localhost
interface: lo0
uname -a
#uname -a
FreeBSD myhost 7.1-PRERELEASE FreeBSD 7.1-PRERELEASE #4: Wed Nov 19 16:01:16 MSK 2008 root@myhost:/usr/src/sys/i386/compile/myhost i386

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

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


1. "Policy based routing UDP портов"  
Сообщение от PavelR (??) on 29-Ноя-08, 08:42 

я правильно понимаю, что сервис запущен один, он открывает один сокет, а входящих интерфейсов (ip-адресов сервиса) несколько ?

В линухе я на эту тему (кстати, с этим же сервисом) сделал так:

сервис слушает один айпи (+ порт :) ). Доступен по нескольким айпи-адресам.

если интерфейс/адрес не основной,т.е. сервис на нем не ждет соединений, то входящий пакет проходит сквозь DNAT + маркировку  маркером в таблице соединений.

Исходящий от сервиса пакет проходит сквозь восстановление маркера соединения, обратный DNAT, а потом маршрутизируется туда куда надо, в зависимости от значения маркера.

Если нужно просто обеспечить привязку к сетевому интерфейсу, то, видимо, надо использовать только маркировку без DNAT.


PS: не забывайте про tcpdump.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Policy based routing UDP портов"  
Сообщение от dm (ok) on 29-Ноя-08, 15:29 
>если интерфейс/адрес не основной,т.е. сервис на нем не ждет соединений, то входящий
>пакет проходит сквозь DNAT + маркировку  маркером в таблице соединений.
>Исходящий от сервиса пакет проходит сквозь восстановление маркера соединения, обратный DNAT, а
>потом маршрутизируется туда куда надо, в зависимости от значения маркера.
>Если нужно просто обеспечить привязку к сетевому интерфейсу, то, видимо, надо использовать
>только маркировку без DNAT.

Можно поподробней про DNAT и маркировку?

В freebsd тегирование пакетов ни к чему не приводит. В моем случае исходящий UDP пакет идет с адреса куда смотрит роут по умолчанию, т.е. пакет приъодит на внешний адрес 1.1.1.1 $IF1, а уходит ответ с интерфейса lo0 и адреса 127.0.0.1, с TCP исходящий=входящему адресу и проблем нет. А если повесить сервис на внутреннем интерфейсе и натить внешнии запросы на него (если это заработает), то я не увижу src адрес клиента, что меня не устраивает.

Мне кажется тут проблема имеенно с реализацией ip в freebsd или както связано со спецификой UDP, но тут я не совсем понимаю что происходит и не знаю куда ковырять.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Policy based routing UDP портов"  
Сообщение от PavelR (??) on 29-Ноя-08, 16:27 
>>если интерфейс/адрес не основной,т.е. сервис на нем не ждет соединений, то входящий
>>пакет проходит сквозь DNAT + маркировку  маркером в таблице соединений.
>>Исходящий от сервиса пакет проходит сквозь восстановление маркера соединения, обратный DNAT, а
>>потом маршрутизируется туда куда надо, в зависимости от значения маркера.
>>Если нужно просто обеспечить привязку к сетевому интерфейсу, то, видимо, надо использовать
>>только маркировку без DNAT.
>
>Можно поподробней про DNAT и маркировку?

   Это всё под линуксом. Ищите в советах на этом сайте, есть статья по этому поводу.
Собственно чтобы искать было проще - вот ссылка https://www.opennet.ru/openforum/vsluhforumID3/42663.html

>
>В freebsd тегирование пакетов ни к чему не приводит. В моем случае
>исходящий UDP пакет идет с адреса куда смотрит роут по умолчанию,
>т.е. пакет приъодит на внешний адрес 1.1.1.1 $IF1, а уходит ответ
>с интерфейса lo0 и адреса 127.0.0.1, с TCP исходящий=входящему адресу и
>проблем нет.

   Расписывайте схему подробнее. Угадывать имена интерфейсов и что где что слушает - желания мало.

> А если повесить сервис на внутреннем интерфейсе и натить
>внешнии запросы на него (если это заработает), то я не увижу
>src адрес клиента, что меня не устраивает.

   Как и всегда, рекомендую включить мозг и подумать, чем отличается SNAT от DNAT.
   Ваше мнение насчет "я не увижу src адрес клиента" ошибочно.
    
>
>Мне кажется тут проблема имеенно с реализацией ip в freebsd или както
>связано со спецификой UDP, но тут я не совсем понимаю что
>происходит и не знаю куда ковырять.

   К сожалению я совсем не знаю pf, а возможности ipfw по маркировке соединений изучать времени нет.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Policy based routing UDP портов"  
Сообщение от dm (ok) on 30-Ноя-08, 00:18 
>   Как и всегда, рекомендую включить мозг и подумать, чем
>отличается SNAT от DNAT.
>   Ваше мнение насчет "я не увижу src адрес клиента"
>ошибочно.

DNAT это обычный портредирект? я почему-то решил что dynamic nat. Извините я не силен в абривиатурах iptables.

во фре это делается так (pf'ом)

rdr extIF proto udp from <internet> to extADDR port https -> dmzADDR port https
nat on extIF proto udp from dmzADDR port https to <internet> -> extADDR

да в таком случае буду видеть src адрес.

а если имеенно натить внешнии адреса на внутренние то не будут, но разговор не об этом.

советы по настройки линукса врятли хоть как-то помогут мне во freebsd.

В любом случае спасибо за ответы, линух какнибудь поковыряю.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Policy based routing UDP портов"  
Сообщение от Rom1kz email(ok) on 26-Янв-09, 14:50 
Тоже столкнулся с проблемой роутинга UDP

проблема решается, когда нужная служба работает на одном интерфейсе, а не биндится на все.
тут же можно использовать и порт форвардинг для проброса UDP

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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