跳到主要内容

诊断名称服务问题

如果由于名称服务问题使客户端访问失败,可使用 vserver services name-service getxxbyyy 命令系列手动执行各种名称服务查找,检查查找结果和详细信息,这样有助于故障诊断。

关于本任务

  • 对于每条命令,可指定以下内容:

    • 要在其中执行查找的节点或存储虚拟机(SVM)的名称。

      这样可测试特定节点或 SVM 的名称服务查找,以缩小潜在名称服务配置问题的搜索范围。

    • 是否显示用于查找的源。

      这样可检查是否已使用正确的源。

  • ONTAP 根据配置的名称服务切换顺序选择执行查找的服务。

  • 这些命令在高级权限级别提供。

  1. 执行以下操作之一:
    要检索...使用命令...
    主机名的 IP 地址vserver services name-service getxxbyyy getaddrinfo

    vserver services name-service getxxbyyy gethostbyname(仅限 IPv4 地址)

    组成员(根据组标识)vserver services name-service getxxbyyy getgrbygid
    组成员(根据组名称)vserver services name-service getxxbyyy getgrbyname
    列出用户所属的组vserver services name-service getxxbyyy getgrlist
    IP 地址的主机名vserver services name-service getxxbyyy getnameinfo

    vserver services name-service getxxbyyy gethostbyaddr(仅限 IPv4 地址)

    用户信息(根据用户名)vserver services name-service getxxbyyy getpwbyname

    -use-rbac 参数指定为 true,可测试 RBAC 用户的名称解析。

    用户信息(根据用户标识)vserver services name-service getxxbyyy getpwbyuid

    -use-rbac 参数指定为 true,可测试 RBAC 用户的名称解析。

    客户端的 netgroup 成员资格vserver services name-service getxxbyyy netgrp
    客户端的 netgroup 成员资格,使用按主机搜索 netgroupvserver services name-service getxxbyyy netgrpbyhost

    示例

    以下示例显示 SVM vs1 的 DNS 查找测试,方法是尝试获取主机 acast1.eng.example.com 的 IP 地址:

    cluster1::*> vserver services name-service getxxbyyy getaddrinfo -vserver vs1 -hostname acast1.eng.example.com -address-family all -show-source true
    Source used for lookup: DNS
    Host name: acast1.eng.example.com
    Canonical Name: acast1.eng.example.com
    IPv4: 10.72.8.29

    以下示例显示 SVM vs1 的 NIS 查找测试,方法是尝试检索用户 UID 为 501768 的用户信息:

    cluster1::*> vserver services name-service getxxbyyy getpwbyuid -vserver vs1 -userID 501768 -show-source true
    Source used for lookup: NIS
    pw_name: jsmith
    pw_passwd: $1$y8rA4XX7$/DDOXAvc2PC/IsNFozfIN0
    pw_uid: 501768
    pw_gid: 501768
    pw_gecos:
    pw_dir: /home/jsmith
    pw_shell: /bin/bash

    以下示例显示 SVM vs1 的 LDAP 查找测试,方法是尝试检索用户名为 ldap1 的用户信息:

    cluster1::*> vserver services name-service getxxbyyy getpwbyname -vserver vs1 -username ldap1 -use-rbac false -show-source true
    Source used for lookup: LDAP
    pw_name: ldap1
    pw_passwd: {crypt}JSPM6yc/ilIX6
    pw_uid: 10001
    pw_gid: 3333
    pw_gecos: ldap1 user
    pw_dir: /u/ldap1
    pw_shell: /bin/csh

    以下示例显示 SVM vs1 的 netgroup 查找测试,方法是尝试发现客户端 dnshost0 是否为 netgroup lnetgroup136 的成员:

    cluster1::*> vserver services name-service getxxbyyy netgrp -vserver vs1 -netgroup lnetgroup136 -client dnshost0 -show-source true
    Source used for lookup: LDAP
    dnshost0 is a member of lnetgroup136
  2. 分析执行的测试结果,并采取必要措施。

    示例

    如果...检查...
    主机名或 IP 地址查找失败,或生成错误的结果DNS 配置
    查找查询的源不正确名称服务切换配置
    用户或组查找失败,或生成错误的结果名称服务切换配置

    源配置(本地文件、NIS 域、LDAP 客户端)

    网络配置(例如 LIF 和路由)

    主机名查找失败或超时,DNS 服务器无法解析 DNS 短名称(例如 host1)顶级域(TLD)查询的 DNS 配置

    可以使用 vserver services name-service dns modify 命令的 -is-tld-query-enabled false 选项禁用 TLD 查询。