目录

简介

先决条件

要求

使用的组件

拓扑

配置

R1（中心站点中的密钥服务器）

R3（Branch1中的组成员）

R5、R6配置

确认

测试SGT感知GETVPN

测试SGT感知ZBF

参考

相关的思科支持社区讨论

简介

本文将介绍如何配置GETVPN以推送策略，允许在加密数据包中发送和接收安全组标记(SGT)。示例包括两个分支机构，用特定SGT标记所有流量，并基于收到的SGT标记应用基于区域的防火墙(ZBF)策略。

先决条件

要求

Cisco 建议您了解以下主题：

- IOS命令行界面(CLI)配置和GETVPN配置的基本知识

- Trustsec服务的基本知识。

- 基于区域的防火墙基础知识

使用的组件

本文档中的信息基于以下软件版本：

- 带软件15.3(2)T及更高版本的Cisco 2921路由器

拓扑

R3 - Branch1中的边界路由器，GETVPN组成员

R4 - Branch2中的边界路由器，GETVPN组成员

R1、R2 — 中心站点中的GETVPN密钥服务器

在所有路由器上运行的OSPF

从KS推送的ACL强制加密10.0.0.0/16 <-> 10.0.0.0/16之间的流量

R3路由器使用SGT标记= 3标记从Branch1发送的所有流量

R4路由器使用SGT标记= 4标记从Branch2发送的所有流量

R3在向LAN发送流量时删除SGT标记（假设R5不支持内联标记）

R4在向LAN发送流量时删除SGT标记（假设R6不支持内联标记）

R4没有防火墙（接受所有数据包）

R3使用以下策略配置ZBF:

— 接受从LAN到WAN的所有流量

— 仅接受从WAN到LAN的带有SGT=4标记的ICMP

配置

R1（中心站点中的密钥服务器）

要发送允许发送和接收标记数据包的策略“tac cts sgt”命令，需要显示：

interface Loopback0

ip address 10.0.1.1 255.255.255.0

!

interface Ethernet0/0

ip address 192.168.0.1 255.255.255.0

crypto ipsec transform-set TS esp-aes esp-sha256-hmac

mode tunnel

!

crypto ipsec profile prof1

set transform-set TS

!

crypto gdoi group group1

identity number 1

server local

rekey authentication mypubkey rsa GETKEY

rekey transport unicast

sa ipsec 1

profile prof1

match address ipv4 GET-IPV4

replay counter window-size 64

tag cts sgt

address ipv4 192.168.0.1

redundancy

local priority 100

peer address ipv4 192.168.0.2

router ospf 1

network 10.0.0.0 0.0.255.255 area 0

network 192.168.0.0 0.0.0.255 area 0

ip access-list extended GET-IPV4

permit icmp 10.0.0.0 0.0.255.255 10.0.0.0 0.0.255.255

R2的配置非常相似。

R3（Branch1中的组成员）

GETVPN配置与无SGT标记的场景相同。LAN接口已配置了手动trustsec:

- "policy static sgt 3 trusted" — 标记从LAN使用SGT=3接收的所有数据包

- “no propagate sgt” — 在向LAN传输数据包时删除所有SGT标记

crypto gdoi group group1

identity number 1

server address ipv4 192.168.0.1

server address ipv4 192.168.0.2

!

!

crypto map cmap 10 gdoi

set group group1

interface Ethernet0/0

ip address 192.168.0.3 255.255.255.0

crypto map cmap

!

interface Ethernet0/1

ip address 10.0.3.1 255.255.255.0

cts manual

no propagate sgt

policy static sgt 3 trusted

router ospf 1

network 10.0.0.0 0.0.255.255 area 0

network 192.168.0.0 0.0.0.255 area 0

R3上的ZBF配置：

将接受来自LAN的所有数据包。仅从WAN接受标有SGT=4的ICMP数据包：

class-map type inspect match-all TAG_4_ICMP

match security-group source tag 4

match protocol icmp

!

policy-map type inspect FROM_LAN

class class-default

pass log

policy-map type inspect FROM_WAN

class type inspect TAG_4_ICMP

pass log

class class-default

drop log

!

zone security lan

zone security wan

zone-pair security WAN-LAN source wan destination lan

service-policy type inspect FROM_WAN

zone-pair security LAN-WAN source lan destination wan

service-policy type inspect FROM_LAN

interface Ethernet0/0

zone-member security wan

!

interface Ethernet0/1

zone-member security lan

Branch2的R4配置非常相似，但ZBF未在其中配置。

R5、R6配置

R5和R6在两个分支中模拟本地LAN。R5的配置示例：

interface Ethernet0/0

ip address 10.0.3.10 255.255.255.0

router ospf 1

network 10.0.0.0 0.0.255.255 area 0

确认

测试SGT感知GETVPN

检查Branch1(R3)中的组成员是否支持SGT标记：

R3#show crypto gdoi feature cts-sgt

Version    Feature Supported

1.0.8           Yes

检查推送到Branch1(R3)中的组成员的TEK策略是否使用SGT:

R3#show crypto gdoi

GROUP INFORMATION

<...some output ommited for clarity...>

TEK POLICY for the current KS-Policy ACEs Downloaded:

Ethernet0/0:

IPsec SA:

spi: 0xD100D58E(3506492814)

transform: esp-aes esp-sha256-hmac

sa timing:remaining key lifetime (sec): expired

Anti-Replay(Counter Based) : 64

tag method : cts sgt

alg key size: 16 (bytes)

sig key size: 32 (bytes)

encaps: ENCAPS_TUNNEL

IPsec SA:

spi: 0x52B3CA86(1387514502)

transform: esp-aes esp-sha256-hmac

sa timing:remaining key lifetime (sec): (1537)

Anti-Replay(Counter Based) : 64

tag method : cts sgt

alg key size: 16 (bytes)

sig key size: 32 (bytes)

encaps: ENCAPS_TUNNEL

从R6向R5发送ICMP流量：

R6#ping 10.0.3.10 repeat 10

Type escape sequence to abort.

Sending 10, 100-byte ICMP Echos to 10.0.3.10, timeout is 2 seconds:

!!!!!!!!!!

Success rate is 100 percent (10/10), round-trip min/avg/max = 1/1/6 ms

检查R3是否将SGT标记附加到加密数据包：

R3#show crypto ipsec sa detail

interface: Ethernet0/0

Crypto map tag: cmap, local addr 192.168.0.3

protected vrf: (none)

local  ident (addr/mask/prot/port): (10.0.0.0/255.255.0.0/1/0)

remote ident (addr/mask/prot/port): (10.0.0.0/255.255.0.0/1/0)

Group: group1

current_peer 0.0.0.0 port 848

PERMIT, flags={}

#pkts encaps: 39, #pkts encrypt: 39, #pkts digest: 39

#pkts decaps: 39, #pkts decrypt: 39, #pkts verify: 39

#pkts compressed: 0, #pkts decompressed: 0

#pkts not compressed: 0, #pkts compr. failed: 0

#pkts not decompressed: 0, #pkts decompress failed: 0

#pkts no sa (send) 0, #pkts invalid sa (rcv) 0

#pkts encaps failed (send) 0, #pkts decaps failed (rcv) 0

#pkts invalid prot (recv) 0, #pkts verify failed: 0

#pkts invalid identity (recv) 0, #pkts invalid len (rcv) 0

#pkts replay rollover (send): 0, #pkts replay rollover (rcv) 0

##pkts replay failed (rcv): 0

#pkts tagged (send): 39, #pkts untagged (rcv): 39

<...some output ommited for clarity...>

在Branch2(R3)中检查组成员上GETVPN的数据平面计数器：

R3#show crypto gdoi gm dataplane counters

Data-plane statistics for group group1:

#pkts encrypt            : 53       #pkts decrypt            : 53

#pkts tagged (send)      : 53       #pkts untagged (rcv)     : 53

#pkts no sa (send)       : 0        #pkts invalid sa (rcv)   : 0

#pkts encaps fail (send) : 0        #pkts decap fail (rcv)   : 0

#pkts invalid prot (rcv) : 0        #pkts verify fail (rcv)  : 0

#pkts not tagged (send)  : 0        #pkts not untagged (rcv) : 0

#pkts internal err (send): 0        #pkts internal err (rcv) : 0

根据平台的不同，可以使用调试来揭示更多详细信息。例如，在R3上：

R3#debug cts platform l2-sgt rx

R3#debug cts platform l2-sgt tx

R3从LAN接收的数据包应标记为SGT:

01:48:08: cts-l2sgt_rx:l2cts-policysgt:[in=Ethernet0/1 src=0100.5e00.0005 dst=aabb.cc00.6800] Policy SGT Assign [pak=F1B00E00:flag=0x1:psgt=3]

此外，通过隧道发送的加密数据包将被标记：

01:49:28: cts_ether_cmd_handle_post_encap_feature:pak[36BF868]:size=106 in=Ethernet0/1 out=Ethernet0/0 enctype=1 encsize=0 sgt_offset=18 [adj]:idb=Ethernet0/0 is_dot1q=0 linktype=7 mac_length=22 SGT=3

测试SGT感知ZBF

R3将只接受来自WAN的标记有SGT=4的ICMP数据包。从R6向R5发送ICMP数据包时：

R6#ping 10.0.3.10 repeat 11

Type escape sequence to abort.

Sending 1, 100-byte ICMP Echos to 10.0.3.10, timeout is 2 seconds:

!

Success rate is 100 percent (1/1), round-trip min/avg/max = 1/1/6 ms

R3将收到带标记的ESP数据包，将其解密。然后ZBF将接受流量：

*Mar 17 12:45:28.039: %FW-6-PASS_PKT: (target:class)-(WAN-LAN:TAG_4_ICMP) Passing icmp pkt 10.0.4.10:0 => 10.0.3.10:0 with ip ident 57

此外，策略映射将显示包含接受的数据包数的计数器：

R3#show policy-firewall stats all

Global Stats:

Session creations since subsystem startup or last reset 0

Current session counts (estab/half-open/terminating) [0:0:0]

Maxever session counts (estab/half-open/terminating) [0:0:0]

Last session created never

Last statistic reset never

Last session creation rate 0

Maxever session creation rate 0

Last half-open session total 0

policy exists on zp WAN-LAN

Zone-pair: WAN-LAN

Service-policy inspect : FROM_WAN

Class-map: TAG_4_ICMP (match-all)

Match: security-group source tag 4

Match: protocol icmp

Pass

18 packets, 1440 bytes

Class-map: class-default (match-any)

Match: any

Drop

3 packets, 72 bytes

policy exists on zp LAN-WAN

Zone-pair: LAN-WAN

Service-policy inspect : FROM_LAN

Class-map: class-default (match-any)

Match: any

Pass

18 packets, 1440 bytes

尝试从R6 telnet至R5时，R3将丢弃该流量，因为不允许telnet:

*Mar 17 12:49:30.475: %FW-6-DROP_PKT: Dropping tcp session 10.0.4.10:37500 10.0.3.10:23 on zone-pair WAN-LAN class class-default due to  DROP action found in policy-map with ip ident 36123

参考

- 思科 TrustSec 交换机配置指南：了解思科 TrustSec

- 为安全设备用户授权配置外部服务器

- 思科 ASA 系列 VPN CLI 配置指南，版本 9.1

- 思科身份服务引擎用户指南，版本 1.2

- 技术支持和文档 - Cisco Systems