Автор Тема: Pf route to  (Прочетена 1661 пъти)

prilep

  • Напреднали
  • *****
  • Публикации: 94
    • Профил
Pf route to
« -: Feb 02, 2007, 21:50 »
Имам 2 isp-та на едно PC, което e в lan и прави nat за лан-а. Целта ми е единия isp да работи изцяло за lan-a, т.е. само lan-а да минава от там, а другия isp да е изцяло за PC-то на което са пуснати апачи, поща и др. Сложих за default router - gw-а на isp1 , a пакетите от lan-а рутирам с pf route to към gw2 на isp2. Това е pf.conf:

Примерен код

#  nat outgoing connections
nat on $EXT_IF2 from $SHARE_NET -> ($EXT_IF2)

# setup a default policy
pass all
pass in quick on $LO0_IF from $LO0_IF to any

pass in on $INT_IF1 route-to \
    {$EXT_IF2 $EXT_GW2} proto tcp \
    from $SHARE_NET to any flags S/SA modulate state

pass in on $INT_IF1 route-to \
    {$EXT_IF2 $EXT_GW2} proto {udp, icmp} \
    from $SHARE_NET to any keep state

pass out on $EXT_IF2 proto tcp from any to any flags S/SA modulate state
pass out on $EXT_IF2 proto { udp, icmp } from any to any keep state


Проблема ми е, че така както съм го направил сега - нещо явно не е наред. В lan-а интернета е ужасен - когато пингвам от там (от някое pc в lan-а) пинг ту има , ту няма - имам чувството че произволно понякога минават пакетите, понякога не. Явно някъде бъркам - някакви предположения/предложения ?
Активен

Powered By DomashnaGROZDOVA & ShopskaSalata

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Pf route to
« Отговор #1 -: Feb 03, 2007, 10:28 »
Нямам идея защо имаш такива грижи във вътрешната мрежа, ама айде вземи си оправи малко правилата. Примерно смени 'pass all' на 'block all' като за начало.

И я обясни малко по-ясно кой доставчик ти е за локалната мрежа, кой ти е за услугите на сървъра и през кой ти е шлюза по подразбиране и към кой маршрутизираш с route-to, че малко се обърках.

Аз лично у нас съм го направил така: default gateway е през доставчика, който се ползва от компютрите в локалната мрежа за достъп до интернет, а с reply-to правила съм указал откъде да излизат пакетите, които са отговори на заявки към услуги, работещи на маршрутизатора ми.
Активен

prilep

  • Напреднали
  • *****
  • Публикации: 94
    • Профил
Pf route to
« Отговор #2 -: Feb 03, 2007, 11:11 »
Цитат

Нямам идея защо имаш такива грижи във вътрешната мрежа, ама айде вземи си оправи малко правилата. Примерно смени 'pass all' на 'block all' като за начало.

Идеята е следната - на gw имам 2 ISP-та: ISP1 и ISP2. Искам ISP2 да се използва единствено и само от LAN-а които е зад gw-a, а ISP1 да се използва от самия gw. Причините да го направя така са няколко - ето една:
ISP2 ми дава сравнително висока скорост, но не е много стабилно: тоест 3 дена има нет, след това 1 ден няма  '<img'>
ISP1 пък ми дава сравнително ниска скорост - но пък много стабилна - там няма спиране, което е идеално за gw-a, на който както казах са пуснати апачи , поща и др.
Относно pass all и block all - не това ми е проблема в момента.

Цитат

И я обясни малко по-ясно кой доставчик ти е за локалната мрежа, кой ти е за услугите на сървъра и през кой ти е шлюза по подразбиране и към кой маршрутизираш с route-to, че малко се обърках.

ISP1: gw - EXT_GW1 , интерфейс - EXT_IF1
ISP2: gw - EXT_GW2 , интерфейс - EXT_IF2

ISP1 - този е за маршрутизатора
ISP2 - този е за локалната мрежа

default gw в момента е EXT_GW1

Цитат

Аз лично у нас съм го направил така: default gateway е през доставчика, който се ползва от компютрите в локалната мрежа за достъп до интернет, а с reply-to правила съм указал откъде да излизат пакетите, които са отговори на заявки към услуги, работещи на маршрутизатора ми.

Paste малко правила, че така не ми стана много ясно  '<img'>

Edit:
При опит да ping dir.bg примерно от компютър в локалната мрежа - първия ping минава втория не - и така .. явно нещо съм пропуснал   ':huh:'

Ето малко лог:
Примерен код

000000 rule 15/0(match): pass in on rl0: 192.168.0.7 > 194.145.63.12: ICMP echo request, id 42576, seq 1, length 64
000078 rule 18/0(match): pass out on tun0: x.x.x.x > 194.145.63.12: ICMP echo request, id 3905, seq 1, length 64

7. 866744 rule 15/0(match): pass in on rl0: 192.168.0.7 > 194.145.63.12: ICMP echo request, id 43600, seq 1, length 64


Където x.x.x.x ми е IP-то на EXT_IF2, а rl0 ми е INT_IF1. При първия пинг всичко е Ок - пакета минава през правило 18 - което съответства на това нещо:
Примерен код

pass out log on $EXT_IF2 proto { udp, icmp } from any to any keep state

при втория пинг, който е неуспешен - не се минава през това правило  '<img'>
Активен

Powered By DomashnaGROZDOVA & ShopskaSalata

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Pf route to
« Отговор #3 -: Feb 04, 2007, 11:51 »
Цитат
Paste малко правила, че така не ми стана много ясно


default gateway през isp1

-- pf.conf --
nat on $ext_if1 from $int_if to !$int_if:network -> ($ext_if1)

block all

pass in on $int_if from $int_if:network to !$int_if:network keep state

pass out on $ext_if1 from $int_if to !$int_if:network keep state

pass in on $ext_if2 reply-to ($ext_if2 $ext_gw2) proto tcp to ($ext_if2) port www keep state
-- pf.conf --

Това е съвсем упростено, но общо взето това е основното.

Не мога да стопля какво се случва при теб с този ping, обаче все ми се струва, че пакетите от вътрешната мрежа се NAT-ват към единия интерфейс, след което се маршрутизират през другия. След NAT-а пакета минава през правилата за филтриране, там минава през pass all, после през pass in on $INT_IF ..., след това през последното route-to правило и се опитва да излезе през грешния интерфейс. Защо обаче един ping минава един не минава не мога да зацепя...
Активен

prilep

  • Напреднали
  • *****
  • Публикации: 94
    • Профил
Pf route to
« Отговор #4 -: Feb 04, 2007, 13:11 »
Реших "проблема" - по невнимание съм сложил {} скоби вместо ()
Трябва да изглежда така:

Примерен код

pass in log on $INT_IF1 route-to \
    ($EXT_IF2 $EXT_GW2) proto tcp \
    from $SHARE_NET to any flags S/SA modulate state

pass in quick log on $INT_IF1 route-to \
    ($EXT_IF2 $EXT_GW2) proto {udp, icmp} \
    from $SHARE_NET to any keep state
Активен

Powered By DomashnaGROZDOVA & ShopskaSalata

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
повече route правила при Mandriva
Настройка на програми
mars 6 1874 Последна публикация Nov 14, 2005, 20:25
от Pinball_Master
Route
Настройка на програми
bILLY 2 2674 Последна публикация Jun 07, 2008, 08:37
от senser
Route add
Хардуерни и софтуерни проблеми
runtime 8 2568 Последна публикация Aug 21, 2008, 17:37
от bnight
Route and iptables
Хардуерни и софтуерни проблеми
flipz 17 4432 Последна публикация Sep 14, 2008, 20:09
от flipz
route: една и съща мрежа към две направления?
Настройка на програми
Astor 10 2665 Последна публикация Sep 16, 2010, 16:05
от Astor