Рейтинг:0

Обнаружить принтер в VPN-клиенте

флаг kg

Проблема основана на простом ограничении:

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

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

Две LANS представлены в апельсин и синий, и есть VPN в красный который соединяет два. Из-за синего LAN невозможно чтобы выставить общедоступный IP-адрес, единственный способ — обслуживать VPN с сервера.

При такой настройке возможно ли, что приложение Node.js, работающее внутри сервера обнаруживает принтеры, которые CUPS публикует в сине-красной сети?

Я понимаю, что CUPS рекламирует доступные принтеры через mDNS, но только в той сети, к которой он подключен. Итак, есть вероятность, что пакеты может не путешествовать из клиентской VPN на фактический сервер (из-за стандартное поведение VPN).

Возможно ли то, чего я пытаюсь достичь? Какие еще варианты у меня есть?

Обновлять

Я нашел несколько подходов, которые стоит изучить:

  • Используйте VXLAN для соединения двух сетей в одну и многоадресной рассылки по сети.
  • Включить многоадресную рассылку через OpenVPN или Wireguard
  • Повторить пакеты, отправленные mDNS на другом интерфейсе
  • Создайте запись службы прокси с помощью DNS-SD

Вот немного полезной информации:

Я думаю, что ответ кроется в одном или сочетании некоторых из них.

Michael Hampton avatar
флаг cz
Вы всегда можете вручную подключить сервер к удаленному принтеру, используя любые поддерживаемые им протоколы (HP, IPP и т. д.).
флаг kg
Не могли бы вы привести пример? Возможно ли это, учитывая тот факт, что сеть, в которой находится принтер, не имеет публичного IP-адреса?
Michael Hampton avatar
флаг cz
Если вы можете подключиться к принтеру по сети, вы можете настроить его. Если вы не можете подключиться к принтеру по сети, то никакие ваши действия ничего не изменят.
флаг kg
Да, возможно, я смогу подключиться к принтеру через CUPS в другой сети. Я хотел установить библиотеку в приложении Node.js, которая обнаруживает принтеры, опубликованные через mDNS в VPN, и имеет динамическое поведение (обнаружение взлетов и падений) вместо _жесткого кодирования_ URL-адреса принтера (x.x.x.x:631/Epson) в приложении. . Это моя настоящая цель здесь.
Michael Hampton avatar
флаг cz
Жесткое кодирование? Мы так больше не делаем. Поместите его в файл конфигурации или среды.
флаг kg
Я знаю. Я имел в виду, что я не хочу заранее знать, какие принтеры находятся в другой сети. Это может быть один, два или любое количество.Моя идея заключалась в том, что приложение будет обнаруживать доступные принтеры, опубликованные сервером CUPS, через [это](https://wiki.archlinux.org/title/CUPS/Printer_sharing#DNS-SD_advertisement) или [это](https:// wiki.archlinux.org/title/CUPS/Printer_sharing#Sharing_via_Internet_Printing_Protocol). Затем, вместо того, чтобы иметь URL-адрес в файле среды, я бы реализовал реальное динамическое обнаружение службы и показывал клиентам только доступные принтеры.
флаг kg
Итак, я действительно спрашиваю, может ли этот механизм обмена каким-либо образом пройти через VPN и быть обнаруженным приложением.
Michael Hampton avatar
флаг cz
Эти механизмы обнаружения служб работают только в одном широковещательном домене уровня 2. Они не маршрутизируются.
флаг kg
@MichaelHampton Я нашел несколько подходов, которые могут быть полезны для передачи этих пакетов на другой хост. буду дальше копать...

Ответить или комментировать

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