stvol 4 Posted 2007-01-23 15:33:24 Share Posted 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" Подскажите де собака зарыта или хотябы толкните в нужном направлении. Link to post Share on other sites
XoRe 0 Posted 2007-01-23 17:37:04 Share Posted 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 нужно поставить правила, позволяющие пакетам проходить в свои локалки. Кстати, может моя подсказка не решает главной проблемы. Я родил следующее, но почему-то неработающее А что именно не работает? Link to post Share on other sites
stvol 4 Posted 2007-01-23 18:23:00 Author Share Posted 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 Это при прибитой строчке со списком локальных ресурсов сейчас все работает. Не работает направление ко второму провайдеру. Завтра выложу тот выхлоп, который не работает. Заодно и вашу строчку попробую Link to post Share on other sites
XoRe 0 Posted 2007-01-23 22:41:52 Share Posted 2007-01-23 22:41:52 А что есть "строчка со списком локальных ресурсов"? Link to post Share on other sites
Pit 35 Posted 2007-01-23 22:45:20 Share Posted 2007-01-23 22:45:20 а что мешает роутингом мир и украину разрулить Link to post Share on other sites
stvol 4 Posted 2007-01-23 22:47:53 Author Share Posted 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 а поподробнее как? ссылку дай если есть таковая. Link to post Share on other sites
Pit 35 Posted 2007-01-23 23:16:34 Share Posted 2007-01-23 23:16:34 route add 172.10.10.0/24 192.168.1.1 Link to post Share on other sites
Pit 35 Posted 2007-01-23 23:30:26 Share Posted 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-шлюз локальные ресурсы. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Сори завтыкал Link to post Share on other sites
stvol 4 Posted 2007-01-24 14:11:08 Author Share Posted 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 извини за мои слабые мозговые возможности, но я не понял, что ты посоветовал. Link to post Share on other sites
Pit 35 Posted 2007-01-24 14:50:23 Share Posted 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 тогда роут на твоем маршрутизаторе писать не нужно, роут пропишится автоматом. Link to post Share on other sites
stvol 4 Posted 2007-01-25 20:15:46 Author Share Posted 2007-01-25 20:15:46 В общем разрулил я проблему, оказалось, что в системе от 5.4 и выше, чтобы работал fwd Нужно ядро с такой строчкой собрать: IPFIREWALL_FORWARD_EXTENDED Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now