@registr76

Как получить доступ в локальную сеть по доменным именам через один белый IP?

День добрый.

Есть локальная сеть в которой много (больше 100) разных устройств которые нужно обслуживать. Все с локальными IP и доменными именами третьего уровня. Доступ к ним возможен только по TCP (не http). Есть роутер с белым IP и DNS сервер, тоже с белым IP, доступный через домен второго уровня. Сейчас доступ организован через NAT на роутере (IP:PORT).

Собственно вопрос в следующем?

Существует ли возможность получить доступ к устройствам в локальной сети по доменам третьего уровня через один белый IP адрес? Если существует, подскажите с помощью чего можно реализовать.

Схема
| Клиент | <----->| DNS сервер |<----->| Устройство |

Клиент - какой-то адрес в интернете
DNS сервер - mydomain.com
Устройство - unit1.mydomain.com
  • Вопрос задан
  • 353 просмотра
Пригласить эксперта
Ответы на вопрос 5
@d-stream
Готовые решения - не подаю, но...
На уровне tcp/ip нет понятия "имя". Есть только адрес [порт]
Соответственно в рамках этого уровня - задача не имеет прямого решения. Так или иначе необходимо надстраивать уровни выше, которые уже позволят через транспорт прогнать некие логические сущности где будет фигурировать и имя... Но это будет нечто по типу реализации своего http например)

Так что либо оставаться в рамках адрес:порт с трансляцией их по нужным устройствам, либо тем или иным образом реализовывать транспорт в эту сеть (vpn) и оперировать в dns локальными адресами устройств.
Ну или делать некую своего рода прослойку в виде http/ws/etc на морде которая сможет раскидывать за натом, но следом потребуется и всем клиентам уметь в эту прослойку... что окажется посложнее чем pptp/l2tp/sstp и т.п.
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если используемый протокол такого не поддерживает, то нельзя.
Ответ написан
Комментировать
@Drno
А зачем у Вас DNS смотри в мир? Оо... или там надеюсь ограничения по IP стоят?)

Поднимаем ВПН на микротике,за которым находятся устройства.
Указываем в настройках ВПН использовать DNS сервер в котором есть записи об этих устройствах.
Всё.
Если что это не инструкция, а принцип как бы я сделал сам.

Либо можно указать одним из DNS серверов Ваш DNS(который знает что за домены на устройствах) Тогда при обращении на поддомен по идее должно всё отрабатывать. но это не отменяет NAT и проброс портов до устройств. Т.к. там белый IP, а устройств много. И видимо они все юзают 1 порт

наверно можно еще сделать с помощью Nginx proxy, но тут я не силён сходу рассказать
Ответ написан
@rPman
Если vpn не возможен (а именно с его помощью ваша задача решается легко) то вариант с nat (проброс портов) самый верный, что у вас сейчас и сделано
Сейчас доступ организован через NAT на роутере (IP:PORT).


Если нужно по именам, и настраивать это надо только на одной машине, то на этой машине (или в ее локальной сети), где нужен этот доступ необходимо так же настроить проброс портов уже в обратную сторону, на локальный адрес, добавив статически сразу несколько ip адресов в своей локальной сети, определив каждой машине из целевой сети свой ip адрес и делая перенаправление портов в сторону роутера (не уверен умеет ли майкрософтовский так, он кажется слушает сразу все интерфейсы при перенаправлении но с linux таких проблем не будет), т.е. к примеру в вашей целевой сети сервис требует порт 123, три машины 192.168.0.100, 192.168.0.101 и 192.168.0.102 то на роутере определяете перенаправление портов 123100 -> 192.168.0.100:123, 123101 -> 192.168.0.101:123, 123102 -> 192.168.0.102:123 и на локальной машине 192.168.1.100:123 -> ip_роутера:123100, 192.168.1.101:123 -> ip_роутера:123101 и 192.168.1.:123 -> ip_роутера:123102 тут вторая локальная сеть имеет другие ip но это не принципиально

Сделать это можно прямо средствами роутера (он должен уметь добавлять самому себе несколько ip адресов из локальной сети) уже на стороне клиента либо установив в виртуалке дополнительно linux машину.

Если в целевой локальной сети есть доступный ssh сервер то все можно сделать с помощью port mapping (даже на windows).

Имена разрулить через локальный hosts.

В очень похожей ситуации я именно так и делал (все перенаправления делал с помощью ssh), но это жутко неудобно было потом плюнул и поднял обратный vpn (целевой сервер подключался к моему домашнему vpn серверу ибо не имел в принципе внешнего ip, а только пара перенаправленных портов)

p.s. майкрософтовскую файловую сеть так не перекинуть, точнее можно но будут глюки с именами (wins требует броадкаст в локальной сети), т.е. только по ip
Ответ написан
@geniuscomposervsevolodpus
Работаю с сетями ETH и PON
Либо роутингом с пробросом портов. Либо ВПН.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы