Я работал с моим сервером 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 должна работать так же).
Конфигурации клиент / сервер могут быть предоставлены при необходимости .