Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Сетевые технологии (http://forum.oszone.net/forumdisplay.php?f=31)
-   -   Несколько интернет шлюзов в одной подсети за маршрутизатором (http://forum.oszone.net/showthread.php?t=253335)

mistic1282 06-02-2013 18:02 2083849

Несколько интернет шлюзов в одной подсети за маршрутизатором
 
В общем дело такое. Хочется раздать свой, небольшой =) интернет в сеть провайдера, нескольким хостам.
Имеется локальная сеть провайдера. Имеется маршрутизатор draytek 210 (10.10.16.51/16 адрес в сети провайдера)
В WAN1 подключена локальная сеть (10.10.0.0/16) (топология сети не известна) провайдера (именно в WAN, потому как в сети провайдера IP привязан к MAC адресу, а задать MAC на draytek 210 можно только на WAN1 порту).
В LAN1 подключен маршрутизатор TL-MR3040 (адрес 192.168.0.1 назначаемый draytek'ом) выполняющий роль интернет шлюза1
В LAN2 подключен еще один маршрутизатор TL-MR3040 (адрес 192.168.0.2 назначаемый draytek'ом) выполняющий роль интернет шлюза2 (добавлен из за ограниченного интернет канала шлюза1)

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

Вопрос в следующем, как в VPN сети, хосту1, хосту2, задать шлюз1 для выхода в интернет. И одновременно, для хоста3 и хоста4 задать шлюз2.

Схема понятно дело мазахистская=)

P.S. Провайдер ценами давит, спасибо всем кто поможет разобраться.

Tonny_Bennet 07-02-2013 10:59 2084370

Цитата:

Цитата mistic1282
В общем дело такое. Хочется раздать свой, небольшой интернет в сеть провайдера, нескольким хостам. »

У вас есть ещё один канал в интернет и вы хотите позволить клиентам сети вашего провайдера пользоваться этим каналом?

mistic1282 07-02-2013 14:55 2084542

Цитата:

Цитата Tonny_Bennet
У вас есть ещё один канал в интернет и вы хотите позволить клиентам сети вашего провайдера пользоваться этим каналом? »

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

Tonny_Bennet 07-02-2013 17:39 2084669

Цитата:

Цитата mistic1282
Интернет канала от провайдера по сути нет, доступ только к локальной сети. Имеются собственные два канала выхода в интернет, хочу сделать их доступными нескольким знакомым, которые также подключены к локальной сети провайдера. »

Хитро... но боюсь, что аппаратных средств, которые у вас есть, не хватит. У меня возможно слишком испорченное представление о сетевых системах, но я без проблем себе представляю как ваша схема может быть реализована на базе *nix-подобной системы с несколькими сетевыми картами. Если вам это интересно то могу чуть более подробно рассказать.

mistic1282 08-02-2013 17:26 2085695

Цитата:

Цитата Tonny_Bennet
Хитро... но боюсь, что аппаратных средств, которые у вас есть, не хватит. У меня возможно слишком испорченное представление о сетевых системах, но я без проблем себе представляю как ваша схема может быть реализована на базе *nix-подобной системы с несколькими сетевыми картами. Если вам это интересно то могу чуть более подробно рассказать. »

Была альтернативная идея попробовать реализовать это на freeBSD. Поэтому будет очень интересно вас выслушать =)

Tonny_Bennet 09-02-2013 11:25 2086186

Цитата:

Цитата mistic1282
ыла альтернативная идея попробовать реализовать это на freeBSD. Поэтому будет очень интересно вас выслушать »

Думаю, что мои идеи не сильно будут расходиться с идеями реализации на freeBSD. Говорят на фряхе можно сделать всё гораздо аутентичнее ;)

Итак, предположим? что вы лично интернетом не пользуетесь и вам нужно нескольким клиентам из локальной сети 10.10.0.0/16 организовать доступ в интернет через одного провайдера.

Ставим маломощьный компьютер с двумя сетевыми картами:

eth0: 10.10.16.51/16 (изменяем на ней MAC адрес, что бы локалка заработала)
eth1: смотрит в сторону провайдера.

Дальше есть разные пути в организации доступа ваших друзей к вашему шлюзу:

- можно просто настроить NAT (eth0 -> eth1), разрешить форвардинг пакетов из одной сети в другую и сказать вашим друзьям прописывать у себя на сетевых картах шлюз 10.10.16.51. Для обеспечения безопасности нужно бы подстроить правила фаервола: к примеру разрешить подключение только с определённых IP или MAC адресов, что бы кто-нибудь ещё не воспользовался.

- можно на этом компьютере поднять прокси-сервер (очень популярен squid). Тогда ваши друзья просто будут проприсывать в браузере или в другом ПО адрес и порт вашего прокси 10.10.16.51:3128. У Squid также есть несколько вариантов авторизации: по IP, логину и т.д.

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

Далее можно развивать схему: подключить второго провайдера (+ сетевая карта) и заняться распределением нагрузки на канал с использованием route2 или того же squid. Наверняка вам и самому нужен будет доступ в интернет, придётся ещё одну карточку добавлять в шлюз и делать локальную сеть дома.

slava007 11-02-2013 01:10 2087549

Tonny_Bennet, обычно на свичах доступа ставят изоляцию портов и весь трафик идет через шлюз провайдера

Tonny_Bennet 12-02-2013 10:57 2088520

slava007, согласен. Но такая система обычно строится на Vlan-ах и клиентам раздаются сети /30 или /29. И тогда авторизация идёт не по MAC-адресу, а по номеру порта (а точнее Vlan). В примере mistic1282 настройки сети видно, что клиенты получают адреса из большой сети с маской /16 и опять же авторизация по MAC-адресу сетевой. Мне кажется, что там нет такого уровня безопасности.

mistic1282 15-02-2013 08:24 2090827

Tonny_Bennet, спасибо за подробный мануал. Все поставил, поднял NAT между своими интерфейсами, работает так как и хотел.

Остался один вопрос, у меня, как я уже говорил выше, два интерфейса (скорости одного мало) которые смотрят в интернет. Как распределить клиентов между этими двумя интерфейсами?

Tonny_Bennet 15-02-2013 09:33 2090852

mistic1282, в Ubuntu (но наверно не только в этой ОС) есть утилита маршрутизации route2. При помощи неё можно создавать чуть более сложные правила маршрутизации. Но это только при условии если вы используете NAT.

Вам потребуется создать две таблицы маршрутизации: ISP_1, ISP_2 к примеру. В каждую из таблиц добавить основной шлюз для провайдера и информацию о всех локальных сетях, к которым подключен компьютер, настроить правила маршрутизации таким образом, что бы пакеты от первого провайдера попадали в таблицу ISP_1, а от второго провайдера в ISP_2. Ну и конечно правила примитивной балансировки: пакеты от net_1 в первую таблицу, от net_2 во вторую.

В итоге должно получится, что компьюетры из подсети net_1 пойдут в таблицу ISP_1 и завурнутся на шлюз первого провайдера, а пакеты net_2 на шлюз второго.

Инструкций в сети много. Вот на примере Ubuntu. Я боролся настройками пару месяцев пока не заработала как хотел. Заработала. Оформил всё в виде скриптов и могу сменой пары значений в скриптах часть офиса или весь офис перевести на резервный канал.

mistic1282 15-02-2013 13:19 2091016

Tonny_Bennet, спасибо за оперативный ответ.

Неожиданно проблема возникла в другом месте.
Как уже говорил NAT поднялся, и клиент подцепленный напрямую к шлюзу c фришкой, отлично пинговал интернет. Проблема обнаружилась когда я подцепил кабель локальной сети провайдера. Обнаружилось, что клиенты, находящиеся на одном этаже с моим фряшным сервером, интернет видять, все остальные клиенты, не важно где они находятся, хотя и пингуют мой шлюз, интернета не видять.

Я начинаю подозревать, что это тот самый уровень безопасности о котором говорил slava007 выше в своем посте. Вдобавок (хотя возможно это и не связано), попробовал поставить на машину клиента IP и MAC другого клиента с другого этажа, а все остальные параметры оставить как их выдал провайдер локальной сети. В таком случае, другие машины на том же этаже пингуются, все остальные нет. Не подскажете в чем может быть проблема?

Tonny_Bennet 15-02-2013 17:43 2091311

mistic1282, возможно ваш провайдер использует Port-based VLAN, объединяя клиентов по портам в свитче, а не TAG-based VLAN, использующий метки в пакете. В любом случае есть некоторый уровень безопасности, через который вам не перепрыгнуть. Внутри Vlan может быть разрешено многое (если не всё), а вот обмен информацией между разными Vlan может быть сильно ограничен. Из вашей записи понятно, что между клиентами могут передаваться ICMP пакеты. Попробуйте поднять VPN сервер на шлюзе. Если получится подключится - прекрасно, если нет - нужно придумывать какие-нибудь системы инкапсуляции в разрешённые протоколы по разрешённым сокетам. А может и это провайдер вычислит и закроет.

Цитата:

Цитата mistic1282
интернета не видять»

Пинги дальше вашего шлюза не идут?

mistic1282 15-02-2013 18:31 2091347

Цитата:

Цитата Tonny_Bennet
Пинги дальше вашего шлюза не идут? »

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

Цитата:

Цитата Tonny_Bennet
Попробуйте поднять VPN сервер на шлюзе »

Пойду пробовать

mistic1282 15-02-2013 19:06 2091378

В качестве быстрого теста сделал только что следующее: воткнул кабель провайдера в свой апаратный драйтек. Выставил все параметры для провайдера локальной сети, поднял впн сервер. Попробовал приконнектиться с других этажей, все прошло удачно. Коннект от клиентов идет. Поэтому думаю, что проблем с впн коннектом к фрибсд, тоже не будет.

Единственный небольшой вопрос, как мне работать с трафиком на фребсд с поднятой впн'кой? Ведь в таком случае, как я понимаю все клиенты подключенные по впн получат виртуальный адрес. То есть придется конфигурировать NAT для виртуальных адресов?

Tonny_Bennet 16-02-2013 16:04 2091962

Цитата:

Цитата mistic1282
Единственный небольшой вопрос, как мне работать с трафиком на фребсд с поднятой впн'кой? Ведь в таком случае, как я понимаю все клиенты подключенные по впн получат виртуальный адрес. То есть придется конфигурировать NAT для виртуальных адресов? »

В настройках VPN сервера вы укажите диапазон адресов, который будут получать клиенты 172.0.0.0/24, к примеру. Далее вам просто нужно настроить NAT для клиентов сети 172.0.0.0/24 на какой-нибудь внешний интерфейс (или на два интерфейса - это уже вам решать). Или если вы установите прокси, то просто разрешите в конфиге прокси-сервера доступ из VPN сети.

mistic1282 16-02-2013 23:14 2092271

В общем реализовал все что хотел, огромное спасибо всем кто отписывался в теме, особенно Tonny_Bennet
Все оказывается проще чем я предполагал. Спасибо за то что все разложили по полочкам и дали внятные ответы. :up

Tonny_Bennet 19-02-2013 10:12 2094082

mistic1282, всегда пожалуйста. ;)


Время: 13:29.

Время: 13:29.
© OSzone.net 2001-