具有动态端点的 IPsec 隧道
为 IPsec 隧道配置动态端点
也可以使用 动态对等 安全网关建立 IPsec 隧道,其中隧道的远端没有静态分配的 IP 地址。由于远程地址未知,并且可能在每次远程主机重新启动时从地址池中提取,因此隧道的建立依赖于将 IKE main
模式与预共享全局密钥或接受任何远程标识值的数字证书结合使用。同时支持基于策略的隧道和链路类型的隧道:
使用共享模式的基于策略的隧道。
链路类型或路由隧道使用专用模式。每个隧道都会从为动态对等方配置的接口池中分配一个服务接口。可以将路由协议配置为在这些服务接口上运行,以便通过在此方案中用作链路的 IPsec 隧道来学习路由。
本节包含以下主题:
- 身份验证过程
- 隐式动态规则
- 反向路由插入
- 配置 IKE 访问配置文件
- 引用服务集中的 IKE 访问配置文件
- 配置接口标识符
- 默认 IKE 和 IPsec 提议
- 在服务接口之间分配端点 IPsec 隧道
身份验证过程
远程(动态对等方)发起与本地(瞻博网络)路由器的协商。本地路由器使用默认 IKE 和 IPsec 策略来匹配远程对等方发送的提议,以协商安全关联 (SA) 值。隐式提议包含本地路由器期望从所有动态对等方获得的所有受支持转换的列表。
如果使用预共享密钥身份验证,则预共享密钥对于服务集是全局的。为对等方查找预共享密钥时,本地路由器会将对等方的源地址与该服务集中任何显式配置的预共享密钥进行匹配。如果未找到匹配项,本地路由器将使用全局预共享密钥进行身份验证。
身份验证的第 2 阶段根据配置的代理身份列表匹配对等方发送的受保护主机和网络的 代理身份 。接受的代理身份用于创建用于加密流量的动态规则。您可以通过将语句包含在 allowed-proxy-pair
IKE 访问配置文件中来配置代理身份。如果没有条目匹配,协商将被拒绝。
如果未配置该 allowed-proxy-pair
语句,将应用默认值 ANY(0.0.0.0/0)-ANY
,并且本地路由器将接受对等方发送的任何代理身份。接受 IPv4 和 IPv6 地址,但必须手动配置所有 IPv6 地址。
第 2 阶段协商成功完成后,路由器将构建动态规则,并使用接受的代理身份将反向路由插入路由表。
隐式动态规则
与动态对等方成功协商后,密钥管理进程 (kmd) 将为接受的第 2 阶段代理创建动态规则,并将其应用于本地 AS 或多服务 PIC。源地址和目标地址由接受的代理指定。此规则用于对定向到第 2 阶段代理身份中的某个终端主机的流量进行加密。
动态规则包含一个 ipsec-inside-interface
值,该值是分配给动态隧道的接口名称。 source-address
从代理 ID 中接受和 destination-address
值。该 match-direction
值适用于 input
下一跃点样式的服务集。
您未配置此规则;它由密钥管理进程 (KMD) 创建。
静态隧道的规则查找不受动态规则存在的影响;按配置的顺序执行。当收到服务集的数据包时,静态规则总是首先匹配。
静态规则的规则匹配失败后,将匹配动态规则。
动态对等方检测 (DPD) hello 消息的响应方式与静态对等方相同。不支持从动态对等方发起 DPD hello 消息。
反向路由插入
对于受远程隧道端点保护的网络和主机,静态路由会自动插入到路由表中。这些受保护的主机和网络称为远程代理身份。
每个路由都是基于对等方发送的远程代理网络和掩码创建的,并在第 1 阶段和第 2 阶段协商成功后插入到相关路由表中。
每个静态反向路由的路由优先级为 1。此值是必需的,以避免与路由协议进程 (rpd) 可能添加的类似路由发生冲突。
如果接受的远程代理地址是默认值 (0.0.0.0/0
),则不会添加任何路由。在这种情况下,您可以通过 IPsec 隧道运行路由协议来学习路由,并为要通过此隧道保护的流量添加静态路由。
对于下一跃点样式的服务集,反向路由包括指向语 inside-service-interface
句指定位置的下一跃点。
要在其中插入这些路由的路由表取决于位置的 inside-service-interface
列出位置。如果 VPN 路由和转发 (VRF) 实例中存在这些接口,则路由会添加到相应的 VRF 表中;否则,路由将添加到 inet.0
。
仅对通向动态对等方的隧道才会发生反向路由插入。这些路由仅会为下一跃点样式的服务集添加。
配置 IKE 访问配置文件
对于所有动态对等方,每个服务集只能配置一个隧道配置文件。配置文件中配置的预共享密钥用于对在该服务集中终止的所有动态对等方进行 IKE 身份验证。或者,您可以包含 ike-policy
语句以引用您使用特定标识值或通配符(选项) any-remote-id
定义的 IKE 策略。您可以在 [edit services ipsec-vpn ike]
层次结构级别配置 IKE 策略。
IKE 隧道配置文件指定完成 IKE 协商所需的所有信息。每个协议在客户端语句中都有自己的语句层次结构,用于配置特定于协议的属性值对,但每个配置文件只允许一个客户端配置。以下是层次结构级别的配置 [edit access]
;有关访问配置文件的详细信息,请参阅 路由设备的 Junos OS 管理库。
[edit access] profile profile-name { client * { ike { allowed-proxy-pair { remote remote-proxy-address local local-proxy-address; } pre-shared-key (ascii-text key-string | hexadecimal key-string); ike-policy policy-name; interface-id <string-value>; ipsec-policy ipsec-policy; } } }
对于动态对等方,Junos OS 支持使用预共享密钥身份验证方法或使用本地数字证书的 IKE 访问配置文件的 IKE 主模式。
在预共享密钥模式下,IP 地址用于识别隧道对等方以获取预共享密钥信息。
client
该值*
(通配符)表示此配置文件中的配置对于在访问此配置文件的服务集中终止的所有动态对等方都有效。在数字证书模式下,IKE 策略定义允许的远程识别值。
IKE 配置文件由以下语句组成:
allowed-proxy-pair
- 在第 2 阶段 IKE 协商期间,远程对等方提供其网络地址 (remote
) 和对等方的网络地址 (local
)。由于通过同一机制对多个动态隧道进行验证,因此此语句必须包含可能的组合列表。如果动态对等方未提供有效的组合,则第 2 阶段 IKE 协商将失败。默认情况下,如果未配置任何值,
remote 0.0.0.0/0 local 0.0.0.0/0
则使用。此配置支持 IPv4 和 IPv6 地址格式,但没有默认的 IPv6 地址。您甚至0::0/0
必须指定 。pre-shared-key
- 用于在 IKE 第 1 阶段协商期间对动态对等方进行身份验证的密钥。通过带外安全机制,两端都知道此密钥。您可以在 或hexadecimal
ascii-text
format 中配置值。它是一个强制性值。ike-policy
—定义与允许的动态对等方对应的远程识别值的策略;可以包含仅在动态端点配置中使用的通配符值any-remote-id
。interface-id
接口标识符,用于派生会话逻辑服务接口信息的必需属性。ipsec-policy
- 定义会话的 IPsec 策略信息的 IPsec 策略的名称。在[edit services ipsec-vpn ipsec policy policy-name]
层次结构级别定义 IPsec 策略。如果未设置策略,则接受动态对等方提出的任何策略。
引用服务集中的 IKE 访问配置文件
要完成配置,您需要引用在[edit access]
层次结构级别上配置的 IKE 访问配置文件。为此,请在[edit services service-set name ipsec-vpn-options]
层次结构级别包含语ike-access-profile
句:
[edit services service-set name] ipsec-vpn-options { local-gateway address; ike-access-profile profile-name; } next-hop-service { inside-service-interface interface-name; outside-service-interface interface-name; }
语 ike-access-profile
句引用的名称必须与您 profile
在 [edit access]
层次结构级别上为 IKE 访问配置的语句同名。每个服务集中只能引用一个访问配置文件。此配置文件仅用于与动态对等方协商 IKE 和 IPsec 安全关联。
服务集中语 inside-service-interface
句引用的所有接口都必须属于同一个 VRF 实例。
配置接口标识符
您可以为一组动态对等方配置接口标识符,用于指定参与动态 IPsec 协商的自适应服务逻辑接口。通过将相同的接口标识符分配给多个逻辑接口,您可以为此目的创建接口池。要配置接口标识符,请在[edit interfaces interface-name unit logical-unit-number dial-options]
层次结构级别包含ipsec-interface-id
语句和dedicated
或 shared
语句:
[edit interfaces interface-name unit logical-unit-number dial-options] ipsec-interface-id identifier; (dedicated | shared);
在语句中 dial-options
指定接口标识符会使此逻辑接口成为语 ipsec-interface-id
句标识的池的一部分。
一次只能指定一个接口标识符。您可以包含语句或l2tp-interface-id
语句,但不能同时包含ipsec-interface-id
两者。
如果配置shared
模式,它将允许跨多个隧道共享一个逻辑接口。该dedicated
语句指定在专用模式下使用逻辑接口,这在配置 IPsec 链路类型隧道时是必需的。指定ipsec-interface-id
值时必须包含dedicated
语句。
默认 IKE 和 IPsec 提议
该软件包含隐式默认 IKE 和 IPsec 提议,以匹配动态对等方发送的提议。这些值如 表 1 所示;如果显示多个值,则第一个值为默认值。
动态端点配置不支持 RSA 证书。
语句名称 |
值 |
---|---|
隐式 IKE 提议 | |
|
|
|
|
|
|
|
|
|
|
隐式 IPsec 提议 | |
|
|
|
|
|
|
|
|
在服务接口之间分配端点 IPsec 隧道
从 Junos OS 16.2R1 版开始,您可以在多个 MS-MIC 之间或 MS-MPC 的多个服务 PIC 之间分配带有动态端点的 IPsec 隧道。您可以通过为每个服务 PIC 的多服务 (ms-) 接口配置下一跃点 IPsec 服务集来配置隧道分布。从 Junos OS 17.1R1 版开始,您还可以通过为每个 AMS 接口配置下一跃点 IPsec 服务集,在 MS-MIC 或 MS-MPC 的聚合多服务 (AMS) 接口之间分配带有动态端点的 IPsec 隧道。
您以后可以将服务 PIC 硬件添加到 MX 系列路由器,并将服务 PIC 包含在隧道分布中,只需添加另一个服务集,而无需更改 IPsec 对等方的配置。
要配置隧道分布,请在配置动态端点 IPsec 隧道时执行以下步骤:
为动态端点 IPsec 隧道使用的每个服务接口或 AMS 接口配置下一跃点 IPsec 服务集(请参阅 引用服务集中的 IKE 访问配置文件)。所有服务集都必须:
使用相同类型的服务接口 — 多服务 (ms-) 接口或 AMS (ams-) 接口。
语句中的
outside-service
接口与其他服务集中的接口位于同一 VPN 路由和转发 (VRF) 实例中。具有相同的
local-gateway
IP 地址。具有相同的
ike-access-profile
名称。
配置接口标识符时(请参阅 配置接口标识符),
ipsec-interface-id identifier
必须配置:仅在服务集语句中
inside-service-set
显示的接口下。对于
dedicated
所有接口,或对于所有接口,都使用shared
with。在一个接口的不超过一个共享单元下。
仅在使用 配置
service-domain inside
的接口下。仅在同一 VRF 中的接口下。
示例:配置动态分配的基于策略的隧道
此示例说明如何配置动态分配的基于策略的隧道,并包含以下部分。
要求
此示例使用以下硬件和软件组件:
-
三台 M Series、MX 系列或 T Series 路由器。
-
Junos OS 9.4 或更高版本。
概述和拓扑
动态端点的 IPsec 策略定义在动态对等安全网关之间的 IPsec 协商期间使用的安全参数(IPsec 提议)组合,其中隧道的远端没有静态分配的 IP 地址。
基于策略的 VPN 是在充当隧道的策略中引用的特定 VPN 隧道的配置。如果远程 VPN 设备是非瞻博网络设备,并且只能通过 VPN 访问远程站点上的一个子网或一个网络,则使用基于策略的 VPN。
此示例说明了 IPsec 动态端点隧道拓扑,如 图 1 所示。
在配置动态分配的隧道之前,请确保您已:
-
连接到安全网关 SG-1 的本地网络 N-1。出口点必须具有瞻博网络路由器,以终止静态和动态对等端点。SG-1 上的隧道终止地址为 10.1.1.1,本地网络地址为 172.16.1.0/24。
-
两个远程对等路由器,从 ISP 池获取地址并运行符合 RFC 的 IKE。远程网络 N-2 的地址为 172.16.2.0/24,连接到安全网关 SG-2,隧道终端地址为 10.2.2.2。远程网络 N-3 的地址为 172.16.3.0/24,连接到安全网关 SG-3,隧道终止地址为 10.3.3.3。
拓扑学

配置
要配置动态分配的基于策略的隧道,请执行以下任务:
此示例中显示的接口类型仅供参考。例如,您可以使用 so-
interfaces 代替 ge-
和 sp-
ms-
而不是 。
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到 SG1 路由器的 [edit] 层次结构级别的 CLI 中。
配置接口
set interfaces ms-0/0/0 unit 0 family inet set interfaces ms-0/0/0 unit 1 family inet set interfaces ms-0/0/0 unit 1 service-domain inside set interfaces ms-0/0/0 unit 1 dial-options ipsec-interface-id demo-ipsec-interface-id set interfaces ms-0/0/0 unit 1 dial-options shared set interfaces ms-0/0/0 unit 2 family inet set interfaces ms-0/0/0 unit 2 service-domain outside
配置访问配置文件
set access profile demo-access-profile client * ike allowed-proxy-pair remote 172.16.2.0/24 local 172.16.1.0/24 set access profile demo-access-profile client * ike allowed-proxy-pair remote 172.16.3.0/24 local 172.16.1.0/24 set access profile demo-access-profile client * ike ascii-text keyfordynamicpeers set access profile demo-access-profile client * ike interface-id demo-ipsec-interface-id
配置服务集
set services service-set demo-service-set next-hop-service inside-service-interface ms-0/0/0.1 set services service-set demo-service-set next-hop-service outside-service-interface ms-0/0/0.2
配置 IPsec 属性
set services ipsec-vpn ipsec proposal ipsec_proposal_demo1 protocol esp set services ipsec-vpn ipsec proposal ipsec_proposal_demo1 authentication-algorithm hmac-sha1-96 set services ipsec-vpn ipsec proposal ipsec_proposal_demo1 encryption-algorithm 3des-cbc set services ipsec-vpn ipsec policy demo2 perfect-forward-secrecy keys group2 set services ipsec-vpn ipsec policy demo2 proposals ipsec_proposal_demo1 set services ipsec-vpn ike proposal ike_proposal_demo1 authentication-method pre-shared-keys set services ipsec-vpn ike proposal ike_proposal_demo1 dh-group group2 set services ipsec-vpn ike policy ike_policy_demo1 version 2 set services ipsec-vpn ike policy ike_policy_demo1 proposals ike_proposal_demo1 set services ipsec-vpn ike policy ike_policy_demo1 pre-shared-key ascii-text keyfordemo1
配置路由实例
set routing-instances demo-vrf instance-type vrf set routing-instances demo-vrf ms-0/0/0.1 set routing-instances demo-vrf ms-0/0/0.2
配置下一跃点 SG1 服务集
分步过程
分步过程
下面的示例要求您在各个配置层级中进行导航。
-
配置接口。
[edit interfaces] user@router1# set interfaces ms-0/0/0 unit 0 family inet user@router1# set interfaces ms-0/0/0 unit 1 family inet user@router1# set interfaces ms-0/0/0 unit 1 service-domain inside user@router1# set interfaces ms-0/0/0 unit 1 dial-options ipsec-interface-id demo-ipsec-interface-id user@router1# set interfaces ms-0/0/0 unit 1 dial-options mode shared user@router1# set interfaces ms-0/0/0 unit 2 family inet user@router1# set interfaces ms-0/0/0 unit 2 service-domain outside
-
配置访问配置文件。
[edit access] user@router1# set profile demo-access-profile client * ike allowed-proxy-pair remote 172.16.2.0/24 local 172.16.1.0/24 user@router1# set profile demo-access-profile client * ike ascii-text keyfordynamicpeers user@router1# set profile demo-access-profile client * ike interface-id demo-ipsec-interface-id
-
配置服务集。
[edit services] user@router1# set service-set demo-service-set next-hop-service inside-service-interface ms-0/0/0.1 user@router1# set service-set demo-service-set next-hop-service outside-service-interface ms-0/0/0.2
-
配置 IPsec 属性。
[edit services ipsec-vpn] user@router1#set ipsec proposal ipsec_proposal_demo1 protocol esp user@router1#set ipsec proposal ipsec_proposal_demo1 authentication-algorithm hmac-sha1-96 user@router1#set ipsec proposal ipsec_proposal_demo1 encryption-algorithm 3des-cbc user@router1#set ipsec policy demo2 perfect-forward-secrecy keys group2 user@router1#set ipsec policy demo2 proposals ipsec_proposal_demo1 user@router1#set ike proposal ike_proposal_demo1 authentication-method pre-shared-keys user@router1#set ike proposal ike_proposal_demo1 dh-group group2 user@router1#set ike policy ike_policy_demo1 version 2 user@router1#set ike policy ike_policy_demo1 proposals ike_proposal_demo1 user@router1#set ike policy ike_policy_demo1 pre-shared-key ascii-text keyfordemo1
-
配置路由实例。
[edit routing-instances] user@router1# set demo-vrf instance-type vrf user@router1# set demo-vrf ms-0/0/0.1 user@router1# set demo-vrf ms-0/0/0.2
结果
在路由器 1 的配置模式下,输入show interfaces
show access
、和show services
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
interfaces { ms-0/0/0 { unit 0 { family inet; } unit 1 { family inet; service-domain inside; dial-options { ipsec-interface-id demo-ipsec-interface-id; mode shared; } } unit 2 { family inet; service-domain outside; } } } access { profile demo-access-profile client * { ike { allowed-proxy-pair { remote 172.16.2.0/24 local 172.16.1.0/24; #Set for Network 2 connected to Network 1 remote 172.16.3.0/24 local 172.16.1.0/24; #Set for Network 3 connected to Network 1 } pre-shared-key { ascii-text keyfordynamicpeers; } interface-id demo-ipsec-interface-id; } } } services { service-set demo-service-set { next-hop-service { inside-service-interface ms-0/0/0.1; outside-service-interface ms-0/0/0.2; } ipsec-vpn-options { local-gateway 10.1.1.1; ike-access-profile demo-access-profile; } } ipsec-vpn { ipsec { proposal ipsec_proposal_demo1 { protocol esp; authentication-algorithm hmac-sha1-96; encryption-algorithm 3des-cbc; } policy demo2 { perfect-forward-secrecy { keys group2; } proposals ipsec_proposal_demo1; } } ike { proposal ike_proposal_demo1 { authentication-method pre-shared-keys; dh-group group2; } policy ike_policy_demo1 { version 2; proposals ike_proposal_demo1; pre-shared-key ascii-text "$ABC123"; ## SECRET-DATA } } } } routing-instances { demo-vrf { instance-type vrf; interface ms-0/0/0.1; interface ms-0/0/0.2; } }
验证
验证是否已创建使用基于策略的隧道的下一跃点 SG1 服务集
目的
验证是否已创建使用基于策略的隧道的下一跃点 SG1 服务集。
行动
在作模式下,输入 show route
命令。
user@router1> show route demo-vrf.inet.0: .... # Routing instance 172.11.0.0/24 *[Static/1].. > via ms-0/0/0.1 172.12.0.0/24 *[Static/1].. > via ms-0/0/0.1
在作模式下,进入 show services ipsec-vpn ipsec security-associations detail
user@router1>show services ipsec-vpn ipsec security-associations detail rule: junos-dynamic-rule-0 term: term-0 local-gateway-address : 10.1.1.1 #Tunnel termination address on SG-1 remote-gateway-address: 10.2.2.2 #Tunnel termination address on SG-2 source-address : 0.0.0.0/0 destination-address : 0.0.0.0/0 ipsec-inside-interface: ms-0/0/0.1 term: term-1 local-gateway-address : 10.1.1.1 #Tunnel termination address on SG-1 remote-gateway-address: 10.3.3.3 #Tunnel termination address on SG-3 source-address : 0.0.0.0/0 destination-address : 0.0.0.0/0 IPsec Properties ipsec-inside-interface: ms-0/0/0.1 match-direction: input
意义
show services ipsec-vpn ipsec security-associations detail
命令输出显示您配置的属性。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。