本文档介绍如何使用双WAN链路将Microsoft Azure虚拟广域网(vWAN)站点到站点VPN连接配置为安全防火墙。
建议掌握下列主题的相关知识:
确保这些组件最初均在Azure环境中配置:
本文档中的信息基于以下软件和硬件版本:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
当分支机构FTD有两个面向Internet服务提供商(ISP)的外部接口时,每个接口都可以冗余主动连接到Azure vWAN,因此每个ISP链路都得以利用。Azure vWAN为每个站点链接创建两个IPsec隧道(一个到Azure Hub Instance0,一个到Instance1),因此每个ISP接口终止两个隧道。在两条ISP链路上,这将导致四条IPsec隧道在FTD上终止。
Azure实例在主用/主用模式下运行以实现负载均衡和冗余,因此FTD通过所有四个IPsec隧道的等价多路径(ECMP)配置反映这一点。使用自定义自动私有IP寻址(APIPA)地址,在四个隧道的每个隧道上建立具有不同专用自治系统编号(ASN)的外部边界网关协议(eBGP)邻居关系。这将启用BGP多路径功能,为每个Azure Hub Site Link实例对提供多个冗余路径。
该图显示了本文所述的配置拓扑。双直接互联网访问(DIA)链路变体从FTD上的两个外部接口来源两个Azure隧道。
双直接Internet接入连接拓扑
1)在Azure搜索字段中搜索vWAN,点击虚拟WAN以进入现有的Azure vWAN Hub。接下来,导航到连接>中心,然后点击现有的Azure vWAN中心。
虚拟广域网的搜索查询
选择现有的虚拟WAN集线器
2)单击Connectivity > VPN(Site to site),然后单击+ Create new VPN site
创建新的虚拟WAN站点
注意:覆盖图像中各个字段中的值的空白是用于发布本文档。
3)在必填字段中输入值。完成后,单击Next:Links >向前移动。
常规VPN站点配置设置
4)输入所需的链路信息。链路BGP地址和链路ASN是内部隧道BGP第3层目标地址以及在站点到站点隧道上形成邻居关系的分支端上的BGP AS编号。链路BGP地址是已配置的集线器私有地址空间子网外部的非重叠子网地址(/32),Azure将该子网安装为作为BGP邻居到达的/32路由。在FTD的后续部分中创建了两个环回接口,以代表每个双站点链路的链路BGP地址。链路IP地址/完全限定域名(FQDN)是流向分支站点的流量的外部报头第3层目标IP地址,这是调配IP安全(IPsec)/Internet密钥交换版本2(IKEv2)连接所必需的。完成后单击下一步:审阅+创建>。
注意:如果您使用范围从169.254.21.0到169.254.22.255的地址作为隧道地址,请确保查看特定Azure文档:选择BGP APIPA地址。
配置站点链路参数
5)确认信息符合预期后,单击Create。
查看和创建新的VPN站点
6)VPN站点的部署完成后,导航回vWAN Hub配置。
虚拟广域网站点部署进度
虚拟广域网的搜索查询
Azure需要对169.254.0.0/16 IPv4地址空间内的自动私有IP寻址(APIPA)地址进行额外配置。
1)通过Connectivity > Hubs进入现有中心。
导航至虚拟WAN集线器连接
2)再次导航到Connectivity > VPN(Site to site),然后点击Gateway Configuration超链接。
Access Gateway Configuration超链接
3)侧面板显示为编辑VPN网关。在VPN网关实例0和VPN网关实例1下,输入两个唯一的自定义BGP IP地址,这两个地址充当通过IPsec隧道的BGP邻居关系的每个实例的邻居IP。如果选择在此拓扑中使用APIPA编址,则必须执行此操作。在标记为对等体地址的字段中,输入要用于从FTD访问Azure实例的BGP邻居IP。如果正在使用APIPA寻址,Azure不会尝试使用FTD建立BGP,因此FTD会尝试使用Azure在每个隧道上建立eBGP邻居。
总数为2个链路x2个隐式隧道;每个ISP链路一条通向Instance0和Instance1的隧道;总计为四个IPsec隧道,其中Azure和两个FTD ISP接口之间具有BGP邻居关系。
这些地址必须是唯一的,在本演示中,分配给每个隧道的/30子网中的第二个和最后一个主机地址将在FTD上配置以供使用。配置后,单击Edit。
注意:如果您使用范围从169.254.21.0到169.254.22.255的地址作为隧道地址,请确保查看特定Azure文档:选择BGP APIPA地址
编辑VPN网关自定义BGP IP地址
注意:正如Azure所指出的,更新此内容可能需要30分钟或更长时间。
1)在Azure vWAN Hub配置中的Connectivity > VPN(Site to site)页面上,单击X以清除Hub关联:已连接过滤以查看断开的VPN站点。
清除集线器关联连接过滤器
2)选中最近调配的VPN站点旁边的复选框,然后点击连接VPN站点。
连接VPN站点操作
3)配置所需的预共享密钥(PSK),并通过点击Custom切换选项配置所需的IPsec参数。在后续步骤中,这些IPSec参数必须与FMC/FTD配置匹配。要保存,请点击连接。
注意:FTD/FMC版本6.7删除了Diffie-Hellman(DH)组24支持。
配置预共享密钥和IPsec参数
4)确认VPN站点调配已成功完成。
确认VPN站点调配状态
1)刷新VPN(站点到站点)页,并确认连接调配状态列指示其成功,这使您可以单击省略号,并允许您单击编辑VPN连接到此中心下拉菜单项。
验证连接成功并编辑VPN连接
2)单击以配置Link Connection 1(ISP1),然后再次输入适用的Pre-Shared Key(PSK),并确保单击Custom BGP IP Address旁边的Enable开关,并映射将成为FTD生成的BGP IP报头的内部隧道目标IP地址字段值的/30子网的剩余主机地址。
实质上,ISP1 VTI Tunnel1到Azure Instance0的地址分配为169.254.21.1/30,终止于FTD的第二个ISP1 VTI Tunnel2为实例1分配了IP 169.254.22.1/30。
单击“下一步”:Link Connection 2>进入ISP 2链路参数。
注意:您可能需要重新输入您的PSK,并重新点击Azure下拉菜单中的已调整的PFS组选项。
配置Link Connection One自定义BGP设置
3)重复上述步骤,并应用Link Connection 2(ISP2 link)下的适用参数。 完成后,点击创建。
配置链路连接两个自定义BGP设置
4)Azure UI中的通知显示更新任务开始。
Azure更新任务开始通知
1)在Azure中的同一VPN(站点到站点)页中,选择已配置VPN站点最右侧的省略号图标,然后选择下载VPN站点配置文件选项。
下载VPN站点配置文件选项
2)单击Click here to download超链接。
下载VPN站点配置文件
1)打开已下载的配置文件,并出现类似的JavaScript Object Notation(JSON)输出。输出显示文件中写入的两个对象之一。此信息为FTD配置提供了有用的环境。
注意:为了增强焦点,多个无关对象和密钥/值对被修剪以简洁。
注意:下载文件中的ISP-Link-1 JSON对象顺序颠倒。代码输出中的省略号表示ISP-2-Link对象及其适用的配置。
...
{
"configurationVersion": {
"LastUpdatedTime": "2026-09-25T20:20:26.7658453Z",
"Version": "15221e61-4e2c-42f5-b9e4-96d674f5a9a3"
},
"vpnSiteConfiguration": {
"Name": "Dual-ISP-Site",
"IPAddress": "FTD_ISP1_WAN_IP",
"BgpSetting": {
"Asn": 65532,
"BgpPeeringAddress": "169.254.21.100",
"PeerWeight": 32768
},
"LinkName": "ISP-1-Link"
},
"vpnSiteConnections": [
{
"gatewayConfiguration": {
"IpAddresses": {
"Instance0": "Inst0IP",
"Instance1": "Inst1IP"
},
"BgpSetting": {
"Asn": 65515,
"CustomBgpPeeringAddresses": {
"Instance0": [
"169.254.21.22",
"169.254.21.2"
],
"Instance1": [
"169.254.22.22",
"169.254.22.2"
]
},
}
},
"connectionConfiguration": {
"IsBgpEnabled": true,
"PSK": "PSK",
"IPsecParameters": {
"IpsecEncryption": "GCMAES256",
"IpsecIntegrity": "GCMAES256",
"IkeEncryption": "GCMAES256",
"IkeIntegrity": "SHA384",
"PfsGroup": "None",
"DhGroup": "DHGroup14",
"SALifeTimeInSeconds": 27000
}
}
}
]
}
]
完成这些步骤时,请保留此输出作为参考。
FTD BGP进程下的BGP邻居配置条目(在FTD的后续步骤中配置)需要代表Azure站点链路配置中对应链路BGP IP地址的稳定源。
1)导航到Devices > Device Management。
导航到Firepower管理中心的设备管理
注意:本实验使用云交付的防火墙管理中心(cdFMC);但是,内部FMC的步骤保持不变。
2)点击要配置为具有双ISP连接的分支机构/站点VPN设备的FTD。
选择用于配置部署的FTD
3)单击Add Interfaces下拉菜单,然后单击Loopback Interface。
向设备添加环回接口
4)输入环回接口的Name,确保选中Enabled复选框,并输入Loopback ID。如果需要,请输入Description。完成后,单击IPv4选项卡。
配置环回接口信息和IPv4地址
5)输入环回IP地址作为之前步骤中为Azure中的ISP1站点链路配置的链路BGP IP地址。此IP用作ISP1上FTD和Azure实例之间配置的邻居关系上的BGP更新源。
注意:您可以引用之前在vpnSiteConfiguration.BgpSetting.BgpPeeringAddress for ISP1下下载的VPN配置JSON中定义的值
输入环回IPv4地址并点击OK
6)在此序列中为ISP2 BGP环回配置重复子步骤c-e。
创建第一个和第二个环回接口
7)保存配置。
保存更改
1)要在FMC和FTD VPN拓扑上配置匹配的IKEv2/IPsec配置,请导航到Manage > Objects,在导航菜单中滚动到VPN,然后展开子菜单。通过选择菜单中的IKEv2 Policy并点击Add IKEv2 Policy来配置IKEv2第1阶段策略。
创建新的IKEv2策略对象
2)输入新IKEv2策略的名称,选择Priority和/或Lifetime。确保有关完整性、加密、伪随机函数(PRF)和DH组的隧道两端策略匹配。选择要与Azure配置匹配的算法/组元素,然后单击Add。
注意:您可以在下载的配置文件中(位于vpnSiteConnections[0].connectionConfiguration.IPsecParameters)引用这些精确值
创建IKEv2策略
3)完成配置后,点击保存。
保存IKEv2策略
4)在IKEv2 IPsec Proposal子菜单中配置阶段2/IPsec参数,然后单击Add IKEv2 IPsec Proposal。
创建IKEv2 IPsec提议
5)命名IKEv2 IPsec Proposal并确保相同的设置保持一致。完成后,单击Save。
命名IKEv2 IPsec建议并点击Save
1)导航到Devices > Device Management。
导航到Firepower管理中心的设备管理
2)点击要配置为具有双ISP连接的分支机构/站点VPN设备的FTD。
选择用于配置部署的FTD
3)单击Add Interfaces下拉菜单,然后选择Virtual Tunnel Interface(VTI)。
创建虚拟通道接口
4)输入隧道信息。确保选中Enabled复选框,输入Name(如果需要,还应输入Description),并选择可选的Security Zone。调整正确的面向ISP的父接口,以在VTI下配置VTI,并为该VTI的内部隧道IPsec连接配置适当的IP地址。完成后单击OK。
提示:参考图表显示有关使用FTD进行Azure双WAN连接的潜在VPN配置的更多情景。
创建虚拟隧道接口设置
5)在父ISP1和ISP2接口上配置3个附加VTI。
配置其他虚拟隧道接口
f)确保单击Save以保存更改。
保存更改
1)导航到管理>安全连接>站点到站点VPN和SD-WAN。
管理站点到站点VPN和SD-WAN连接
2)单击初始输出中间的初始VPN Topology configuration超链接,或单击Add按钮。
添加新的VPN拓扑配置
3)为通向Azure实例0的ISP1链路上的第一个隧道输入Topology name。单击Route-Based VPN单选按钮,然后单击Peer to Peer VPN拓扑类型。完成后,单击Create。
配置基于路由的VPN拓扑类型
4)首先,选择Node A设备,并在Device下拉列表下表示从Azure终止VPN隧道的FTD。在向导从设备获取可用的VTI后,从下拉菜单中选择适合您配置的父接口和实例的VTI。从Node B Device菜单中,选择Azure端作为VPN拓扑配置中的Extranet节点。请确保为节点B配置友好名称,并确保输入适当的Endpoint IP Address。完成后,单击IKE选项卡实施第1阶段隧道配置。
注意:可以在vpnSiteConnections[0].gatewayConfiguration.IpAddresses.Instance0和vpnSiteConnections[0].gatewayConfiguration.IpAddresses.Instance1的下载配置文件中引用Instance Endpoint IP Address值
定义节点A和节点B拓扑终端
5)在导航菜单中滚动到IKEv2 Settings,然后单击铅笔图标将策略编辑到最近配置的IKEv2 Policy。然后,从身份验证类型下拉菜单中选择预共享手动密钥选项,并输入以前在Azure中配置的PSK。完成后,单击IPsec选项卡以配置第2阶段IPsec隧道参数。
注意:您可以在下载的配置文件中(位于vpnSiteConnections[0].connectionConfiguration.IPsecParameters.PSK)引用预共享密钥
编辑IKEv2设置和身份验证密钥
6)点击IKEv2 IPsec Proposal Transform Set旁的铅笔图标,并选择之前配置的IPsec策略参数。确保更改Lifetime Duration值以匹配Azure vWAN VPN设置。确认配置信息后,单击Save。
注意:您可以在下载的配置文件中的Lifetime值引用vpnSiteConnections[0].connectionConfiguration.IPsecParameters.SALifeTimeInSeconds
配置IPsec建议生命周期持续时间
7)重复步骤5中的上述子步骤,创建跨ISP1实例1、ISP2实例0和ISP2实例1的其他Azure隧道。
创建其他站点到站点VPN拓扑
进入system support diagnostic-cli,键入en,然后点击enter(只读CLI)。
1)检查IKE第1阶段隧道连接。
`show crypto isakmp sa | i UP|READY`
2)检查IPsec第2阶段的连通性。
show crypto ipsec sa | i int|current_peer|pkts
注意:当查看IPsec安全关联(SA)输出和pkts decaps和pkts decrypt计数器正在递增,但pkts encaps和pkts encrypt未递增时,此场景中预期会出现这种情况。Azure正在尝试通过中心专用IP空间地址形成BGP邻居关系,如果邻居终端使用APIPA BGP编址,则Azure不会启动协商。使用自定义APIPA时,连接到Azure的设备有责任启动BGP协商。
3)检查第2层的连通性。
show arp
4)检查IP路由。
show route
5)在ISP1和ISP2接口上执行捕获。
capture isp1 interface ISP1 match udp any any eq 500
capture isp1 interface ISP1 match udp any any eq 4500
capture isp1 interface ISP1 match esp any any
...
show cap
show cap isp1
show cap isp2
6)Azure验证 — 导航到vWAN Hub > Connectivity。> VPN Sites > 选择配置的站点。
Azure链接连接验证
1)导航到Manage > Devices > Device Management,然后点击FTD。
导航到Firepower管理中心的设备管理
选择用于配置部署的FTD
2)单击Routing选项卡,然后选择ECMP。
等价多路径配置设置
3)单击Add。
添加等价多路径配置设置
4)为ECMP区域命名,点击可用的VTI接口,然后点击添加按钮将其应用到所选接口列,然后单击确定。
为等价多路径区域选择接口
5)确保保存更改。
保存更改
1)在Routing > General Settings > BGP下启用FTD上的BGP进程。选中Enable BGP复选框,并输入之前在第1阶段第1d中配置的AS编号。导航到Routing > BGP > IPv4。
在General Settings下启用边界网关协议进程
2)确保选中BGP进程的Enable IPv4复选框,然后单击Neighbor以在Azure中配置BGP邻居。
启用IPv4边界网关协议进程
3)单击+ Add。
添加新的边界网关协议邻居
4)输入ISP1 Instance0 BGP对等信息,参考来自vWAN集线器的注意BGP AS,然后将其输入为Neighbor Remote AS,如果需要,还可以添加Description。单击 Advanced。
注意:确保选择BGP Update Source以引用映射到Azure中配置的ISP1链路的FTD上VTI接口的环回。
配置边界网关协议对等信息
5)在FTD上的BGP Neighbor配置的Advanced菜单中,您可以将Time To Live(TTL)跳数从eBGP默认的1跳更改为变量数。Azure BGP终结点未通过隧道直接连接到Azure基础设施,并且与终结点的跃点数往往比1的默认eBGP TTL允许的跃点数多。Click OK.
高级边界网关协议邻居设置
6)重复子步骤3-5,为ISP1实例1配置Tunnel2。
7)重复子步骤3-5两次,以配置ISP2 Instance0/Instance1 BGP对等信息。
注意:确保选择引用映射到Azure中配置的ISP2链路的FTD上VTI接口的环回的对齐BGP Update Source。
ISP2实例1 BGP邻居配置
ISP 2实例2 BGP邻居配置
结束BGP邻居结果配置
保存更改
默认情况下,BGP在路由表中仅安装一个最佳路径,即使ECMP在通往Azure的所有VTI之间都进行了配置。必须单独启用BGP多路径,以便同时安装和使用BGP多路径。
1)导航到Routing > BGP > IPv4,单击General选项卡,然后单击Forward Packets Over Multiple Paths旁的铅笔图标。
在多路径上转发数据包设置
2)将Number of Paths字段的默认值从1更改为4。单击OK。
更改多路径转发数据包设置
3)确保Save并部署更改。
部署完成后,请确认FTD BGP进程在各自隧道上与两个Azure实例建立邻居邻接关系,并且路由已获取、接口已打开,并且协议连接已返回连接表中。
导航至system support diagnostic-cliFTD CLI上,如第2阶段第7步所述。
1)部署后,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#
ftd# show bgp summary
BGP router identifier 169.254.22.100, local AS number 65532
BGP table version is 29, main routing table version 29
2 network entries using 400 bytes of memory
8 path entries using 640 bytes of memory
2 multipath network entries and 8 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 1272 total bytes of memory
BGP activity 4/2 prefixes, 16/8 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
169.254.21.2 4 65515 20 17 29 0 0 00:13:14 2
169.254.22.2 4 65515 20 20 29 0 0 00:13:22 2
169.254.21.22 4 65515 19 21 29 0 0 00:13:19 2
169.254.22.22 4 65515 20 19 29 0 0 00:13:17 2
ftd#
2)检查从Azure接收的路由是否显示为多路径路由。
ftd# show bgp
BGP table version is 29, local router ID is 169.254.22.100
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 169.254.21.2 0 65515 i
*m 169.254.22.22 0 65515 i
*m 169.254.21.22 0 65515 i
*> 169.254.22.2 0 65515 i
*m 172.27.0.0 169.254.21.2 0 65515 i
*m 169.254.22.22 0 65515 i
*m 169.254.21.22 0 65515 i
*> 169.254.22.2 0 65515 i
3)检查路由表填充。
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 172.31.3.33 to network 0.0.0.0
B 10.2.0.0 255.255.0.0 [20/0] via 169.254.22.22, 00:20:53
[20/0] via 169.254.22.2, 00:20:53
[20/0] via 169.254.21.22, 00:20:53
[20/0] via 169.254.21.2, 00:20:53
B 172.27.0.0 255.255.0.0 [20/0] via 169.254.22.22, 00:20:53
[20/0] via 169.254.22.2, 00:20:53
[20/0] via 169.254.21.22, 00:20:53
[20/0] via 169.254.21.2, 00:20:53
4)检查BGP会话的连接表。
ftd# show conn all | include TCP|179
TCP ISP2-Inst-0 169.254.21.22:179 bgpLo-ISP2 169.254.22.100:1603, idle 0:00:10, bytes 1517, flags UIO
TCP ISP2-Inst-1 169.254.22.22:179 bgpLo-ISP2 169.254.22.100:41883, idle 0:00:01, bytes 1486, flags UIO
TCP ISP1-Inst-1 169.254.22.2:179 bgpLo-ISP1 169.254.21.100:3804, idle 0:00:53, bytes 1467, flags UIO
TCP ISP1-Inst-0 169.254.21.2:179 bgpLo-ISP1 169.254.21.100:61287, idle 0:00:04, bytes 1331, flags UIO
TCP bgpLo-ISP1 169.254.22.2:179 NP Identity Ifc 169.254.21.100:3804, idle 0:00:53, bytes 751, flags UI
TCP bgpLo-ISP2 169.254.21.22:179 NP Identity Ifc 169.254.22.100:1603, idle 0:00:10, bytes 844, flags UI
TCP bgpLo-ISP2 169.254.22.22:179 NP Identity Ifc 169.254.22.100:41883, idle 0:00:01, bytes 751, flags UI
TCP bgpLo-ISP1 169.254.21.2:179 NP Identity Ifc 169.254.21.100:61287, idle 0:00:04, bytes 639, flags UI
| 版本 | 发布日期 | 备注 |
|---|---|---|
1.0 |
15-Oct-2026
|
初始版本 |