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 также должна работать).

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

2 ответа2

4

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

--route [ip to bypass] 255.255.255.0 net_gateway

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

1

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

172.16.* Переводится в 172.16.0.0 с маской сети 255.255.0.0:

route add 172.16.0.0 mask 255.255.0.0 if index

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .