前段时间在公司的测试环境玩了玩cisco ACI,觉得挺有意思的,一直想写点测试的感受,但是一直比较忙,最近抽了几个晚上梳理了一下,分享下这次有趣的测试。
1、关于ACI网络架构介绍
我自己画了一个比较典型ACI的组网,简单说下几个比较重要的组件:
1.1 思科应用策略基础设施控制器(APIC):
APIC是Cisco ACI交换矩阵、策略实施和健康状态监控实现自动化和管理的统一点。主要负责的任务包括交换矩阵激活、交换机固件维护、网络策略配置和实例化。以上这些功能的实现都是依靠着南向的Opflex协议(这个协议cisco已经提交IETF了,但是目前并没有其他厂商愿意跟进,所以这个协议目前基本上可以看成cisco的私有协议)。此外,APIC针对可编程性和集中管理,重新进行了设计。Cisco APIC通过XML和JSON提供北向API,并同时提供使用此API的命令行界面(CLI)和GUI,用以管理交换矩阵。 此系统还提供开源南向API,使第三方网络服务供应商可以通过Cisco APIC对供应的设备实施策略控制。
1.2 VXLAN交换矩阵
ACI的网络分为underlay和overlay两个层面。
先说说underlay网络,underlay网络就是spine和leaf之间的底层ip网络。由于ACI的overlay网络采用了VXLAN技术(关于VXLAN技术我就不多讲了,之前文章中也有提到),这样一来underlay网络相对比较固定,仅仅需要提供ip可达。因此当物理的网络设备之间的线路相互连接后,控制器会自动向各个网络节点自动推送配置,完成underlay网络的搭建。这个过程几乎是自动实现的,当一台新的交换机上线后,只要将接入当前的fabric后,即可完成所有的网络配置。值得一提的是Underlay网络配置完全是黑盒的,登陆到交换机上完全看不明白配置,据cisco工程师说目前还没开放底层网络的Troubleshooting,经过我的研究,感觉上比较像ISIS和BGP组成的一个三层组网,通过ECMP进行负载均衡,由于underlay网络是一个三层网络,所以横向扩展非常容易,适合超大型的数据中心。而ACI网络中物理交换机上线基本做到了即插即用,使得网络扩容变得更加敏捷。
再来说说overlay网络,ACI网络中主机接入的leaf交换机都是vtep,所以应用的网络访问逻辑上都是通过overlay网络来完成的,所以overlay网络实际上是和物理的网络设备解耦的,overlay网络可以完全无视物理网络,根据应用灵活控制。
特别说一下,ACI是典型的硬件overlay的解决方案,Cisco由于是硬件厂商,所以它负责给VXLAN封装的VTEP全是在物理交换机(Leaf节点)上的,所以ACI解决方案中支持任意的虚拟化技术,但是相对的硬件交换机也就被思科的ACI交换机绑死。这恰好和软件overlay的解决方案相反,软件overlay方案中,硬件交换机可以随意选择,只要三层互通即可,而软件交换机必须采用虚拟化厂商的产品,比如Vmware NSX。
1.3 以应用为中心的网络
传统网络运维模式,在传统的运维过程中,开发人员先会提出一系列的应用需求,然后由网管转换为具体的网络配置,这个过程中由于开发人员不清楚网络结构、网络运维不清楚应用架构,所以很容易造成沟通障碍,严重影响应用的敏捷、可靠部署。而在Cisco ACI框架中,颠覆旧有的网络运维模式,将网络语言直接转化在应用逻辑之中,由应用指导网络行为,无需再配置任何网络设备,只需要通过控制器或者北向的应用就可以简单的完成应用网络环境的搭建。