Jump to content

Recommended Posts

Posted (edited)

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

Раньше у прова второй подсети был инет по цене наприме 1 р за метр обычного инета, и 0.25 ком за метр внутрисетевого трафика электросвязи (Краснодарский и Ставрпольский края). Щас когда он перещёл на прова первой подсети весь его инет трафик пров первой подсети считается по одной цене ( 90коп).

 

ОС FreeBSD. в rc.conf прописал основной шлюз на ip адрес сервера прова первой подсети. и весь траф идёт через него. А как сделать так что бы определённые ip адреса (внутрисетевые) шли через старое подключение АДСЛЬ по 25 коп , а все остальные через прова первой подсети. Инет раздаётся с помощью natd

 

И можно ли прописать 2 шлюза на разные интерфейсы. Когда я поменял шлюз электросвязовский на локальный, у меня пропал линк с ИРЦ сервером efnet, но компьютер из инета виден. Как прописать не только defaultrouter?

Edited by anclbob
Posted

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 и в мир - не могу осилить как).

Posted (edited)

Profi the same, читайте условия задачи:

 

определённые ip адреса (внутрисетевые) шли через старое подключение
Edited by csa
Posted
Если вписать:

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.

Posted
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 подставляем адресное пространство первого провайдера.

так не пробовал?

Posted

Спасибо пребольшое буду пробовать!!!

я так понял если у меня шлюз электросвязи 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 ? два интерфейса поставить?

Posted

так ну вроде как что то начало просматриваться....

наприме пингую серваком своим 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}

вот так :)

Posted

вообщем методом проб и ошибок, а также научного тыка определил.

 

что если пинговать например 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? в зависимости от роутинга

Posted (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 by anclbob
Posted
пинг пошёл 400 мс до маил ру... Соответственно инет пошёл через тарелку..............

щас ещё напишу результаты исследований :)

исследователь мля. есть команда traceroute между прочим. пишецо traceroute mail.ru
Posted

пинг пошёл 400 мс до маил ру... Соответственно инет пошёл через тарелку..............

щас ещё напишу результаты исследований :)

исследователь мля. есть команда traceroute между прочим. пишецо traceroute mail.ru

ну начал я ей пользовать :)

ну забыл :))))

вообщем всё сделал всё заработало!

 

там оказывается не только два ната запускать нужно но и без route не обошлось

Posted (edited)

csa, внимательно перечитал условия. Сухая выжимка:

Два внешних интерфейса, один внутренний, нат. Как часть внутренних ип пустить в _интернет_ через один внешний интерфейс, другую часть - через другой интерфейс?
У меня сейчас такая же ситуация, "командой route" не решилось.

 

1. 2 defaultroute могут существовать с разными метриками

2. вопрос был "не только defaultroute" - собственно, идём к source-routing, штатно осуществляемому при помощи route.

1. а трафик пойдет через тот, у кого меньше метрика. В случае отсутствия связи - через другой.

2. Осуществления не нашел, поиски привели к pf. Буду признателен за направляющие советы. man oute ответов не дал.

 

balamutang, и даст это, что запросы на подсеть прова пойдут через один шлюз, а "весь оставшийся" интернет пойдет через другой. Не пробовал, думаю так и получится.

 

там оказывается не только два ната запускать нужно но и без route не обошлось
И как именно без route не обошлось? Скинь конфиг. Edited by Profi the same
Posted

balamutang, и даст это, что запросы на подсеть прова пойдут через один шлюз, а "весь оставшийся" интернет пойдет через другой. Не пробовал, думаю так и получится.

насколько я понял - это и нужно было. вообще задача коряво поставлена конечно (или задача корявая?). два шлюза, два ната, половина внутренних туда, половина сюда.... у меня есть контора которой нужен бесперебойный инет и которая подключена к двум провам. но там все проще - два маленьких роутера натят каждый свой инет и центральный роутер разруливает направления и собирает статистику.

Posted

Задача корявая. Первый этап как у меня, второй этап + третий пров.

С двумя маленькими роутерами и центральным - просто.. самый ужасный для меня вариант :) Хотя поток в 4-5 мегабита разрулит и слабенький по железу сервачок.. в качестве последнего вариант, если anclbob не скинет конфиг или скинет нерабочий.

Posted
csa, внимательно перечитал условия. Сухая выжимка:
Два внешних интерфейса, один внутренний, нат. Как часть внутренних ип пустить в _интернет_ через один внешний интерфейс, другую часть - через другой интерфейс?
хм, да, как-то пролетело мимо, что разграничение по внутренним адресам
Posted (edited)
все проще - два маленьких роутера натят каждый свой инет и центральный роутер разруливает направления и собирает статистику.
Я тут подумал. Как в таком случае разрулить две части внутренних ип на два сервачка? Все равно проблема с пропиской default route.

 

csa, бывает ;)

Edited by Profi the same
Posted

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, буду проверять.

Posted (edited)

Давай по порядку.

 

Есть две сетки, у каждой свой канал в мир. Есть перцы которым нужно сделать исключение и выпускать их через иной канал. Так?

 

Присвой им диапазон адресов и рули. Как было две машинки так и будет, третья зачем.

 

Default относится к роуту, а речь тут о допуске на проход через фаервол

Edited by omi4
Posted (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 by anclbob
Posted

кстати а как сделать так что бы при исчезновении инета на одном шлюзе (основном) автоматически врубался резерв?

на основании пингов например?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.