У меня есть сервер OpenVPN на виртуальной машине Linux (экземпляр Google Cloud Compute Engine с Ubuntu 20.04).
У меня в офисе есть ноутбук с Linux (Ubuntu 20.04). Он подключен к моему офисному маршрутизатору по беспроводной сети для доступа в Интернет. Я подключил этот ноутбук к серверу OpenVPN, и теперь он работает как VPN-клиент. Я подключил ПЛК (программируемый логический контроллер) к моему ноутбуку через порт Ethernet.
У меня есть другой рабочий стол (ПК с Windows), который также подключен к серверу OpenVPN. Таким образом, он действует как второй VPN-клиент.
10.8.0.1
10.8.0.2
10.8.0.3
10.0.0.60
Цель состоит в том, чтобы иметь возможность пинговать ПЛК с сервера Ubuntu (Виртуальная машина) или ПК с Windows (Клиент 2).
Насколько я понимаю, они находятся в разных подсетях, я настроил свой ноутбук с Ubuntu в качестве шлюза между моим VPN-соединением (tun0) и портом Ethernet (eno1). Ниже приведены подробности, соответствующие этим адаптерам, из моего вывода ifconfig
:
Я выполнил следующие команды для достижения функциональности шлюза:
sudo ip addr add 10.0.0.1/24 dev eno1
sudo iptables -A FORWARD -o tun0 -i eno1 -s 10.0.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
(And uncommented net.ipv4.ip_forward=1 from /etc/sysctl.conf)
Я все еще не могу проверить связь с моим ПЛК ни с одной из другие машины (ВМ или ПК с Windows).
Я плохо разбираюсь в сетевых технологиях. Поэтому, если на ноутбуке Ubuntu или виртуальной машине есть другие конфигурации, которые я пропустил, сообщите мне. Любая помощь будет оценена по достоинству.
Вы должны настроить параметры шлюза openvpn на вашем ноутбуке через сервер openvpn. Примеры есть в файле конфигурации сервера, ищите "Thelonious"
По сути, вам нужно создать файл на сервере в /etc/openvpn/ccd
с именем, показанным в /etc/openvpn/openvpn-status.log
, когда ваш клиент подключен. Внутри этого файла добавьте iroute 10.0.0.0 255.255.255.0
. Это должно настроить клиента как шлюз.
Вам также нужно будет включить расположение ccd, добавить маршрут и разрешить общение между клиентами в файле конфигурации openvpn-сервера. Посмотрите на комментарии к файлу конфигурации, они очень хорошие и должны покрыть все, что вам нужно.