剧本

剧本

我有一个从前任那里继承下来的现有网络设置。目前有两个站点,每个站点都有一个Linksys RV042运行固件的 VPN 路由器1.3.12.19-tm。它们目前设置了网关到网关 VPN。一个站点有一个静态 IP,另一个站点有一个动态 IP,主机名设置在无ip.com

我的公司正在考虑建立另一个站点,所以我购买了另一台 RV042,但这款路由器是思科品牌,并且运行的是最新固件。我原以为我可以很容易地用这款路由器从我们的总部(动态 IP)配置到新站点的 VPN。然而,当我在任一设备上设置新的 VPN 隧道时,它仍然处于等待连接远程网关显示的 IP 地址0.0.0.0而不是远程 IP 地址。有效和无效 VPN 概述

另一个 VPN 隧道仍在运行,我没有发现新路由器有任何明显的配置错误。似乎路由器没有解析动态 DNS 地址,因此没有给我连接 VPN 的选项。

网关到网关 VPN 是否可以与两端的动态 IP 地址一起使用?

固件版本不兼容吗?

我是不是遗漏了什么?

答案1

简短的回答:是,否,是。

(两端的动态都很好。版本兼容,你错过了一些东西。我在设置这些东西时损失了很多头发,很容易错过一些东西!!)

我在不同位置设置了几个(10 个?)RV042,大多数没有静态 IP。[删除]我对这些设备的稳定性感到非常惊讶。[/删除] VPN 有点棘手——以至于我编写了一个脚本来为我设置隧道。如果您错过一个设置,它可能会导致隧道无法工作,并且您可能会盯着它好几天而看不到未正确检查的微小缺失字符或框。

动态到动态的技巧:

首先设置动态 DNS 并确保它正常工作。我使用的是 DynDNS。(在固件 1.3.x 中转到设置 - DDNS,在 4.x 中转到设置 - 动态 DNS)

以下是重要部分:

单击 VPN。单击网关到网关。为隧道提供任意名称 - 不要使用空格(早期版本会因空格而失败,我不知道 4 是否会这样)确保接口是正常工作的 WAN 接口。在远程网关安全类型中选择动态 IP+域名 (FQDN) 身份验证,页面将刷新。在域名中输入您为此端配置的 DNS 名称 IP 地址和子网掩码将从您正在运行的配置中自动填写。不要更改它们在远程组设置下,选择“仅 IP”(应该已经根据上面的动态选择进行了选择),然后在下一个下拉菜单中从“IP 地址”到“通过 DNS 解析的 IP”在“通过 DNS 解析的 IP”右侧的框中输入远程动态 DNS 名称

现在开始设置。我不知道所有可用的选项是否真的有用,但我知道你最好有它们确切地两端都一样。以下是我发现有效的设置:

密钥模式 [带预共享密钥的 IKE]
第一阶段 DH 组 [组 1]
第一阶段加密 [DES]
第一阶段认证 [MD5]
Phase1 SA 生命周期 [28800]
完美前向保密 [ ] -- 我无法让 PFS 在两个 rv042 之间工作
第一阶段加密[Phase3DES]
第一阶段认证 [MD5]
Phase2 SA 生命周期 [3600] 秒
预共享密钥:[yourSecretKeyGoesHere]

先进的:

[X] 攻击模式
[ ] 压缩
[X] 保持活动状态
[ ] AH 哈希算法 [任意]
[ ] NetBIOS 广播
[ ] NAT 穿越
[X] 死对等检测 (DPD) 间隔 [10] 秒

只要您尝试在各个位置之间发送数据包,隧道就会建立。祝您好运!

杰里米

剧本

您可能需要修改它以满足您的需求。它需要 192.168.xx 子网,并且您需要在 Windows 上,IE 可以正常工作,并且 cscript 可以正常运行。脚本假定固件版本 < 4.x——根本没有在 4.x 上测试过。

' 我从未费心让此脚本接受参数。只需编辑以下值即可。
' 在此功能生效之前,你需要在两个路由器上设置 DDNS(并进行测试)并且
' 您需要在端口 8080 上通过端口 SSL 启用远程管理。将其
如果你不需要它,就退出(你也不应该,因为在
'隧道设置完成后,您可以使用 LAN IP 访问管理界面。

End_A_DNS = “隧道一端.selfip.com”
End_A_Subnet = “16” '这是第三个八位字节 - 192.168.X.0

End_B_DNS = “隧道另一端.selfip.com”
End_B_Subnet =“24”

秘密 = “将你的密钥放在这里”

' where_am_i 是您所在的子网。您通常无法访问
' 您所在路由器的 WAN IP 地址,因此脚本只使用此地址
' 如果你正在创建到你所在的网络的隧道。此脚本
' 将在互联网上的两个 rv042 之间创建隧道,前提是两者
其中所有都已正确设置 DDNS 和通过端口 8080 进行远程访问。

其中_am_i =“24”  


如果 end_a_subnet = where_am_i 那么
    router_address = "http://192.168." & where_am_i & ".1" ' 假设 .1 是路由器。
别的
    router_address = “https://” & End_a_dns & “:8080”
万一

'设置隧道的前半部分
SetTunnelEnd router_address、end_a_dns、end_b_dns、end_a_subnet、end_b_subnet、secret

如果 end_b_subnet = where_am_i 那么
    router_address = "http://192.168." & where_am_i & ".1" ' 假设 .1 是路由器。
别的
    router_address = “https://” & End_b_dns & “:8080”
万一

'设置隧道的后半部分
SetTunnelEnd router_address、end_b_dns、end_a_dns、end_b_subnet、end_a_subnet、secret



子设置隧道结束(routerhttps,a_dns,b_dns,a_net,b_net,secret)

    设置 IE = CreateObject(“InternetExplorer.Application”)
    IE.导航路由器https & "/gateway_to_gateway.htm"
    IE.可见 = True

    执行直到 IE.readyState = 4
    环形

    隧道名称 = a_net & "-" & 左(a_dns,6) & " 到 " & b_net & "-" & 左(b_dns,6)

    IE.document.forms("formgtg").tunnelName.value = 隧道名称
    IE.document.forms("formgtg").typeLSW(1).value = 4
    IE.Navigate(“javascript:falseSubmit(document.formgtg,'11');”)

    执行直到 IE.readyState = 4
    环形

    IE.document.forms("formgtg").L_textFQDN(1).值= a_dns

    IE.document.forms("formgtg").typeRSW(1).value = 2
    IE.Navigate(“javascript:falseSubmit(document.formgtg,'12');”)

    执行直到 IE.readyState = 4
    环形

    IE.document.forms("formgtg").radioDnsResolve(1).value = 1
    IE.Navigate(“javascript:showDnsResolve();”)

    IE.document.forms("formgtg").ipRSW1(1).value=b_dns

    wscript.睡眠(500)

    IE.Navigate("javascript:IPDNSCheck(document.formgtg.ipRSW1[1]);")

    wscript.睡眠(1000)

    IE.document.forms("formgtg").textFQDN(1).value = b_dns

    IE.document.forms("formgtg").ipRSG1(1).value="192"
    IE.document.forms("formgtg").ipRSG2(1).value="168"
    IE.document.forms("formgtg").ipRSG3(1).value=b_net
    IE.document.forms("formgtg").ipRSG4(1).value="0"

    IE.document.forms("formgtg").PFSp(1).checked = 0
    IE.Navigate(“javascript:falseSubmit(document.formgtg,'13');”)

    执行直到 IE.readyState = 4
    环形

    IE.document.forms("formgtg").select5(1).value = 2

    IE.document.forms("formgtg").keyPreshared2(1).value = secret

    IE.Navigate(“javascript:opAdvanced(document.formgtg.advancedStatus,document.formgtg);”)

    执行直到 IE.readyState = 4
    环形

    IE.document.forms("formgtg").aggressiveMode.checked = 1
    IE.document.forms("formgtg").keepAlive.checked = 1
    IE.document.forms("formgtg").biosBC.checked = 0
    IE.document.forms("formgtg").DPD.checked = 1
    IE.document.forms("formgtg").DPDInterval.value = 10

    wscript.睡眠(500)

    IE.document.forms("formgtg").提交()

    wscript.睡眠(500)

    执行直到 IE.readyState = 4
    环形

    退出IE浏览器
    设置 IE = 无

    wscript.echo "隧道创建自" & 隧道名称

结束子

脚注,2012 年 8 月 10 日:“我对这些设备的稳定性感到非常惊讶。”

正如我所说,我使用了 10 个这样的设备。大约 4 年后,有些会开始出现“问题”。问题严重到我不再部署它们了。我需要能够可靠地使用 4 年以上的设备。这 10 个设备中有 3 个完全无法使用,我预计其他 7 个也会开始出现故障。

相关内容