Чего не хватает в этой настройке OpenVPN «клиент-клиент»?

Чего не хватает в этой настройке OpenVPN «клиент-клиент»?

Мне удалось настроить сервер OpenVPN с несколькими клиентами, использующими статические IP-адреса, статический IP-адрес устанавливается путем добавления строки, как ifconfig-push 192.168.254.6 192.168.255.1в ccd для каждого из клиентов. Я могу пинговать или ssh с сервера к каждому из этих клиентов. В конфигурации моего сервера у меня есть следующие строки (среди других конфигураций):

server 192.168.255.0 255.255.255.0

и

route 192.168.254.0 255.255.255.0

Теперь то, что я пытаюсь сделать, это иметь возможность ssh или curl с одного клиента на другой, поэтому после прочтения документации я добавил строку client-to-clientв конфигурацию. Я заметил, что при перезапуске серверов и повторном подключении клиентов он добавляет следующую строку к ip routeмоим клиентам:

192.168.255.0/24 via 192.168.255.1 dev tun0

Что я, кажется, понимаю, что это указывает клиенту, что каждый адрес, как 192.168.255.Xбы идет на VPN-сервер. И на самом деле, я попытался проверить, запустив traceroute 192.168.255.30и получив:

traceroute to 192.168.255.30 (192.168.255.30), 30 hops max, 60 byte packets
 1  192.168.255.1 (192.168.255.1)  11.454 ms  14.491 ms  14.493 ms

Однако другие клиенты, к которым я хочу подключиться, имеют адреса типа 192.168.254.Xтак что, полагаю, я что-то упускаю и на самом деле не знаю, что именно. Я попробовал вручную добавить этот маршрут:

ip route add 192.168.254.0/24 via 192.168.255.1 dev tun0

Что для меня означало бы, что также адреса типа 192.168.254.X проходят через VPN-сервер. Но если я это сделаю, traceroute 192.168.254.30результаты будут другими:

traceroute 192.168.254.30
traceroute to 192.168.254.30 (192.168.254.30), 30 hops max, 60 byte packets

Также с клиентской машины я могу, ping 192.168.255.1но не могу пинговать других клиентов в диапазоне 254, например ping 192.168.254.30.

Мои познания в области сетей весьма ограничены. Чего не хватает, чтобы позволить одному клиенту 192.168.254.30получать доступ к службам другого клиента, например192.168.254.32

Обновлять:Я подключил нового клиента к vpn, на этот раз назначив в ccd-файле ip в диапазоне 192.168.255.X, а затем попытался запустить traceroute с клиента, с которым я тестировал. Я также не могу подключиться к этому клиенту в диапазоне 255, более того, если я запускаю traceroute, происходит следующее.

Этот новый клиент имеет 192.168.255.22, если в моем тестовом клиенте я traceroute 192.168.255.3получаю:

traceroute to 192.168.255.3 (192.168.255.3), 30 hops max, 60 byte packets
 1  192.168.255.1 (192.168.255.1)  11.481 ms  21.192 ms  21.472 ms

То же самое происходит для IP-адресов 4, 5, 6..., у которых нет клиентов, пока я не доберусь до 22IP-адреса нового клиента. В этом случае, когда я это сделаю, traceroute 192.168.255.22я получу:

traceroute to 192.168.255.22 (192.168.255.22), 30 hops max, 60 byte packets

Почему это происходит?

решение1

Похоже, вы пытаетесь направить трафик между разными подсетями через сервер OpenVPN. Это возможно, но вам нужно будет внести некоторые дополнительные изменения в конфигурацию OpenVPN.

Первое, что следует отметить, это то, что serverдиректива в вашем файле конфигурации OpenVPN определяет подсеть, которую будет использовать сам сервер. В вашем случае сервер будет использовать подсеть 192.168.255.0/24. Это означает, что клиентам будут назначены IP-адреса в 192.168.255.Xдиапазоне.

Директива route, с другой стороны, определяет маршрут для трафика от клиентов OpenVPN в определенную подсеть. В вашем случае директива routeсообщает серверу OpenVPN, что трафик от клиентов должен быть направлен в 192.168.254.0/24подсеть.

Однако этого недостаточно, чтобы позволить клиентам общаться друг с другом через разные подсети. Вам также нужно будет добавить pushдирективу в файл конфигурации сервера OpenVPN. Эта директива сообщает серверу OpenVPN о необходимости отправлять маршруты клиентам, чтобы они знали, как направлять трафик в другие подсети.

Вот пример того, как может выглядеть директива push в вашем файле конфигурации:

push "route 192.168.254.0 255.255.255.0"

Эта директива сообщает серверу OpenVPN о необходимости проложить маршрут клиентам, указав им направлять трафик в 192.168.254.0/24подсеть через сервер OpenVPN.

Вам также нужно убедиться, что client-to-clientдиректива включена в конфигурации вашего сервера. Эта директива сообщает серверу OpenVPN, что клиенты должны общаться друг с другом напрямую, без маршрутизации их трафика через сервер.

После внесения этих изменений в конфигурацию вы сможете подключать своих клиентов к серверу OpenVPN и взаимодействовать друг с другом через разные подсети.

Стоит отметить, что client-to-clientдиректива позволяет клиентам общаться друг с другом, только если они используют одну и ту же подсеть. Например, если у клиента есть IP-адрес в диапазоне 192.168.255.X, он сможет общаться только с другими клиентами, у которых также есть IP-адреса в этом 192.168.255.Xдиапазоне. Чтобы клиенты в разных подсетях могли общаться друг с другом, вам нужно будет использовать директиву push, как описано выше.

Связанный контент