VNCR 是 Oracle Net 11.2.0.4 和 12c 的一个新特性,只允许注册实例来自允许的服务器。 如果没有手工配置,12c
listener(默认)不允许远程服务器注册它们的数据库实例。远程注册将会导致 TNS-01182 错误记录到 listener.log
文件中。这是正常行为,因为 listener 默认只允许注册的实例来自与 listener 相同的机器。 注意:Oracle 11.2.0.4上,VALID_NODE_CHECKING_REGISTRATION_listener_name 默认 是OFF,必须设置成 ON 来启用阻塞远程注册的功能。 VALID_NODE_CHECKING_REGISTRATION_listener_name REGISTRATION_INVITED_NODES_listener-name 注意当设置了 INVITED 列表,它会自动在列表中包含机器的本地 IP。没有必要将其列入。
注意:对于12c GRID 环境,这个参数一般被CRS agent所管理。 对于GRID管理的standalone DB,agent可能会自动添加下面的配置到 VALID_NODE_CHECKING_REGISTRATION_listener_name=SUBNET REGISTRATION_EXCLUDED_NODES_listener_name – 和 INVITED_NODES 相比正好相反
Sample listener.ora file: LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN3 = ON ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN2 = ON ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1 = ON ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER = ON LISTENER_SCAN3 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN3)) ) ) LISTENER_SCAN2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN2)) ) ) LISTENER_SCAN1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN1)) ) ) ENABLE_GLOBAL_DYNAMIC_ENDPOINT_MGMTLSNR=ON # line added by Agent VALID_NODE_CHECKING_REGISTRATION_MGMTLSNR=SUBNET # line added by Agent VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN1=OFF # line added by Agent VALID_NODE_CHECKING_REGISTRATION_LISTENER = SUBNET 关于12.2版本更多信息,请参考下面的文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/netag/index.html 非RAC/集群环境 适用于:
Oracle Net Services - 版本 11.2.0.4 到 12.1.0.2 [发行版 11.2 到 12.1]
本文档所含信息适用于所有平台
介绍listener新的注册相关的安全功能 - 有效节点检查功能。11.2.0.4以及更高版本里引入这个功能是为了解决下面的安全问题:
alert-cve-2012-1675https://www.oracle.com/technetwork/topics/security/alert-cve-2012-1675-1608180.html
用途
详细信息
为了允许远程实例注册到 12c listener,在 listener.ora 文件中启用 VNCR。
参见只影响 HPUX Itanium 系统的 BUG 20438237 VNCR doesn't work on RAC
参数值:
OFF/0 - 禁用 VNCR
ON/1/LOCAL - 默认。启用 VNCR。所有本地机器 IPs 都可以注册。
SUBNET/2 - 子网下的所有机器都允许注册。
参数值是有效
IP,有效主机,子网使用 CIDR 标记法(对于 ip4/6/),或者通配符(*)对于
ipv4。例如:REGISTRATION_INVITED_NODES_Listener=(<hostname>,
127.xx.yy.zz, 127.zz.y.*)
也适用于GRID环境里的standalone DB。
listener.ora:
MGMTLSNR=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=MGMTLSNR)))) # line added by Agent
# listener.ora Network Configuration File: /u01/app/12.1.0.2/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.
ADMIN_RESTRICTIONS_ADMIN=ON ENABLE_GLOBAL_DYNAMIC_ENDPOINT_EBSPRD01=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN3=OFF # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN2=OFF # line added by Agent
REGISTRATION_INVITED_NODES_LISTENER=(<hostname>, 127.xx.yy.zz, 127.zz.y.*)
~~~~~~~~~~
请注意上面的信息主要是针对RAC/集群环境。
对于非集群环境下的11.2.0.4 standalone listener(不属于grid infrastucture管理的),只需要下面的行即可
VALID_NODE_CHECKING_REGISTRATION_listener_name = ON
* 不管动态注册还是静态注册的11.2.0.4 listener,基于安全的原因,都应该设置上面这一行。
BUG:20438237 - VNCR DOESN'T WORK ON RAC参考
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




