命名冲突

这一部分包括以下内容:

 

签出防火墙(或命名空间)时,安全编辑器检查命名冲突情况。方法是将正在被检查的所有配置项目与位于防火墙(或命名空间)的相应命名空间项目进行比较。

如果编辑器遇到两个名称相同,但定义不同的配置项目,我们认为这是命名冲突,便会出现如下所示的对话框。

造成命名冲突的原因有很多。一个原因可能是上面讨论的情景,管理员用失效的本身具有的自动配置选项修改命名空间的配置项目,结果是命名空间的实际配置有了新的定义,而下面防火墙相同目录的定义仍然是原来的。管理员事后签出下面其中一个防火墙时,就会发现命名冲突的现象。

命名冲突对话框

发现一或多个命名冲突时,安全编辑器会显示命名冲突对话框。

话框含有引起冲突所有原因的列表。列表第一栏是关于冲突的简短说明,第二栏显示解析状态。缺省的状态设置为Unresolved

点击Resolve按钮,管理员就可解析冲突。请参考下面 解决命名冲突 部分。

点击Close按钮,关闭命名冲突对话框,继续check out过程。

注:使冲突处于非解析状态而关闭命名冲突对话框的做法是可能的。但是,下一次检查防火墙时,未解析的项目会再一次让命名冲突对话框弹出。

 

解决命名冲突

在上面所示的命名冲突对话框里,检查内部防火墙时,已经发现了一个冲突。这种情况下是HTTP服务定义与Global Namespace定义的HTTP服务发生了冲突。

点击Resolve按钮,可执行冲突解析。出现下面类似解析对话框。

解决命名冲空的可能性有两种:

  • 使用命名空间里的项目 选择此选项放弃该项目的本地定义,并用命名空间的定义代替。

  • 使用有新命名的本地拷贝 选择此选项保存该项目的本地定义。注意该项目已被赋予新的名称;否则还将继续引起冲突。

查找两个冲突定义的区别时,可以使用Item Properties按钮。上面的按钮显示命名空间里的项目属性。下面按钮显示本地防火墙定义的项目属性。可以同时显示这两个对话框以简化项目的比较。

此例中,下面左侧对话框显示的是全局命名空间定义的HTTP服务属性,下面右侧对话框显示的是内部防火墙定义的HTTP服务属性。这两个定义的不同之处似乎在于目的端口在全局命名空间中被改成了81,而内部防火墙的定义仍然是80。

现在,如果管理员选择Use the item in namespace选项,内部防火墙的HTTP定义将拷贝球形命名空间的定义,开始使用81端口。如果管理员选择Use local copy with new name选项,就输入一个新名称,如local_http,那么local_http服务将保留81的目的端口。所有涉及HTTP的内部配置将被local_http取代。