本文档介绍如何配置Microsoft Azure虚拟广域网(vWAN)站点到站点VPN与思科安全防火墙的连接。
建议掌握下列主题的相关知识:
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
Microsoft Azure Virtual WAN(vWAN)将多个Azure网络、安全和路由功能结合到单个集线器结构之后。每个vWAN Hub可以托管Microsoft管理的站点到站点VPN网关,远程设备(如安全防火墙)使用该网关访问Azure,而无需构建和维护网关基础设施。
与传统双端点IPsec VPN不同,Azure vWAN Site-to-Site VPN网关部署为一对主动 — 主动实例(Instance0和Instance1),每个实例都有自己的公共IP地址和边界网关协议(BGP)对等地址。为了利用这两个实例实现冗余和额外吞吐量,分支FTD会为每个实例建立一个IP安全(IPsec)隧道,并使用BGP(而不是仅使用静态路由)在实例可用或不可用时动态学习和撤消路由。然后,FTD上的等价多路径(ECMP)路由和BGP多路径将两个隧道同时保持活动状态,而不是将一个隧道视为被动备用。
本文档将设计分为三个阶段:首先创建Azure vWAN Hub和VPN Site对象,然后下载生成的连接参数,然后使用这些相同的参数在FTD上配置匹配的虚拟隧道接口(VTI)、互联网密钥交换版本2(IKEv2)/IPsec策略、静态路由、ECMP和BGP对等(通过FMC)。
该图显示了本文所述的配置拓扑。单个直接互联网访问(DIA)变体从FTD上的一个外部接口来源两个Azure隧道。

按顺序完成这三个阶段。在第1阶段和第2阶段中创建的Azure端对象会生成对等体IP地址、BGP自治系统(AS)编号和预共享密钥,然后在第3阶段将其应用到FTD。
注意:本文档中的配置步骤是高级配置步骤,提供了将FTD连接到Azure vWAN的必要步骤。请参阅Microsoft的Azure vWAN文档,了解配置的重要性。请参阅什么是Azure虚拟WAN?和更多文档。
a)在Azure搜索框中搜索vWAN,然后点击虚拟WAN。

b)单击+ Create。

c)为新的vWAN实例输入Name,单击Review + create,然后在向导内的Review + Create页面上单击Create。

注意:覆盖图像中各个字段中的值的空白是用于发布本文档。
d)点击转至资源。

a)导航到连接>集线器,然后单击+新集线器。

b)请参阅Azure文档以获取有关进一步配置的更多上下文。请确保分配的Hub私有地址空间不会与任何内部地址空间重叠。配置Name、Virtual Hub和Hub routing preference。单击“下一步”:站点到站点>。

c)有关所显示字段的信息,请进一步参阅Microsoft Azure vWAN Hub文档。切换Yes以创建站点到站点(VPN网关)。 分配的默认BGP自治系统(AS)编号为65515,由Internet工程任务组(IETF)在定义专用使用AS预留的请求注释(RFC)6996中分配。
注意:记录BGP AS以在FMC上执行后续配置步骤。

单击Review + create,或单击Next:指向站点>以配置可选设置。
d)验证摘要后,单击Create。
注意:按照Azure状态,创建中心需要30分钟。

e)部署完成后,搜索原始vWAN资源名称。要进一步缩小搜索范围,请单击Resources。


a)通过Connectivity > Hub进入已创建的集线器,然后单击在之前步骤中创建的集线器。

b)单击Connectivity > VPN(Site to site),然后单击+ Create new VPN site。

c)在必填字段中输入值。完成后,单击Next:Links >向前移动。

d)输入所需的链路信息。“链路BGP地址”和“链路ASN”字段反映了在分支站点上的内部隧道BGP第3层目标地址和BGP AS编号,与Azure的邻居关系是通过站点到站点隧道形成的。链路BGP地址是位于先前配置的集线器私有地址空间子网之外的非重叠子网地址(/32),Azure将其安装为作为/32路由以作为BGP邻居到达。链路IP地址/FQDN是流向分支站点的流量的外部报头第3层目标IP地址,这是调配IPsec/IKEv2连接所必需的。
注意:如果您使用范围从169.254.21.0到169.254.22.255的地址作为隧道地址,请确保查看How to configure BGP for Azure VPN Gateway以满足特定要求。

e)确认设置正确后,单击Create。

f)VPN站点的部署完成后,导航回vWAN Hub配置。


a)通过Connectivity > Hub进入已创建的集线器,然后单击在之前步骤中创建的集线器。

b)再次导航到Connectivity > VPN(Site to site),然后点击X以清除Hub Association:已连接过滤以查看断开连接的站点。

c)选中之前配置的VPN站点旁边的框,然后单击Connect VPN sites,该功能在选择站点后变为启用状态。

d)出现“连接站点”侧抽屉面板。输入预共享密钥(PSK)并配置所需的第1阶段IKEv2和第2阶段IPsec设置。从IPsec下拉列表中选择Custom时,值会自动填充;请注意这些值,因为它们必须在FTD上匹配。您还必须选择是否需要Perfect Forward Secrecy(PFS)。由于这是基于路由的隧道,请相应地配置设置。完成后,单击Connect保存配置。
注意:有关详细信息,请参阅默认与自定义IPsec策略Azure vWAN。

e)显示表明网关正在更新的信息以及预计的完成时间。

a)更新网关时,可以下载VPN配置。


创建VPN站点并下载其连接参数(对等体地址、BGP AS编号和PSK)后,在第3阶段使用相同的值在FTD上配置匹配元素。
a)从Azure打开下载的VPN配置文件。它看起来与所示的压缩输出类似,并提供有用的信息:
注意:为了增强焦点,多个无关对象和密钥/值对被修剪以简洁。
[
{
"configurationVersion": {
"LastUpdatedTime": "",
"Version": "",
"BgpSetting": {
"Asn": 65500,
"BgpPeeringAddress": "10.50.1.2"
},
"LinkName": "single-dia-link"
},
"vpnSiteConnections": [
{
"hubConfiguration": {
"AddressSpace": "10.2.0.0/16",
"Region": ""
},
"gatewayConfiguration": {
"IpAddresses": {
"Instance0": "57.x.x.x",
"Instance1": "52.x.x.x"
},
"BgpSetting": {
"Asn": 65515,
"BgpPeeringAddresses": {
"Instance0": "10.2.0.12",
"Instance1": "10.2.0.13"
}
}
},
"connectionConfiguration": {
"IsBgpEnabled": true,
"PSK": "",
"IPsecParameters": {
"IpsecEncryption": "GCMAES256",
"IpsecIntegrity": "GCMAES256",
"IkeEncryption": "GCMAES256",
"IkeIntegrity": "SHA384",
"PfsGroup": "None",
"DhGroup": "DHGroup14",
"SADataSizeInKilobytes": 0,
"SALifeTimeInSeconds": 27000
}
}
}
]
}
]
以后配置的每个VTI都需要稳定的隧道源,因此首先配置环回接口并在两个VTI之间共享。
a)导航到Devices > Device Management。
注意:本实验使用云交付的防火墙管理中心(cdFMC);但是,内部FMC的步骤保持不变。
b)选择要配置为分支/站点VPN设备的FTD。
c)单击Add Interfaces下拉菜单,然后单击Loopback Interface。
d)必要时为环回接口指定Name、Loopback ID和Description。单击IPv4。
e)确保IP Type定义为Use Static IP,输入Link BGP Address,如第2阶段第1d步中所配置。您可以参考之前在下载的VPN配置JSON中定义的值 vpnSiteConfiguration.BgpSetting.BgpPeeringAddress
注意:使用/32掩码并在RFC 1918 address-space中定义地址。
f)点击保存
a)要在FMC上配置要应用于FTD VPN拓扑的匹配IKEv2/IPsec配置,请导航到Manage > Objects,在左侧菜单上向下滚动到VPN,然后展开子菜单。在菜单中选择IKEv2 Policy,然后单击Add IKEv2 Policy,配置IKEv2 Phase 1 Policy。
b)输入新IKEv2策略的名称,选择Priority和/或Lifetime。确保与Integrity、Encryption、PRF和Diffie-Hellman(DH)组相关的隧道两端策略匹配。选择要与Azure配置匹配的对齐的算法/组元素,然后单击Add。
注意:您可以在下载的配置文件中(位于vpnSiteConnections[0].connectionConfiguration.IPsecParameters)引用这些精确值
c)完成配置后,单击Save。
d)在IKEv2 IPsec Proposal子菜单中配置Phase 2/IPsec参数,然后单击Add IKEv2 IPsec Proposal。
e)为IKEv2 IPsec Proposal命名,并确保相同的设置保持一致。完成后,单击Save。
注意:您可以在下载的配置文件中引用这些值,网址为: vpnSiteConnections[0].connectionConfiguration.IPsecParameters
a)导航到管理>安全连接>站点到站点VPN和SD-WAN。
b)点击中间的初始VPN拓扑配置超链接,或者点击添加。
c)为通向Azure Instance0的第一个隧道输入Topology name,单击Route-Based VPN单选按钮,然后单击Peer to Peer VPN拓扑类型。完成后,单击Create。
d)对于Node A,点击Device下拉列表,并选择部署配置的托管FTD/FTD HA-Pair的名称。对于节点B,因为它是在Azure vWAN实例上终止的拓扑中的连接的远程端,所以从Device下拉列表中选择Extranet。接下来,对于Node A,点击虚拟隧道接口(VTI)下拉列表旁的+图标。
e)为第一个VTI命名Name,并确保其为Enabled。将新的或现有的Security Zone分配给VTI,分配Tunnel Source,并从相邻下拉列表中选择IP address。
f)下一步,确保选中Bordering IP(IP unnumbered)单选按钮,然后从右侧下拉列表选择相同的loopback。完成后,单击OK。
g)配置并应用VTI后,手动填充隧道源IP地址(如果从DHCP填充父接口地址,则自动填充),并确保配置了Node B设备名称以及Instance Endpoint IP Address。完成后,单击IKE选项卡。
注意:您可以在以下位置下载的配置文件中引用Instance0终端IP地址值: vpnSiteConnections[0].gatewayConfiguration.IpAddresses.Instance0
h)向下滚动到IKEv2 Settings,并确保Authentication Type设置为Pre-shared Manual Key,然后输入之前步骤中在Azure中配置的PSK。通过点击铅笔图标以编辑可用的IKEv2策略,配置IKEv2第1阶段策略。
注意:注意:您可以在以下位置下载的配置文件中引用预共享密钥: vpnSiteConnections[0].connectionConfiguration.IPsecParameters.PSK
i)添加最初在步骤3中配置的IKEv2第1阶段策略。
j)选择IPsec选项卡。
k)单击Transform Sets下的IKEv2 IPsec Proposal,方法是点击铅笔图标。
l)单击trash bin图标以删除默认AES-GCM转换集,并添加在第3步的后半部分创建的自定义Azure_IPsec转换集/IKEv2 IPsec提议。单击OK。
m)向下滚动并输入27000作为与Azure参数匹配的生存期。启用PFS组(如果适用)。Click Save.
注意:您可以在以下位置下载的配置文件中引用生命周期值: vpnSiteConnections[0].connectionConfiguration.IPsecParameters.SALifeTimeInSeconds
n)部署更改。
o)部署完成后,在Tunnel Status Distribution下选中Manage > Secure Connections > Site-to-Site VPN & SD-WAN;成功的连接显示为绿色(向上)。
部署第一个隧道后,在配置第二个隧道以实现冗余之前,请确认它已在IKE/IPsec和BGP层成功建立。
a)通过SSH进入FTD,然后输入system support diagnostic-cli、键入en,然后按Enter,因为只读FTD CLI上没有密码。
> system support diagnostic-cli
Attaching to Diagnostic CLI ... Press 'Ctrl+a then d' to detach.
Type help or '?' for a list of available commands.
ftd> en
Password:
ftd#
b)检查阶段1/阶段2隧道状态。
ftd# show crypto isakmp sa | i Status:
Session-id:1, Status:UP-ACTIVE, IKE count:1, CHILD count:1
ftd#
ftd#
ftd# show crypto ipsec sa | i State|spi
current outbound spi: 5E83023A
current inbound spi : 62BC7C9E
spi: 0x62BC7C9E (0x00010B45)
SA State: active
spi: 0x5E83023A (0x0002029B)
SA State: active
ftd#
c)执行捕获以检查隧道中从Azure接收的BGP传输控制协议(TCP)数据包,以及来自Instance-0Azure隧道的公共IP的外部捕获上的Network Address Translation - Traversal(NAT-T)User Datagram Protocol(UDP)port 4500/UDP port 500 traffic。
ftd# capture out-instance-0 trace interface Outside match ip host any
ftd# capture tun-vti-0 interface Azure-VTI-0 trace match ip host any
ftd# show cap tun-vti-0
3 packets captured
1: 03:23:43.510074 10.2.0.12.62061 > 10.50.1.2.179: SWE 2114095813:2114095813(0) win 64240
2: 03:23:44.511204 10.2.0.12.62061 > 10.50.1.2.179: SWE 2114095813:2114095813(0) win 64240
3: 03:23:46.512211 10.2.0.12.62061 > 10.50.1.2.179: S 2114095813:2114095813(0) win 64240
ftd#
确认与Instance0的连接后,为Instance1重复相同的VTI和VPN拓扑配置,以使两个Azure网关实例均可访问。
a)创建从同一环回借用的第二个VTI(Azure-VTI-1)(第3b-f步)。
b)配置第二个实例VPN拓扑(步骤4 g-n)。
注意:您可以在以下位置下载的配置文件中引用Instance1 Endpoint IP Address值: vpnSiteConnections[0].gatewayConfiguration.IpAddresses.Instance1
c)部署配置更改,并检查隧道状态。
d)签入Azure,Instance0和Instance1都获得Connected。
当两个隧道都处于活动状态时,FTD需要ECMP路由,以便流量可以同时使用两个路径,而不是将第二个隧道视为被动备用。
a)导航到Manage > Devices > Device Management,然后选择FTD,将VPN配置为Azure。
b)单击Routing选项卡并选择ECMP。
c)单击Add以创建新的ECMP区域。
d)通过在Available Interfaces面板中点击两个VTI,然后点击Add将VTI应用于指定的ECMP区域,切换以突出显示VTI。
e)确认设置正确后,单击Save。
BGP需要路由才能成功连接到邻居,并且由于终端不是直接连接的,因此默认情况下不会填充任何路由。ECMP允许您使用相同度量(管理距离)配置到相同目标的静态路由,以便两个路由都安装在路由信息库(RIB)中并同时使用。
a)导航到Manage > Devices > Device Management,然后选择适用的FTD设备。
b)导航到路由>静态路由。
c)单击+ Add Route。
d)通过创建指向Instance0 VTI的第一条路由,为两个实例IP地址添加路由,并通过单击“可用网络”旁边的+为其添加目标网络对象。然后,从列表中单击网络对象,然后单击“添加”按钮,将其添加为静态路由的目标。请确保选择Instance0 IP并将其设置为Gateway。完成后,单击OK。
注意:这些静态路由目标网络值位于下vpnSiteConnections[0].BgpSetting.BgpPeeringAddresses.Instance0载的配vpnSiteConnections[0].BgpSetting.BgpPeeringAddresses.Instance1置文件下方,并位于下载的配置文件中。
e)重复步骤c-d,通过Instance1 VTI添加第二条静态路由。确保单击Save保存更改。
静态路由仅到达BGP对等地址;BGP本身仍然必须启用和对,以便Azure和FTD能够动态地相互交换路由到更大的网络,或从其他更大的网络交换路由。
a)在Routing > General Settings > BGP下,在FTD上启用BGP进程65500。选中Enable BGP复选框,并输入之前在第2阶段第1步中配置的AS编号。导航到Routing > BGP > IPv4旁。
b)通过选中相邻的Enable IPv4复选框,为进程/AS 65500启用IPv4 BGP路由,然后单击Neighbor以配置BGP邻居。
c)单击+ Add。
d)输入Instance0 BGP对等信息,从vWAN集线器引用指定的BGP AS,然后将其输入为Neighbor Remote AS,如果需要,请添加说明。单击 Advanced。
重要信息:确保更改BGP更新源以引用FTD上两个VTI接口的环回父接口。
e)在FTD上的BGP Neighbor配置的Advanced菜单中,您可以将TTL跳数从eBGP默认的1跳更改为变量数。Azure BGP终结点未通过隧道直接连接到Azure基础设施,并且与终结点的跃点数往往比1的默认eBGP TTL允许的跃点数多。
f)对Azure Instance1 BGP对等体重复相同的步骤。
g)确保在完成后保存更改。
默认情况下,BGP在路由表中只安装一个最佳路径,即使ECMP使两个静态路由都可用。必须单独启用BGP多路径,以便同时安装和使用BGP多路径。
a)导航到Routing > BGP > IPv4,单击General选项卡,然后单击Forward Packets Over Multiple Paths旁的铅笔图标。
b)将Number of Paths字段的默认值从1更改为2。
c)确保Save并部署更改。
部署完成后,确认BGP与两个Azure实例形成邻接关系。随后,使用第3阶段第5步中建立的相同诊断CLI访问,确认路由通过两个隧道获知,流量使用两个VTI。
在FTD CLI上导航至system support diagnostic-cli。
a)部署后,BGP邻居将进入工作状态并接收前缀。
> system support diagnostic-cli
Attaching to Diagnostic CLI ... Press 'Ctrl+a then d' to detach.
Type help or '?' for a list of available commands.
ftd#
ftd# show bgp summary
BGP router identifier 10.50.1.2, local AS number 65500
BGP table version is 5, main routing table version 5
2 network entries using 400 bytes of memory
4 path entries using 320 bytes of memory
2 multipath network entries and 4 multipath paths
1/1 BGP path/bestpath attribute entries using 208 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 952 total bytes of memory
BGP activity 2/0 prefixes, 4/0 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.2.0.12 4 65515 5 3 5 0 0 00:01:02 2
10.2.0.13 4 65515 3 4 5 0 0 00:00:55 2
ftd#
b)检查从Azure接收的路由是否显示为多路径路由。
ftd# show bgp
BGP table version is 7, local router ID is 10.50.1.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*m 10.2.0.0/16 10.2.0.12 0 65515 i
*> 10.2.0.13 0 65515 i
*m 172.27.0.0 10.2.0.12 0 65515 i
*> 10.2.0.13 0 65515 i
ftd#
c)检查VTI数据包计数。
ftd# show interface Tunnel1 | i packets
118 packets input, 31385 bytes
134 packets output, 8780 bytes
0 packets dropped
ftd# show interface Tunnel2 | i packets
127 packets input, 33629 bytes
230 packets output, 15119 bytes
0 packets dropped
ftd#
d)确认BGP邻居的静态路由。
ftd# show running-config route
route Azure-VTI-0 10.2.0.12 255.255.255.255 10.2.0.12 1
route Azure-VTI-1 10.2.0.13 255.255.255.255 10.2.0.13 1
ftd#
e)确认ECMP区域。
ftd# show zone
Zone: Azure-VTI-ECMP-Zone ecmp
Security-level: 0
Zone member(s): 2
Azure-VTI-1 Tunnel2
Azure-VTI-0 Tunnel1
ftd#
f)确认BGP配置。
ftd# show running-config router bgp
router bgp 65500
bgp log-neighbor-changes
bgp router-id vrf auto-assign
address-family ipv4 unicast
neighbor 10.2.0.12 remote-as 65515
neighbor 10.2.0.12 description Instance0 Azure BGP Peering
neighbor 10.2.0.12 ebgp-multihop 50
neighbor 10.2.0.12 transport path-mtu-discovery disable
neighbor 10.2.0.12 update-source bgpVPNBranchLo
neighbor 10.2.0.12 activate
neighbor 10.2.0.13 remote-as 65515
neighbor 10.2.0.13 description Instance1 Azure BGP Peering
neighbor 10.2.0.13 ebgp-multihop 50
neighbor 10.2.0.13 transport path-mtu-discovery disable
neighbor 10.2.0.13 update-source bgpVPNBranchLo
neighbor 10.2.0.13 activate
no auto-summary
no synchronization
exit-address-family
ftd#
g)确认路由表。
ftd# show route bgp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, V - VPN
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, + - replicated route
SI - Static InterVRF, BI - BGP InterVRF
Gateway of last resort is 10.0.0.1 to network 0.0.0.0
B 10.2.0.0 255.255.0.0 [20/0] via 10.2.0.13, 15:50:50
[20/0] via 10.2.0.12, 15:50:50
B 172.27.0.0 255.255.0.0 [20/0] via 10.2.0.13, 15:50:50
[20/0] via 10.2.0.12, 15:50:50
本文档中的基本配置假设分支机构FTD有一个外部接口和一个ISP。这些考虑因素扩展了设计。
如果您需要影响Azure或FTD首选哪两个隧道作为主隧道,而不是通过ECMP和BGP多路径等量共享负载,请将本地AS编号提前一次或多次在BGP邻居上作为辅助隧道处理。在标准BGP最佳路径选择过程中,具有更长预置AS路径的邻居将取消优先顺序,而无需从ECMP区域完全删除该邻居。
show crypto isakmp sa和show crypto ipsec sa,如第3阶段第5步所示。 update-source:验证BGP已设置为环回接口,而不是VTI本身,并且已配置为具有足够高的值,可以到达Azure BGP对等地址,该地址未直接连接到FTDebgp-multihop。| 版本 | 发布日期 | 备注 |
|---|---|---|
1.0 |
07-Oct-2026
|
初始版本 |