如何让Azure Point-to-Site VPN一直在线

上篇文章中说到如何一步一步的去搭建P2S的VPN连接,但是我们在使用的时候会遇到一个问题,就是这种连接不是那么稳定,也是就是说经常断开连接,那这对于一个无人值守的环境中可以说是一个 大的问题。(在此多谢@gs_h兄弟提醒)

那如何能够让电脑在断开连接后自动连接呢?首先想到的最靠谱的方法就是执行某些脚本,我试图查找一些关于Azure VPN 客户端的一些命令代码,得到的只有这一个命令:

rasdial "VPN Name"

在客户端执行后,你会发现此命令不支持Azure的VPN,通过上一篇文章我们也了解到,P2S VPN是使用的Azure的VPN客户端,而不是windows系统自带的。所以我们要找到VPN客户端的连接信息,然后我们可以在系统中创建自定义VPN。

那接下来看看Azure的VPN是怎么样工作的?

当我们连接VPN的时候,会弹出VPN客户端,我们点击属性

点击查看日志

你会得到像这样的日志

******************************************************************
操作系统: Windows NT 6.3
拨号程序版本: 7.2.9600.16384
连接名: demonet
所有用户/单一用户: 单一用户
起始日期/时间: 2015/5/23, 6:32:02
******************************************************************
模块名, 时间, 日志 ID, 日志项目名, 其他信息
对于连接类型, 0=拨号, 1=VPN, 2=拨号上的 VPN
******************************************************************
[cmdial32] 6:32:02 22 清除日志事件
[cmdial32] 6:32:06 04 预连接事件 连接类型 = 1
[cmdial32] 6:32:06 06 预隧道事件 用户名 = ClientCertificateName 域 = DUNSetting = bb2085f8-ce38-4f42-982b-aab7fb623cc9 Tunnel 设备名 = 隧道地址 = azuregateway-bb2085f8-ce38-4f42-982b-aab7fb623cc9-236d763b2d68.cloudapp.net
[cmdial32] 6:32:09 07 连接事件
[cmdial32] 6:32:09 08 自定义操作 Dll 操作类型 = Connect Actions 描述 = to update your routing table 操作路径 = C:\Users\itadmin\AppData\Roaming\Microsoft\Network\Connections\Cm\BB2085F8-CE38-4F42-982B-AAB7FB623CC9\CMROUTE.DLL 返回值 = 0x0
[CMMON32] 6:32:15 23 外部断开
[cmdial32] 6:32:15 13 断开事件 呼叫进程 = C:\Windows\Explorer.EXE
******************************************************************
操作系统: Windows NT 6.3
拨号程序版本: 7.2.9600.16384
连接名: demonet
所有用户/单一用户: 单一用户
起始日期/时间: 2015/5/23, 6:32:18
******************************************************************
模块名, 时间, 日志 ID, 日志项目名, 其他信息
对于连接类型, 0=拨号, 1=VPN, 2=拨号上的 VPN
******************************************************************
[cmdial32] 6:32:18 03 预初始化事件 呼叫进程 = C:\Windows\system32\rasautou.exe

这是我们注意有这么一个路径

打开改路径,你会发现VPN客户端的所有配置文件都在这里面

这里面有个拨号电话簿的PBX文件,是以Guid命名的。我们双击打开,然后点击属性。你会发现一个熟悉的界面-VPN属性界面。

接下来,我们就在系统中创建一个新的VPN连接,然后做如下配置。

复制上面地址,到Internet地址框中

选项框中,勾选如图所示的内容

配置如图所示的设置,选择客户端证书。

在网络中,取消勾选“在远程网络上使用默认网关”

做好以上配置后,我们再运行上面的命令

rasdial "Azure VPN"

到这里我们还需要注意一个问题,那就是本地计算机并没有到Azure 虚拟网络的路由地址,当发送到Azure 的路由信息不知道如何去走。

P2S VPN自带的客户端程序能根据Microsoft Azure端的配置信息自动更新路由表,以便客户机能自动连接到Microsoft Azure的虚拟网络。在%AppData%\Microsoft\Network\Connections\Cm\ {Guid} 下有一个routes.txt的文件,用来提供自动路由信息。

而手动构建的P2S VPN连接并不会替我们自动更新路由表,所以需要用以下的PowerShell脚本进行刷新。

#############################################################
# Adds IP routes to Azure VPN through the Point-To-Site VPN
#############################################################
# Define your Azure Subnets
$ips = @("10.0.1.0", "10.0.2.0","10.0.3.0") 【此处可去掉:虚拟网络的子网,用逗号分开】
# Point-To-Site IP address range
# should be the first 4 octets of the ip address ‘172.16.0.14‘ == ‘172.16.0.
$azurePptpRange = "172.16.0." 注释:客户端连接VPN分配IP地址的子网
# Find the current new DHCP assigned IP address from Azure
$azureIpAddress = ipconfig | findstr $azurePptpRange
# If Azure hasn‘t given us one yet, exit and let u know
if (!$azureIpAddress){
"You do not currently have an IP address in your Azure subnet."
exit 1
}
$azureIpAddress = $azureIpAddress.Split(": ")
$azureIpAddress = $azureIpAddress[$azureIpAddress.Length-1]
$azureIpAddress = $azureIpAddress.Trim()
# Delete any previous configured routes for these ip ranges
foreach($ip in $ips) {
$routeExists = route print | findstr $ip
if($routeExists) {
"Deleting route to Azure: " + $ip
route delete $ip
}
}
# Add our new routes to Azure Virtual Network
foreach($subnet in $ips) {
"Adding route to Azure: " + $subnet
echo "route add $ip MASK 255.255.255.0 $azureIpAddress" 
route add $subnet MASK 255.255.255.0 $azureIpAddress
}

执行后使用route print 命令查看路由表就可查看路由信息是否增加上了,记得如果你在Azure中更新了路由信息,请在此脚本中手动更新,

然后运行以下命令,添加计划任务,确保每当VPN自动重拨成功时(20225事件),就会自动执行该脚本,刷新路由表。

schtasks /create /F /TN "VPN Connection Update" /TR "Powershell.exe -NonInteractive -command C:\UpdateRouteTableForAzureVPN.ps1" /SC ONEVENT /EC Application /MO "*[System[(Level=4 or Level=0) and (EventID=20225)]] and *[EventData[Data=‘Azure VPN‘]] "

最后写个BAT脚本

rasdial "Azure VPN"
ipconfig /flushdns

把该脚本添加的任务序列中,设置成每5分钟执行一次。

这样一个自动拨号的VPN连接就完成了。这种方式可在一定程度上完善P2S VPN不稳定的弊端,但是对于一些敏捷的应用环境比如数据传输,并不建议使用该方式。

时间: 2024-10-23 13:02:27

如何让Azure Point-to-Site VPN一直在线的相关文章

连接到Windows Azure Point to Site VPN

Windows Azure支持两种模式的VPN接入: Site to Site,接入端需要有固定的公网IP地址,用于连接局域网和Windows Azure的虚拟网络. Point to Site,客户端使用Windows SSTP拨号,只支持Windows操作系统.用于开发测试和运维. 通过Point to Site VPN连接到Windows Azure,可以有效的提升系统安全——减少对外开放的端口数量,只保留应用程序的对外服务端口而关闭系统维护端口.例如:一个Web Server,只开放80

Microsoft Azure Point to Site VPN替代方案

Microsoft Azure提供了Point to Site VPN,但有时候这并不能满足我们的需求,例如:Point to Site VPN是SSTP VPN,只能支持Window客户端拨入,而且客户端总数不能超过200个.这里我们介绍一个Point to Site VPN的替代方案——OpenVPN,不限制客户端拨入数量,并且支持Window,MAC OSX,Linux,Android和IOS!当然还是免费的.(此方案仅支持Microsoft Azure中国版,在Microsoft Azu

Azure配置Site To Site VPN

本文介绍如何在在Azure和本地数据中心之间建立Site To Site VPN 1. 添加本地网络 点击新建 点击添加本地网络 输入名称,IP地址并点击 输入起始IP,现在CIDR,并点击√ .完成本地网络的添加 2. 注册DNS服务器 点击新建 点击网络服务-虚拟网络-注册DNS服务器 输入名称,DNS IP地址,点击注册DNS服务器 3. 配置Site to Site 选择对应的虚拟网络,并点击 点击配置 选择DNS服务器,勾选连接本地网络,选择连接到的本地网络,然后点击保存 4. 创建网

构建混合云:配置Azure site to site VPN连接(1)

用户在构建自己云计算解决方案的时候,往往会选择私有云或者公有云来做部署,但在一些场景下,用户更加希望通过混合云的方案来满足自己的业务需求.Azure为混合云的部署提供多种不同的连接方案,最常见的是P2S VPN,S2S VPN, ExpressRoute(专线路由),本文来介绍一下S2S VPN的实际配置案例. 在开始正式配置之前,你需要一些最基本的条件需要满足,才能配置你的Site to Site VPN连接: 确保你的VPN设备在微软的VPN设备兼容列表里面,设备兼容列表请参照: https

Azure 国际篇_新旧版本迁移_Site to Site VPN(一)

从所周知,Azure 国际版有分传统(Classic)和资源管理(ARM)版本的区别,默认条件下这两个版本的虚拟机是不能通信的.所以要把虚拟机迁移到新的管理平台ARM上,目前我想到的方法有两种:1.传统(Classic)和资源管理(ARM)版本的虚拟网络的VPN打通:2.把传统(Classic)的虚拟机的VHD文件拷贝到资源管理(ARM).两种方法各有优缺点,方法一不用移动虚拟机down town时间短,但是两个版本的虚拟机通过vpn连接可能不稳定.方法二迁移虚拟机文件到新平台ARM,这是长久使

使用Openswan接入Windows Azure Site to Site VPN

Winodows Azure的Site to Site VPN支持主流的防火墙和路由器等接入设备.具体型号和系列请参考下表: VENDOR DEVICE FAMILY MINIMUM OS VERSION STATIC ROUTING DYNAMIC ROUTING Allied Telesis AR Series VPN Routers 2.9.2 Coming soon Not compatible Barracuda Networks, Inc. Barracuda NG Firewall

Azure Site to Site VPN 配置手册

目录 1    Azure Site to Site VPN配置前的准备    1 1.1    设备兼容    1 1.2    网络要求和注意事项    1 2    配置Azure site to site VPN网络    1 2.1    添加虚拟网络:    1 3    配置VPN网关    1 3.1    创建网关    1 3.2    配置vpn网关    1 3.3    VPN硬件设备配置    1 3.4    获取共享密钥    1 4    硬件设备VPN配置  

ASDM through site to site VPN

网上大部分文档只提到两个地方需要设置: 在6.2版本确实可以.但在7.2版本上只有用vpn client或anyconnect client连上的客户端可以用ASDM连上ASA,而通过site to site VPN的还不行.7.2上还有一个地方要设置:

Azure使用RRAS配置Site to Site VPN(1)

许多公司考虑到云端数据中心的安全和稳定性,混合云现在成为了很多公司的选择.不同地区间网络的连接,传统多以专线连接方式来解决.这种解决方案通常投资巨大,因为专线线路的价格与带宽及距离成正比,也就是当距离越远,带宽越大,则费用就越贵.Microsoft Azure的网络架构特别针对企业私有云和混合云进行了设计. 微软针对现在企业混合云的需求推出了多种模式,Point to site(点到站点)Site to site (站点到站点),Express Route(专线模式)等方式,客户可以根据自己的选

构建混合云:配置Azure site to site VPN连接(2)

那么接下来的部分,我们开始正式配置S2S VPN: 首先配置本地网络,什么是本地网络呢?如果你在Azure上配置,本地网络意思是你自己的数据中心需要和Azure进行连接的网络段,而不是Azure上的网络段,这一点一定要清楚,不能配错,进入Azure管理界面,单击新建->网络服务虚拟网络->添加本地网络: 添加本地网络名称,VPN设备的IP地址请找你的网络管理员获得,如果暂时不知道也可以略过: 设置本地的网络地址空间,需要注意的是: 本地设置的地址空间必须和你实际数据中心的完全一致(针对设备Ci