边界模式下的协商发现传输模式

边界模式 IPsec 策略方案中的协商发现传输模式请求所有匹配流量的 IPsec 传输模式保护。 如果 IKE/AuthIP 协商失败,则允许入站和出站连接回退到明文。

此 IPsec 策略通常用于支持 IPsec 的计算机和非支持 IPsec 的计算机。

潜在的协商发现传输模式方案的示例是“保护除 ICMP 以外的所有单播数据流量,使用 IPsec 传输模式并在边界模式下启用协商发现”。

若要以编程方式实现此示例,请使用以下 WFP 配置。

FWPM_LAYER_IKEEXT_V{4|6} 设置 MM 协商策略

  1. 添加以下一个或两个 MM 策略提供程序上下文。

    • 对于 IKE,FWPM_IPSEC_IKE_MM_CONTEXT类型的策略提供程序上下文。
    • 对于 AuthIP,FWPM_IPSEC_AUTHIP_MM_CONTEXT类型的策略提供程序上下文。

    注意

    将协商通用密钥模块,并应用相应的 MM 策略。 如果支持 IKE 和 AuthIP,则 AuthIP 是首选密钥模块。

  2. 对于步骤 1 中添加的每个上下文,添加具有以下属性的筛选器。

    Filter 属性 价值
    筛选条件 空。 所有流量都将与筛选器匹配。
    providerContextKey 步骤 1 中添加的 MM 提供程序上下文的 GUID。

at FWPM_LAYER_IPSEC_V{4|6} 设置 QM 和 EM 协商策略

  1. 添加以下 QM 传输模式策略提供程序上下文中的一个或两个,并设置 IPSEC_POLICY_FLAG_ND_BOUNDARY 标志。

    • 对于 IKE,类型为 FWPM_IPSEC_IKE_QM_TRANSPORT_CONTEXT的策略提供程序上下文。
    • 对于 AuthIP,类型为 FWPM_IPSEC_AUTHIP_QM_TRANSPORT_CONTEXT的策略提供程序上下文。 此上下文可以选择包含 AuthIP 扩展模式 (EM) 协商策略。

    注意

    将协商通用密钥模块,并应用相应的 QM 策略。 如果支持 IKE 和 AuthIP,则 AuthIP 是首选密钥模块。

  2. 对于步骤 1 中添加的每个上下文,添加具有以下属性的筛选器。

    Filter 属性 价值
    筛选条件 空。 所有流量都将与筛选器匹配。
    providerContextKey 步骤 1 中添加的 QM 提供程序上下文的 GUID。

FWPM_LAYER_INBOUND_TRANSPORT_V{4|6} 设置入站每数据包筛选规则

  1. 添加具有以下属性的筛选器。

    Filter 属性 价值
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 筛选条件 NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V{4|6}
    rawContext FWPM_CONTEXT_IPSEC_INBOUND_PERSIST_CONNECTION_SECURITY
  2. 通过添加具有以下属性的筛选器来免除 IPsec 的 ICMP 流量。

    Filter 属性 价值
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 筛选条件 NlatUnicast
    FWPM_CONDITION_IP_PROTOCOL 筛选条件 **IPPROTO_ICMP{V6}**这些常量是在 winsock2.h 中定义的。
    action.type FWP_ACTION_PERMIT
    权重 FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

at FWPM_LAYER_OUTBOUND_TRANSPORT_V{4|6} 设置出站每数据包筛选规则

  1. 添加具有以下属性的筛选器。

    Filter 属性 价值
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 筛选条件 NlatUnicast
    action.type FWP_ACTION_CALLOUT_TERMINATING
    action.calloutKey FWPM_CALLOUT_IPSEC_OUTBOUND_TRANSPORT_V{4|6}
    rawContext FWPM_CONTEXT_IPSEC_OUTBOUND_NEGOTIATE_DISCOVER
  2. 通过添加具有以下属性的筛选器来免除 IPsec 的 ICMP 流量。

    Filter 属性 价值
    FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE 筛选条件 NlatUnicast
    FWPM_CONDITION_IP_PROTOCOL 筛选条件 **IPPROTO_ICMP{V6}**这些常量是在 winsock2.h 中定义的。
    action.type FWP_ACTION_PERMIT
    权重 FWPM_WEIGHT_RANGE_IKE_EXEMPTIONS

注意

与协商发现传输模式相反,对于边界模式策略中的协商发现传输模式,无需在 FWPM_LAYER_ALE_AUTH_RECV_ACCEPT_V{4|6} 层添加筛选器,因为此策略允许入站不受保护的明文连接。

示例代码:使用传输模式

ALE 层

内置标注标识符

筛选条件

筛选层标识符

FWPM_ACTION0

FWPM_PROVIDER_CONTEXT_TYPE