|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : igor.potapenko 2:5020/400 11 Feb 2008 03:41:22 To : mitrohin a.s. Subject : Re: pf: quick или не quick ? -------------------------------------------------------------------------------- On 9 фев, 16:36, "mitrohin a.s." <s...@swp.pp.ru> wrote: > так что русскими словами давай. у меня проблема такая: пакеты уходят через другие интерфейсы, причём в огромных количествах. схема такая: если работает оба линка, тогда подгружаем anchor allonline, где раскидывает соединения по коннектам по АДРЕСУ HАЗHАЧЕHИЯ(т.е. пакеты путататься вообще не должны). если один из каналов лежит, тогда пакеты уходят как обычно. почему используюется метод "по адресу назначения", а не round-robin - из-за ftp. Т.к. я не нашёл способа пробрасывать все соединения до ftp- сервера через один линк. С round-robin клиентским машинам приходило f5 жать в 50% случаях итак, мой (плохо работающий) конфиг =========== nat on $ext_if_ext1 from <net_vpn> to any -> $ext_addr_ext1 nat on $ext_if_ext2 from <net_vpn> to any -> $ext_addr_ext2 block in all block out all #таблица своих адресов table <myaddr> #таблица адресов внутренней сети-пользователей инета table <net_vpn> #anchor in pass in quick proto gre from any to any pass in quick proto tcp from any to <myaddr> port {53,80,25,500,143,445,40000:41000} pass in quick proto {esp,ipencap} from any to <myaddr> pass in quick proto icmp from any to <myaddr> block in quick all #anchor out pass out quick from 192.168.64.1 to <net_vpn> keep state pass out quick on $ext_if_ext2 route-to ($ext_if_ext1 $ext_addr_ext1_peer) from $ext_addr_ext1 to any pass out quick on $ext_if_ext1 route-to ($ext_if_ext2 $ext_addr_ext2_peer) from $ext_addr_ext2 to any pass out quick on $ext_if_ext1 proto tcp from any to any flags S/SA keep state block out quick on $ext_if_ext1 proto tcp from any to any pass out quick on $ext_if_ext1 proto {udp,icmp} from any to any keep state pass out quick on $ext_if_ext2 proto tcp from any to any flags S/SA keep state block out quick on $ext_if_ext2 proto tcp from any to any pass out quick on $ext_if_ext2 proto {udp,icmp} from any to any keep state pass out quick on $int_if_local from <myaddr> to $int_if_local:network keep state block out log quick all #anchor inet pass in quick log from <net_vpn> to any keep state block in quick log all =========== почитал про tag(в этой теме). пожалуй, перепишу с его использованием, единственное, в примере: nat from $A to any tag IF2_OUT -> ($if2:0) pass out quick on !$if2 route-to ($if2 $gate2) tagged IF2_OUT keep state pass out quick on $if2 tagged IF2_OUT keep state разве перед натом на внешнем интерфейсе он правилами не проверяется? Вероятно, до конца я так и не понял, как проходят правила транзитные пакеты. думал, что 1. соответсвие правилам in $in_if 2. далее они маршрутизируются ядром.( если в п.1 была опция route-to, то сохраняется параметры п.1) 3. смотрятся правила out на $out_if. 4?. если в п.3 встретилась route-to, то пакет перебрасывается на другой интерфейс и снова п.3 и так до бесконечности 5. применяются правила nat 6? снова проверяется соответсвие правилам, но уже с новым интерфейсом. n 4 и 6 - под большим вопросом. Hо раз конфиги мои работают не так, как я ожидаю, предполагаю, что я очень сильно заблуждаюсь. И это не считая таблицы состояний. С ней тоже много вопросов. В ней хранится route-to значение? К сожалению, алгоритма разбора правил я так и не нашёл в читаемом виде. исходники не осилил. --- ifmail v.2.15dev5.4 * Origin: http://groups.google.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/71194864a96e9.html, оценка из 5, голосов 10
|