简介
本文档介绍如何在软件定义访问(SDA)中启用TrustSec的允许列表(默认拒绝IP)模型。 本文档涉及多种技术和组件,包括身份服务引擎(ISE)、数字网络架构中心(DNAC)和交换机(边界和边缘)。
提供两种TrustSec模型:
- Deny-List Model(Default Permit IP) — 在此模型中,默认操作是Permit IP,任何限制都必须使用安全组访问列表(SGACL)进行显式配置。 这通常在您对其网络中的流量流没有完全了解时使用。此模式非常易于实施。
- Allow-List Model(Default Deny IP) — 在此模型中,默认操作是Deny IP,因此必须使用SGACL明确允许所需的流量。这通常在您对其网络内的流量类型有相当的了解时使用。此模型需要对控制平面流量进行详细研究,并且一旦启用,即具有阻止ALL流量的潜力。
先决条件
要求
Cisco 建议您了解以下主题:
- Dot1x/MAC身份验证绕行(MAB)
- 思科TrustSec(CTS)
- 安全交换协议(SXP)
- Web代理
- 防火墙概念
- DNAC
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 9300边缘和9500边界节点(交换机),带Cisco IOS®版本16.9.3
- DNAC 1.3.0.5
- ISE 2.6补丁3(两个节点 — 冗余部署)
- DNAC和ISE已集成
- 边界节点和边缘节点由DNAC调配
- SXP隧道建立从ISE(扬声器)到两个边界节点(侦听器)
- IP地址池已添加到主机自注册中
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
网络图

配置
以下是启用Allow-List Model(Default Deny IP)的步骤:
- 将交换机安全组标记(SGT)从Unknown更改为TrustSec设备。
- 禁用CTS基于角色的实施。
- 使用DNAC模板的边界和边缘交换机上的IP-SGT映射。
- 使用DNAC模板回退SGACL。
- 在trustsec矩阵中启用Allow-List(默认拒绝IP)。
- 为终端/用户创建SGT。
- 为终端/用户创建SGACL(用于生产重叠流量)。
步骤1.将交换机SGT从Unknown更改为TrustSec设备。
默认情况下,为网络设备授权配置未知SGT。将其更改为TrustSec设备SGT可提供更多可视性并帮助创建特定于交换机发起流量的SGACL。
导航到工作中心(Work Centers)> TrustSec > Trustsec策略(Trustsec Policy)>网络设备授权(Network Device Authorization),然后将其从“未知”(Unknown)更改为Trustsec_Devices。

步骤2.禁用CTS基于角色的实施。
- 一旦Allow-List模型(默认拒绝)到位,交换矩阵中的所有流量都会被阻止,其中包括底层组播和广播流量,例如中间系统到中间系统(IS-IS)、双向转发检测(BFD)和安全外壳(SSH)流量。
- 必须使用此命令配置连接到交换矩阵边缘和边框的所有TenGig端口。设置好该接口后,从此接口发起并进入此接口的流量无需强制执行。
Interface tengigabitethernet 1/0/1
no cts role-based enforcement
注意:为简单起见,可以使用DNAC中的范围模板完成此操作。否则,对于每台交换机,必须在调配过程中手动完成配置。下一个代码段显示如何通过DNAC模板进行操作。
interface range $uplink1
no cts role-based enforcement
有关DNAC模板的详细信息,请参阅本文档的此URL。
https://www.cisco.com/c/en/us/td/docs/cloud-systems-management/network-automation-and-management/dna-center/2-3-5/user_guide/b_cisco_dna_center_ug_2_3_5/b_cisco_dna_center_ug_2_3_5_chapter_01000.html
步骤3.使用DNAC模板的边界交换机和边缘交换机上的IP-SGT映射。
其理念是本地IP-SGT映射在交换机上可用,即使所有ISE都发生故障。这可以确保Underlay已建立,并且与关键资源的连接完好无损。
第一步是将关键服务绑定到SGT。例如Basic_Network_Services/1000。这些服务包括:
- 底层/ISIS子网
- ISE/DNAC
- 监控工具
- OTT情况下的AP子网
- 终端服务器
- 关键服务 — 例如IP电话
示例如下所示:
cts role-based sgt-map <ISE/DNAC Subnet> sgt 1000
cts role-based sgt-map sgt 2
cts role-based sgt-map <Wireless OTT Infra> sgt 1000
cts role-based sgt-map <Underlay OTT AP Subnet> sgt 2
cts role-based sgt-map <Monitoring Tool IP> sgt 1000
cts role-based sgt-map vrf CORP_VN <Voice Gateway and CUCM Subnet> sgt 1000
步骤4.使用DNAC模板回退SGACL。
在使用SGT创建相关SGACL之前,SGT映射没有用处,因此我们的下一步是创建一个在ISE节点关闭时充当本地回退的SGACL(当ISE服务关闭时,SXP隧道关闭,因此SGACL和IP SGT映射不会动态下载)。
此配置会推送到所有边缘和边界节点。
基于角色的回退ACL/合同:>
ip access-list role-based FALLBACK
permit ip
TrustSec设备到TrustSec设备:
cts role-based permissions from 2 to 2 FALLBACK
高于SGACL确保交换矩阵交换机和基础IP之间的通信
TrustSec设备到SGT 1000:
cts role-based permissions from 2 to 1000 FALLBACK
在SGACL之上确保交换机和接入点与ISE、DNAC、WLC和监控工具的通信
SGT 1000到TrustSec设备:
cts role-based permissions from 1000 to 2 FALLBACK
在SGACL之上确保从接入点到ISE、DNAC、WLC和监控工具到交换机的通信
步骤5.在TrustSec矩阵中启用允许列表模型(默认拒绝)。
要求是拒绝网络中的大多数流量并允许较小的范围。如果使用默认拒绝和显式允许规则,则需要更少的策略。
导航到工作中心(Work Centers)> Trustsec > TrustSec策略(TrustSec Policy)>矩阵(Matrix)>默认(Default),并在最终捕获规则中将其更改为拒绝所有。


注意:此图像表示(所有列默认显示为红色),默认拒绝已启用,并且在SGACL创建后仅允许选择性流量。
步骤6.为终端/用户创建SGT。
在SDA环境中,只能从DNAC GUI创建新的SGT,因为由于ISE/DNAC中的SGT数据库不匹配,存在大量数据库损坏案例。
要创建SGT,请登录DNAC > Policy > Group-Based Access Control > Scalable Groups > Add Groups,页面将您重定向到ISE Scalable Group,点击Add,输入SGT名称并保存。

同样的SGT通过PxGrid集成反映在DNAC中。此步骤与创建所有SGT的步骤相同。
步骤7.为终端/用户创建SGACL(用于生产重叠流量)。
在SDA环境中,只能从DNAC GUI创建新的SGT。
Policy Name: Domain_Users_Access
Contract : Permit
Enable Policy :√
Enable Bi-Directional :√
Source SGT : Domain Users (Drag from Available Security Group)
Destination SGT: Domain_Users, Basic_Network_Services, DC_Subnet, Unknown (Drag from Available Security Group)
Policy Name: RFC_Access
Contract : RFC_Access (This Contract contains limited ports)
Enable Policy :√
Enable Bi-Directional :√
Source SGT : Domain Users (Drag from Available Security Group)
Destination SGT: RFC1918 (Drag from Available Security Group)
要创建Contract,请登录DNAC,然后导航到Policy > Contracts > Add Contracts > Add required protocol,然后单击Save。

要创建合同,请登录DNAC,然后导航到Policy > Group-Based Access Control > Group-Based-Access-Policies > Add Policies > Create policy(with the given information),然后点击Save,然后Deploy。

从DNAC配置SGACL/Contract后,它会自动反映到ISE中。下面是sgt的单向矩阵视图的示例。

如图所示,SGACL矩阵是允许列表(默认拒绝)模型的示例视图。


验证
使用本部分可确认配置能否正常运行。
网络设备SGT
要验证ISE接收的交换机SGT,请运行以下命令:show cts environmental-data

上行链路端口上的实施
要验证上行链路接口上的实施,请输入以下命令:
- show run interface <uplink>
- show cts interface <uplink interface>

本地IP-SGT映射
要验证本地配置的IP-SGT映射,请输入以下命令:sh cts role-based sgt-map all

本地回退SGACL
要验证FALLBACK SGACL,请运行以下命令:sh cts role-based permission

注意:ISE推送的SGACL的优先级高于本地SGACL。
交换矩阵交换机上的允许列表(默认拒绝)启用
要验证Allow-list(Default Deny)模型,请输入以下命令:sh cts role-based permission

连接到交换矩阵的终端的SGACL
要验证从ISE下载的SGACL,请运行以下命令:sh cts role-based permission

验证DNAC创建的合同
要验证从ISE下载的SGACL,请运行以下命令:show access-list <ACL/Contract Name>


交换矩阵交换机上的底层SGACL计数器
要验证SGACL策略命中,请运行以下命令:Show cts role-based counter

故障排除
本部分提供的信息可用于对配置进行故障排除。
问题1.以防两个ISE节点都关闭。(仅当Border节点用作南北执行点时)
如果两个ISE节点均发生故障,ISE收到的IP到SGT映射在边界节点上将被删除,所有DGT都标记为未知,所有存在的用户会话将在5-6分钟后停止。
注意:此问题仅适用于sgt(xxxx)->未知(0)SGACL访问限制为DHCP、DNS和Web代理端口的情况。
解决方案:
- 创建了SGT(例如RFC1918)。
- 将RFC私有IP范围推送到两个边界。
- 限制从sgt(xxxx)—> RFC1918访问DHCP、DNS和Web代理
- 创建/修改sgacl sgt(xxxx)—> unknown,带Permit IP contract。
现在,如果两个ise节点都断开,SGACL sgt—>未知命中,且存在的会话保持不变。
问题2. IP-Phone One-Way Voice Or No Voice.
SIP上发生IP转换扩展,IP到IP之间通过RTP进行实际语音通信。CUCM和语音网关已添加到DGT_Voice。
解决方案:
- 通过允许来自IP_Phone —> IP_Phone的流量,可以启用相同的位置或东西语音通信。
- DGT RFC1918中的“允许RTP协议”范围可以允许该位置的其余部分。IP_Phone —> Unknown可以允许相同的范围。
问题3.关键VLAN端点没有网络访问权限。
DNAC使用关键VLAN为数据调配交换机,根据配置,ISE中断期间的所有新连接都将获得关键VLAN和SGT 3999。trustsec策略中的Default Deny限制新连接访问任何网络资源。
解决方案:
使用DNAC模板为所有边缘和边界交换机上的关键SGT推送SGACL
cts role-based permissions from 0 to 3999 FALLBACK
cts role-based permissions from 3999 to 0 FALLBACK
这些命令将添加到配置部分。
注意:所有命令可以合并为一个模板,并在调配过程中推送。
问题4.数据包丢弃关键VLAN。
当计算机由于ISE节点关闭而进入关键VLAN后,对于关键VLAN中的所有终端,每3-4分钟就会发生一次丢包(观察到最多10个丢包)。
观察结果:当服务器为DEAD时,身份验证计数器增加。当服务器被标记为DEAD时,客户端尝试使用PSN进行身份验证。
解决方案/解决方法:
理想情况下,如果ISE PSN节点发生故障,则终端无法发出任何身份验证请求。
将此命令推入radius server with DNAC:
automate-tester username auto-test probe-on
在交换机中使用此命令时,它会定期向RADIUS服务器发送测试身份验证消息。查找来自服务器的RADIUS响应。不需要成功消息 — 身份验证失败就足够了,因为它表明服务器处于活动状态。
Additional Information
DNAC最终模板:
interface range $uplink1
no cts role-based enforcement
! .
cts role-based sgt-map <ISE Primary IP> sgt 1102
cts role-based sgt-map <Underlay Subnet> sgt 2
cts role-based sgt-map <Wireless OTT Subnet>sgt 1102
cts role-based sgt-map <DNAC IP> sgt 1102
cts role-based sgt-map <SXP Subnet> sgt 2
cts role-based sgt-map <Network Monitoring Tool IP> sgt 1102
cts role-based sgt-map vrf CORP_VN <Voice Gateway Subnet> sgt 1102
!
ip access-list role-based FALLBACK
permit ip
!
cts role-based permissions from 2 to 1102 FALLBACK
cts role-based permissions from 1102 to 2 FALLBACK
cts role-based permissions from 2 to 2 FALLBACK
cts role-based permissions from 0 to 3999 FALLBACK
cts role-based permissions from 3999 to 0 FALLBACK
注意:边缘节点中的所有上行链路接口都未经实施而配置,并且假设上行链路仅连接到边界节点。在边界节点上,通往边缘节点的上行链路接口需要配置,无需强制执行,这必须手动完成。