stvol 4 Опубликовано: 2007-01-23 15:33:24 Share Опубликовано: 2007-01-23 15:33:24 Суть такая: есть два канала Интернет. Нужно чтобы в мир пользователи шли через первого, а на локальные ресурсы второго через второй. 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" Подскажите де собака зарыта или хотябы толкните в нужном направлении. Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2007-01-23 17:37:04 Share Опубліковано: 2007-01-23 17:37:04 Настораживает строчка: 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 нужно поставить правила, позволяющие пакетам проходить в свои локалки. Кстати, может моя подсказка не решает главной проблемы. Я родил следующее, но почему-то неработающее А что именно не работает? Ссылка на сообщение Поделиться на других сайтах
stvol 4 Опубліковано: 2007-01-23 18:23:00 Автор Share Опубліковано: 2007-01-23 18:23:00 # 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 Это при прибитой строчке со списком локальных ресурсов сейчас все работает. Не работает направление ко второму провайдеру. Завтра выложу тот выхлоп, который не работает. Заодно и вашу строчку попробую Ссылка на сообщение Поделиться на других сайтах
XoRe 0 Опубліковано: 2007-01-23 22:41:52 Share Опубліковано: 2007-01-23 22:41:52 А что есть "строчка со списком локальных ресурсов"? Ссылка на сообщение Поделиться на других сайтах
Pit 35 Опубліковано: 2007-01-23 22:45:20 Share Опубліковано: 2007-01-23 22:45:20 а что мешает роутингом мир и украину разрулить Ссылка на сообщение Поделиться на других сайтах
stvol 4 Опубліковано: 2007-01-23 22:47:53 Автор Share Опубліковано: 2007-01-23 22:47:53 ${fwcmd} add `expr $id '*' 10 + 7000` divert 8778 ip from $ip to 213.227.192.0/18,195.248.160.0/19 (итд список подсетей являющимися для второго провайдера локальными) Pit а поподробнее как? ссылку дай если есть таковая. Ссылка на сообщение Поделиться на других сайтах
Pit 35 Опубліковано: 2007-01-23 23:16:34 Share Опубліковано: 2007-01-23 23:16:34 route add 172.10.10.0/24 192.168.1.1 Ссылка на сообщение Поделиться на других сайтах
Pit 35 Опубліковано: 2007-01-23 23:30:26 Share Опубліковано: 2007-01-23 23:30:26 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-шлюз локальные ресурсы. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Сори завтыкал Ссылка на сообщение Поделиться на других сайтах
stvol 4 Опубліковано: 2007-01-24 14:11:08 Автор Share Опубліковано: 2007-01-24 14:11:08 Вобщем так делаю вопрос четко Есть 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 извини за мои слабые мозговые возможности, но я не понял, что ты посоветовал. Ссылка на сообщение Поделиться на других сайтах
Pit 35 Опубліковано: 2007-01-24 14:50:23 Share Опубліковано: 2007-01-24 14:50:23 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 тогда роут на твоем маршрутизаторе писать не нужно, роут пропишится автоматом. Ссылка на сообщение Поделиться на других сайтах
stvol 4 Опубліковано: 2007-01-25 20:15:46 Автор Share Опубліковано: 2007-01-25 20:15:46 В общем разрулил я проблему, оказалось, что в системе от 5.4 и выше, чтобы работал fwd Нужно ядро с такой строчкой собрать: IPFIREWALL_FORWARD_EXTENDED Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас