Нет подключения к клиентской сети через соединение OpenVPN site-to-site.

Я пытаюсь соединить два своих дома (а может быть, и больше позже) через соединение OpenVPN типа «сайт-сайт». Моя цель — чтобы все клиенты на всех сайтах могли общаться друг с другом.

Но по какой-то причине мне не удается установить соединение с сайта А с клиентами на сайте Б. И наоборот, все работает отлично.

Есть ли у меня ошибка в конфигурации OpenVPN?
Я забыл указать какие-нибудь маршруты?

Любая помощь очень ценится.

Ситуация

Вот как выглядит установка:

Сайт А

  • Интернет-модем/маршрутизатор
    • Порт OpenVPN перенаправлен в Unifi USG
  • Unifi USG в качестве маршрутизатора/DHCP
    • Сеть:192.168.200.1/24
    • подключен через порт WAN к модему/маршрутизатору интернет-провайдера
    • OpenVPN-порт1194пересылается на Synology NAS
    • Статический маршрут к Synology NAS
  • Synology NAS с фиксированным IP-адресом
    • Сервер OpenVPN с использованием пакета Synology VPN Server
    • Сеть серверов OpenVPN:10.0.10.0/24

Сайт Б

  • Интернет-модем/маршрутизатор
  • Роутер ASUS RT-AC68U с прошивкой merlin
    • Сеть:192.168.100.1/24
    • подключен через порт WAN к модему/маршрутизатору интернет-провайдера
  • Клиент OpenVPN подключается к серверу Site A/OpenVPN
    • IP-адрес клиента10.0.10.6в этом примере. Я также пробовал фиксированные IP-адреса, но это не изменило результат.

Дополнительные устройства

  • больше клиентов смогут подключаться через OpenVPN, и им будут назначены IP-адреса в диапазоне10.0.10.x

Проблема

  • ✅ Соединение OpenVPN успешно установлено.

  • ✅ Маршрутизатор сайта Б () может пинговать сервер OpenVPN сайта А ()

  • ✅ Маршрутизатор сайта B () может пинговать маршрутизатор сайта A ()

  • ✅ Маршрутизатор сайта B () может пинговать клиентов сайта A (например)

  • ✅ Клиент сайта Б (например) может пинговать сервер OpenVPN сайта А (192.168.200.200)

  • ✅ Клиент сайта B (например) может пинговать маршрутизатор сайта A ()

  • ✅ Клиент сайта Б (например) может пинговать клиентов сайта А (например)

  • ✅ Маршрутизатор сайта A () может пинговать маршрутизатор сайта B ()

  • ❌ Сайт A Маршрутизатор (192.168.200.1) не может пинговать клиентов сайта B (например,192.168.100.10)

  • ✅ Клиент сайта A (например) может пинговать маршрутизатор сайта B ()

  • ❌ Клиент сайта A (например) не может выполнить проверку связи с клиентами сайта B (например)


я уже пытался бежатьtcpdump -eni any icmpна маршрутизаторе сайта B.

Когда я пингую маршрутизатор сайта B (192.168.100.1) с сайта Клиент (), работает:

      21:33:04.416012  In ethertype IPv4 (0x0800), length 100: 192.168.200.6 > 192.168.100.1: ICMP echo request, id 1038, seq 1, length 64
21:33:04.416165 Out ethertype IPv4 (0x0800), length 100: 192.168.100.1 > 192.168.200.6: ICMP echo reply, id 1038, seq 1, length 64
21:33:05.418067  In ethertype IPv4 (0x0800), length 100: 192.168.200.6 > 192.168.100.1: ICMP echo request, id 1038, seq 2, length 64
21:33:05.418147 Out ethertype IPv4 (0x0800), length 100: 192.168.100.1 > 192.168.200.6: ICMP echo reply, id 1038, seq 2, length 64
21:33:06.419075  In ethertype IPv4 (0x0800), length 100: 192.168.200.6 > 192.168.100.1: ICMP echo request, id 1038, seq 3, length 64
21:33:06.419153 Out ethertype IPv4 (0x0800), length 100: 192.168.100.1 > 192.168.200.6: ICMP echo reply, id 1038, seq 3, length 64

Однако когда я пингую клиента сайта B () с клиента сайта A (), он терпит неудачу :

      21:37:08.038559  In ethertype IPv4 (0x0800), length 100: 192.168.200.6 > 192.168.100.129: ICMP echo request, id 1039, seq 1, length 64
21:37:09.070567  In ethertype IPv4 (0x0800), length 100: 192.168.200.6 > 192.168.100.129: ICMP echo request, id 1039, seq 2, length 64
21:37:10.110696  In ethertype IPv4 (0x0800), length 100: 192.168.200.6 > 192.168.100.129: ICMP echo request, id 1039, seq 3, length 64
21:37:11.150865  In ethertype IPv4 (0x0800), length 100: 192.168.200.6 > 192.168.100.129: ICMP echo request, id 1039, seq 4, length 64

И наоборот, когда я пингую сайт клиента (192.168.200.6) от клиента сайта Б (192.168.100.129), оно работает :

      21:39:11.565543  In bc:5f:f4:63:a9:46 ethertype IPv4 (0x0800), length 76: 192.168.100.129 > 192.168.200.6: ICMP echo request, id 1, seq 230, length 40
21:39:11.565543  In bc:5f:f4:63:a9:46 ethertype IPv4 (0x0800), length 76: 192.168.100.129 > 192.168.200.6: ICMP echo request, id 1, seq 230, length 40
21:39:11.565665 Out ethertype IPv4 (0x0800), length 76: 10.0.10.6 > 192.168.200.6: ICMP echo request, id 1, seq 230, length 40
21:39:11.573657  In ethertype IPv4 (0x0800), length 76: 192.168.200.6 > 10.0.10.6: ICMP echo reply, id 1, seq 230, length 40
21:39:11.573715 Out 60:45:cb:59:fd:d0 ethertype IPv4 (0x0800), length 76: 192.168.200.6 > 192.168.100.129: ICMP echo reply, id 1, seq 230, length 40
21:39:11.573736 Out 60:45:cb:59:fd:d0 ethertype IPv4 (0x0800), length 76: 192.168.200.6 > 192.168.100.129: ICMP echo reply, id 1, seq 230, length 40
21:39:12.584996  In bc:5f:f4:63:a9:46 ethertype IPv4 (0x0800), length 76: 192.168.100.129 > 192.168.200.6: ICMP echo request, id 1, seq 231, length 40
21:39:12.584996  In bc:5f:f4:63:a9:46 ethertype IPv4 (0x0800), length 76: 192.168.100.129 > 192.168.200.6: ICMP echo request, id 1, seq 231, length 40
21:39:12.585099 Out ethertype IPv4 (0x0800), length 76: 10.0.10.6 > 192.168.200.6: ICMP echo request, id 1, seq 231, length 40
21:39:12.592692  In ethertype IPv4 (0x0800), length 76: 192.168.200.6 > 10.0.10.6: ICMP echo reply, id 1, seq 231, length 40
21:39:12.592751 Out 60:45:cb:59:fd:d0 ethertype IPv4 (0x0800), length 76: 192.168.200.6 > 192.168.100.129: ICMP echo reply, id 1, seq 231, length 40
21:39:12.592777 Out 60:45:cb:59:fd:d0 ethertype IPv4 (0x0800), length 76: 192.168.200.6 > 192.168.100.129: ICMP echo reply, id 1, seq 231, length 40

Конфигурация сервера OpenVPN

(Synology NAS/usr/syno/etc/packages/VPNCenter/openvpn/openvpn.conf)

      dev tun

# make all clients aware of local site
push "route 192.168.200.0 255.255.255.0"
push "route 10.0.10.0 255.255.255.0"

# forward routes to other sites
route 192.168.100.0 255.255.255.0
push "route 192.168.100.0 255.255.255.0"

management /var/run/openvpn.sock unix

server 10.0.10.0 255.255.255.0

client-config-dir /usr/syno/etc/packages/VPNCenter/userIPs/
client-to-client

dh /var/packages/VPNCenter/target/etc/openvpn/keys/dh3072.pem
ca /var/packages/VPNCenter/target/etc/openvpn/keys/ca.crt
cert /var/packages/VPNCenter/target/etc/openvpn/keys/server.crt
key /var/packages/VPNCenter/target/etc/openvpn/keys/server.key

max-clients 5

comp-lzo

persist-tun
persist-key

verb 3

#log-append /var/log/openvpn.log

keepalive 10 60
reneg-sec 0

plugin /var/packages/VPNCenter/target/lib/radiusplugin.so /var/packages/VPNCenter/target/etc/openvpn/radiusplugin.cnf
verify-client-cert none
username-as-common-name
duplicate-cn

status /tmp/ovpn_status_2_result 30
status-version 2
proto udp6
mssfix 1450
port 1194
cipher AES-256-CBC
auth SHA512

У меня есть каталог конфигурации клиента с файлом для моего пользователя VPN:

(Synology NAS/usr/syno/etc/packages/VPNCenter/userIPs/<vpn user name for site b>)

      # set static ip address for this client
#ifconfig-push 10.0.10.100 255.255.255.0

# make server aware that the 192.168.100.0/24 address range is handled by this client
iroute 192.168.100.0 255.255.255.0

Файл клиента OpenVPN

      dev tun
tls-client

remote <site A dynamic host name> 1194

float

#redirect-gateway def1

dhcp-option DNS 192.168.200.1

pull

proto udp

script-security 2


comp-lzo

reneg-sec 0

cipher AES-256-CBC

auth SHA512

auth-user-pass

setenv CLIENT_CERT 0

<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>


Обновление: вот как USG (маршрутизатор на сайте A) настроен для маршрутизации трафика на Synology.

Обновление: таблица маршрутизации на Synology. Я не добавлял здесь никаких маршрутов, они были добавлены автоматически сервером OpenVPN.

0 ответов

Другие вопросы по тегам