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