具有动态端点的 IPsec 隧道
为 IPsec 隧道配置动态端点
IPsec 隧道也可以使用 动态对等 安全网关建立,其中隧道的远程端没有静态分配的 IP 地址。由于远程地址未知,并且每次远程主机重新启动时都可能从地址池中提取远程地址,因此建立隧道依赖于使用 IKE main 模式以及接受任何远程标识值的预共享全局密钥或数字证书。支持基于策略的隧道和链路类型隧道:
基于策略的隧道使用共享模式。
链路类型或路由隧道使用专用模式。每个隧道都会从为动态对等方配置的接口池中分配一个服务接口。路由协议可以配置为在这些服务接口上运行,以便通过在此场景中用作链路的 IPsec 隧道上学习路由。
本部分包含以下主题:
- 身份验证过程
- 隐式动态规则
- 反向路由插入
- 配置 IKE 访问配置文件
- 引用服务集中的 IKE 访问配置文件
- 配置接口标识符
- 默认 IKE 和 IPsec 提议
- 在服务接口之间分配端点 IPsec 隧道
身份验证过程
远程(动态对等方)发起与本地(瞻博网络)路由器的协商。本地路由器使用默认 IKE 和 IPsec 策略来匹配远程对等方发送的提议,以协商安全关联 (SA) 值。隐式提议包含本地路由器期望从所有动态对等方获得的所有受支持转换的列表。
如果使用预共享密钥身份验证,则预共享密钥对于服务集是全局的。为对等方查找预共享密钥时,本地路由器会将对等方的源地址与该服务集中任何显式配置的预共享密钥进行匹配。如果未找到匹配项,本地路由器将使用全局预共享密钥进行身份验证。
身份验证的第 2 阶段将对等方发送的受保护主机和网络的 代理身份 与配置的代理身份列表进行匹配。接受的代理身份用于创建用于加密流量的动态规则。您可以通过在 IKE 访问配置文件中包含 allowed-proxy-pair 该语句来配置代理身份。如果没有匹配的条目,则拒绝协商。
如果未配置该 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 中接受 and 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 协商所需的所有信息。每个协议在 client 语句中都有自己的语句层次结构,用于配置特定于协议的属性值对,但每个配置文件只允许一个客户端配置。以下是层次结构级别的 [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 阶段协商期间用于对动态对等方进行身份验证的密钥。通过带外安全机制,两端都知道该密钥。您可以配置该值 或hexadecimalascii-text格式。这是一个强制性值。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语句引用的名称必须与您在层次结构级别上[edit access]为 IKE 访问配置的profile语句相同的名称。在每个服务集中只能引用一个访问配置文件。此配置文件仅用于与动态对等方协商 IKE 和 IPsec 安全关联。
该语句在服务集中引用 inside-service-interface 的所有接口都必须属于同一个 VRF 实例。
配置接口标识符
您可以为一组动态对等方配置一个接口标识符,用于指定哪些自适应服务逻辑接口参与动态 IPsec 协商。通过将同一接口标识符分配给多个逻辑接口,您可以为此目的创建一个接口池。要配置接口标识符,请在层次结构级别包括ipsec-interface-id[edit interfaces interface-name unit logical-unit-number dial-options]语句和 dedicated or 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-gatewayIP 地址。具有相同的
ike-access-profile名称。
配置接口标识符时(请参阅 配置接口标识符),
ipsec-interface-id identifier必须配置:仅在服务集语句中
inside-service-set出现的接口下。dedicated用于所有接口或shared用于所有接口。在一个接口的不超过一个共享单元下。
仅在配置了
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,并通过隧道终止地址 10.2.2.2 连接到安全网关 SG-2。远程网络 N-3 的地址为 172.16.3.0/24,并连接到安全网关 SG-3(隧道终止地址为 10.3.3.3)。
拓扑结构
结构
配置
要配置动态分配的基于策略的隧道,请执行以下作:
此示例中显示的接口类型仅供参考。例如,您可以使用 so- 接口代替 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命令输出显示您配置的属性。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。