今天我们来聊一聊VMware NSX的分布式防火墙DFW,本文提及的NSX,均指NSX for vSphere,即NSX-V,有关NSX-T的讨论,将在后续推出。

了解过NSX的朋友一定很清楚,NSX的管理平面、控制平面和转发平面是相互独立分离的。对于管理平面,大家比较熟悉的是vCenter和NSX Manager;对于vsfwd,可能就比较陌生。那么,这是个什么组件?与我们讨论的NSX分布式防火墙又有什么千丝万缕的联系呢?

在部署NSX解决方案的时候,其中有一个关键的步骤,叫Host Preparation主机准备。在这个阶段,NSX Manager通过vCenter的ESX Agent Manager Service(EAM),以集群为单位,在每一台ESXi主机上安装一个叫做esx-nsxv的vSphere Installation Bundle(VIB)。

我们可以通过以下命令在ESXi安装的VIB列表中找到这条记录:# esxcli software vib list

这个小小的VIB会在ESXi的Kernal Space内核空间运行三个非常关键的模块,其中的vsip module就和我们今天所讲述的NSX DFW息息相关。

我们可以通过以下命令找到这个加载并运行的模块:# vmkload_mod -l

除此以外,esx-nsxv还会在ESXi的User Space用户空间运行一个名为vShield-Stateful-Firewall的服务,这就是我们所说的vsfwd。

我们可以通过以下命令验证这个服务是否运行:# /etc/init.d/vShield-Stateful-Firewall status

在了解了上述内容后,我们再回过头来看NSX的DFW原理图。

在ESXi用户空间运行的vsfwd,会和NSX Manager的TCP5671端口保持连接,用以接受NSX Manager下发的分布式防火墙规则。vsfwd通过Virtual Machine Communication Interface(VMCI),与在ESXi内核空间运行的vsip module通信,vsip module会将接收到的分布式防火墙规则下发到对应虚拟机的虚拟网卡vnic上。

在VM虚拟机的虚拟网卡vnic和上联的虚拟机端口组之间,有一条隐性的链路,叫IO Chain。这条IO链上有很多插槽,其中Slot0-3,Slot12-15是VMware预留,Slot4-11提供给合作伙伴,NSX的分布式防火墙就作用在Slot2插槽

举个简单的例子,当流量从VM向外转发时,会首先经过IO Chain的Slot2插槽,此时vsip module会根据应用在vnic上的规则进行匹配和控制,如果规则禁止转发,那么流量根本不会经过ESXi主机的上联物理网卡vmnic到达物理网络。由于IO链一直存在,除非特殊情况,否则虚拟机的迁移不会影响分布式防火墙生效。VMware NSX的安全无处不在,就是通过这种方式实现的。

下面,我们做一个简单的实验,来验证上文所说的内容。

1.验证ESXi的vsfwd,与NSX Manager的TCP5671端口保持连接

# esxcli network ip connection list | grep 5671

2.我们开启一台ESXi虚拟机作为测试用例,该虚拟机共有6个vnic,其中vnic0和vnic1作为管理网络负载网卡,管理地址为172.20.5.53

3.管理员通过Web Client,添加一条防火墙规则,禁止所有到该虚拟机的流量

4.可以看到外部已经无法PING通该虚拟机

5.在承载该虚拟机的ESXi命令行,查阅并找到该虚拟机的网卡信息

# summarize-dvfilter | more

6.可以看到该虚拟机一共有6块网卡,分别是eth0-eth5,同时分布式防火墙运行在每一块vnic与虚拟机端口组之间IO链的Slot2插槽

7.我们可以进一步查看作用在每一块vnic上的分布式防火墙规则集合

# vsipioctl getrules -f 网卡名称

可以看到图中rule 1018就是阻止所有入向流量的规则,它被包含在规则集合domain-c80中

8.此时,我们通过命令停止ESXi用户空间运行的vsfwd

# /etc/init.d/vShield-Stateful-Firewall stop

9.可以看到,即使我们停止了vsfwd,分布式防火墙规则依旧生效,我们还是无法PING通虚拟机

各位可以回顾一下,vsfwd只在接受并传达给vip module分布式防火墙规则阶段有参与,而VM流量能否通过Slot2,是由vsip module根据规则去处理,与vsfwd无关

10.那么,如果我们删除应用在vnic上的防火墙规则,结果又会如何呢?

# vsipioctl vsipfwcli Override -f 网卡名称 -c "create ruleset 规则集合名称;"

有些版本,命令可能是# vsipioctl vsipfwcli -Override -f 网卡名称 -c "create ruleset 规则集合名称;"

11.我们发现,即使删除了eth0的防火墙规则,虚拟机依旧无法访问,这和我们之前的描述大相径庭,问题出在哪里呢?别忘了,承载该esxi-1a虚拟机管理网络的还有eth1,我们还需要删除应用给eth1的防火墙规则

12.可以看到,在删除eth0和eth1两块vnic的分布式防火墙规则后,外部终于可以PING通172.20.5.53,即esxi-1a的管理地址

这种方式可以用来解决vCenter被DFW屏蔽的情况,详情可以关注我好友,来自VMware张大大的公众号 NSX很可爱的

13.但是对于eth2-eth5,可以看到之前的防火墙规则依旧存在。只是esxi-1a虚拟机的管理流量不会经过它们的iochains,因此这些规则是否存在不会影响外界能否PING通172.20.5.53

14.我们保持vsfwd停止运行的状态,通过Web Client新建一条策略,允许任意源SSH访问esxi-1a

15.可以看到,虽然管理员添加并应用了该防火墙规则,但由于vsfwd未正常运行,因此ESXi虚拟机无法接受NSX Manager下发的规则,也无法将这些规则通过vsip module应用到对应的虚拟机,虚拟机vnic上的规则集合保持着之前空的状态

16.此时,我们重新启动vsfwd

# /etc/init.d/vShield-Stateful-Firewall start

17.很快,我们就能发现原本可以PING通的esxi-1a虚拟机又不可达了,原因是防火墙策略重新下发并应用给该虚拟机后阻止了一切非SSH入向流量

18.通过命令行,我们可以看到这些变化

19.根据防火墙规则,外部是可以通过SSH访问esxi-1a的

怎么样,现在通过上文的论述和实验,大家对NSX的分布式防火墙是否有所了解了呢?

NSX分布式防火墙是如何工作的?相关推荐

  1. 华为防火墙简介及其工作原理

    防火墙作为一种安全设备被广泛使用于各种网络环境中,他在网络间起到了间隔作用.华为作为著名的网络设备厂商,2001年便发布了首款防火墙插卡,而后根据网络发展及技术需求,推出了一代又一代防护墙及安全系列产 ...

  2. 华为防火墙产品介绍及工作原理

    华为防火墙产品介绍 USG2000.USG5000.USG6000和USG9500构成了华为防火墙的四大部分,分别适用于不同的环境需求,其中,USG2000和USG5000系列定位于UTM(统一威胁管 ...

  3. 解读分布式防火墙之――产品篇(转)

    解读分布式防火墙之――产品篇(转)[@more@] 本篇要介绍的是目前两种非常有代表性的分布式防火墙系统. 目前总的来说国外的一些著名网络设备开发商在分布式防火墙技术方面更加先进,所提供的产品性能也比 ...

  4. 网络安全技术第七章——防火墙技术概述及应用(包过滤防火墙 、代理防火墙、状态检测防火墙、分布式防火墙)

    防火墙技术概述及应用 防火墙技术概述及应用 1.防火墙的概念 2.高效可靠的防火墙应具备的基本特性 3.防火墙的基本功能 4.防火墙的基本原理 5.防火墙的类型 (1)包过滤防火墙 (2)代理防火墙 ...

  5. 一图看懂hadoop分布式文件存储系统HDFS工作原理

    一图看懂hadoop分布式文件存储系统HDFS工作原理 转载于:https://www.cnblogs.com/AlexQY/p/9856477.html

  6. 问题描述:分布式防火墙能管控东西向的流量,是否对进入虚拟机的所有流量都能够管控,例如外部访问虚拟机的流量。因为我现在的防火墙默认策略是允许,我像知道如果我默认策略改成阻止,外部流量会不会阻止

    问题描述:分布式防火墙能管控东西向的流量,是否对进入虚拟机的所有流量都能够管控,例如外部访问虚拟机的流量.因为我现在的防火墙默认策略是允许,我像知道如果我默认策略改成阻止, 外部流量会不会阻止 技术回 ...

  7. 企业级别应用--GFS分布式文件系统(GlusterFS工作原理、弹性 HASH 算法 、GlusterFS卷的类型、 部署GlusterFS)

    文章目录 一. GlusterFS 概述 1.1 GlusterFS 简介 与传统分布式相比的优点 1.2 GlusterFS 的特点 扩展性和高性能 高可用性 全局统一命名空间 弹性卷管理 基于标准 ...

  8. Hadoop分布式文件系统HDFS的工作原理详述

    Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应 ...

  9. 防火墙区域及工作模式

    域(zone)是防火墙上的重要概念,防火墙通常放置在网络的边界,路由器通过接口来连接不同网段,防火墙则通过域来表示不同的网络. 安全策略:通过将接口加入域并且在安全区域之间启动安全检查,从而对流经不同 ...

最新文章

  1. 基于 HTML5 的 WebGL 自定义 3D 摄像头监控模型
  2. 地震也能照常运行的数据中心新设计
  3. mysql什么隔离级别最好_面试必问的 Mysql 四种隔离级别,看完吊打面试官
  4. 公有云与私有云的差别(转)
  5. 跟我学MVC系列(Repository模式、LINQ、EF、IOC框架Castle、JQuery、AJAX)(六)(应用IOC模式)...
  6. 为小本打造简洁实用的开始菜单
  7. 推荐一个JavaScript触发器插件,可通过指定频次、指定时间内触发指定的处理函数...
  8. dump的文件 查看pg_【PG备份恢复】pg_dump命令测试
  9. 门店定位怎么在地图上显示_怎么在百度地图上面显示自己店面的地址,
  10. HTML5中的移动开发框架有哪些?
  11. “海选优品,泉网打尽”胡海泉抖音直播带货首秀告捷 柏厨集成家居塔奇、I-LOFT惊艳亮相
  12. 从石器时代到硅器时代
  13. 达索系统SPDM面向管理者的企业级仿真流程管理平台
  14. 自控力读书笔记 第九章 别读这章:“我不要”力量的局限性
  15. 开源开放 | 面向家庭常见疾病的知识图谱(东南大学)
  16. 销售谈判技巧培训分享
  17. 浅谈深度链接除了跳转还能做些什么?—MobLink
  18. 子非鱼,安知鱼之乐?
  19. 5月12~15在青岛
  20. SIMetrix教程-001.SIMetrix软件简介与安装

热门文章

  1. netty channelinactive触发条件_Netty的Future和Promise
  2. nuxt 全局css_解决nuxt 自定义全局方法,全局属性,全局变量的问题
  3. MIUI Android p手势,小米8 Android P内测9月开启
  4. 《Essential C++》笔记之return;分析
  5. java的io流的file类_java IO流 (一) File类的使用
  6. python聚类分析散点图_使用sklearn对iris数据集进行聚类分析
  7. python购物车_python购物车功能
  8. linux无法将文件移入回收站,linux中使用rm命令将文件移到回收站的方法
  9. mysql自动填充_Mysql自动填充测试数据
  10. throws java_基于Java中throw和throws的区别(详解)