Jump to content

2 канала Интернет 2 NATa ipfw и stargazer


Recommended Posts

Суть такая: есть два канала Интернет. Нужно чтобы в мир пользователи шли через первого, а на локальные ресурсы второго через второй.

 

rl0 - 172.17.17.2 172.17.17.1-шлюз МИР

 

rl1 – 192.168.0.1 внутренний

 

rl2 - 173.17.17.2 173.17.17.1-шлюз локальные ресурсы.

 

До этого у меня было, как посоветовал TriNo за что ему респект

http://local.com.ua/forum/index.php?showtopic=2367&st=15

 

Начитавшись http://ipfw.ism.kiev.ua/pbr.html

Я родил следующее, но почему-то неработающее:

 

# vi scri.sh

#!/bin/sh

fwcmd="/sbin/ipfw"

natcmd="/sbin/natd"

 

${fwcmd} -f flush

 

${natcmd} -a 172.17.17.2 -p 8668

${natcmd} -a 173.17.17.2 -p 8778

 

${fwcmd} 10000 add fwd 172.17.17.1 ip from 172.17.17.2 to any

 

${fwcmd} 10010 add fwd 173.17.17.1 ip from 173.17.17.2 to any

 

${fwcmd} 10020 add divert 8668 ip from any to 172.17.17.2

 

${fwcmd} 10030 add divert 8778 ip from any to 173.17.17.2

 

Дальше OnConnect

fwcmd="/sbin/ipfw"

 

login=$1

ip=$2

id=$4

 

${fwcmd} delete `expr $id '*' 10 + 7000`

${fwcmd} delete `expr $id '*' 10 + 7001`

 

${fwcmd} add `expr $id '*' 10 + 7000` divert 8778 ip from $ip to (сети локальных ресурсов через запятую)

${fwcmd} add `expr $id '*' 10 + 7001` divert 8668 ip from $ip to any

 

echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/conn

ect.log

 

ipfw show показывает что все правила отрабатывают.

Если прибить строчку со списком подсетей то все работает. Но естественно на первого прова.

Если прибиваю Дефаулт роутер в rc.conf ничего не работает.

В процессах видны оба ната и stg

 

Вот мой rc.conf

firewall_enable="YES"

fierwall_type="CLOSE"

natd_enable="YES"

gateway_enable="YES"

ifconfig_rl0="inet 172.17.17.2 netmask 255.255.255.0"

ifconfig_rl1="inet 192.168.0.1 netmask 255.255.255.0"

ifconfig_rl2="inet 173.17.17.2 netmask 255.255.255.0"

defaultrouter="172.17.17.1"

sshd_enable="YES"

ntpdate_enable="YES"

 

Подскажите де собака зарыта или хотябы толкните в нужном направлении.

Link to post
Share on other sites

Настораживает строчка:

firewall_enable="YES"

 

Вместе с

fierwall_type="CLOSE"

она может добавить свои правила в фаерволл.

 

Поэтому я бы попросил скинуть выхлоп команды

ipfw show

 

Кстати в строчке:

fierwall_type="CLOSE"

ошибка, правильней писать:

firewall_type="CLOSE"

 

А в фаерволл рекомендую добавить строчку:

${fwcmd} 9999 add allow ip from me to 192.168.0.0/24

 

Причина:

Представьте, куда пойдет пакет, отвечающий на запрос вида:

192.168.0.2 -> 173.17.17.2

То есть ответ 173.17.17.2 -> 192.168.0.2 пойдет провайдеру 173.17.17.1, то есть не туда, куда нужно.

 

При использовании pbr нужно поставить правила, позволяющие пакетам проходить в свои локалки.

 

Кстати, может моя подсказка не решает главной проблемы.

Я родил следующее, но почему-то неработающее

А что именно не работает?

Link to post
Share on other sites

# ipfw show

07051 20887 1572299 divert 8668 ip from 192.168.0.13 to any

07111 225281 10436968 divert 8668 ip from 192.168.0.17 to any

07131 3587 388087 divert 8668 ip from 192.168.0.16 to any

07141 6 552 divert 8668 ip from 192.168.0.20 to any

07201 11089 1039146 divert 8668 ip from 192.168.0.9 to any

07211 3913 389630 divert 8668 ip from 192.168.0.10 to any

07221 16500 1441076 divert 8668 ip from 192.168.0.4 to any

10000 250846 14282321 fwd 172.17.17.1 ip from 172.17.17.2 to any

10010 10 880 fwd 173.17.17.1 ip from 173.17.17.2 to any

10020 251144 56081589 divert 8668 ip from any to 172.17.17.2

10030 36 7491 divert 8778 ip from any to 173.17.17.2

65535 905637 143616103 allow ip from any to any

 

Это при прибитой строчке со списком локальных ресурсов сейчас все работает.

Не работает направление ко второму провайдеру.

Завтра выложу тот выхлоп, который не работает. Заодно и вашу строчку попробую

Link to post
Share on other sites

${fwcmd} add `expr $id '*' 10 + 7000` divert 8778 ip from $ip to 213.227.192.0/18,195.248.160.0/19 (итд список подсетей являющимися для второго провайдера локальными)

 

Pit а поподробнее как? ссылку дай если есть таковая.

Link to post
Share on other sites
route add 172.10.10.0/24 192.168.1.1

rl0 - 172.17.17.2 172.17.17.1-шлюз МИР

rl2 - 173.17.17.2 173.17.17.1-шлюз локальные ресурсы.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Сори завтыкал

Link to post
Share on other sites

Вобщем так делаю вопрос четко

 

Есть 2 канала Интернет нужно

Чтобы пользователи(192.168.0.0/24) шли через 1 канал.(172.17.17.2(rl0)) шлюз 172.17.17.1

И один пользователь(192.168.0.2) шел через 2 канал (173.17.17.2(rl2)) шлюз 173.17.17.1

Делаю следующее:

Ipfw -f flush - очищаю фаервол

 

 

natd -a 173.17.17.2 -p 8778 подымаю наты на внешних интерфейсах

natd -a 172.17.17.2 -p 8668

 

создаю проавила

ipfw 6010 add divert 8778 ip from 192.168.0.2 to any

ipfw 7051 add divert 8668 ip from 192.168.0.13 to any

ipfw 7201 add divert 8668 ip from 192.168.0.9 to any

ipfw 10000 add fwd 172.17.17.1 ip from 172.17.17.2 to any

ipfw 10010 add fwd 173.17.17.1 ip from 173.17.17.2 to any

ipfw 10020 add divert 8668 ip from any to 172.17.17.2

ipfw 10030 add divert 8778 ip from any to 173.17.17.2

 

Получаю вот такой выхлоп ipfw show

06010 12 840 divert 8778 ip from 192.168.0.2 to any

07051 852 74237 divert 8668 ip from 192.168.0.13 to any

07201 1200 98675 divert 8668 ip from 192.168.0.9 to any

10000 1079 118108 fwd 172.17.17.1 ip from 172.17.17.2 to any

10010 6 288 fwd 173.17.17.1 ip from 173.17.17.2 to any

10020 966 332875 divert 8668 ip from any to 172.17.17.2

10030 0 0 divert 8778 ip from any to 173.17.17.2

65535 16358 1869896 allow ip from any to any

 

Пользователи (192.168.0.13-9)Попадают в нет как и планировалось

Пользователь 192.168.0.2 в пролете.

Вопрос в том, почему он в пролете?

 

Во время возни заметил что, убив, строки 10000 и 10010 картина не меняется

Странно, зачем они тогда нужны.

Убрав строчку defaultrouter="172.17.17.1" в rc.conf перестает работать все

Странно тогда почему в http://ipfw.ism.kiev.ua/pbr.html написано, что это не имеет значения.

Строчка ipfw 9999 add allow ip from me to 192.168.0.0/24 ни как не помогает.

Если кто-то решил данную задачу, другим способом, отпишитесь, пожалуйста. Или дайте ссылку.

 

Pit извини за мои слабые мозговые возможности, но я не понял, что ты посоветовал.

Link to post
Share on other sites

route add "сеть или хост локальных ресурсов" "шлюз локальных ресурсов"

 

10.10.10.100 - сервер локальных ресурсов

10.10.10.1 - шлюз локальных ресурсов или шлюз того кто будет роутить дальше эти самы ресурсы

 

тогда

 

route add 10.10.10.100 10.10.10.1

 

иначе

 

Если ресурсы в одной сети например

 

твой маршрутизатор интерфейс rl0 ip 10.10.10.1 mask 255.255.255.252

на сервер локальных ресурсов int rl0 10.10.10.2 mask 255.255.255.252

тогда роут на твоем маршрутизаторе писать не нужно, роут пропишится автоматом.

Link to post
Share on other sites

В общем разрулил я проблему, оказалось, что в системе от 5.4 и выше, чтобы работал fwd

Нужно ядро с такой строчкой собрать:

 

IPFIREWALL_FORWARD_EXTENDED

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...