LINUX.ORG.RU
ФорумAdmin

Виртуальные хосты не для веб-сервера

 , , , ,


0

1

Доброго времечка! Пока большинство россиян жалуются на погоду, я тихонько думаю как пустить трафик с железок наружу, учитывая что железки используют параллельно с 80 портом еще и 554. Многие, наверняка, сталкивались с проблемой такой при монтаже видеонаблюдения. Так вот, представим, что у меня в сети есть пара одинаковых железяк, слушающих 80 и 554 порты. Менять их нельзя ну никак, а вот рядом стоит сервер, на котором можно извращаться как угодно. И у меня в голове роится лишь одна мысль - а что, если наподобие виртуальных хостов (в том же апаче) существует приблуда, позволяющая привязать одинаковые порты на разные доменные имена сервера? Либо есть какое правило в iptables, позволяющее при обращении по одному адресу отдавать порт первой железяки, а по обращению ко второму адресу возвращать точно такой же порт, но уже второй железки? Подскажите пожалуйста, товарищи!

★★★★★

Либо есть какое правило в iptables, позволяющее при обращении по одному адресу отдавать порт первой железяки, а по обращению ко второму адресу возвращать точно такой же порт, но уже второй железки?

Ну дык DNAT.

thesis ★★★★★
()

Если там HTTP, то это называется «виртуальные хосты». Если нет — сорри, пока «по одному/второму адресу» один IP, тебя ждет очевидный облом. Можо только ждать общественной сознательности и повсеместного использования SRV записей — а этого можно как STCP или IPv6, вообще не дождаться.

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

Загвоздка в том, что ip снаружи один всего

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

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

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

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

Komintern ★★★★★
()

Эээ, нифига не понял. У тебя сеть. Наружу торчит 1 ip. В сети 3 устройства. Сервер. И 2 идентично настроенных железки с парой одинаковых открытых портов. Тебе нужен доступ к ним извне? Проброс портов? Те, извне по ip 192.168.1.1:164 отвечает железка 1.1.1.1:554, по 192.168.1.1:165 отвечает 1.1.1.2:554

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

Если к железкам нужно доступаться только по HTTP(S) то тебе подойдёт nginx или apache (думаю у многих других вебсерверов тоже есть возможность настроить обратное проксирование). Если доступаться нужно по какому-то сферическому протоколу в вакууме (в общем-то наверное по любому протоколу отличному от HTTP(S)) то сервер просто не узнает к какому доменному имени к нему обратился клиент. Серверу придёт пакет с такого-то IP-адреса на такой-то IP-адрес, доменные имена просто никак тут не фигурируют. Никакая софтина (не использующая libastral) не сможет тебе помочь, ей будет просто неоткуда узнать к какому доменному имени обратился пользователь.

Но можно разнести порты разных железок на разные порты внешнего IP-адреса сервера.
Например 80 порт первой железки будет 180 портом внешнего адреса сервера, а 80 порт второй железки будет 280 портом внешнего адреса сервера.
Т.е. обращаемся на 123.45.6.78:180 — попадаем вебморду первой железки, обращаемся 123.45.6.78:280 — попадаем на вебморду второй железки.

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

Так я умею. Однако, их софт нюхает 554 порт вне зависимости от настроек. То есть схема работоспособна только если обращаться так: домен:80 и по домен:554 он сам цепляется. А ежели другой порт прокинуть, он все равно 554 искать будет

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

Ах, сооофт! Тогда все намного сложнее! Вот гад же! Тогда его обмануть надобно. Пока, правда нет идей как.

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

Вопрос не читал, поэтому сразу предлагаю смотреть в сторону мультиплексора. Это для случая разных сервисов на одном порту, ну ты понел

zolden ★★★★★
()

проксирование

Есть как в apache так и в nginx

reprimand ★★★★★
()

Делаешь так, как посоветовал noiseme, на стороне удаленного клиента поднимаешь 2 виртуалки, на которых перенаправляешь ип:порт

client ---|- virt1:554 ----> remoteSrv:5541 ----> dev1:554
          -- virt2:554 ----> remoteSrv:5542 ----> dev2:554
anonymous
()
23 августа 2015 г.

Ребята, а можно сделать чтобы iptables прокидывал на 554 порт определенной железяки при обращении на определенный порт сервера?

К примеру: три железки с ip 10.0.0.181,182,183 и вебпортами 81,82,83. У всех 554 открыт. При обращении к 81 порту сервера он, точнее его файрвол отдает в 554 порт порт .181 железки. При обращении в 82 открывается 554 порт .182 и т.п. Не представляю правда как обслуживать одновременные подключения нескольких клиентов с разными запросами, но мне хотя бы поочередно чтобы работало. Ну или если возможно, то все вместе... Спасибо

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

Проблема в том, что клиентом может быть мобильник с минимумом функций. Ну да ладно, на крайний есть vpn

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