Half Coffee

vCenter 被 NSX 防火墙阻断后怎么办?

2018-10-27
NSX
     

按照 NSX 的最佳实践,在部署 NSX 时需要划分三个集群:管理集群、Edge 集群及生产集群,但在一些小型环境下并没有太多硬件资源支撑这样的部署,通常会选择将管理虚拟机、NSX 虚拟机与业务虚拟机运行在同一个集群中,这种情况下必须将管理虚拟机加入 NSX DFW 白名单,否则就会出现标题中的问题:vCenter 网络被 NSX DFW 阻断。之后 vCenter 便无法登陆,也无法改回防火墙规则。

小型部署的正确操作

小型环境部署 NSX 微分段后,第一部操作始终是将管理虚拟机加入 NSX 白名单中

NSX 6.3.x 及之前版本配置方式:

打开vCenter,进入“网络与安全“,点击页面左下角的 NSX managers

img

选中左侧的 NSX managers,会出现可用 NSX manager,点击对应的 NSX manager,找到”管理>排错列表“

img

将 vCenter 加入到右侧列表中,点击完成即可。

img

img


NSX 6.4.x 及之后配置方式:

打开vCenter,进入“网络与安全”配置,点击“防火墙配置>排除列表添加”

img

将 vCenter 加入到右侧列表中,点击完成即可。

img

恢复方式1:使用 REST API

NSX 几乎所有的操作全部都能通过 REST API 来执行,每个 NSX 标准文档库中都会包含 API 手册:

img

调用 REST API 需要安装一个 REST Client,笔者推荐使用 Postman,当然也可以选用自己熟悉的工具,比如 Python、curl、浏览器插件(Chrome 建议用 YARC、FireFox 建议用 RESTClient)。

下面以 Postman 为例介绍如何通过 API call 清除 DFW 配置(此操作会删掉所有防火墙策略!慎用,让 vCenter 复活。

1、打开 Postman,配置认证信息

认证类型:Basic Auth

img

填写 NSX manager 的用户名和密码,点击 Update Request

img

完成后在 Headers 中会自动出现 Authorization 字段

img

2、新增Key:Content-Type

img

在后面的 Value 中输入:application/xml

img

配置完成后结果

img

3、通过 API 查看并删除防火墙策略

在网址栏选择 Get 操作,填写以下内容,点击 Send

Https://NSX-Manager-FQDN/api4.0/firewall/globalroot-0/config

img

可以看到返回的结果是 XML 格式的防火墙规则,表明 API call 正常,可以继续进行下一步

img

将网址前面的 GET 改为 DELETE,再次点击 Send

img

返回的 Body 为空,状态为** 204 No Content**,代表操作顺利执行

img

此时,NSX 所有防火墙规则已被清除,vCenter 应该能够顺利登陆,打开 vCenter>网络与安全>防火,可以看到防火墙恢复成出厂设置了…

img

恢复方式2:使用命令行

第二种恢复稍微复杂点,需要先找到 vCenter 运行在哪台 ESXi 主机,再通过 SSH 登陆,运行一些命令来修改 vCenter 虚拟机网卡的防火墙策略。这种方式优点是不会影响已创建的防火墙策略。

1、分别登陆每台主机的 Web Client,找到 vCenter 所在主机

img

2、开启主机的 SSH 服务,并登陆

img

img

3、输入summarize-dvfilter more,找到 vCenter 虚拟机的网卡,记录 name信息

img

4、查看关联到此网卡的防火墙规则

执行命令行vsipioctl getrules -f nic-22278151-eth0-vmware-sfw.2,记录下图中红色标注的内容

img

5、运行 /etc/init.d/vShield-Stateful-Firewall stop,此操作会防止主机从 NSX Manager 获取最新防火墙规则

img

6、使用下列命令清空已有的防火墙规则:

vsipioctl vsipfwcli -Override -f nic-22278151-eth0-vmware-sfw.2 -c "create ruleset domain-c141;"

(红色部分填写第三步及第四步查出来的内容)

清除完成后 ruleset domain-c141 变为空

img

7、测试 vCenter 网络,修改防火墙规则**

此时 vCenter 的通信应该已经恢复,需要登录 vCenter,修改原来设置错误的那条防火墙规则,点击发布

img

此时立即返回主机,启动 vShield-Stateful-Firewall 服务

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

img

长 ping vCenter,会发现网络会暂时中断,之后自动恢复,表示主机已经接受了新的防火墙规则

img

-全文完-


参考资料 :

https://kb.vmware.com/s/article/2079620


相似文章

评论