CLI方式:网关与网关之间采用IKE方式建立保护IPv6报文的IPsec隧道典型配置

使用版本

本举例是在M9000-AI-E8R9071版本上进行配置和验证的。

组网需求

如下图所示,在Device ADevice B之间建立一条IPsec隧道,对Host A所在的子网(333::/64)与Host B所在的子网(555::/64)之间的数据流进行安全保护。具体要求如下:

图-1 保护IPv6报文的IPsec配置组网图

 

配置步骤

配置Device A

  1. 配置接口IP地址

# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。

<DeviceA> system-view

[DeviceA] interface gigabitethernet 1/0/1

[DeviceA-GigabitEthernet1/0/1] ipv6 address 333::1/64

[DeviceA-GigabitEthernet1/0/1] quit

请参考以上步骤配置其他接口的IP地址,具体配置步骤略。

  1. 配置静态路由

本举例仅以静态路由方式配置路由信息。实际组网中,请根据具体情况选择相应的路由配置方式。

# 请根据组网图中规划的信息,配置静态路由,本举例假设下一跳IP地址为111::2,实际使用中请以具体组网情况为准,具体配置步骤如下。

[DeviceA] ipv6 route-static 555::0 64 111::2

[DeviceA] ipv6 route-static 222::0 64 111::2

  1. 配置接口加入安全域。

# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。

[DeviceA] security-zone name trust

[DeviceA-security-zone-Trust] import interface gigabitethernet 1/0/1

[DeviceA-security-zone-Trust] quit

[DeviceA] security-zone name untrust

[DeviceA-security-zone-Untrust] import interface gigabitethernet 1/0/2

[DeviceA-security-zone-Untrust] quit

  1. 配置安全策略

  1. 配置安全策略放行UntrustLocal安全域之间的流量,用于设备之间可以建立IPsec隧道。

# 配置名称为ipseclocalout的安全策规则,使Device A可以向Device B发送IPsec隧道协商报文,具体配置步骤如下。

[DeviceA] security-policy ipv6

[DeviceA-security-policy-ipv6] rule name ipseclocalout

[DeviceA-security-policy-ipv6-1-ipseclocalout] source-zone local

[DeviceA-security-policy-ipv6-1-ipseclocalout] destination-zone untrust

[DeviceA-security-policy-ipv6-1-ipseclocalout] source-ip-host 111::1

[DeviceA-security-policy-ipv6-1-ipseclocalout] destination-ip-host 222::1

[DeviceA-security-policy-ipv6-1-ipseclocalout] action pass

[DeviceA-security-policy-ipv6-1-ipseclocalout] quit

# 配置名称为ipseclocalin的安全策略规则,使Device A可以接收和处理来自Device BIPsec隧道协商报文,具体配置步骤如下。

[DeviceA-security-policy-ipv6] rule name ipseclocalin

[DeviceA-security-policy-ipv6-2-ipseclocalin] source-zone untrust

[DeviceA-security-policy-ipv6-2-ipseclocalin] destination-zone local

[DeviceA-security-policy-ipv6-2-ipseclocalin] source-ip-host 222::1

[DeviceA-security-policy-ipv6-2-ipseclocalin] destination-ip-host 111::1

[DeviceA-security-policy-ipv6-2-ipseclocalin] action pass

[DeviceA-security-policy-ipv6-2-ipseclocalin] quit

  1. 配置安全策略放行Host AHost B之间的流量

# 配置名称为trust-untrust的安全策略规则,使Host A访问Host B的报文可通,具体配置步骤如下。

[DeviceA-security-policy-ipv6] rule name trust-untrust

[DeviceA-security-policy-ipv6-3-trust-untrust] source-zone trust

[DeviceA-security-policy-ipv6-3-trust-untrust] destination-zone untrust

[DeviceA-security-policy-ipv6-3-trust-untrust] source-ip-subnet 333::1 64

[DeviceA-security-policy-ipv6-3-trust-untrust] destination-ip-subnet 555::1 64

[DeviceA-security-policy-ipv6-3-trust-untrust] action pass

[DeviceA-security-policy-ipv6-3-trust-untrust] quit

# 配置名称为untrust-trust的安全策略规则,使Host B访问Host A的报文可通,具体配置步骤如下。

[DeviceA-security-policy-ipv6] rule name untrust-trust

[DeviceA-security-policy-ipv6-4-untrust-trust] source-zone untrust

[DeviceA-security-policy-ipv6-4-untrust-trust] destination-zone trust

[DeviceA-security-policy-ipv6-4-untrust-trust] source-ip-subnet 555::1 64

[DeviceA-security-policy-ipv6-4-untrust-trust] destination-ip-subnet 333::1 64

[DeviceA-security-policy-ipv6-4-untrust-trust] action pass

[DeviceA-security-policy-ipv6-4-untrust-trust] quit

[DeviceA-security-policy-ipv6] quit

  1. 定义需要保护的数据流

# 配置一个IPv6高级ACL,定义要保护由子网333::/64去往子网555::/64的数据流。

[DeviceA] acl ipv6 advanced 3101

[DeviceA-acl-ipv6-adv-3101] rule permit ipv6 source 333::0 64 destination 555::0 64

[DeviceA-acl-ipv6-adv-3101] quit

  1. 配置IPsec安全提议,协商封装报文使用的各种安全协议

# 创建IPsec安全提议,两端配置的安全提议参数需要完全相同,具体配置步骤如下。

[DeviceA] ipsec transform-set tran1

[DeviceA-ipsec-transform-set-tran1] encapsulation-mode tunnel

[DeviceA-ipsec-transform-set-tran1] protocol esp

[DeviceA-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128

[DeviceA-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[DeviceA-ipsec-transform-set-tran1] quit

  1. 配置IKE keychain,约定通信双方使用的密钥信息

# 创建并配置IKE keychain,协商双方配置的预共享密钥必须完全相同,具体配置步骤如下。

[DeviceA] ike keychain keychain1

[DeviceA-ike-keychain-keychain1] pre-shared-key address ipv6 222::1 64 key simple 123456TESTplat&!

[DeviceA-ike-keychain-keychain1] quit

  1. 配置IKE profile,约定建立IKE SA所需的安全参数

[DeviceA] ike profile profile1

[DeviceA-ike-profile-profile1] keychain keychain1

[DeviceA-ike-profile-profile1] match remote identity address ipv6 222::1 64

[DeviceA-ike-profile-profile1] quit

  1. 配置IPsec安全策略,建立IPsec隧道,保护需要防护的数据流

# 创建一条IKE协商方式的IPsec安全策略,引用需要保护数据流的ACL和所需的IPsec安全提议,指定本端和对端的IP地址,引用IKE profile,具体配置步骤如下。

[DeviceA] ipsec ipv6-policy map1 10 isakmp

[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] security acl ipv6 3101

[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] transform-set tran1

[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] local-address ipv6 111::1

[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] remote-address ipv6 222::1

[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] ike-profile profile1

[DeviceA-ipsec-ipv6-policy-isakmp-map1-10] quit

  1. 在接口上应用IPsec安全策略,对接口上的流量进行保护

# 在接口GigabitEthernet1/0/2上应用IPsec安全策略,具体配置步骤如下。

[DeviceA] interface gigabitethernet 1/0/2

[DeviceA-GigabitEthernet1/0/2] ipsec apply ipv6-policy map1

[DeviceA-GigabitEthernet1/0/2] quit

配置Device B

  1. 配置接口IP地址

# 根据组网图中规划的信息,配置各接口的IP地址,具体配置步骤如下。

<DeviceB> system-view

[DeviceB] interface gigabitethernet 1/0/1

[DeviceB-GigabitEthernet1/0/1] ipv6 address 555::1/64

[DeviceB-GigabitEthernet1/0/1] quit

请参考以上步骤配置其他接口的IP地址,具体配置步骤略。

  1. 配置静态路由

本举例仅以静态路由方式配置路由信息。实际组网中,请根据具体情况选择相应的路由配置方式。

# 请根据组网图中规划的信息,配置静态路由,本举例假设下一跳IP地址为222::2,实际使用中请以具体组网情况为准,具体配置步骤如下。

[DeviceB] ipv6 route-static 333::0 64 222::2

[DeviceB] ipv6 route-static 111::0 64 222::2

  1. 配置接口加入安全域。

# 请根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。

[DeviceB] security-zone name trust

[DeviceB-security-zone-Trust] import interface gigabitethernet 1/0/1

[DeviceB-security-zone-Trust] quit

[DeviceB] security-zone name untrust

[DeviceB-security-zone-Untrust] import interface gigabitethernet 1/0/2

[DeviceB-security-zone-Untrust] quit

  1. 配置安全策略

  1. 配置安全策略放行UntrustLocal安全域之间的流量,用于设备之间可以建立IPsec隧道。

# 配置名称为ipseclocalout的安全策规则,使Device B可以向Device A发送IPsec隧道协商报文,具体配置步骤如下。

[DeviceB] security-policy ipv6

[DeviceB-security-policy-ipv6] rule name ipseclocalout

[DeviceB-security-policy-ipv6-1-ipseclocalout] source-zone local

[DeviceB-security-policy-ipv6-1-ipseclocalout] destination-zone untrust

[DeviceB-security-policy-ipv6-1-ipseclocalout] source-ip-host 222::1

[DeviceB-security-policy-ipv6-1-ipseclocalout] destination-ip-host 111::1

[DeviceB-security-policy-ipv6-1-ipseclocalout] action pass

[DeviceB-security-policy-ipv6-1-ipseclocalout] quit

# 配置名称为ipseclocalin的安全策略规则,使Device B可以接收和处理来自Device AIPsec隧道协商报文,具体配置步骤如下。

[DeviceB-security-policy-ipv6] rule name ipseclocalin

[DeviceB-security-policy-ipv6-2-ipseclocalin] source-zone untrust

[DeviceB-security-policy-ipv6-2-ipseclocalin] destination-zone local

[DeviceB-security-policy-ipv6-2-ipseclocalin] source-ip-host 111::1

[DeviceB-security-policy-ipv6-2-ipseclocalin] destination-ip-host 222::1

[DeviceB-security-policy-ipv6-2-ipseclocalin] action pass

[DeviceA-security-policy-ipv6-2-ipseclocalin] quit

  1. 配置安全策略放行Host BHost A之间的流量

# 配置名称为trust-untrust的安全策略规则,使Host A访问Host B的报文可通,具体配置步骤如下。

[DeviceB-security-policy-ipv6] rule name trust-untrust

[DeviceB-security-policy-ipv6-3-trust-untrust] source-zone trust

[DeviceB-security-policy-ipv6-3-trust-untrust] destination-zone untrust

[DeviceB-security-policy-ipv6-3-trust-untrust] source-ip-subnet 333::1 64

[DeviceB-security-policy-ipv6-3-trust-untrust] destination-ip-subnet 555::1 64

[DeviceB-security-policy-ipv6-3-trust-untrust] action pass

[DeviceB-security-policy-ipv6-3-trust-untrust] quit

# 配置名称为untrust-trust的安全策略规则,使Host B访问Host A的报文可通,具体配置步骤如下。

[DeviceB-security-policy-ipv6] rule name untrust-trust

[DeviceB-security-policy-ipv6-4-untrust-trust] source-zone untrust

[DeviceB-security-policy-ipv6-4-untrust-trust] destination-zone trust

[DeviceB-security-policy-ipv6-4-untrust-trust] source-ip-subnet 555::1 64

[DeviceB-security-policy-ipv6-4-untrust-trust] destination-ip-subnet 333::1 64

[DeviceB-security-policy-ipv6-4-untrust-trust] action pass

[DeviceB-security-policy-ipv6-4-untrust-trust] quit

[DeviceB-security-policy-ipv6] quit

  1. 定义需要保护的数据流

# 配置一个IPv6高级ACL,定义要保护由子网555::/64去往子网333::/64的数据流。

[DeviceB] acl ipv6 advanced 3101

[DeviceB-acl-ipv6-adv-3101] rule permit ipv6 source 555::/64 destination 333::/64

[DeviceB-acl-ipv6-adv-3101] quit

  1. 配置IPsec安全提议,协商封装报文使用的各种安全协议

# 创建IPsec安全提议,两端配置的安全提议参数需要完全相同,具体配置步骤如下。

[DeviceB] ipsec transform-set tran1

[DeviceB-ipsec-transform-set-tran1] encapsulation-mode tunnel

[DeviceB-ipsec-transform-set-tran1] protocol esp

[DeviceB-ipsec-transform-set-tran1] esp encryption-algorithm aes-cbc-128

[DeviceB-ipsec-transform-set-tran1] esp authentication-algorithm sha1

[DeviceB-ipsec-transform-set-tran1] quit

  1. 配置IKE keychain,约定通信双方使用的密钥信息

# 创建并配置IKE keychain,协商双方配置的预共享密钥必须完全相同,具体配置步骤如下。

[DeviceB] ike keychain keychain1

[DeviceB-ike-keychain-keychain1] pre-shared-key address ipv6 111::1 64 key simple 123456TESTplat&!

[DeviceB-ike-keychain-keychain1] quit

  1. 配置IKE profile,约定建立IKE SA所需的安全参数

[DeviceB] ike profile profile1

[DeviceB-ike-profile-profile1] keychain keychain1

[DeviceB-ike-profile-profile1] match remote identity address ipv6 111::1 64

[DeviceB-ike-profile-profile1] quit

  1. 配置IPsec安全策略,建立IPsec隧道,保护需要防护的数据流

# 创建一条IKE协商方式的IPsec安全策略,引用需要保护数据流的ACL和所需的IPsec安全提议,指定本端和对端的IP地址,引用IKE profile,具体配置步骤如下。

[DeviceB] ipsec ipv6-policy use1 10 isakmp

[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] security acl ipv6 3101

[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] transform-set tran1

[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] local-address ipv6 222::1

[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] remote-address ipv6 111::1

[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] ike-profile profile1

[DeviceB-ipsec-ipv6-policy-isakmp-use1-10] quit

  1. 在接口上应用IPsec安全策略,对接口上的流量进行保护

# 在接口GigabitEthernet1/0/2上应用IPsec安全策略,具体配置步骤如下。

[DeviceB] interface gigabitethernet 1/0/2

[DeviceB-GigabitEthernet1/0/2] ipsec apply ipv6-policy use1

[DeviceB-GigabitEthernet1/0/2] quit

验证配置

# 以上配置完成后,当Device ADevice B之间有子网333::/64与子网555::/64之间的报文通过时,将触发IKE进行IPsec SA的协商。IKE成功协商出IPsec SA后,子网333::/64与子网555::/64之间数据流的传输将受到IPsec SA的保护。可通过以下显示查看到协商生成的IPsec SA

[DeviceA] display ipsec sa

-------------------------------

Interface: GigabitEthernet1/0/2

-------------------------------

  -----------------------------

  IPsec policy: map1

  Sequence number: 10

  Alisa: map1-10

  Mode: ISAKMP

  -----------------------------

    Tunnel id: 0

    Encapsulation mode: tunnel

    Perfect Forward Secrecy:

    Inside VPN:

    Extended Sequence Numbers enable: N

    Traffic Flow Confidentiality enable: N

    Transmitting entity: Initiator

    Path MTU: 1423

    Tunnel:

        local  address/port: 111::1/500

        remote address/port: 222::1/500

    Flow:

    sour addr: 111::1/0      port: 0  protocol: ipv6

    dest addr: 222::1/0      port: 0  protocol: ipv6

    [Inbound ESP SAs]

      SPI: 3769702703 (0xe0b1192f)

      Connection ID: 1

      Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1

      SA duration (kilobytes/sec): 3000/28800

      SA remaining duration (kilobytes/sec): 2300/797

      Max received sequence-number: 1

      Anti-replay check enable: N

      Anti-replay window size:

      UDP encapsulation used for NAT traversal: N

      Status: Active

    [Outbound ESP SAs]

      SPI: 3840956402 (0xe4f057f2)

      Connection ID: 2

      Transform set: ESP-ENCRYPT-AES-CBC-128 ESP-AUTH-SHA1

      SA duration (kilobytes/sec): 3000/28800

      SA remaining duration (kilobytes/sec): 2312/797

      Max sent sequence-number: 1

      UDP encapsulation used for NAT traversal: N

      Status: Active

# Device B上也会产生相应的IPsec SA来保护IPv6报文,查看方式与Device A同,此处略。

配置文件

Device A

#

interface GigabitEthernet1/0/1

ipv6 address 333::1/64

#

interface GigabitEthernet1/0/2

ipv6 address 111::1/64

 ipsec apply ipv6-policy map1

#

security-zone name Trust

 import interface GigabitEthernet1/0/1

#

security-zone name Untrust

 import interface GigabitEthernet1/0/2

#

 ipv6 route-static 222:: 64 111::2

 ipv6 route-static 555:: 64 111::2

#

acl ipv6 advanced 3101

 rule 0 permit ipv6 source 333::/64 destination 555::/64

#

ipsec transform-set tran1

 encapsulation-mode tunnel

 protocol esp

 esp encryption-algorithm aes-cbc-128

 esp authentication-algorithm sha1

#

ipsec ipv6-policy map1 10 isakmp

 transform-set tran1

 security acl ipv6 3101

 local-address ipv6 111::1

 remote-address ipv6 222::1

 ike-profile profile1

#

ike profile profile1

 keychain keychain1

 match remote identity address ipv6 222::1 64

#

ike keychain keychain1

 pre-shared-key address ipv6 222::1 64 key simple 123456TESTplat&!

#

security-policy ipv6

 rule 0 name ipseclocalout

  action pass

  source-zone local

  destination-zone untrust

  source-ip-host 111::1

  destination-ip-host 222::1

 rule 1 name ipseclocalin

  action pass

  source-zone untrust

  destination-zone local

  source-ip-host 222::1

  destination-ip-host 111::1

 rule 2 name trust-untrust

  action pass

  source-zone trust

  destination-zone untrust

  source-ip-subnet 333::/64

  destination-ip-subnet 555::/64

 rule 3 name untrust-trust

  action pass

  source-zone untrust

  destination-zone trust

  source-ip-subnet 555::/64

  destination-ip-subnet 333::/64

#

Device B

#

interface GigabitEthernet1/0/1

ipv6 address 555::1/64

#

interface GigabitEthernet1/0/2

ipv6 address 222::1/64

 ipsec apply ipv6-policy use1

#

security-zone name Trust

 import interface GigabitEthernet1/0/1

#

security-zone name Untrust

 import interface GigabitEthernet1/0/2

#

 ipv6 route-static 111:: 64 222::2

 ipv6 route-static 333:: 64 222::2

#

acl ipv6 advanced 3101

 rule 0 permit ipv6 source 555::/64 destination 333::/64

#

ipsec transform-set tran1

 encapsulation-mode tunnel

 protocol esp

 esp encryption-algorithm aes-cbc-128

 esp authentication-algorithm sha1

#

ipsec ipv6-policy use1 10 isakmp

 transform-set tran1

 security acl ipv6 3101

 local-address ipv6 222::1

 remote-address ipv6 111::1

 ike-profile profile1

#

ike profile profile1

 keychain keychain1

 match remote identity address ipv6 111::1 64

#

ike keychain keychain1

 pre-shared-key address ipv6 111::1 64 key simple 123456TESTplat&!

#

security-policy ipv6

 rule 0 name ipseclocalout

  action pass

  source-zone local

  destination-zone untrust

  source-ip-host 222::1

  destination-ip-host 111::1

 rule 1 name ipseclocalin

  action pass

  source-zone untrust

  destination-zone local

  source-ip-host 111::1

  destination-ip-host 222::1

 rule 2 name trust-untrust

  action pass

  source-zone trust

  destination-zone untrust

  source-ip-subnet 333::/64

  destination-ip-subnet 555::/64

 rule 3 name untrust-trust

  action pass

  source-zone untrust

  destination-zone trust

  source-ip-subnet 555::/64

  destination-ip-subnet 333::/64

#