NetWorker:名称解析故障处理最佳实践
Summary: NetWorker 中与域名空间 (DNS) 相关的问题的故障处理指南。
Instructions
NetWorker 依赖名称解析。如果名称解析不正确且不完全一致,NetWorker 的许多操作都可能出现问题。由于 NetWorker 管理的可能是敏感数据,因此它必须通过各种方式确保与之交互的主机的身份。
NetWorker 中的许多症状都可能是 NetWorker 名称解析不完善造成的:
- 指示正向或反向名称查找问题的错误消息。
- 备份期间无法探测客户端
- 客户端无法手动保存到服务器或进行恢复。
- 克隆或访问存储节点设备时出现问题
- 浏览或介质数据库记录问题。
- 服务器或存储节点在启动时或常规作期间停止响应。
- 命名错误或嵌套的索引目录
- 配置错误的客户端错误
名称解析工作流
尝试解析命令或内部配置使用的主机名必须解析为 IP 地址才能使用。按以下顺序检查以下资源,以查看 name:IP 是否已缓存,并在名称匹配时停止。
- NetWorker 名称高速缓存:大多数主要的 NetWorker 守护程序;NSRLA 数据库中可配置的生存期
- 本地主机 解析程序高速缓存:因作系统而异,并延迟主机负载或 DNS 查找
- 本地 主机文件 条目:快速本地查找,但手动维护;可用于覆盖 DNS 解析
- DNS 服务器查找:由于采用集中式管理,行业首选,但速度较慢
1.NetWorker 缓存:
NetWorker 守护程序维护内部名称高速缓存。客户端缓存在 nsrexecd 中解析的名称,而核心守护程序(如 nsrd 和 nsmmdbd )保留自己的缓存。这是检查的第一个 IP 表,也是最快的。可以使用以下命令在每个 NetWorker 主机的 nsrla 数据库中设置内部高速缓存生存期: nsradmin:
Linux/UNIX
printf ". type: nsrla\nshow positive DNS cache TTL; negative DNS cache TTL\nprint\n" | nsradmin -p nsrexec -s remote_host
Windows
(echo . type: nsrla & echo show positive DNS cache TTL; negative DNS cache TTL & echo print) | nsradmin -p nsrexec -s remote_host
默认情况下应返回 30 分钟(1800 秒):
positive DNS cache TTL: 1800; negative DNS cache TTL: 1800;
此值控制 NetWorker 有意清除进程高速缓存以按顺序从下一层获取更新信息之前的时长。因此,提出它适用于DNS查找速度较慢但DNS寻址相对静态的环境。相反,对于地址频繁变化的环境,可能需要较低的值。
如果 NetWorker 的内部高速缓存中存在所需的名称,则会使用该名称,并且进一步的查询将停止。对于故障排除,如果缓存的名称到 IP 映射看起来错误,请使用命令记录当前缓存,然后刷新或重新解析条目:
-
dbgcommand -n nsrd PrintDnsCache=1(转储到 daemon.raw)dbgcommand -n nsrd FlushDnsCache=1(齐平),或者,dbgcommand -n nsrd FlushDnsCache=9(刷新并立即重新解析/重建高速缓存)
-n process name“或”-p PID“可以使用。若要使用进程 ID (PID),必须先运行其他命令来获取 PID;例如:
-
- Linux/UNIX:
ps -ef | grep nsr - Windows:
tasklist | findstr nsr
- Linux/UNIX:
2.解析器高速缓存:
ipconfig /displaydns 在 Windows 上),并且都提供了一种刷新它的方法:
-
- 刷新解析器高速缓存因作系统/分发版本而异 - 请参阅供应商文档。
- Windows:
ipconfig /flushdns
3.主机文件:
-
- UNIX/Linux:/etc/hosts
- Windows:%systemroot%\System32\drivers\etc\hosts
4.正向解析:
ipconfig /all 查看它们;在 Linux/UNIX 上,检查 /etc/resolv.conf 以了解 DNS 顺序。 nslookup 是查询DNS最常用的工具,存在于所有平台上,但经常被滥用;要查询转发区域,请执行以下作:
- 在该节点上运行
nslookup没有参数进入交互式提示。 - 输入要查找的名称迭代,然后按 Enter 键,以便从连接到的 DNS 服务器检索正向记录。
- 输入同一名称两次以上,查看该名称记录是以静默方式在不同主机之间轮询,还是返回相同的数据。
- 对于可能被其他主机调用或视为同一 IP 地址的主机的任何名称实例,请重复相同的过程。
- 对于主机经配置后可能使用的任何其他 DNS 服务器(通过输入 server next_dns_server 进行配置),请重复相同的过程。
5.反向解析:
nslookup IP_Address 甚至输入 IP 地址 nslookup 不查询反向查找分区:
-
在该节点上运行
nslookup没有参数进入交互式提示。 - 输入 set
q=ptr将查询类型更改为 Reverse Zone。 - 输入要反向解析的 IP 地址,然后按 Enter 键。
- 确保反向记录中返回的名称与正向记录名称/IP 相匹配。
[root@linux_a~]# nslookup linux_a
Server: 1.2.3.4
Address: 1.2.3.4#53
Name: linux_a.domain.com
Address: 5.6.7.8
[root@linux_a~]# nslookup 5.6.7.8
Server: 1.2.3.4
Address: 1.2.3.4#53
Name: linux_a.domain.com
Address: 5.6.7.8
[root@linux_a~]# nslookup
> set q=ptr
> 5.6.7.8
Server: 1.2.3.4
Address: 1.2.3.4#53
Non-authoritative answer:
8.7.6.5.in-addr.arpa name = linux_a.domain.com.
nslookup 非交互式从不查询反向查找区域。
提醒:NetWorker 依靠一致的正向和反向 DNS 进行授权。此设计有助于防止 IP 欺骗并保护备份数据免遭未经授权的访问。
测试名称解析
所有 NetWorker 主机必须根据其数据区角色,为与之通信的任何主机具有一致的正向和反向名称解析。对于 NetWorker 管理员来说,确保立即彻底解决任何主机解析问题至关重要。
在对名称解析问题进行故障处理时,或者为了在 NetWorker 数据区域中排除这些问题,请执行以下操作:
1.查找故障作中涉及的所有主机 — 服务器、客户端和可能的存储节点等。
2.对于每一项,请确定本地配置的 IP 地址以及这些 IP 的所有预期可解析名称。
3.配置所有主机,以便在使用 DNS 进行主机解析之前,优先将主机文件用于主机解析。
4.在一个主机的主机文件的开头,为每个 IP 配置一个条目,并且使与之对应的每个名称都在同一行。
5.将这些行精确地从第一个主机复制到其他涉及的主机的主机文件。
6.编辑 NetWorker 客户端对象,使别名与所需 IP 正确对应。
7.在所有涉及的主机上关闭 NetWorker。
8.使用适当的作系统机制清除每个主机上的解析程序高速缓存。
9.重新启动 NetWorker,然后再次尝试有问题的作。
要证明名称已由给定主机解析,请使用以下测试:
1.从第一个 NetWorker 主机(例如,客户端)连接到第二个(例如,服务器),使用以下命令 nsradmin -s remote_host -p nsrexec - 使会话保持打开状态。
2.在同一主机上,确定 nsradmin的进程(例如,Windows、 tasklist | findstr nsradmin)
3.运行 netstat 以显示与该进程关联的套接字(例如,Windows、 netstat -ao | findstr process_id)
4.确定来自该主机的连接套接字(输出中最左边的 IP:port 配对)
5.在远程主机上 - 运行 netstat -a 和 findstr/grep 对于 :calling_port_from_first_host。
6.冒号前的主机名是第二个主机在接受入站连接时解析第一个主机的方式。
7.使用以下命令再次运行 -n 交换机添加到 netstat 命令中,以验证同一套接字的 IP,从而检查 IP/路由是否为预期 IP/路由。
8.反向执行相同的测试,以确保第二个主机在预期参数范围内解析第一个主机。
关于 NetWorker 客户端别名
NetWorker 还有一个可配置字段,该字段是所有客户端实例的全局字段,称为“别名”,该字段应反映可为该客户端解析的所有名称。这使 NetWorker 可以将多个解析的名称链接到一个客户端实例。例如, client1.domain.prod 也可能显示为 client1.domain.bkup 或 client1,具体取决于使用的 IP。
Additional Information
存储组等 NetWorker作使用多个 TCP 套接字:控制、数据和索引更新各一个套接字。如果任何套接字使用不一致(但有效)的名称,则作可能会失败。
- 轮询有时会遭到刻意使用和配置,但它通常是出乎意料的,因此应予以避免
netstat -a显示打开/活动的 TCP 套接字,这会显示外部主机的作系统解析名称 - 这可用于识别问题- 当网络流量使用意外/不需要的适配器时,有时可能需要静态路由,这以后可能会导致名称解析问题。
另请参阅: NetWorker 进程和端口