NSX从入门到精通
NSX从入门到精通(1):NSX介绍-系统工程师篇
觉得有必要来一个从入门到精通,从第一次接触NSX到现在已经有三年时间,还记得我第一次自觉学习NSX的时候,竟然翻到了一年前听NSX讲堂的笔记,那些内容足够深足够细,然而我都不记得了,原因就是在于没有体系的从基础来了解这个产品。不了解一个产品的背景,单纯了解产品的卖点和知识点是做不好产品的。因此,第一篇,简单介绍下NSX。
首先,假定我的听众有两种类型,一种是做过服务器虚拟化的系统工程师,知道vSphere是什么;另一种,是网络攻城师,知道路由交换防火墙这些东西。如果是第一种,接着看就行,如果是第二种,可以补充看看网工篇,里面会与虚拟化网络的一些介绍
For 系统工程师:
如果你自己装过vSphere,应该了解过vSphere的虚拟交换机,也可能接触过物理交换机。在虚拟化中,无论是虚拟交换机还是物理交换机,其作用几乎只是做了“通道”,此通道从虚拟机的虚拟网卡-->vSphere主机的虚拟交换机-->主机的物理网卡-->物理交换机-->核心交换机-->客户的其他网络,vSphere vSwitch配置非常简单,两三步就可以创建好,对应的物理网络要求也很简单,一个服务器多个网卡统统接到交换机,所有端口配置为Trunk即可。
我们再看看真实世界的物理交换机,有哪些常见功能:
1、交换:同网段数据包的转发
2、生成树: 受限于以太网的设计“缺陷”。如果两个交换机A和B,中间接两条链路,配置一模一样,A上接了一个客户端C,C发了一个广播包给A,A会将此报文发给B,此时B的操作是在其所有其他端口上再转发此报文,也就是数据包又会发回给A。这个过程叫环路。生成树是来避免交换环路的,其工作原理是屏蔽掉多余的链路,让一个报文只有一条路可以走。
3、端口聚合:把两个物理接口组成一个逻辑的接口去用,逻辑接口带宽是物理接口速率之和。这样在某些时候可以避免使用生成树。
端口聚合又分静态聚合和动态聚合(LACP),每种聚合都有流量负载的算法,每个厂商对静态聚合和动态聚合的支持不一定统一。
4、VLAN:VLAN相当于把一个物理交换机拆成了多个交换机使用。如果没有VLAN,假如A和B两个团队共用一个交换机,那么A发的广播包B可以收到,B发的A也可以收到,这样很不安全。VLAN就可以将A与B简单隔离起来。VLAN是需要每个设备都配置的。
5、设备堆叠:为了简化管理,可以将多个交换机逻辑堆叠在一起,相当于将两个独立的大脑合并成为一个大脑,这样管理方便,两台交换机之间也不用担心环路问题。比较重要的是,做了堆叠,两两设备互联时架构可以变得很简单。
以上是交换机必备的基础技能,有没有觉得已经挺复杂了,网络工程师很多时候面对的就是这些,这还不算安全。
6、MAC 地址绑定(Port Security):目的是将物理端口和所接终端的MAC地址绑定起来,防止别人私接设备。但是破解此问题很简单,使用工具改下私接PC的MAC就可以正常入网了。
7、SpoofGuard :利用 DHCP + ARP inspection等手段,实现 IP 地址到 MAC 地址的绑定。主要是防止用户私改IP。
8、ACL:访问控制策略,主要用于控制接口上能通讯的报文,17年勒索软件爆发,很多企业都在交换机所有接用户的接口上加了ACL来封堵某端口。
9、Private VLAN(或者Protected Port):可以让同VLAN的多个终端之间不能通,但是到外部网络通,做到横向隔离
其他高级功能:
10、Strom Control:用于限制接口上的广播包,组播包,通常可以用来防止恶意的广播报文攻击。
11、SPAN:将一个端口的流量镜像到流量监控设备,用于分析流量
以上大概是所有物理交换机常见的功能,实际在虚拟化中,vSwitch 能实现的有:1、3、4、11
不需要的有:2、5、6
需要但没有的:7、8、9、10
实际上,7、8、9、10都是与安全相关的需求,在有了虚拟化之后,一台服务器的一个接口会承载很多虚拟机,因此外部交换机的安全特性不能用于虚拟化,这块一直是空白!!
现在NSX就可以解决以上提到的遗留问题,而且是以一种优雅的方式:
对于8和9,NSX的微分段功能就能做到任意虚拟机到任意位置的访问控制。
策略配置就像下图一样简单:
而如果要用交换机做这样的配置,需要在每个接口下写至少这么多命令:
对于7,NSX 自带Spoofguard功能,不需要借助任何其他功能,直接开启绑定就行。
对于10,NSX什么都不用配,装上就可以做到广播抑制。
基本上,NSX的基本安全功能就是如此简单,在这个基础上,可以延展出很多场景,和其他很多产品结合,这个我们以后再说。
NSX从入门到精通(2):NSX介绍-网络工程师篇
接上一篇NSX从入门到精通(1):NSX介绍-系统工程师篇,此章节主要补充介绍下vSphere,通过上一篇大家可能发现,NSX更偏向于一个网络产品,未来如果要做复杂的环境,少不了网络工程师的参与。这里小提一下,其实现在行业的发展趋势是知识变得越来越混杂,如果做数据中心的业务,关于数据中心的四大件:计算、网络、存储、应用都需要了解,不一定精通,但四者之间如何共存如何设计,还是要清楚的。
For 网络工程师:
网络工程师,应该清楚Access口和Trunk口的区别,简单说Access口接终端、Trunk口接交换机,面对于服务器,很多人第一直觉是配成Access口,但这在虚拟化的世界里,是不推荐的配置,下面从这个角度谈谈虚拟化网络。
首先,什么是虚拟化?通常我们提到的虚拟化是指计算虚拟化,计算指的就是计算机,这个计算机可以是我们的笔记本,或者机房的X86服务器。
在虚拟化之前,一个计算机上面只能运行一个操作系统,一个操作系统上运行很多应用,这是大部分办公计算机的场景,在商业服务器场景中,这样的配置有以下一些问题:
1、大家都知道电脑软件装多了软件,电脑可能会变卡,问题就是运行的程序太多,资源争夺。
2、很多应用程序共享一个操作系统,应用之间没有任何隔离手段。举个简单的例子,你在电脑里装了网银客户端,我装了一个网络抓包工具,那这时候我可以通过我的抓包工具看到你的任何报文。
3、操作系统本身会存在漏洞,其他应用也会有漏洞,抛开应用间隔离不说,一旦操作系统中毒,所有应用不可幸免。
4、解决1、2、3很简单,每个应用用一个操作系统,每个操作系统用一个硬件。但对于企业,硬件扩容远跟不上软件的扩展要求,成本、空间上也不允许每个应用用一套独立的硬件。
5、即使解决了1、2、3、4,如果硬件坏了怎么办?硬件故障上面运行的应用必然会宕机,解决办法就是将应用直接开发成集群形式,而现实是开发集群式的应用成本会很高很高。
为了解决以上5个问题,有了计算虚拟化,简单来说就是在服务器上安装“瘦操作系统”,此操作系统只用于资源的调度分配,这个操作系统有自己的管理界面,在这个界面里,你可以创建虚拟机(虚拟机和物理机可以做对应,物理机是真实能看到的计算机,虚拟机则是被模拟出来的,真实看不到的计算机),给这个虚拟机安装操作系统,然后再操作系统里装软件。
有了计算虚拟化:
1、提升CPU、内存的利用率,降低硬件投资。如果硬件上直接装操作系统再装应用,拿Web服务器为例,很可能CPU、内存占用不超过10%,90%的资源处于空闲;在虚拟化之后,每个硬件上可以运行8个操作系统,CPU、内存占用达到80%,只有20%资源剩余。
2、硬件利用率高了,空间占用就小了,对机房制冷、耗电也会减小,降低运营成本。
3、做到虚拟机和虚拟机之间的隔离。在传统的计算虚拟化之上,可以做到虚拟机存储、CPU和内存的隔离,网络还是个空缺。
4、按照业务重要性分配不同的优先级,保证重要业务稳定运行。
5、动态按需分配资源。比如一个业务刚上线需要的资源很小,但一段时间后用户剧增,处理性能跟不上,那直接通过虚拟化增加内存和CPU即可。
6、在硬件和虚拟机之间多了一层后,虚拟机的操作系统可以无需关心底层硬件的兼容性(比如 Windows XP 很难在新电脑上装成功,但有了虚拟化随便装),因为虚拟化有一个很重要的作用就是将硬件做了硬件标准化。
7、因为上述的标准化,虚拟机理论上就可以在任意硬件上运行,虚拟化还提供一个叫迁移的功能,可以在线将一台虚拟机从主机A迁移到主机B,业务不会中断(VMware 称之为 vMotion)。
8、虚拟化之后,多台硬件设备可以组成一个集群,有了集群,虚拟机可以动态在多个主机之间迁移,保证集群中硬件的使用率相对均衡(VMware 称之为 DRS)。
9、有了集群,虚拟机能够在其所属主机故障后,在集群其他主机上自动开机,此时业务有中断,但是中断时间在分钟级别(VMware 称之为 HA)。
10、统一管理,一个管理界面,可以管理成百上千个业务。
11、如果架构合理,除非硬件坏了需要更换,否则不用进机房,在电脑前就能完成任何故障处理。
一开始提到传统架构的5个问题,然而虚拟化带来了十几项易用的功能,这就是虚拟化可以风云十几年的原因,因为很好用!
细心的你可能注意到了第三项,网络的隔离是个空缺。
通常,交换机和物理服务器对接,端口只需要两个配置:
1、设为Access口,将其放在某 VLAN
2、如果一个网口带宽不够,或者为了保证冗余,两个接口做一个端口聚合
在虚拟化中,这样配是不行的,因为一台主机上可能会同时存在VLAN 10、11、12的虚拟机,物理交换机对应接口只能配置为Trunk,放行VLAN10、11、12(为了简便以及未来扩展,最好不要在Trunk去限制VLAN):
在这样的结构里,虚拟机发的包必须有VLAN标签才能正常让交换机转发,这个VLAN标签就由虚拟化里的虚拟交换机来打了。
普通交换机有接终端的接口(一般叫Edge边缘接口),有接其他交换机的(一般叫互联口)。
类似的,虚拟交换机有接虚拟机的接口(Internel,接虚拟机的虚拟网卡),有接物理交换机的接口(Uplink,关联到物理服务器的物理网卡,再连接到物理交换机)。配置VLAN方式略有不同,交换机配置VLAN是直接在接口上敲VLAN xxx;虚拟交换机是先创建一个端口组,给这个端口组关联VLAN,然后再将虚拟机关联给这个端口组。
这里着重提一下,虚拟交换机是不能和其他虚拟交换机直连的,或者理解为虚拟交换机就是虚拟机到物理交换机的一个桥,只做通道用。不能相互连,也就意味着没有传统交换里的二层环路,也就不需要生成树协议。
如上图所示,服务器有两个网卡,没做任何特殊的配置,多个虚拟机的流量自动从两个网卡传输,简言之,虚拟化里,没有端口聚合也可以实现负载均衡(暂且记住这点,不要每个和服务器对接的环境都去做端口聚合,未来会展开讲这部分设计)。
说了这么多,其实想表达,在虚拟化这么长时间里,计算虚拟化能有那么多的特性和优点,而网络层面却只做了个“桥”,严重依赖于物理网络设备提供的特性,没有安全功能。NSX的推出,彻底改变了这一点,原来的网络是一个桥,NSX之后的网络融合了安全、虚拟二层、三层网络,兼容现有网络,支持各种标准网络协议。
以前虚拟机需要网络功能,在硬件交换机、路由器、防火墙、负载均衡、IPS、WAF 挨个去配置,去串接,架构无比复杂,有时候还达不到想要的效果(颗粒度不够细)。
NSX之后,自身提供基础功能(路由交换安全),提供接口引入高级服务(NGFW、IPS、防病毒),重点是,以上产品可以无缝集成起来,实现网络和安全的联动。
那既然网络都虚拟化了,还要硬件网络做什么?
1、NSX 仅用于数据中心,传统园区网络的一大部分是不去管的。
2、NSX 需要硬件交换机来做传输通道,只是将其功能弱化,而不是替代。
对于技术人员来说:NSX 也需要网络架构师来设计网络呀,发挥才能的时候到了。
正如计算虚拟化对硬件服务器的改造一样,NSX是对数据中心网络的改造。计算虚拟化解决了5个问题,还增加了几十上百个优化,NSX在这基础上,又带来超级多的便利。
NSX从入门到精通(3):浅谈现代化数据中心架构
以一个案例开始:
听众中一定有人听过“割接”一词,最早这一词用在电信机房,要做新老设备更换时,为保证切换切换最短,会让新旧设备一起并行工作,然后在某个风清月圆的夜晚,大家拿起剪刀一起剪掉旧设备的线,割接完成后,系统或业务通过手动或自动切换到新设备上,再拆掉旧设备,这整个过程就是割接。
到现在,割接过程和上面大同小异,但有些人可以做到很优雅的割接,有些人只能半夜12点准时开始,早上8点结束。两者最重要差别就是“割接的操作时间不一样”,这个背后的因素可能是架构复杂,或者设备众多,或者连线过多,或者切换方案不平滑。
有些听众此时会微微一笑:因为我是卖服务器的,服务器到场,预装好了虚拟化管理程序,IP地址规划在项目一期已经做好,配好IP,接入网络,加入集群,测试基本功能,撤人。
有些听众回忆起了痛苦的过去:提前很多天确定割接方案,利用旧设备配置编写脚本,配置新设备,测试功能;割接当天下午到客户现场,割接前准备,备份旧设备配置,到点后割接,拔线,装新设备,插线,测试连通性,测试业务。中途无故障两三个小时,有故障排查,排查不出来回退,轻松到第二天8点。
区别两张图片就可以表现出来:网络的割接远比服务器的复杂,接线更多,且很多时候是原位替换,很难做到平滑。
再往细里说:服务器借助于服务器虚拟化,单台主机可以在线进入维护模式,直接进行设备更换;可以在线添加服务器,扩容。交换机一方面做不到更换前后设备配置一致,一方面做不到在线下电。
解决问题的关键就是“标准化”。
VMware在13年提出SDDC(软件定义数据中心)的概念,旨在通过一层软件来做到数据中心各种资源的标准化。在软件层之上,是最终业务系统(VM),在软件层之下,是各式各样冰冷的硬件设备。标准化后,上层业务可以不用关心底层硬件,在任意地方运行。
2017年,SDDC的概念发展为现代化数据中心:
这样的图景不是天方夜谭,Google早已步入这样的阶段。
标准化包含的不是几个简单的产品,将一些硬件做个标准化,还包含架构的标准化,服务的标准化,操作流程的标准化。
硬件的标准化:
1、VMware vSphere:服务器虚拟化老大,将计算资源做到了标准化。
2、vSAN:将每台服务器的本地硬盘组成一个逻辑的存储池,使用软件策略为业务提供不同的存储容量、不同的存储服务、不同的保护级别。vSAN为上层虚拟机提供一致的存储,底层可以是任意厂商的服务器,搭载任意品牌的硬盘(同vSphere一样,有兼容列表)。
3、NSX:为虚拟机提供一致的网络服务,包括常见的交换、路由和安全,极大简化了物理网络的架构和配置。
4、带外管理网络:这是很多数据中心忽略的地方,VMware的软件让80%的操作通过远程Client进行;19%则是硬件本身的管理,例如排错,重启,更新固件;剩下1%才是硬件真的故障,去机房进行硬件更换。如果建立好带外管理网络,将所有交换机、服务器带外管理网络建立起来,那有99%的工作都可以通过远程完成,不需要去机房。
架构的标准化:
架构包含虚拟化层之上的“虚”的规划,和虚拟化层之下的“实”的规划。
具体到技术:vSphere的规划、IP地址规划、命名规划、虚拟机规划,软件层面的设计追求完整可扩展。
以及:物理设备带外管理网络规划、接线原则的规划、功能配置的规划,硬件的设计追求简而稳固。
以上完全可以用一张表格实现,在同类项目中直接套用。
下图为双中心VMware虚拟化的网络规划及硬件标准接线图。
服务的标准化:
IT 系统的最终目的是给用户提供服务,提供服务的方式有两种,被动和主动。
在做完以上基础架构的标准化之后,终归要给业务部门或者最终用户提供服务,IT 管理员类似于服务供给者,在没有服务标准化之前,业务部门要什么我们提供什么,长久下来业务逻辑千疮百孔,基础架构管理员也无能为力了(比如我遇见过一个虚拟机使用了64G内存,24颗vCPU)。
如果在最初,就定义好标准,未来用户只能选择“安全区”内的资源和服务,那一方面可以提高服务的供给速度,降低IT运维人员的工作负担,一方面也可以很好地进行监控和控制,避免各种不合理发生。
这实际是很多云计算平台在做的,云计算包含以下关键词:
1、量化:量化才能决定最小单位,决定如何分配资源
2、运算资源:CPU,内存,存储
3、网络:有了网络才能到达每一个地方
4、界面:有了界面才能提供通用性服务
5、服务:将资源加壳变成服务的模样,方便计价和计量
6、用户:需要服务的对象
VMware SDDC做到了前三项,云管理平台做4和5,用户一直在那里。
下图为VMware vRealize 蓝图界面,在蓝图中可以将计算、存储、网络、安全、操作系统、应用、业务逻辑等资源进行标准化模板定制。
操作流程的标准化:
操作流程标准化有一部分包含在服务标准化中,服务制定包含了要提供的资源以及如何获取这些服务(也就是流程)。
另一部分是对运维人员而言的标准化流程,虚拟化固然好,但前提是正常操作。如果在不将主机进入维护模式直接下点,就是存在一些风险。
在操作流程标准化里,包含日常运维的内容,每个不同的组件都有自己特定的维护方式;需要有设备更换的流程;需要有故障排除的流程;需要有合理的升级流程。
下图为一份VMware组件升级顺序
以上,做完各种标准化之后,剩余一个不近不远的问题:新架构的支持!
最近几年常谈的关键词是:容器、人工智能、区块链、混合云。
其中真正需要基础架构做出适配的只有容器和混合云,而现在的 VMware,都是支持的。
NSX从入门到精通(4):NSX 带来的安全转型-上篇
从此话题开始,会依次介绍一些细节或与具体场景相关的NSX知识。有些话题目前写时机还不成熟,所以未来文章的序号会有跳跃性,为一些话题预留空间。
安全是一个比较大的话题,从不同角度看有多种安全。以一台个人电脑为例,如何才能保证电脑的安全?
首先要清楚安全的最终目的是什么。对于个人用户来说,最重要的是数据,比如珍贵的文稿,珍贵的照片。
普通电脑的所有资料只是保存在单个硬盘之中,保证数据安全的第一步就是避免单硬盘的故障,最简单的解决办法是两个硬盘保存同样的数据。在企业环境中,同样地,任何的业务系统首先会做到存储层面的多设备冗余,避免物理设备的单点故障。
但是第一种办法有个缺陷,假如电脑丢了,或者误操作删除了文件,普通用户很难去找回数据,那这时候有一个移动硬盘备份就很好,定期备份重要数据,如果误删除,使用历史备份数据恢复,也不至于损失太大。企业环境里,会有专业的备份系统支撑,相比移动硬盘,设备可靠性更高,且可以近乎实时的备份数据。
前两种办法做了数据层面的安全,但只做了防丢失,而很多时候重要的数据也要求防窃取。
曾经去一些涉密单位做项目,经常看到他们屏幕保护程序上会有动画演示,要求所有终端不接U盘,不连互联网。还说不要将涉密U盘插在家用电脑上,即使断网也不行,因为家用电脑上可能存在恶意软件,在电脑联网后,恶意软件会将涉密文件上传到互联网。
上面演示的是一种最基本的数据泄露的途径。围绕上述场景有几个关键字:恶意软件、互联网、人员。
企业为了解决这些问题需要使用各种各样的手段。为了避免恶意软件,需要在每个终端上部署防病毒软件;为了避免恶意软件通过网络进入终端,需要在终端和互联网之间加一道防火墙;通过技术手段或者行政手段,要求人员禁用移动存储设备传输涉密文件,禁止将涉密文件传输到互联网。
以上是最基础的防护手段,从原理上说,防病毒软件需要通过病毒特征库来杀毒,而特征库是基于病毒样本,也就是说防病毒只能做到“事后”安全,为了将杀毒软件作用发挥到最大,需要在第一时间更新病毒库。
防火墙分传统防火墙和下一代防火墙(NGFW)。传统防火墙只做基础的阻断,让流量按照我们预期放行或者阻止,其策略形式为:电脑A禁止访问服务器B;NGFW在传统防火墙的基础上,添加了一些针对应用、用户或内容的访问控制,其策略可以是:用户A不能将文件B发送到互联网,或者用户A不能访问优酷等视频网站。
针对人员,普通企业的管控可能为0;或者基础防护:每台电脑装防病毒软件;或者高级防护,每台电脑里再装文件加密软件,文件在其他地方被打开时要求密码;或者再高级,员工使用Flex或者VDI解决方案,所有与企业相关的数据都在数据中心统一保管,通过技术手段禁止员工进行敏感数据的传播。
下图为标准VDI(虚拟桌面)解决方案示意图:
现实很残酷,现在更多的安全事故都发生在“允许的范围内”,比如很早就有的针对网站漏洞的注入×××,简单说就是×××人员利用合法的访问权限,利用一些网页程序自身的开发漏洞进行的×××。注入×××和WannaCry,可以同归为“利用应用的漏洞来发起的×××”。
除了此×××,还有针对用户的社会工程学×××,比如收集与某个人相关的个人信息,如手机号、生日、或其他网站登录时用的一些登录凭据(曾经CDSN暴库后有大量登陆信息),通过各种各样的信息发起对个人的×××,×××后的最终对象可能是电脑、互联网账户等,不过这类×××主要面向与人,且×××成本比较高,对于企业来说,防护的方法或许就是强制要求每个员工定期修改强密码以及用动态登陆口令替代固定密码登陆。
以前也遇到过 iPhone 被神奇重置,开机后要求输入密码,而与 iPhone 关联的 Apple账号已经无法访问。这可能是针对于个人的社会工程学×××,或许可能只是在某个公众场所连了“错误的WiFi” ,或许是装了不该装的App。其实被重置还好,要是iCloud里的数据丢失才是大事。现在很多企业允许 BYOD(Bring Your Own Device),更多员工也在使用移动设备进行办公,处理企业敏感信息,在这样的环境下,移动终端的安全也是未来必须关注的。
从以上的种种介绍,可能有人注意到了,安全风险在向更精细化的方向走,而这时候,安全防护也要向更精细化走。
NSX 的安全,正是为了达成这一目标。
文章戛然而止,因为写完发现篇幅过长,故拆分成了两篇,下一篇介绍 NSX 在安全方面的一些变革、一些小场景。