Как связать три сетки?

Аватар пользователя Requiem

Ситуация такая: у порвайдера стоит свич из которого выходят 3 провода - на них висят модемы, через которые которые раздаётся интернет. А у пользователей с другого конца стоит 3 линуксовых сервака (которые физически расположены довольно таки далеко друг от друга). Интернет прекрасно работает (поднят кеширующий squid). Некоторое время назад возник вопрос - как обьеденить эти три отдельные локалки в одну (или хотя бы что бы через поиск можно было найти компы из одной локалки в другой). На всех серваках стоит по 2 сетевые карточки с внешним адресом 212.42.*.*, Внутренние локалки имеют маски: 10.0.1.* 10.0.2.* 192.168.1.*
Так как я в линуксе очень плохо разбираюсь, подскажите пожалуста с какой стороны нужно заходить что бы процесс обьединения локалок тронулся с мёртвой точки?

И ещё вопрос по настройке squid`а: чем чревато не использование:
# cache_swap_low 90
# cache_swap_high 95 ?

Аватар пользователя sergeil

Re: Как связать три сетки?

Цитата:
Requiem пишет:
Ситуация такая: у порвайдера стоит свич из которого выходят 3 провода - на них висят модемы, через которые которые раздаётся интернет. ...

Рисуйте свою сеть - будем разбираться... Где, что. Все то, что в описании ...

Аватар пользователя redd

Re: Как связать три сетки?

Не очень понял про конфигурацию сети:
1. Что за модемы, какой скорости канал к свичу, что за свич?
2. Сквид где - у провайдера или на каждом линуховом серваке?
3. Зачем на серверах по две сетевые карточки с Белыми IP, или одна с белым IP, а другая смотрит в локалку?

Если между сетями нет других связей, только через свич провайдера, то надо с провайдером решать. Конкретно сказать не могу, из-за возникших вопросов.

# cache_swap_high 95 - это процент заполнения кэша прокси когда начнется очистка кэша. Т.е. если кэш будет заполнен больше чем на 95% - то он будет очищатся до значения cache_swap_low
# cache_swap_low 90 - это процент заполнения кэша на котором закончится очистка кэша, если заполнение кэша достигнет значения cache_swap_high
Т.е обе опции это процент максимального и минимального уровня заполнения дискового кеша.

Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
redd пишет:
Не очень понял про конфигурацию сети:
1. Что за модемы, какой скорости канал к свичу, что за свич?

Модемы два - 2-х мегабитных длинка и один 2-х мегабитный зиксель.

Цитата:
2. Сквид где - у провайдера или на каждом линуховом серваке?

На каждом серваке, что у прова - я даж не знаю, не интересовался никогда.

Цитата:
3. Зачем на серверах по две сетевые карточки с Белыми IP, или одна с белым IP, а другая смотрит в локалку?

Одна с белым, другая смотрит в локалку.

Цитата:
Если между сетями нет других связей, только через свич провайдера, то надо с провайдером решать. Конкретно сказать не могу, из-за возникших вопросов.

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

Цитата:
# cache_swap_high 95 - это процент заполнения кэша прокси когда начнется очистка кэша. Т.е. если кэш будет заполнен больше чем на 95% - то он будет очищатся до значения cache_swap_low
# cache_swap_low 90 - это процент заполнения кэша на котором закончится очистка кэша, если заполнение кэша достигнет значения cache_swap_high
Т.е обе опции это процент максимального и минимального уровня заполнения дискового кеша.

Я в курсе что это означает, меня интересует как будет вести себя кешиование при отсутствии этих параметров? (т.е. кеш будет обновляться или он просто заполнит всё место под него отведённое и будет занимать место).

Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
sergeil пишет:

Цитата:
Requiem пишет:
Ситуация такая: у порвайдера стоит свич из которого выходят 3 провода - на них висят модемы, через которые которые раздаётся интернет. ...

Рисуйте свою сеть - будем разбираться... Где, что. Все то, что в описании ...

Нарисовал Улыбка

ВложениеРазмер
localka.GIF 6.56 КБ
Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
sergeil пишет:

Цитата:
Requiem пишет:
Ситуация такая: у порвайдера стоит свич из которого выходят 3 провода - на них висят модемы, через которые которые раздаётся интернет. ...

Рисуйте свою сеть - будем разбираться... Где, что. Все то, что в описании ...

И как организована сеть возле серверов со стороны пользователей (в смысле что модемы не включены в сервер напрямую, а идут через свич)

ВложениеРазмер
localca2.GIF 2.54 КБ
Аватар пользователя redd

Re: Как связать три сетки?

Что за свич? Я вообще схемы не понял. А можно это в один риcунок объеденить пожалуйста. Почему от червера два канала к свичу на рисунке 2 если на 1-м он напрямую к модему подключен. Помоему схема неправильно нарисована.
На счет cache - я таких эксперементов не проводил, но думаю кэш просто будет забит и будет стоять. Никакого обновления не будет.

Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
redd пишет:
Что за свич? Я вообще схемы не понял. А можно это в один риcунок объеденить пожалуйста. Почему от червера два канала к свичу на рисунке 2 если на 1-м он напрямую к модему подключен. Помоему схема неправильно нарисована.

Свич какой-то программируемый, на uplink которого подаёться канал интернета. На свиче нет никаких ограничений по скорости в выводах на модемы, ограничения стоят в squide на серверах.
На первом рисунке общая схема, на втором более детализированная.
Два вывода на свич сделали при попытке связять сетки в обход линукса - т.е. что бы пакеты напрямую из свича шли на модемы, потом через свич провайдера и другую пару модемов - в другую подсетку. Но не получилось. Провайдер однозначно ничего на свиче не запрещал.

Цитата:
На счет cache - я таких эксперементов не проводил, но думаю кэш просто будет забит и будет стоять. Никакого обновления не будет.

Пошёл исправлять Улыбка

Аватар пользователя Requiem

Re: Как связать три сетки?

И ещё - сервера друг друга без пороблем просто пингуют.

Аватар пользователя sergeil

Re: Как связать три сетки?

Цитата:
redd пишет:
Что за свич? Я вообще схемы не понял. А можно это в один ричунок объеденить пожалуйста.
На счет cache - я таких эксперементов не проводил, но думаю кэш просто будет забит и будет стоять. Никакого обновления не будет.

Такой организации сети я еще не видел :-o
Интернет на тех-же свичах, что и LAN? Ничего не понял...

берем рисунок lokalka.GIF
Из рисунка вижу, что от провайдера пришли 3 канала (модемы, не модемы - не важно). То, что за модемами - нам не интересно. Так что свитчь (а может рутер?) который за модемами, мы пока игнорируем... Каждый из модемов, скорее всего, работает в режиме моста. От модемов витая пара (UTP5). Все, забыли о модемах. У нас есть просто 3 подключения Ethrtnet. Они должны оконечиваться сетевыми картами с определенными IP адресами и на каждое указан default route. Это может быть тот-же адрес что и на сетевой карте (PROXY-ARP).

Итого: 3 ПК, к каждому из которых подведен канал... Дальше все мутно... Где дели LAN? Почему 3 канала обслуживают 3 ПК, а не одном? Проблема c конфигурированием default route?

Аватар пользователя sergeil

Re: Как связать три сетки?

sergeil писал(а):
Итого: 3 ПК, к каждому из которых подведен канал... Дальше все мутно... Где дели LAN? Почему 3 канала обслуживают 3 ПК, а не одном? Проблема c конфигурированием default route?

Есть еще вариант, что провайдер хочет отдать одно логическое подключение по 3 линиям...
Ну, так может тогда на одном ПК что-то типа моста? Или, может, попытаться задействовать bounding? Или, еще чего... Но 3 ПК - это перебор...

Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
Такой организации сети я еще не видел :-o
Интернет на тех-же свичах, что и LAN? Ничего не понял...

Ага

Цитата:
берем рисунок lokalka.GIF
Из рисунка вижу, что от провайдера пришли 3 канала (модемы, не модемы - не важно). То, что за модемами - нам не интересно. Так что свитчь (а может рутер?) который за модемами, мы пока игнорируем... Каждый из модемов, скорее всего, работает в режиме моста. От модемов витая пара (UTP5). Все, забыли о модемах. У нас есть просто 3 подключения Ethrtnet. Они должны оконечиваться сетевыми картами с определенными IP адресами и на каждое указан default route. Это может быть тот-же адрес что и на сетевой карте (PROXY-ARP).

Раньше так и было. Каждое подключение оканчивалось в сетевой карточка сервера с белым IP (eth0), а потом сервер через соединение "eth1 - свич" раздавал интернет на локалку. Но при такой организации сети не получалось играть в Lineage Мозги набекрень, т.к. прозрачная прокся не настроена и squid на этом подключении вообще настроен через 80 порт (это не я делал Катается от смеха ). Для игры в Lineage решение было оригинальным - канал Ethrtnet вывели в свич, в который воткнули и канал из eth0 и eth1, а на компе на котором игрались в Lineage просто указали IP не внутренней сетки, а белый (благо серверов 3, а провайдер выделил 5 адресов). Благодаря тому что канал Ethrtnet идёт "мимо" сервера такая организация сети работоспособна. И насколько я помню после перестановки проводов в squid ничего не меняли, он себе прекрасно работае до сих пор.

Потом попробовали вывести каналы Ethrtnet на всех 3 серверах, что бы организавать доступ между локалками - не получилось. Если по другому не получиться - "перевоткнуть" порвода каналов eth0 и eth1 не проблема.

Цитата:
Итого: 3 ПК, к каждому из которых подведен канал... Дальше все мутно... Где дели LAN? Почему 3 канала обслуживают 3 ПК, а не одном? Проблема c конфигурированием default route?

Никуда LAN не девали. Это я нарисовал так просто.
3 канала -3 ПК из-за того что эти ПК находяться далеко друг от друга (3 разных здания в разных частях города). А канал оплачиваеться общий. И вообще в начале был один канал - один ПК. Потом мы расти начали.
Проблема с тем что я совершенно не знаю как организовать цепочку: "ПК пользователя 1 локалка" - "локальный IP сервера 1" - "белый IP сервера 1" - "свич провайдера" - "белый IP сервера 2" - "локальный IP сервера 1" - "ПК пользователя 2 локалка", т.е. в инструментах линукса которые могут это реализоват ья вообще чайник.

Аватар пользователя sergeil

Re: Как связать три сетки?

sergeil писал(а):
Никуда LAN не девали. Это я нарисовал так просто.
3 канала -3 ПК из-за того что эти ПК находяться далеко друг от друга (3 разных здания в разных частях города). А канал оплачиваеться общий. И вообще в начале был один канал - один ПК. Потом мы расти начали.
Проблема с тем что я совершенно не знаю как организовать цепочку: "ПК пользователя 1 локалка" - "локальный IP сервера 1" - "белый IP сервера 1" - "свич провайдера" - "белый IP сервера 2" - "локальный IP сервера 1" - "ПК пользователя 2 локалка", т.е. в инструментах линукса которые могут это реализоват ья вообще чайник.

Ну, например так:
(192.168.1.0/24)LAN1->(192.168.1.1)Router1(pub1) ->INET<-(pub2)Router2(192.168.2.1)<-LAN2(192.168.2.0/24)

А локальные сети объединяются с помощью туннелей. Не хочу называть VPN. К сожалению, этот термин заездили пользователи PPTP. Простейший случай - GRE. Кстати, внешние (белые) IP адреса всех трех рутеров лежат в диапазоне одной подсети или разных? Смотри базовый адрес сети, подмаску сети и широковещательный адрес... HINT: У них один и тот же шлюз по умолчанию или нет?

Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
Ну, например так:
(192.168.1.0/24)LAN1->(192.168.1.1)Router1(pub1) ->INET<-(pub2)Router2(192.168.2.1)<-LAN2(192.168.2.0/24)

С этого места поподробнее - это нужно будет делать при каждой перезагрузке Линукса или достаточно сделать 1 раз? И можно немного более подробно расшифровать написанную выше строчку Улыбка

Цитата:
А локальные сети объединяются с помощью туннелей. Не хочу называть VPN. К сожалению, этот термин заездили пользователи PPTP. Простейший случай - GRE. Кстати, внешние (белые) IP адреса всех трех рутеров лежат в диапазоне одной подсети или разных? Смотри базовый адрес сети, подмаску сети и широковещательный адрес... HINT: У них один и тот же шлюз по умолчанию или нет?

Пошёл искать инфу о тунелях.
Белые IP отличаються на еденичку, подмаска сети одинаковая.

Если имееться ввиду шлюз локалок - то он везьде разный.
А если шлюз для белых IP - то я не в курсе где его посмотреть Улыбка И честно говоря не совсем понимаю о чём идёт речь.

Аватар пользователя redd

Re: Как связать три сетки?

В общем структура сети я бы переделал так:
1. Все ПК одной подсети соеденены с концентратором или коммутатором. Хаб или Свич подключен к серверу с Линухом. Сервер подключен к модему. И так во всех подсетях. Сквид работает как прежде. Для Линейки включаем iptables и настраиваем правила(порты не помню по моему 7777 для линейки и 2600 для GameGuard - но могу ошибаться).
2. Локальные сети связывем вручную добавляя маршруты на Линукс серверах. Используем команду route add -net итд - сеть, маска и шлюз. Сеть - адрес сети локальной к которой хотим подключится, шлюз - адрес линух сервера через который подключаемся. Например - сеть №1 - 10.0.0.0/24, и выходит она в и-нет через Линукс сервер с белым IP 212.10.93.6. Cеть №2 - 192.168.1.0/24, и выходит она в и-нет через Линукс сервер с белым IP 212.10.93.7. Для того что бы сеть №1 видела сеть №2 на сервере в сети №1(его IP 212.10.93.6) делаем -
#route add -net 192.168.1.0 netmask 255.255.255.0 gw 212.10.93.7
Тоже делаем на сервере подсети №2 соответсвенно меняя адреса сети и шлюзы. Сети должны по идее виеть друг друга. Так на каждом Линекс-сервере надо будет прописать вручную маршрут к двум другим подсетям. Вот только если это заработает надо решать с провайдером вопрос с трафиком - ведь Вы то все гоняеть тогда будете через так скаать белые адреса, те и-нет. Надо просто договорится что бы они перенастроили роутер свой чтобы трафик между посетями не шел как и-нет трафик.

На счет тунелей предложеных sergejl - в принципе можно и тунели между сетями поднять.

Аватар пользователя Cherepulya

Re: Как связать три сетки?

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

Все три внутренние сети за тремя разными серваками развести по разным подсетям.
Например 10.1.X.X, 10.2.X.X, 10.3.X.X

Можно заморочится с ipsec, сделать туннели типа транспорт и обьединить все в одну сеть.

Можно попробовать правильно настроить роутинг.

Пусть соответственно каждый из трех серверов имеет внешние ip-адреса A, B, C за ними соответственно сети 10.1.X.X, 10.2.X.X, 10.3.X.X

Соответствено на серверах делается таблица роутинга типа
На сервере А:

route add -net 10.2.0.0 netmask 255.255.0.0 dev eth0 gw B
route add -net 10.3.0.0 netmask 255.255.0.0 dev eth0 gw C

На сервере B:

route add -net 10.1.0.0 netmask 255.255.0.0 dev eth0 gw A
route add -net 10.3.0.0 netmask 255.255.0.0 dev eth0 gw C

На сервере C:

route add -net 10.1.0.0 netmask 255.255.0.0 dev eth0 gw A
route add -net 10.2.0.0 netmask 255.255.0.0 dev eth0 gw B

Если будут проблемы с тем что внешние и внутренние адреса разные, то на внешние интерфейсы каждого сервера повесить альясы из соответствующих подсетей 10.1/2/3.0.0

В каждой сети соотвественно должен быть прописан гейт на айпишник внутреннего интерфейса своего сервера. Так как все три сервера по упрощенной модели врублены в один свич, то все должно нормально работать.

P.S. считается что внешний интерфейс каждого сервера называется eth0, если нет - соответственно менять в камандах задачи таблицы роутинга.

Аватар пользователя woodoo

Re: Как связать три сетки?

Цитата:
Проблема с тем что я совершенно не знаю как организовать цепочку: "ПК пользователя 1 локалка" - "локальный IP сервера 1" - "белый IP сервера 1" - "свич провайдера" - "белый IP сервера 2" - "локальный IP сервера 1" - "ПК пользователя 2 локалка", т.е. в инструментах линукса которые могут это реализоват ья вообще чайник.

Вообще-то в принципе задача решается организацией маршрутизации (в win - команда `route /?', в linux - `route --help') на каждом из шлюзов.
Практически - потребуется поднятие туннелей на каждом шлюзе к двум другим (треугольник):
A<->B
A<->C
B<->C
и, опять же, настройкой маршрутизации.
Поднятие vpn-интерфейсов позволит избежать маскирования источника пакетов (nat, masq) в пределах vpn-сети.
http://www.opennet.ru/base/net/vpn_tunnel.txt.html

Что касается сквида - если закомментировать эти опции - будут использоваться "значения по-умолчанию".

Аватар пользователя sergeil

Re: Как связать три сетки?

Cherepulya писал(а):
Можно заморочится с ipsec, сделать туннели типа транспорт...

или тунель или транспорт...
Там может быть проблемка с ipsec. Публичные адреса рутеров нахорятся в одной подсети.
К примеру, openswan такую конфигурацию недолюбливает...

Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
Cherepulya

Я не играюсь в линейку Улыбка

А где будут храниться все эти настройки?

И что значит "повесить альянсы"?

Аватар пользователя Cherepulya

Re: Как связать три сетки?

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

Настройки будут хрнаится на серверах. В стартовые скрипты нужно будет добавить эти команды.

Аватар пользователя Cherepulya

Re: Как связать три сетки?

sergeil писал(а):
или тунель или транспорт...
Там может быть проблемка с ipsec. Публичные адреса рутеров нахорятся в одной подсети.
К примеру, openswan такую конфигурацию недолюбливает...

Вы уж извините меня за корректность формулировки. Наночь глядя голова уже плохо соображает и плохо озвучивает типы шифрованных туннелей (host-host, net->host-host<-net)

Аватар пользователя Requiem

Re: Как связать три сетки?

Возник следующий вопрос - где эти самый стартовые скрипты?

Аватар пользователя Cherepulya

Re: Как связать три сетки?

[root@cherepulya ~]# cat /etc/rc.d/rc.local

.....

modprobe ip_nat_ftp
route add -net 172.16.0.0 netmask 255.255.255.0 dev eth1 gw 10.10.16.1
route add -net 213.208.162.0 netmask 255.255.255.0 dev eth1 gw 10.10.16.1
route add -net 10.10.0.0 netmask 255.255.0.0 dev eth1 gw 10.10.16.1
route add -net 10.0.0.0 netmask 255.0.0.0 dev eth1 gw 10.10.16.1
route add 213.208.186.1 dev eth1 gw 10.10.16.1
route add 213.208.187.100 dev eth1 gw 10.10.16.1
route add default dev eth0 gw 192.168.1.10
fetchmail -d 120 -f /root/fetchmailrc
dund -s call palm

тоесть допишите в конец /etc/rc.d/rc.local
Все будет выполнятся при загрузке.

Чтоб не перегружать сервера - выполните эти команды вручную. при следующей загрузке они будут выполнятся автоматом.

Аватар пользователя Requiem

Re: Как связать три сетки?

Всем большое спасибо, завтра буду пробовать. Не получиться - буду писать дальше Улыбка

Аватар пользователя woodoo

Re: Как связать три сетки?

Cherepulya писал(а):
тоесть допишите в конец /etc/rc.d/rc.local

.../rc.local.local
Поражён

Аватар пользователя Cherepulya

Re: Как связать три сетки?

Requiem писал(а):
Всем большое спасибо, завтра буду пробовать. Не получиться - буду писать дальше Улыбка

/me бьет в бубен, гладит по голове тотемного пингвина, смотрит в будущее и предвидит в скором поломанную сеть, упавшие сервера и отсутствие интернета по всем трем зданиям :pardon:

P.S. главное не забыть (не забить) забэкапить все перед тем как делать изменения :DB:

Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
Cherepulya пишет:
На сервере А:
route add -net 10.2.0.0 netmask 255.255.0.0 dev eth0 gw B
route add -net 10.3.0.0 netmask 255.255.0.0 dev eth0 gw C

При попытке это сделать мне выдал Линукс:
SIOCADDR: Network is unreachable

Халепа однако Грустный

Аватар пользователя redd

Re: Как связать три сетки?

Цитата:
Requiem пишет:

Цитата:
Cherepulya пишет:
На сервере А:
route add -net 10.2.0.0 netmask 255.255.0.0 dev eth0 gw B
route add -net 10.3.0.0 netmask 255.255.0.0 dev eth0 gw C

При попытке это сделать мне выдал Линукс:
SIOCADDR: Network is unreachable

Халепа однако Грустный

Катается от смеха Там где gw B - не надо букву B писать, вместо В должен быть IP адрес шлюза, те линукс сервера который обслуживает сеть с адресом 10.2.0.0, при чем прежде чем прописать такой маршрут, надо удостовериться что этот самый шлюз доступе, те работает и пингуется. То же и про букву С. ;-)

Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
redd пишет:

Катается от смеха Там где gw B - не надо букву B писать, вместо В должен быть IP адрес шлюза, те линукс сервера который обслуживает сеть с адресом 10.2.0.0, при чем прежде чем прописать такой маршрут, надо удостовериться что этот самый шлюз доступе, те работает и пингуется. То же и про букву С. ;-)

Я конечно чайник в Линуксе, но не до такой степени.

Была введена команда:
route add -net 10.0.1.0 netmask 255.255.0.0 dev eth0 gw 212.42.*.Х
на втором серваке я пробовал:
route add -net 10.0.2.0 netmask 255.255.0.0 dev eth1 gw 212.42.*.Y
eht1 и eht0 соответственно белые IP компов к которым подключался. На 3 сервак не залез - его сегодня выключили до понедельника.

Аватар пользователя redd

Re: Как связать три сетки?

Цитата:
Requiem пишет:

Цитата:
redd пишет:

Катается от смеха Там где gw B - не надо букву B писать, вместо В должен быть IP адрес шлюза, те линукс сервера который обслуживает сеть с адресом 10.2.0.0, при чем прежде чем прописать такой маршрут, надо удостовериться что этот самый шлюз доступе, те работает и пингуется. То же и про букву С. ;-)

Я конечно чайник в Линуксе, но не до такой степени.

Была введена команда:
route add -net 10.0.1.0 netmask 255.255.0.0 dev eth0 gw 212.42.*.Х
на втором серваке я пробовал:
route add -net 10.0.2.0 netmask 255.255.0.0 dev eth1 gw 212.42.*.Y
eht1 и eht0 соответственно белые IP компов к которым подключался. На 3 сервак не залез - его сегодня выключили до понедельника.

Вы извините меня - я нехотел Вас обидеть, просто вы непонятно дали ответ. Все было точно кроме этих букв и я естественно предположил что Вы так и написали. Разные ведь люди бывают
Улыбка
Но это не исключает моих слов - для того чтобы маршрут в котором указан шлюз был добавлен в таблицу маршрутизации, шлюз на момент добавления маршрута должен функционировать. Это раз. А во вторых я не очень понял про адреса сетей которые вы прописали в маршрутах. 10.0.1.0 при маске 255.255.0.0 не является адресом вашей сети. Адрес сети это самый младший адрес в сети, т.е. в части IP адреса указывающего на номер узла должны быть 0. В Вашей ситуации - адрес сети 10.0.1.0 при маске 255.255.255.0. Либо 10.0.0.0/16.

Аватар пользователя Requiem

Re: Как связать три сетки?

Сетка 10.0.1.0-255 Маска 255.255.255.0

При команде route add -net 10.0.1.0 netmask 255.255.255.0 dev eth1 gw 212.42.*.Y
Всё равно выдаёт ошибку:

SIOCADDRT: Network is unreachable

Линукс не видит связи между внешним и внутренними сетевыми интерфейсами серверов.

Аватар пользователя redd

Re: Как связать три сетки?

Requiem писал(а):
етка 10.0.1.0-255 Маска 255.255.255.0

При команде route add -net 10.0.1.0 netmask 255.255.255.0 dev eth1 gw 212.42.*.Y
Всё равно выдаёт ошибку:

SIOCADDRT: Network is unreachable

Линукс не видит связи между внешним и внутренними сетевыми интерфейсами серверов.

Хорошо тогда так - можете ли Вы пропинговать с линукс сервера 1-й сети линукс сервер 2-й сети? Я имею виду белые адреса. Если да, то попробуйте убрать dev eth1 из маршрута.

Аватар пользователя sergeil

Re: Как связать три сетки?

Requiem писал(а):
add -net 10.0.1.0 netmask 255.255.255.0 dev eth1 gw 212.42.*.Y

IMHO, dev eth1 - опциональный параметр, который должен быть последним...
попробуйте так...
route add -net 10.0.1.0 netmask 255.255.255.0 gw 212.42.*.Y dev eth1

или так:
ip route add 10.0.1.0/24 via 212.42.*.Y dev eth2

Аватар пользователя redd

Re: Как связать три сетки?

Вообще dev eth в 99% случаев не нужен. Ядро само легко определяет интефейс на основе анализа назначеных интерфейсам адресов.

Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
redd пишет:
Хорошо тогда так - можете ли Вы пропинговать с линукс сервера 1-й сети линукс сервер 2-й сети? Я имею виду белые адреса. Если да, то попробуйте убрать dev eth1 из маршрута.

Белые адреса пингуються без вопросов. Попробовал без dev eth1 - уже не ругаеться, но физически порверить появилась ли сеть между виндовыми компами смогу только завтра.

Вот что выводит route до команды: route add -net 10.0.2.0 netmask 255.255.255.0 dev eth1 gw 212.42.88.204

[root@server ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
212.42.88.200 * 255.255.255.248 U 0 0 0 eth1
10.0.1.0 * 255.255.255.0 U 0 0 0 eth0
10.0.0.0 * 255.255.0.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
default torguniv-vn-1.u 0.0.0.0 UG 0 0 0 eth1
[root@server ~]# route add -net 10.0.2.0 netmask 255.255.255.0 gw 212.42.88.204
[root@server ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
212.42.88.200 * 255.255.255.248 U 0 0 0 eth1
10.0.1.0 * 255.255.255.0 U 0 0 0 eth0
10.0.2.0 torguniv-vn-4.u 255.255.255.0 UG 0 0 0 eth1
10.0.0.0 * 255.255.0.0 U 0 0 0 eth0
169.254.0.0 * 255.255.0.0 U 0 0 0 eth1
default torguniv-vn-1.u 0.0.0.0 UG 0 0 0 eth1

Добавляеться строчка
10.0.2.0 torguniv-vn-4.u 255.255.255.0 UG 0 0 0 eth1
Будем надеяться что это оно Улыбка

Аватар пользователя Requiem

Re: Как связать три сетки?

Но сомнение есть - если роутинг настроен правильно, то с 1 сервера должен пинговаться внутренний интерфейс 2 сервера (если это не так то поправте), но этого не происходит.

И вообще как проверить настроен ли у меня мост на сервере между белым и внутренним интерфейсами?

Аватар пользователя redd

Re: Как связать три сетки?

Цитата:
Requiem пишет:
Но сомнение есть - если роутинг настроен правильно, то с 1 сервера должен пинговаться внутренний интерфейс 2 сервера (если это не так то поправте), но этого не происходит.

И вообще как проверить настроен ли у меня мост на сервере между белым и внутренним интерфейсами?

Маршрут добавился верно. Имя шлюза в центре между IP адресом и маской - это доменное имя вашего вторго сервера линукс. Так что все ОК.
Если не пингуется то нет маршрутизации на самом сервере между интерфейсами. Включается все это дело командой:
echo 1 > /proc/sys/net/ipv4/ip_forward

Аватар пользователя Requiem

Re: Как связать три сетки?

Цитата:
redd пишет:
Если не пингуется то нет маршрутизации на самом сервере между интерфейсами. Включается все это дело командой:
echo 1 > /proc/sys/net/ipv4/ip_forward

Сделал - пинга не появилось. Может где-то ещё есть настройки которые отвечают за маршрутизацию на сервере?

Аватар пользователя redd

Re: Как связать три сетки?

Цитата:
Requiem пишет:

Цитата:
redd пишет:
Если не пингуется то нет маршрутизации на самом сервере между интерфейсами. Включается все это дело командой:
echo 1 > /proc/sys/net/ipv4/ip_forward

Сделал - пинга не появилось. Может где-то ещё есть настройки которые отвечают за маршрутизацию на сервере?

Тогда сделайте вот так:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# cat /proc/sys/net/ipv4/ip_forward
если будет "1" - то будем дальше искать проблему, а если "0" - то ядро не поддерживает маршрутизацию между интерфейсами и его надо пересобирать.

Аватар пользователя woodoo

Re: Как связать три сетки?

Цитата:
redd пишет:
Тогда сделайте вот так:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# cat /proc/sys/net/ipv4/ip_forward
если будет "1" - то будем дальше искать проблему, а если "0" - то ядро не поддерживает маршрутизацию между интерфейсами и его надо пересобирать.

Еще и еще раз: метод echo - считается "нежелательным". Необходимо пользоваться sysctl.
/etc/sysctl.conf:
...
net.ipv4.ip_forward = 0
...

после чего

Цитата:
# sysctl -p

Что в найстройках iptables на предмет FORWARD?

Цитата:
# iptables -L|grep -i forward
Аватар пользователя redd

Re: Как связать три сетки?

Цитата:
woodoo пишет:
Еще и еще раз: метод echo - считается "нежелательным". Необходимо пользоваться sysctl.
/etc/sysctl.conf:
...
net.ipv4.ip_forward = 0
...

после чего

Цитата:
# sysctl -p

Что в найстройках iptables на предмет FORWARD?

Цитата:
# iptables -L|grep -i forward

Абсолютно верно, согласен лучше sysctl, моя недоработка, но написал что в голову первое пришло, я то почти все посты поздно вечером пишу. Поражён На счет iptables - в принципе если он стоит то для проверки достаточно вырубить его и все, проверит работет ли маршрутизация, и если работает то потом копать iptables на предмет цепочки forward.

Аватар пользователя woodoo

Re: Как связать три сетки?

redd писал(а):
согласен лучше sysctl

Не, лучше спорить. ;-)
Только "в процессе" ((с) анек) спора можно будет выяснить, что sysctl отрабатывает свой конфиг при загрузке системы. И, если настроить "echo ..." в стартовых скриптах, - может возникнуть неопределенность.
Что, как известно, хуже заведомой неработоспособности.

Аватар пользователя wildsin

Re: Как связать три сетки?

резюме после всего прочитанного...

единственное правильное решение: поднимать тоннели между тремя линухами... хоть два линуха на третий и его делать МЕЖСЕТЕВЫМ роутером для 10.0.1.0/24, 10.0.2.0/24 и 192.168.1.0/24, хоть с каждого на каждый линух (всего-то по два тоннеля на каждом линухе) и организовать ПРЯМЫЕ маршруты между каждой парой сетей. я бы строил второй вариант, он предпочтительнее с точки зрения надежности... потому как если при реализации первого варианта падает МЕЖСЕТЕВОЙ роутер или канал на него, то все три сегмента теряют связь... при втором же варианте выпадение одного из линух-серверов (одного канала) не приводит к потере связи между двумя оставшимися сегментами... тоннели по вкусу... хоть шифрованные freeswan-ом... настройки iptables тоже в зависимости от степени взаимодоверия и параноидальности админов сегментов. задача решается в одни сутки... вечеркомм три админа пьют пиво и обсуждают варианты реализации, на следующий рабочий день все настраивают и вечерком следующего дня пьют пиво и обмывают работающую схему. проверено, делалось... правда с четырьмя сегментами на двух разных провайдерах... hint: если на каждом линухе есть честный IP и у провайдеров не зарублено GRE, название провайдера рояля не играет Улыбка

Аватар пользователя sergeil

Re: Как связать три сетки?

wildsin писал(а):
поднимать тоннели между тремя линухами...

Если вопрос безопасности стоит не очень отстро, то GRE туннели замечательно соединят сетки между собой ... Поскольку локалок только три, то два туннеля на каждый рутер решат все проблемы... Если хочется конфиденциальности и безопасности, тогда IPSec или OpenVPN.

Аватар пользователя redd

Re: Как связать три сетки?

Цитата:
sergeil пишет:

wildsin писал(а):
поднимать тоннели между тремя линухами...

Если вопрос безопасности стоит не очень отстро, то GRE туннели замечательно соединят сетки между собой ... Поскольку локалок только три, то два туннеля на каждый рутер решат все проблемы... Если хочется конфиденциальности и безопасности, тогда IPSec или OpenVPN.

Тонели это хорошо, но я не вижу смысла, думаю вопрос безопасности не настолько сильно стоит. В данной ситуации думаю просто нормальная маршрутизация должна все решить. Хотя это дело человека. Но если на данный момент не получается поднять маршрутизацию, то по моему ставить вопрос о поднятии тунелей рановато.

Аватар пользователя sergeil

Re: Как связать три сетки?

redd писал(а):
Но если на данный момент не получается поднять маршрутизацию, то по моему ставить вопрос о поднятии тунелей рановато.

По всей видимости, Вы правы... Нужно идти от простого к сложному...

Аватар пользователя woodoo

Re: Как связать три сетки?

redd писал(а):
Тонели это хорошо, но я не вижу смысла,

Смысл есть. Если с одного шлюза не выполнится
# arping
туннель - единственное решение.

Аватар пользователя wildsin

Re: Как связать три сетки?

redd писал(а):
Тонели это хорошо, но я не вижу смысла, думаю вопрос безопасности не настолько сильно стоит.

поэтому я и написал, что "тоннели по вкусу" Улыбка

Цитата:
В данной ситуации думаю просто нормальная маршрутизация должна все решить. Хотя это дело человека. Но если на данный момент не получается поднять маршрутизацию, то по моему ставить вопрос о поднятии тунелей рановато.

ни о какой обычной маршрутизации разговора быть не может в принципе потому, что внутри КАЖДОГО из трех сегментов ПРИВАТНАЯ IP-адресация (10/8 и 192.168/16), которая, будучи клиентской, ДОЛЖНА благополучно дропаться на ЛЮБОМ маршрутизаторе любого НОРМАЛЬНОГО провайдера Улыбка поэтому ЕДИНСТВЕННЫЙ вариант - поднять тоннели с ПРИВАТНОЙ адресацией между "каждый с каждым" сегментами сети ПОВЕРХ провайдерского IP-потока с ЧЕСТНЫМИ адресами и уже потом на этих тоннелях настроить просто нормальную маршрутизацию Улыбка такие схемы отработаны и широко используются в том числе и в нашей конторе... например для включения домашних компов сотрудников в ПРИВАТНУЮ внутреннюю сеть конторы поверх ЧЕСТНОГО ADSL от Фарлепа и Укртелекома.

Аватар пользователя ROMANEX

Re: Как связать три сетки?

https://asplinux.net/node/63
может чем поможет в решении вопроса....

Аватар пользователя redd

Re: Как связать три сетки?

wildsin писал(а):
ни о какой обычной маршрутизации разговора быть не может в принципе потому, что внутри КАЖДОГО из трех сегментов ПРИВАТНАЯ IP-адресация (10/8 и 192.168/16), которая, будучи клиентской, ДОЛЖНА благополучно дропаться на ЛЮБОМ маршрутизаторе любого

Все верно, серые адресы должны 100% дропаться, но конфигурация сети абсолютно неординарная, как я понял, поэтому я подчеркнул что при попытке настроить такую маршрутизацию - надо будет договариваться с провайдером что бы он пропускал инфу между подсетями. Плюс я так же предложил сменить конфигурацию сети, что бы все как то понормальней выглядело, ибо из рисунков я ничего не понял.

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

Если не получается с маршрутизацией - не проще сперва проконсультироваться у провайдера, на предмет топологии сети, ее устройства, какое оборудование стоит, как настроена маршрутизация.

Аватар пользователя wildsin

Re: Как связать три сетки?

redd писал(а):
Все верно, серые адресы должны 100% дропаться, но конфигурация сети абсолютно неординарная, как я понял, поэтому я подчеркнул что при попытке настроить такую маршрутизацию - надо будет договариваться с провайдером что бы он пропускал инфу между подсетями. Плюс я так же предложил сменить конфигурацию сети, что бы все как то понормальней выглядело, ибо из рисунков я ничего не понял.

ни один провайдер (по логике) не должен вестись на смешивание в одной физике честной и серой логик... потому и говорю о тоннелях... при тоннелях нет необходимости ни с кем ни о чем договариваться, а в пределах одной железки одного провайдера пробросить GRE (даже если он был почему-то закрыт) - абсолютно реальная и негеморройная задача... конфигурация сети тоже абсолютно ординарная... у нас подобное сделано между главконторой в донецке, филиалом в киеве и парой выносов в дон.области... в главконторе 10.0.4.0/23, в киеве 10.0.6.0/24... обычный шифрованный тоннель на аппаратных железяках поверх честного канала между абсолютно разными провайдерами Улыбка в данном же случае аппаратных железяк не предлагается ввиду того, что в сегментах роутерами стоят линухи, на которых те же (в том числе шифрованные) тоннели будут работать как родные...

RSS-материал