Моя установка выглядит следующим образом:
- Сервер (сервер Ubuntu) с публичным IP-адресом
1.2.3.4
выступающий в качестве сервера OpenVPN - RaspberryPi (raspbian), подключенный к серверу OpenVPN с адресом
10.8.0.6
в сети OpenVPN и локальным адресом в физической сети192.168.178.36
- «Lan-Client» находится в той же физической сети, что и Raspberry Pi с локальным адресом
192.168.178.56
- "Клиент" находится в той же сети OpenVPN, что и raspberry pi с адресом
10.8.0.10
С моей текущей настройкой, "клиент" и Raspberry Pi успешно соединены с сервером openvpn и могут общаться друг с другом. Теперь я хочу переслать «lan-client» в сеть openvpn, используя raspberry pi в качестве маршрутизатора, чтобы каждый клиент, подключенный к серверу openvpn, мог получить к нему доступ.
Я не могу установить OpenVPN на "LAN-клиент", а также я не могу сделать переадресацию портов на него или изменить любую конфигурацию вообще.
Это возможно даже с OpenVPN? И если так, как я могу это сделать? Я только хочу переслать этот конкретный IP-адрес, а не все клиенты в малину PIS LAN.
Мои текущие конфиги выглядят так:
server.conf
port 1194
proto udp
dev tun
ca /etc/certs/ca.crt
cert /etc/certs/server.crt
key /etc/certs/server.key
dh /etc/certs/dh4096.pem
cipher AES-256-CBC
server 10.8.0.0 255.255.255.0
keepalive 10 120
client-to-client
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd
persist-key
persist-tun
status /var/log/openvpn/status.log
log /var/log/openvpn/openvpn.log
log-append /var/log/openvpn/openvpn.log
verb 3
ipp.txt (сервер)
client-rpi,10.8.0.4
ccd/client-rpi (сервер)
ifconfig-push 10.8.0.6 10.8.0.1
client.conf (Raspberry Pi)
client
dev tun
proto udp
remote 1.2.3.4 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/certs/ca.crt
cert /etc/certs/client-rpi.crt
key /etc/certs/client-rpi.key
cipher AES-256-CBC
remote-cert-tls server
verb 3
Несмотря на то, что я хочу направить только один IP-адрес, я уже следовал некоторым руководствам в Интернете для маршрутизации всей локальной сети. Для этого я добавил
route 192.168.178.0 255.255.255.0
на сервер.conf и
iroute 192.168.178.0 255.255.255.0
в конфигурацию ccd/client-rpi . Когда я пытаюсь пинговать 192.168.178.20
например, на сервере, я получаю 100% потерю пакетов (без ответа). На малиновом пи это выглядит так:
$ sudo tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
09:39:09.863118 IP 10.8.0.1 > 192.168.178.20: ICMP echo request, id 19467, seq 1, length 64
09:39:10.869903 IP 10.8.0.1 > 192.168.178.20: ICMP echo request, id 19467, seq 2, length 64
09:39:11.878093 IP 10.8.0.1 > 192.168.178.20: ICMP echo request, id 19467, seq 3, length 64
Когда я пингую по тому же адресу, но с raspberry pi (который находится в той же физической сети, что и цель), все работает нормально, как и ожидалось, поэтому не брандмауэр целей отбрасывает запросы.
Я предполагаю, что Raspberry Pi получает запросы на пинг и перенаправляет его, но цель 192.168.178.20
не знает, как на это реагировать. Проблема, как уже упоминалось, я не могу изменить ни таблицу маршрутизации, ни другие параметры на этом устройстве. У меня есть только доступ к серверу и Raspberry Pi. Правильно ли мое понимание, и есть ли решение, которое сработает? Или это просто моя неправильная конфигурация и недоразумение? Это также может быть проблемой на Raspberry Pi с маршрутами, но я понятия не имею, как это исправить.