У меня есть клиенты по всему миру, которым время от времени требуются обновления программного обеспечения/прошивок для оборудования, которое я им предоставил. У них нет ИТ-персонала или сетевых знаний, а я 10 лет не учился на последнем курсе по сетевому делу, так что я заржавел, но не некомпетентен.
Типичная ситуация такова: я сижу в своем офисе со своим ноутбуком, а ноутбук клиента физически подключен к устройству с помощью кабеля Ethernet и к Интернету через Wi-Fi.
Я пытаюсь подключиться к их ноутбуку через VPN-сервис, например, Hamachi или VPN-драйвер TeamViewer, а затем объединить VPN-соединение таким образом, чтобы я мог получить доступ к устройству из своего офиса, как если бы я был подключен к нему напрямую.
Некоторые более конкретные детали
Мой компьютер:
- Wi-Fi: 192.168.0.xxx, маска 255.255.255.0
- teamviewer vpn: 7.xxx.xxx.xxx, маска 255.0.0.0
Их компьютер:
- Wi-Fi: любая возможная конфигурация, но обычно такая же, как у меня
- teamviewer vpn: такой же как у меня
- Ethernet: 192.168.178.10, маска 255.255.255.0
Устройства на месте их расположения
- каждое устройство находится в одной подсети 192.168.178.xxx на коммутаторе Ethernet со статическими IP-адресами в диапазоне от 001 до 005
Что мне нужно: - Я должен иметь возможность ввести «ping 192.168.178.2» со своей стороны и получить устройство с их стороны.
Что я пробовал:
- использовал команду «route», чтобы добавить маршрут от 192.168.178.2 к своему VPN IP
- использовал инструмент мостового соединения Windows для соединения Ethernet на их конце с виртуальным адаптером TeamViewer. Затем попытался установить IP-адрес моста либо на IP-адрес Ethernet, либо на IP-адрес TeamViewer. Не удалось заставить это работать, но мне кажется, что я просто не понимаю, как правильно это настроить
Что у меня есть в наличии: я могу подключиться к их компьютеру удаленно, чтобы изменить настройки и установить некоторое программное обеспечение.
Чего мне не хватает: Я не могу им ничего отправить или заставить их установить/купить какое-либо оборудование, это должно быть только программное решение.
Заранее благодарю за ответ
EDIT: В моей тестовой настройке я включил IP-маршрутизацию и использовал Wireshark для мониторинга порта Ethernet, ведущего к устройству. Если я попытаюсь выполнить ping через VPN, я увижу, что пакет доходит до устройства, но на его ответ в виде широковещательной рассылки Who-is ARP никто не отвечает.
решение1
Я решил эту проблему, поэтому собираюсь опубликовать свое решение здесь для потомков, и потому что одна из моих самых больших неприятностей — это найти на форуме точно такую же проблему, как и я, только в закрытой теме с последним сообщением либо «разобрался», либо «отправил вам ответ в личку».
В любом случае, проблема здесь в том, что готовые решения vpn, такие как teamviewer или hamachi, на самом деле не настраиваются и предназначены для создания частной сети, а не моста. Однако они позволяют вам создать эту частную сеть без необходимости настройки и обслуживания надлежащего vpn-сервера, прорыва через брандмауэры и переадресации портов, поэтому они имеют свое применение, в том числе для решения этой проблемы.
Короче говоря, вот как я добился своей цели максимально безболезненно для себя и клиента: я подключил VPN-мост к VPN-соединению, предоставленному TeamViewer.
Вот шаги:
- Попросите клиента установить TeamViewer на компьютер, подключенный к сети устройств.
- Удаленно подключитесь к их машине через TeamViewer и установите драйвер VPN TeamViewer, а также копию OpenVPN, которая будет управлять реальным мостом.
- После установки OpenVPN в списке сетевых адаптеров должен появиться адаптер TAP. Выберите его и переименуйте в tap-bridge, а затем соедините его с Ethernet-подключением к сети устройства. (В Windows выберите оба адаптера и выберите «мост» в контекстном меню.)
- В настройках IPv4 нового моста вручную установите IP-адрес на подсеть устройства. Проверьте связь с устройством с помощью ping-запроса
Щелкните правой кнопкой мыши по графическому интерфейсу OpenVPN на панели задач, откройте конфигурацию и введите в нее что-то вроде этого
dev tap dev-node tap-bridge secret static.key comp-lzo keepalive 10 60 ping-timer-rem persist-key
Файл static.key должен быть одинаковым на обеих машинах (скопируйте его с одной на другую) и может быть сгенерирован через командную строку следующим образом:
openvpn --genkey --secret static.key
- Вернувшись на свой компьютер, также установите OpenVpn.
- Найдите его TAP-адаптер и вручную присвойте ему IP-адрес в той же подсети.
- ЕСЛИ вы не подключены к другому компьютеру с помощью VPN Teamviewer, сделайте это сейчас. После установки соединения откроется окно, в котором будет показан IP другого компьютера
Добавьте это в файл конфигурации OpenVPN на вашем компьютере.
remote 7.111.222.333 dev tap secret static.key comp-lzo keepalive 10 60 ping-timer-rem persist-key
(замените IP после «remote» на IP, который вы только что получили на шаге 9)
- Теперь, если вы откроете графический интерфейс OpenVPN на обеих машинах и подключитесь, они должны установить VPN-мост ВНУТРИ VPN TeamViewer, и вы сможете увидеть все устройства в этой подсети, как если бы они были подключены к вашей локальной машине.
После того, как вы закончите, желательно отменить изменения в сетевых адаптерах и удалить OpenVPN, но вы можете это сделать самостоятельно.