LINUX.ORG.RU
ФорумAdmin

Маршрутизация между двумя подсетями

 , , ,


1

2

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

Есть сеть с 3-мя внешними IP-адресами. Есть сервер Linux, на котором подняты 3 виртуалки, 3 шлюза на Debian для каждой из сетей. Есть 3 подсети: 192.168.10.0/24 - сеть №1, 192.168.20.0/24 - сеть №2, 192.168.30.0/24 - сеть №3. Сеть №1 - пользователи Сеть №2 - сервисы и сервера Сеть №3 - телефония и видеокамеры.

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



Последнее исправление: zgordan (всего исправлений: 2)

немного странная конфигурация. зачем было на каждую подсеть поднимать отдельную vm'ку? не очень понятно.

эти vm'ки имеют общую подсеть? если да, то поможет настройка статических маршрутов на подсети на ваших vm.

sdfg
()

«3 шлюза на Debian для каждой из сетей.» это еще один сервер? Или у Вас есть один сервер с Debian в хосте - который выполняет роль маршрутизатора-шлюза в интернет + на нем же три виртуалки?
Три подсети на разных физ. интерфейсах или саб интерфейсах?
ifconfig и netstat -rn покажите.
«не используя внешний вход в систему.» - поподробнее...

Vlad-76 ★★★★
()

Конфижишь статическую ARP запись для шлюза, потом прописываешь маршрут через этот шлюз

zolden ★★★★★
()
Ответ на: комментарий от Vlad-76

Есть физ машина с Debian, на ней три vm с Debian. Все три vm выполняют роль шлюза для каждой из подсетей.

шлюз №1 - 192.168.10.100

шлюз №2 - 192.168.20.100

шлюз №3 - 192.168.30.100

Три подсети используют один физ интерфейс, физ машины с Debian.

К примеру, машина из подсети 10.0/24 подключается к серверу по RDP, по внешнему IP-адресу (212.3.х.х), а нужно чтобы к тому же серверу машина подключалась по адресу 192.168.20.х, так же к ip-видеокамерам по адресу - 192.168.30.х

Три шлюза созданы для мониторинга и контроля 3-х подсетей.

zgordan
() автор топика
Ответ на: комментарий от zolden

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

zgordan
() автор топика
Ответ на: комментарий от anonymous

Есть несколько сервисов которые используют SSL (443), почтовик, портал, сайт. Поэтому что не городить огород с пробросами портов было принято решение использовать пул внешних IP-адресов, для каждой подсети выделить свой шлюз.

zgordan
() автор топика
Ответ на: комментарий от zgordan

Три подсети используют один физ интерфейс

назначаете адреса из всех подсетей на внутреннем интерфейсе каждого шлюза, например:

шлюз1: 192.168.10.100 192.168.20.101 192.168.30.101
шлюз2: 192.168.20.100 192.168.10.102 192.168.30.102
шлюз3: 192.168.30.100 192.168.10.103 192.168.20.103

и усе (маршруты на шлюзах автоматом пропишутся)

samson ★★
()
Последнее исправление: samson (всего исправлений: 3)
Ответ на: комментарий от samson

Вот что показывает ifconfig

eth0 inet addr:192.168.30.100 Bcast:192.168.30.255 Mask:255.255.255.0

eth1 inet addr:212.3.x.x Bcast:212.3.x.x Mask:255.255.255.248

lo inet addr:127.0.0.1 Mask:255.0.0.0

На какой интерфейс мне прописать другие IP?

zgordan
() автор топика
Ответ на: комментарий от zgordan

на eth0

ip addr add 192.168.10.103/24 dev eth0
ip addr add 192.168.20.103/24 dev eth0

после этого хостам из подсети 30.0/24 будут видны хосты из сетей 20.0/24 и 10.0/24, если 30.100 шлюз по умолчанию.

ps: адрес .103 - естественно должен быть свободным (не используемым адресом)

samson ★★
()
Последнее исправление: samson (всего исправлений: 1)
Ответ на: комментарий от zgordan

ну и в такой схеме можно вообще напрямую стучаться на .101, .102, .103, без маршрутизаторов.

минус - то что у вас сети «не изолированы» друг от друга. На любой машине можо прописать такой же алиас на интерфейсе и получить доступ к серверам, телефонии, видеокамерам с клиентских машин.

samson ★★
()
Ответ на: комментарий от samson

Сети по сути изолированы т.к. используется для каждой сети свой шлюз. Вот я и хочу построить маршрут таким образом то бы машина к примеру 192.168.1.50 могла ходит по подсетям 20.0/24 и 30.0/24.

Вроде как нужно использовать команду route add, но вот как правильно правило написать.

zgordan
() автор топика
Ответ на: комментарий от zgordan

Сети по сути изолированы т.к. используется для каждой сети свой шлюз

Три подсети используют один физ интерфейс, физ машины с Debian.

Они не изолированы.

Если бы было три физ. интерфейса или использовались VLAN`ы, то да.

И это не подсети, а сети.

Подсеть, это когда скажем есть сеть 192.168.1.0/24, а ты её нарезал на подсети 192.168.1.0/28, 192.168.1.16/28, 192.168.1.32/28, в каждой подсети будет по 14 хостов.

kostik87 ★★★★★
()
Ответ на: комментарий от samson

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default

inet 127.0.0.1/8 scope host lo

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

inet 192.168.10.100/24 brd 192.168.10.255 scope global eth0

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

inet 212.3.x.x/29 brd 212.3.x.x scope global eth1

zgordan
() автор топика
Ответ на: комментарий от zgordan

route add не надо. Маршрут сам добавтся при понятии алиаса. сделайте ip addr add и посмотрите вывод ip route и ip addr - сразу все прояснится...

Сети по сути изолированы т.к. используется для каждой сети свой шлюз

по сути они не изолироваы. На любой клиентской машине прописываем адрес другой подсети и попадаем в нее. Можно легко (по глупости или специально) создать конфлкт адресов и т.д. С точки зрения безопасности это не правильно. Если безопасность не нужно - то и так сойдет. Да и как в такой схеме будет работать тот же DHCP?

Свичи у вас управляемые? Если да, то можно на серваке поднять 3 vlan-a, скормить их виртуалкам, а свичами уже «изолировать» подсети друг от друга.

ps: имхо, не вижу смысла держать три виртуалки для таких целей, как уже сказали раннее. Ну и раз уж виртуалки, то тогда контейнеры (docker или lxc) разворачивать.

samson ★★
()
Последнее исправление: samson (всего исправлений: 3)
Ответ на: комментарий от samson

Я согласен что с точки зрения это не безопасно. Что можно в ручную прописать ip я попасть в другую сетку. Пользователи лишены этой возможности на уровне политики. Все оборудование стоит на статике. DHCP раздает адреса только по вафле, оборудование на вафле тоже на статике. Свичи не управляемые.

zgordan
() автор топика
Ответ на: комментарий от samson

ip route:

default via 212.3.x.x dev eth1

212.3.x.x/29 dev eth1 proto kernel scope link src 212.3.x.x

192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.100

zgordan
() автор топика
Ответ на: комментарий от targitaj

Есть несколько сервисов которые используют SSL (443), почтовик, портал, сайт. Поэтому что не городить огород с пробросами портов было принято решение использовать пул внешних IP-адресов, для каждой подсети выделить свой шлюз.

zgordan
() автор топика
Ответ на: комментарий от zgordan

Тут для каждой подсети не обязательно выделять отдельную машину/виртуалку. Достаточно на одном маршрутизаторе все собать.

Никакого огорода нет. Какая разница где прописать правило для проброса? Правило1 на 1ом шлюзе и правило2 на 2ом или оба эти правила на одном? Наоборот огород серверов получается - вместо одного три (выполняющие одинаковые задачи)... И админить одну машину вмсесто трех удобнее же...

По теме вопрос решен?

samson ★★
()
Ответ на: комментарий от zgordan

было принято решение

Кем? Вами? Что-то мне подсказывает вы не правильно к самой задаче подходите.
Все уже выше описали. Ваши виртуалки, при описанном по теме, это просто лишняя сущность. Один интерфейс наружу, один внутрь, неуправляемое оборудование.

anc ★★★★★
()
Ответ на: комментарий от anc

Валите оттуда.

ЛОЛ. Это все понятно.

Может ли мне все таки кто-то подсказать как мне решать проблему. Как мне написать правило с помощью которого я могу ходить по всем 3-м сетям не меняя IP-адреса на своей машине.

zgordan
() автор топика
Ответ на: Валите оттуда. от zgordan

Как мне написать правило с помощью которого я могу ходить по всем 3-м сетям не меняя IP-адреса на своей машине

Добавьте маршруты до нужных сетей на интерфейс на вашей машине.

ip r a 192.168.10.0/24 dev eth0
ip r a 192.168.20.0/24 dev eth0
ip r a 192.168.30.0/24 dev eth0

Если у вас там Linux, то добавьте в секцию post-up в файле настройки сети, если Windows, то добавьте маршруты в расширенную настройку маршрутов в свойствах сетевого интерфейса.

kostik87 ★★★★★
()
Ответ на: комментарий от Morin

ТС пишет:

ходить по всем 3-м сетям не меняя IP-адреса на своей машине

надо добавить маршруты до соответствующих сетей. Согласен добавлять все три маршрута не надо, нужно добавить маршруты только до двух других сетей, кроме сети из которой адрес на интерфейсе.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

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

Morin ★★★★★
()
Ответ на: Валите оттуда. от zgordan

Вам уже намекнули выше. Нафиг виртуалки, все тоже самое с точки зрения безопасности будет и на хост машинке работать. Или по простому «теже яйца сбоку».

anc ★★★★★
()
Ответ на: комментарий от samson

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

kostik87 ★★★★★
()
Ответ на: комментарий от Morin

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

Пошлет его по маршруту по умолчанию.

Но если все три сети прописаны на всех трёх маршрутизаторах, то что вы понимаете под «не своей сетью»???

samson ★★
()
Ответ на: комментарий от samson

какая прелесть, коллизии конечно дядя будет разбирать в таком конфиге, не ну на гонках конечно кто-то в итоге будет первым, но мусора будет (: Итак, кто там у нас разбирает коллизии, а самый интересный вопрос, чем они мне так не угодили? (:

Morin ★★★★★
()
Ответ на: комментарий от samson

а самое интересное, а нахрена тогда три шлюза? правда (:

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

Morin ★★★★★
()
Ответ на: комментарий от Morin

читать про нат и маскарадинг

Можно конечено же сделать нат. Но зачем вообще гнать трафик через шлюзы, еще и лишний нат делать? Прописать алиасы всех трех сетей на машине с которой доступ нужен и все.

А про три шлюза уже все высказались) Нагородили на ровном месте огород. Одного шлюза предостаточно. Да и три сети - тоже лишнее, если свичи не упраляемые, либо если это физически не разные сети.

samson ★★
()
Ответ на: комментарий от zgordan

К примеру, машина из подсети 10.0/24 подключается к серверу по RDP, по внешнему IP-адресу (212.3.х.х), а нужно чтобы к тому же серверу машина подключалась по адресу 192.168.20.х, так же к ip-видеокамерам по адресу - 192.168.30.х

А чем не устраивает подключение по внешнему адресу? Трафик пойдет точно так же, только адрес другой. Клиент -> шлюз (DNAT) -> серверRDP.

samson ★★
()
Ответ на: комментарий от samson

и скажем вин тачки пошлют тебя нафиг. И придется писать на каждой правило брандмауера, а оно надо? Скажем не все оборудование дружит с подсетями и там тоже придется городить огород. Правильней прогнать трафик через шлюз, ведь он собственно для этого и нужен. Решений много, но не все они удобные

Morin ★★★★★
()
Ответ на: комментарий от Morin

Ну тогда продублировать правила DNAT, они же уже есть для внешнего адреса (придется в новое еще немного добавть).

2ТС: давайте вывод iptables -t nat -vnL на шлюзах, покажем, какие надо правила добавить

samson ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.