此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍利用思科ACI SDN解决方案在应用内部/应用之间实现微分段和安全的方法。
Cisco 建议您了解以下主题:
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
为了实现微分段,您必须首先将网络从传统基础设施迁移到思科SDN解决方案,然后从以应用为中心的角度重新设计网络。本节介绍两个设计阶段,以便根据通过ADM工具捕获的应用程序流实现所需的分段。首先,思科ACI解决方案以网络中心模式(与现有设计相同)部署,然后转向以应用为中心的模式。
注意:您也可以将此部署模式结合使用,以便将服务从传统网络直接迁移到以应用为中心的模式。
在图中所示的示例中,EPG_VL-100包含三个应用:EP_MB、EP_IB和EP_UPI,并且共享同一个IP子网并使用VLAN 100。
图中所示的示例是三个应用(EP_MB、EP_IB和EP_UPI)的独立EPG,这些应用共享同一个IP子网并使用映射到每个EPG的不同VLAN。
在将ACI部署为以应用为中心之前,可以将ACI部署为以网络为中心,并进一步对应用进行分段。
以网络为中心的迁移方法后ACI的逻辑表示。
基于CSW/Tetration数据的分析示例:
src_ip |
consumer_scope |
dst_ip |
provider_scope |
protocol |
端口 |
192.168.34.248 |
默认值:内部:总部 |
192.168.20.81 |
PRODAPP |
TCP |
443 |
192.168.78.45 |
默认值:内部:总部 |
192.168.20.81 |
PRODAPP |
TCP |
443 |
192.168.78.16 |
默认值:内部:总部 |
192.168.20.81 |
PRODAPP |
TCP |
443 |
192.168.78.25 |
默认值:内部:总部 |
192.168.20.81 |
PRODAPP |
TCP |
443 |
192.168.44.69 |
默认值:内部:数据中心:DC:应用程序:生产:发现 |
192.168.20.81 |
PRODAPP |
UDP |
137 |
192.168.44.69 |
默认值:内部:数据中心:DC:应用程序:生产:发现 |
192.168.20.81 |
PRODAPP |
TCP |
445 |
192.168.32.173 |
默认:内部:数据中心:DC:应用:生产:DMZ |
192.168.20.81 |
PRODAPP |
TCP |
7777 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
TCP |
135 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
UDP |
137 |
192.168.44.48 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
UDP |
137 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
TCP |
443 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
TCP |
445 |
192.168.44.48 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
TCP |
445 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
TCP |
5985 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
TCP |
49154 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
TCP |
49169 |
192.168.44.29 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
TCP |
4750 |
192.168.44.30 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.81 |
PRODAPP |
TCP |
4750 |
192.168.44.21 |
默认值:内部:数据中心:DC:应用:Prod:AAA |
192.168.20.81 |
PRODAPP |
ICMP |
0 |
192.168.103.80 |
默认值:内部:数据中心:DC:应用:Prod:DHCP |
192.168.20.81 |
PRODAPP |
TCP |
7777 |
192.168.103.71 |
默认值:内部:数据中心:DC:应用:Prod:DHCP |
192.168.20.81 |
PRODAPP |
TCP |
7777 |
192.168.103.20 |
默认值:内部:数据中心:DC:应用:Prod:DHCP |
192.168.20.81 |
PRODAPP |
TCP |
7777 |
192.168.103.21 |
默认值:内部:数据中心:DC:应用:Prod:DHCP |
192.168.20.81 |
PRODAPP |
TCP |
7777 |
192.168.44.68 |
默认值:内部:数据中心:DC:应用程序:生产:发现 |
192.168.20.85 |
PRODDB |
UDP |
137 |
192.168.44.69 |
默认值:内部:数据中心:DC:应用程序:生产:发现 |
192.168.20.85 |
PRODDB |
UDP |
137 |
192.168.44.68 |
默认值:内部:数据中心:DC:应用程序:生产:发现 |
192.168.20.85 |
PRODDB |
TCP |
445 |
192.168.44.69 |
默认值:内部:数据中心:DC:应用程序:生产:发现 |
192.168.20.85 |
PRODDB |
TCP |
445 |
172.16.32.173 |
默认值:内部:数据中心:DC:应用程序:Prod:MZ |
192.168.20.85 |
PRODDB |
TCP |
1522 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
TCP |
135 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
UDP |
137 |
192.168.44.48 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
UDP |
137 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
UDP |
161 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
TCP |
445 |
192.168.44.48 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
TCP |
445 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
TCP |
5985 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
TCP |
49154 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
TCP |
60801 |
192.168.44.30 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
TCP |
4750 |
192.168.44.29 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
TCP |
4750 |
192.168.44.21 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
192.168.20.85 |
PRODDB |
ICMP |
0 |
来自CSW/Tetration的EPG建议示例:
EPG |
IP |
PRODAPP |
192.168.20.81 |
RODDB |
192.168.20.85 |
根据详细信息,必须分析合同配置的数据。已分析数据的示例:
src_ip |
consumer_scope |
consumer_EPG |
dst_IP |
provider_EPG |
protocol |
端口 |
192.168.44.69 |
默认值:内部:数据中心:DC:应用程序:Prod:发现 |
EPG_DISCOVERY |
192.168.20.81 |
EPG-PROD-APP |
UDP |
137 |
192.168.44.69 |
默认值:内部:数据中心:DC:应用程序:Prod:发现 |
EPG_DISCOVERY |
192.168.20.81 |
EPG-PROD-APP |
TCP |
445 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.81 |
EPG-PROD-APP |
TCP |
135 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.81 |
EPG-PROD-APP |
UDP |
137 |
192.168.44.48 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.81 |
EPG-PROD-APP |
TCP |
443 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.81 |
EPG-PROD-APP |
TCP |
445 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.81 |
EPG-PROD-APP |
TCP |
5985 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.81 |
EPG-PROD-APP |
TCP |
49154 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.81 |
EPG-PROD-APP |
TCP |
49169 |
192.168.44.48 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.81 |
EPG-PROD-APP |
TCP |
4750 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.81 |
EPG-PROD-APP |
ICMP |
0 |
192.168.103.21 |
默认值:内部:数据中心:DC:应用:Prod:DHCP |
EPG_VL_157 |
192.168.20.81 |
EPG-PROD-APP |
TCP |
7777 |
192.168.44.68 |
默认值:内部:数据中心:DC:应用程序:Prod:发现 |
EPG_DISCOVERY |
192.168.20.85 |
EPG-PROD-DB |
UDP |
137 |
192.168.44.68 |
默认值:内部:数据中心:DC:应用程序:Prod:发现 |
EPG_DISCOVERY |
192.168.20.85 |
EPG-PROD-DB |
TCP |
445 |
192.168.44.69 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.85 |
EPG-PROD-DB |
TCP |
135 |
192.168.44.69 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.85 |
EPG-PROD-DB |
UDP |
137 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.85 |
EPG-PROD-DB |
UDP |
161 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.85 |
EPG-PROD-DB |
TCP |
445 |
192.168.44.48 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.85 |
EPG-PROD-DB |
TCP |
5985 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.85 |
EPG-PROD-DB |
TCP |
49154 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.85 |
EPG-PROD-DB |
TCP |
60801 |
192.168.44.48 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.85 |
EPG-PROD-DB |
TCP |
4750 |
192.168.44.47 |
默认值:内部:数据中心:DC:应用程序:生产:监控 |
EPG_MONITORING |
192.168.20.85 |
EPG-PROD-DB |
ICMP |
0 |
192.168.48.45 |
默认值:内部:数据中心:DC:应用程序:生产:备份 |
EPG_VL_71 |
192.168.20.85 |
EPG-PROD-DB |
TCP |
5555 |
根据IP地址,提及消费者和提供商EPG。必须从此数据中排除重复的条目和北-南流量(例如Internet、DC间、区域间流量等)。有些EPG使用VLAN命名,例如EPG_VL_157、EPG_VL_71等。这意味着在以应用为中心的迁移过程中,这些服务器不会移至目标EPG。因此,要使用EPG的当前映射配置它们之间的合同。一旦将这些服务器迁移到目标EPG,作为清理过程的一部分,必须删除这些现有合同,并且必须将相应的合同添加到目标EPG中。
EPG之间的通信需要合同。 本节将介绍合同配置过程中的实施流程。
1. 最初,VzAny合同必须应用于虚拟路由和转发(VRF)级别。
2. 根据CSW/Tetration数据,必须创建特定的EPG合同。
3. 将Deny_All规则配置为低优先级,以便VzAny合同不允许未指定的流量通信。对于尚未作为以应用为中心的应用进行迁移的应用,通信通过VzAny合同进行。
4. 完成所有迁移后,从VRF中删除VzAny合同。
分析CSW/Tetration数据并将其转换为适当的ACI对象是非常关键的一步。因此,在初步分析之后,有必要与有关方面讨论我们的意见,并再次得到确认。此外,在实施过程中,必须仔细考虑以确保所有流量都按预期得到允许。对于故障排除,您可以在合同中启用日志记录,也可以使用GUI界面或CLI跟踪特定端口上的任何丢包。
leaf# show logging ip access-list internal packet-log deny
[ 2019年10月1日星期二10:34:37 377572 usecs]:CName:Prod1:VRF1(VXLAN: 2654209),VlanType:未知,Vlan-Id:0,SMac:0x000c0c0c0c0c,DMac:0x000c0c0c0c0c,SIP:192.16.11,DIP:192.16 .22.11,端口:0,端口:0,源接口:隧道7,端口:1,PktLen:98
[ 2019年10月1日星期二10:34:36 377731 usecs]:CName:Prod1:VRF1(VXLAN: 2654209),VlanType:未知,Vlan-Id:0,SMac:0x000c0c0c0c0c,DMac:0x000c0c0c0c0c,SIP:192.16.11,DIP:192.16 .22.11,端口:0,端口:0,源接口:隧道7,端口:1,PktLen:98
一种设备上Python脚本,生成从ID执行名称查找时关联分区规则、过滤器和命中统计数据的输出。此脚本非常有用,因为它采用多步骤流程,并将其转换为可过滤到特定EPG/VRF或其他合同相关值的单个命令。
leaf# contract_parser.py
密钥:
[prio:RuleId] [vrf:{str}]操作协议src-epg [src-l4] dst-epg [dst-l4] [flags][合同:{str}] [hit=count]
[7:4131] [vrf:common:default] permit ip tcp tn-Prod1/ap-Services/epg-NTP(16410) tn-Prod1/l3out-L3Out1/instP-extEpg(25) eq 123 [contract:uni/tn-Prod1/brc-external_to_ntp] [hit=0]
[7:4156] [vrf:common:default] permit ip tcp tn-Prod1/l3out-L3Out1/instP-extEpg(25) eq 123 tn-Prod1/ap-Services/epg-NTP(16410) [contract:uni/tn-Prod1/brc-external_to_ntp] [hit=0]
[12:4169] [vrf:common:default] deny,log any tn-Prod1/l3out-L3Out1/instP-extEpg(25) epg:any [contract:implicit] [hit=0]
[16:4167] [vrf:common:default] permit any epg:any tn-Prod1/bd-Services(32789) [contract:implicit] [hit=0]
也可以使用路径Tenant > Tenant_Name > Operational > Flows/Packets在GUI中显示数据包丢弃。
在应用EPG之间合同时的建议:
1. 从策略映射方面来说,ACI不能被视为防火墙,否则可能导致三态内容可寻址存储器(TCAM)使用率较高。
2. 使用一系列过滤器,而不使用大量的单个过滤器。
3. 任何合同使用的过滤器范围不得超过四个。可消耗高溢出三态内容可寻址存储器(OTCAM)。
4. 如果任何EPG需要大量端口,请尝试使用“permit any”合同。
5. 作为解决方案的一部分,如果您预计会部署大量合同,请考虑相应地修改转发规模配置文件(FSP)。
6. 在部署大量合同之前,请使用以下公式计算TCAM:提供EPG的数量*消费者EPG的数量*规则数量。
7. 可以使用以下路径在ACI UI上检查现有TCAM大小:操作>容量控制面板>枝叶容量或
LEAF-101# vsh_lc
module-1# show platform internal hal health-stats | grep _count
mcast_count:0
max_mcast_count:8192
policy_count:221
max_policy_count:65536
policy_otcam_count:322
max_policy_otcam_count:8192
policy_label_count:0
max_policy_label_count:0
1. 大量的合同可能导致枝叶交换机的TCAM使用率较高。
因此,当完成大量配置部署时,主动跟踪TCAM利用率并预估TCAM价值增加非常重要。最好使用maker检查器进程,以确保推送的配置正确。此外,建议使用适当的计划维护时段执行更改。
2. 一次推送一次合同即可执行批量配置(超过50k TCAM)可能会导致策略管理器内存崩溃。
建议以较小的块推送配置,尤其是当配置较大时。这为合同配置提供了一种系统化和无风险的方法。此外,每次推送配置时,测量TCAM值的增量。
3. 如果应用在CSW/Tetration部署时间间隔(3-4周)内无法通信,则不会捕获流量。
为了避免这种情况,最佳方法是在变更活动之前从应用所有者处重新验证CSW/Tetration数据。此外,在实施后,请验证日志中是否有任何故障命中计数。
1. 所有申请都根据中央银行准则进行了划分和限制。
2. 迁移到以应用为中心的部署后,应用间通信的可视性。
3. 实现了应用的微分段。
4. 应用流的一个视图。在一个应用配置文件中,EPG根据流量映射,例如应用配置文件AP_Banking,以便具有三个EPG(EPG_Banking_WEB、EPG_Banking_APP和EPG_Banking_DB),而不管它们的IP子网如何。
4. 应用程序流的一个视图使故障排除更加容易。
5. 基础设施更安全。
6.实施和未来扩展的结构化方法。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
14-Oct-2024
|
初始版本 |