Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : mitrohin a.s.                        2:5020/400     13 Feb 2008  07:36:41
 To : igor.potapenko
 Subject : Re: pf: quick или не quick ?
 -------------------------------------------------------------------------------- 
 
 On Sun, Feb 10, 2008 at 11:41:22PM +0000, igor.potapenko wrote:
 
 > 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 from <rfc1918_nets> to <ftp_servers1> -> ($ext1_if)
 nat from <rfc1918_nets> to <ftp_servers2> -> ($ext2_if)
 
 pass  in quick on !$ext1_if route-to ($ext1_if $ext1_gate) to <ftp_servers1>
 keep state tag A1
 pass out quick on  $ext1_if tagged A1 keep state
 pass out quick on  $ext1_if to <ftp_servers1> keep state
 pass out quick on !$ext1_if route-to ($ext1_if $ext1_gate) to <ftp_servers1>
 keep state
 
 pass  in quick on !$ext2_if route-to ($ext2_if $ext2_gate) to <ftp_servers2>
 keep state tag A2
 pass out quick on  $ext2_if tagged A2 keep state
 pass out quick on  $ext2_if to <ftp_servers2> keep state
 pass out quick on !$ext2_if route-to ($ext2_if $ext2_gate) to <ftp_servers2>
 keep state
 
 > 
 > итак, мой (плохо работающий) конфиг
 > 
 > 
 > ===========
 > 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 и так до бесконечности
 >
 
 in-правилами при _входе_ создаётся состояние A <- B, которое будет пропускать
 ответные пакеты на _выходе_ (B -> A). тут похоже и хранится вся информация, 
 относящаяся к _входящему_ соединению и которая помогает поддерживать
 обратный _исходящий_ трафик (route-to, reply-to, rdr). этого очевидно
 недостаточно
 для транзитного пакета, и ему на _выходе_ нужно другое состояние A -> B, 
 чтобы его выпустили. тут аналогичным образом работают out правила (route-to, 
 reply-to, nat).
 
 нет никакой бесконечности.
 
 > 5. применяются правила nat
 >
 
 nat и rdr отрабатывают до правил. баз tag это бы выглядело так.
 
 nat on net0 all -> (net0)
 pass  in quick from A keep state
 pass out quick from (net0) keep state
 
 > 6? снова проверяется соответсвие правилам, но уже с новым интерфейсом.
 > 
 > n 4 и 6 - под большим вопросом.
 > Hо раз конфиги мои работают не так, как я ожидаю, предполагаю, что я
 > очень сильно заблуждаюсь.
 > 
 > И это не считая таблицы состояний.
 > С ней тоже много вопросов.
 > В ней хранится route-to значение?
 > 
 
 imho - все в ней: rdr, nat, route-to, reply-to.
 
 > К сожалению, алгоритма разбора правил я так и не нашёл в читаемом
 > виде. исходники не осилил.
 > 
 
 я тоже ;). экспериментировал на стенде.
 
 /swp
 --- ifmail v.2.15dev5.4
  * Origin: Barnaul State Pedagogical University InterNetNews site (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 pf: quick или не quick ?   igor.potapenko   08 Feb 2008 02:54:04 
 Re: pf: quick или не quick ?   mitrohin a.s.   09 Feb 2008 17:36:48 
 Re: pf: quick или не quick ?   Andrey Voitenkov   09 Feb 2008 18:34:17 
 Re: pf: quick или не quick ?   mitrohin a.s.   10 Feb 2008 10:36:37 
 Re: pf: quick или не quick ?   Andrey Voitenkov   10 Feb 2008 21:43:53 
 Re: pf: quick или не quick ?   Andrey Voitenkov   12 Mar 2008 03:40:09 
 Re: pf: quick или не quick ?   igor.potapenko   11 Feb 2008 03:41:22 
 Re: pf: quick или не quick ?   mitrohin a.s.   13 Feb 2008 07:36:41 
 Re: pf: quick или не quick ?   Vadim Goncharov   11 Feb 2008 10:14:33 
 Re: pf: quick или не quick ?   mitrohin a.s.   13 Feb 2008 07:36:41 
 Re: pf: quick или не quick ?   Vadim Goncharov   13 Feb 2008 11:51:40 
 Re: pf: quick или не quick ?   mitrohin a.s.   14 Feb 2008 17:36:40 
 pf: quick или не quick ?   Slawa Olhovchenkov   14 Feb 2008 19:05:40 
 Re: pf: quick или не quick ?   mitrohin a.s.   15 Feb 2008 11:36:54 
 pf: quick или не quick ?   Slawa Olhovchenkov   15 Feb 2008 12:02:36 
 Re: pf: quick или не quick ?   Vadim Goncharov   15 Feb 2008 13:44:44 
 Re: pf: quick или не quick ?   mitrohin a.s.   15 Feb 2008 16:36:59 
 Re: pf: quick или не quick ?   Vadim Goncharov   18 Feb 2008 11:08:36 
 Re: pf: quick или не quick ?   mitrohin a.s.   19 Feb 2008 19:36:45 
 Re: pf: quick или не quick ?   Vadim Goncharov   19 Feb 2008 20:18:36 
 Re: pf: quick или не quick ?   Vadim Goncharov   14 Feb 2008 21:19:12 
 pf: quick или не quick ?   Alex Semenyaka   14 Feb 2008 23:07:24 
 Re: pf: quick или не quick ?   Vadim Goncharov   15 Feb 2008 10:17:38 
 Re: pf: quick или не quick ?   Mykola Dzham   13 Feb 2008 16:03:06 
 Re: pf: quick или не quick ?   igor.potapenko   16 Feb 2008 19:43:51 
 Re: pf: quick или не quick ?   Alex Mogilnikov   16 Feb 2008 23:08:44 
 Re: pf: quick или не quick ?   igor.potapenko   20 Feb 2008 02:44:42 
 Re: pf: quick или не quick ?   igor.potapenko   23 Feb 2008 00:51:41 
 Re: pf: quick или не quick ?   igor.potapenko   23 Feb 2008 01:07:18 
 Re: pf: quick или не quick ?   Vadim Goncharov   27 Feb 2008 10:36:55 
Архивное /ru.unix.bsd/192068292b9d4.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional