Маршрутизация всего кроме определенного диапазона IP через туннель OpenVPN


2

Я работал с моим сервером OpenVPN некоторое время, и у меня довольно интересная проблема. Мне нужно перенаправить весь клиентский трафик через туннель, за исключением пары IP-адресов, которые должны быть разрешены локально. То, как я это делаю, это отправка этих маршрутов с сервера:

Директивы сервера PUSH

 push "redirect-gateway def1 bypass-dhcp" 
 push "dhcp-option DNS 8.8.8.8" 
 push "dhcp-option DNS 8.8.4.4"

Я вижу, что перевод на эти маршруты Windows:

Маршруты Windows встречаются

Wed Aug 31 15:14:35 2011 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4,route 10.8.0.1,topology net30,ping 5,ping-restart 30,ifconfig 10.8.0.6 10.8.0.5'
Wed Aug 31 15:14:35 2011 ROUTE default_gateway=192.168.1.254

Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 199.[*.*.*] MASK 255.255.255.255 192.168.1.254
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 0.0.0.0 MASK 128.0.0.0 10.8.0.5
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 128.0.0.0 MASK 128.0.0.0 10.8.0.5
Wed Aug 31 15:14:40 2011 C:\WINDOWS\system32\route.exe ADD 10.8.0.1 MASK 255.255.255.255 10.8.0.5

Я скрыл IP-адрес своего сервера, начиная с 199, в целях безопасности.

Что я собрал

Я предполагаю, что 0.0.0.0 - это своего рода код для «всего», поэтому я не уверен, как заставить это работать, но общая идея заключается в том, что мне нужен конкретный диапазон IP ( 172.16.*), который можно разрешить на ЛОКАЛЬНАЯ СЕТЬ (клиента) означает, что он не проходит через VPN-туннель, и клиент может подключиться к нему 172.16.*локально.

Это возможно? Маршруты могут быть выполнены через командную строку, "push" сервера или параметры конфигурации клиента. Любой способ заставить это работать, все еще направляя другой трафик, действительно подойдет.

Дополнительная информация

У меня сервер работает на 64-битном Debian, а клиент работает на Windows 7 (хотя Vista должна работать так же).

Конфигурации клиент / сервер могут быть предоставлены при необходимости .


Технически, 0.0.0.0 означает «все» только при добавлении с маской 0.0.0.0, или «/ 0». В вашем случае вместо этого добавляются два более специфических маршрута (0.0.0.0/1 и 128.0.0.0/1); конечный результат одинаков (все адреса совпадают), но добавленные маршруты имеют приоритет над маршрутом «по умолчанию» 0.0.0.0/0. Вы все еще правы, хотя.
— Гравитация

Ответы:


4

Похоже, что после некоторых дополнительных исследований, основанных на ответе Гравити, более конкретные маршруты будут иметь приоритет, после того, как PUSH сервера я могу просто выполнить

--route [ip to bypass] 255.255.255.0 net_gateway

net_gateway, как определено в директиве route на странице руководства openvpn, преобразуется в существующий шлюз ip по умолчанию


Вы можете сделать толчок для этого маршрута тоже: push "route [ip to bypass] 255.255.255.0 net_gateway".
— Людовик Куты

1

Просто добавьте другой маршрут, и он будет иметь приоритет над менее конкретными:

172.16.*переводится с 172.16.0.0помощью маски сети 255.255.0.0:

Маршрут добавить 172.16.0.0 маску 255.255.0.0 если индекс

где index - это индекс сетевого интерфейса вашей локальной сети, как показано route print. Например, 0x3или подобное.


Но вы должны знать интерфейс. Это также означает, что сервер VPN не проталкивает сам маршрут.
— Людовик Куты
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.