anclbob Posted December 26, 2006 Posted December 26, 2006 (edited) есть сеть , сеть состоит из двух сегментов, в первом сегменте есть провайдер который раздаёт инет и во втором другой провайдер раздаёт инет. Сейчас пров из второй подсети берёт инет у прова первой подсети и далее раздает также по своим пользователям. Раньше у прова второй подсети был инет по цене наприме 1 р за метр обычного инета, и 0.25 ком за метр внутрисетевого трафика электросвязи (Краснодарский и Ставрпольский края). Щас когда он перещёл на прова первой подсети весь его инет трафик пров первой подсети считается по одной цене ( 90коп). ОС FreeBSD. в rc.conf прописал основной шлюз на ip адрес сервера прова первой подсети. и весь траф идёт через него. А как сделать так что бы определённые ip адреса (внутрисетевые) шли через старое подключение АДСЛЬ по 25 коп , а все остальные через прова первой подсети. Инет раздаётся с помощью natd И можно ли прописать 2 шлюза на разные интерфейсы. Когда я поменял шлюз электросвязовский на локальный, у меня пропал линк с ИРЦ сервером efnet, но компьютер из инета виден. Как прописать не только defaultrouter? Edited December 26, 2006 by anclbob Вставить ник Quote
Profi the same Posted December 26, 2006 Posted December 26, 2006 GateKeeper, вы её пользовались? как человек направит внутренние ресурсы на другого прова, когда man riute дает следующее: route [-n] command [-net | -host] destination gateway [netmask] Если вписать: route -n add 0.0.0.0 ${gate0} route -n add 0.0.0.0 ${gate1} То узнаете, что два default gateway не могут существовать. anclbob, можно осуществить в связке pf+ipnat. Ман говорит так :) сам делаю такую схему, застопорился на ограничение скорости (до md-ix и в мир - не могу осилить как). Вставить ник Quote
csa Posted December 27, 2006 Posted December 27, 2006 (edited) Profi the same, читайте условия задачи: определённые ip адреса (внутрисетевые) шли через старое подключение Edited December 27, 2006 by csa Вставить ник Quote
GateKeeper Posted December 27, 2006 Posted December 27, 2006 Если вписать:route -n add 0.0.0.0 ${gate0} route -n add 0.0.0.0 ${gate1} То узнаете, что два default gateway не могут существовать. 1. 2 defaultroute могут существовать с разными метриками2. вопрос был "не только defaultroute" - собственно, идём к source-routing, штатно осуществляемому при помощи route. Вставить ник Quote
balamutang Posted December 27, 2006 Posted December 27, 2006 GateKeeper, вы её пользовались? как человек направит внутренние ресурсы на другого прова, когда man riute дает следующее: route [-n] command [-net | -host] destination gateway [netmask]Если вписать: route -n add 0.0.0.0 ${gate0} route -n add 0.0.0.0 ${gate1} То узнаете, что два default gateway не могут существовать. anclbob, можно осуществить в связке pf+ipnat. Ман говорит так :) сам делаю такую схему, застопорился на ограничение скорости (до md-ix и в мир - не могу осилить как). просто жесть... и эти люди себя провайдерами называют :) route add -net 192.168.1.0 ${gate0} route add default ${gate1} где вместо 192.168.1.0 подставляем адресное пространство первого провайдера. так не пробовал? Вставить ник Quote
anclbob Posted December 27, 2006 Author Posted December 27, 2006 Спасибо пребольшое буду пробовать!!! я так понял если у меня шлюз электросвязи 84.54.217.100 на интерфейсе rl0, это старый канал, шлюз на новый канал 192.168.3.2 это на новый канал на интерфейсе rl1. в rc.conf прописанно ===================== natd_enable="YES" natd_program="/sbin/natd" natd_interface="rl1" natd_flags="" ====================== firewall.conf ====================== ${fw} add 50000 divert natd all from any to 192.168.1.100 via rl1 ${fw} add 4000 divert natd ip from 192.168.40.100 to any ${fw} add 361 divert natd ip from 192.1.36.1 to any ====================== 192.168.1.100 - внутренний ИП сервера на rl1 вот! так раздаю с помощью внутреннего прова. а если я сделаю роутинг, он точно будет идти на rl0 ? и брать нужный траф оттуда? и ещё сразу вопрос. я хочу что бы все пользователи брали инет от внутреннего прова rl1 (192.168.3.2), а один пользователь (192.168.40.100) , брал инет со старого канала rl0 (электросвязь) мне что нужно прописать в rc.conf ? два интерфейса поставить? Вставить ник Quote
anclbob Posted December 27, 2006 Author Posted December 27, 2006 так ну вроде как что то начало просматриваться.... наприме пингую серваком своим mail.ru траф мониторится на устройстве rl1 (внутренний), пингую 212.96.96.2 траф идёт через rl0 (электросвязь) у меня адресов 48 тыс помоему которые нужно пускать через rl0 212.96.96.0 - 212.96.108.255 212.96.110.0 - 212.96.127.255 82.119.128.0 - 82.119.159.255 84.54.192.0 - 84.54.255.255 88.215.128.0 - 88.215.142.255 88.215.144.0 - 88.215.191.255 как мне в route написать только диапазоны? а не прописывать каждую сеть route -n add -net 82.119.136.0 ${gate0} route -n add -net 82.119.137.0 ${gate0} route -n add -net 82.119.138.0 ${gate0} route -n add -net 82.119.139.0 ${gate0} route -n add -net 82.119.140.0 ${gate0} route -n add -net 82.119.141.0 ${gate0} вот так :) Вставить ник Quote
anclbob Posted December 27, 2006 Author Posted December 27, 2006 вообщем методом проб и ошибок, а также научного тыка определил. что если пинговать например mail.ru то траф идет через rl1 на шлюз 192.168.3.2 (gate0), если пинговать 212.96.96.2 то траф идёт через rl0 на шлюз 84.54.217.100 (gate1). Всё вроде бы правильно. НО если пинговать конечным пользователем, то на пинг на маил.ру проходит через gate0, а если пингую 212.96.96.2 , то вообще молчит. Вопрос! как перенастроить натд?? в rc.conf прописанно natd_interface="rl1", а как сделать что бы ходило и по rl0 и по rl1? в зависимости от роутинга Вставить ник Quote
anclbob Posted December 27, 2006 Author Posted December 27, 2006 (edited) Оказалось что можно обойтись без команды route. Она то вообще отказалась с natd работать сделал так natd.start ================ #!/bin/sh /sbin/natd -n rl1 /sbin/natd -p 8869 -n rl0 ================ firewall.conf ================ #!/bin/sh fw="/sbin/ipfw -q" local="212.96.96.2" # ${fw} add 50000 divert natd all from any to ${my_local_ip} via rl1 ${fw} add 49999 divert 8869 all from any to ${my_inet_ip} via rl0 # ${fw} add 45000 divert natd all from 192.1.0.0/16 to not ${local} ${fw} add 44999 divert 8869 all from 192.1.0.0/16 to ${local} ${fw} add 40000 divert 8869 ip from 192.168.40.100 to any ============================================= шлюз по умолчанию стоит 192.168.3.2 (локальный сервер) командой route я ничего не делаю получается что пользователи с ИП адресами 192.1.0.0/16 качают инет через rl1, а локальный траф электросвязи через rl0 (шлюз кстати электросвязовский я нигде не прописывал) и всё работает. Не пойму зачем тогда шлюз электросвязи? и ещё инет на 192.168.40.100 идёт только через rl0 - весь трафик тоже работает (проверял отключением модема адсль). На нём у меня стоить спутниковый инет. ВПН fake на планет скае. Подключаюсь по ВПН , всё нормально соединяется! пинг пошёл 400 мс до маил ру... Соответственно инет пошёл через тарелку. далее отключаю адсл на серваке. По идее инет должен был пропасть!!!! а нет пинг идёт, странички загружаются и тд и тп... но если отключаюсь подключиться уже не могу в итоге получается что при подключении к спутнику траф начинает исходящий идти не через rl0, а через rl1 ??? кстати если включать команду route в ход... то траф перестаёт для пользователей ходить через rl0 :) щас ещё напишу результаты исследований :) Edited December 27, 2006 by anclbob Вставить ник Quote
balamutang Posted December 27, 2006 Posted December 27, 2006 пинг пошёл 400 мс до маил ру... Соответственно инет пошёл через тарелку..............щас ещё напишу результаты исследований :) исследователь мля. есть команда traceroute между прочим. пишецо traceroute mail.ru Вставить ник Quote
anclbob Posted December 27, 2006 Author Posted December 27, 2006 пинг пошёл 400 мс до маил ру... Соответственно инет пошёл через тарелку.............. щас ещё напишу результаты исследований :) исследователь мля. есть команда traceroute между прочим. пишецо traceroute mail.ru ну начал я ей пользовать :)ну забыл :)))) вообщем всё сделал всё заработало! там оказывается не только два ната запускать нужно но и без route не обошлось Вставить ник Quote
Profi the same Posted December 28, 2006 Posted December 28, 2006 (edited) csa, внимательно перечитал условия. Сухая выжимка: Два внешних интерфейса, один внутренний, нат. Как часть внутренних ип пустить в _интернет_ через один внешний интерфейс, другую часть - через другой интерфейс?У меня сейчас такая же ситуация, "командой route" не решилось. 1. 2 defaultroute могут существовать с разными метриками2. вопрос был "не только defaultroute" - собственно, идём к source-routing, штатно осуществляемому при помощи route. 1. а трафик пойдет через тот, у кого меньше метрика. В случае отсутствия связи - через другой.2. Осуществления не нашел, поиски привели к pf. Буду признателен за направляющие советы. man oute ответов не дал. balamutang, и даст это, что запросы на подсеть прова пойдут через один шлюз, а "весь оставшийся" интернет пойдет через другой. Не пробовал, думаю так и получится. там оказывается не только два ната запускать нужно но и без route не обошлосьИ как именно без route не обошлось? Скинь конфиг. Edited December 28, 2006 by Profi the same Вставить ник Quote
balamutang Posted December 28, 2006 Posted December 28, 2006 balamutang, и даст это, что запросы на подсеть прова пойдут через один шлюз, а "весь оставшийся" интернет пойдет через другой. Не пробовал, думаю так и получится. насколько я понял - это и нужно было. вообще задача коряво поставлена конечно (или задача корявая?). два шлюза, два ната, половина внутренних туда, половина сюда.... у меня есть контора которой нужен бесперебойный инет и которая подключена к двум провам. но там все проще - два маленьких роутера натят каждый свой инет и центральный роутер разруливает направления и собирает статистику. Вставить ник Quote
Profi the same Posted December 28, 2006 Posted December 28, 2006 Задача корявая. Первый этап как у меня, второй этап + третий пров. С двумя маленькими роутерами и центральным - просто.. самый ужасный для меня вариант :) Хотя поток в 4-5 мегабита разрулит и слабенький по железу сервачок.. в качестве последнего вариант, если anclbob не скинет конфиг или скинет нерабочий. Вставить ник Quote
csa Posted December 29, 2006 Posted December 29, 2006 csa, внимательно перечитал условия. Сухая выжимка: Два внешних интерфейса, один внутренний, нат. Как часть внутренних ип пустить в _интернет_ через один внешний интерфейс, другую часть - через другой интерфейс? хм, да, как-то пролетело мимо, что разграничение по внутренним адресам Вставить ник Quote
Profi the same Posted December 29, 2006 Posted December 29, 2006 (edited) все проще - два маленьких роутера натят каждый свой инет и центральный роутер разруливает направления и собирает статистику.Я тут подумал. Как в таком случае разрулить две части внутренних ип на два сервачка? Все равно проблема с пропиской default route. csa, бывает ;) Edited December 29, 2006 by Profi the same Вставить ник Quote
Profi the same Posted December 29, 2006 Posted December 29, 2006 omi4, если две машинки натят, потом на центральном разруливать. Вместе с натом не совсем понятно как. Думаю так: #nat ... ipfw add 1000 fwd ${gate0} ip from ${ext_ip0} to any ipfw add 1005 fwd ${gate1} ip from ${ext_ip1} to any Не понятно, что делать c default route, буду проверять. Вставить ник Quote
omi4 Posted December 29, 2006 Posted December 29, 2006 (edited) Давай по порядку. Есть две сетки, у каждой свой канал в мир. Есть перцы которым нужно сделать исключение и выпускать их через иной канал. Так? Присвой им диапазон адресов и рули. Как было две машинки так и будет, третья зачем. Default относится к роуту, а речь тут о допуске на проход через фаервол Edited December 30, 2006 by omi4 Вставить ник Quote
anclbob Posted December 30, 2006 Author Posted December 30, 2006 (edited) Вот собственно у меня всё уже работает несколько дней , я аж от радости прыгаю , потому что так быстро настроить у меня ещё никогда не получалось :) Напомню что задача стояла один траф гонять через один шлюз другой траф через другой шлюз, для конечных пользователей соответственно которые через натд завязанны, а для одного конечного пользователя только через определенный шлюз /etc/rc.d/natd.start ================ #!/bin/sh /sbin/natd -n rl1 /sbin/natd -p 8869 -n rl0 ================= /etc/rc.d/route.start ======================================== #!/bin/sh route -n flush ########################################## gate0="84.54.217.100" gate1="192.168.3.2" ########################################## route -n add -host 212.96.96.2 ${gate0} route -n add -host 212.96.96.101 ${gate0} route -n add -host 62.183.62.141 ${gate0} route -n add -host 212.96.116.27 ${gate0} route -n add -host 212.96.96.40 ${gate0} route -n add -host 212.96.104.142 ${gate0} route -n add -host 82.211.136.2 ${gate0} ########################################## route -n add default ${gate1} ########################################## =========================================== firewall.conf =========================================== #!/bin/sh fw="/sbin/ipfw -q" ############################################ ${fw} add 50000 divert natd all from any to 192.168.1.100 via rl1 # 192.168.1.100 - ip сервака на интерфейсе rl1 смотрящий в локальную сеть ${fw} add 49999 divert 8869 all from any to ${my_inet_ip} via rl0 ############################################# ${fw} add 45000 divert natd all from 192.1.0.0/16 to not ${local} # весь траф кроме льготный ИП ${fw} add 44999 divert 8869 all from 192.1.0.0/16 to ${local} # только льготные ИП ${fw} add 40000 divert 8869 all from 192.168.40.100 to 82.211.136.2 # для опрел ИП только через опр шлюз ============================================== единственное что не заработало это not ${local} пришлось писать весь список Ип адресов вместо этой переменной в строчказ 45000 и 44999. Кстати если не роутить то траф будет только например по льготным адресам ходить! инета основного не будет, или наоброт если не запускать два ната , то роутинг будет работать только для сервака, конечные пользователи остануться без инета! пробуйте... я походу разобрался соовсем Edited December 30, 2006 by anclbob Вставить ник Quote
Profi the same Posted January 4, 2007 Posted January 4, 2007 А так не проще Так не сработало. Думаю над связкой pf (решает проблему с роуте) +ipfw (нарезка) +ng_nat (ядерный нат). Вставить ник Quote
Profi the same Posted January 11, 2007 Posted January 11, 2007 pf не решил проблему дефаулт роута. думаю, какой дистрибутивчик взять для iptables + iproute. Вставить ник Quote
anclbob Posted January 11, 2007 Author Posted January 11, 2007 кстати а как сделать так что бы при исчезновении инета на одном шлюзе (основном) автоматически врубался резерв? на основании пингов например? Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.