我正在尝试从 linux 客户端 ping 主机名“win-2k12r2-addc.阿伯测阿伯测ad.hai.com”。
我看到 DNS 请求通过网络发送,主机名以 utf-8 格式发送,并且我从 DNS 服务器获得了正确 IP 地址的响应。
但是 ping 失败并出现以下错误: ping: unknown host win-2k12r2-addc.阿伯测阿伯测ad.hai.com
如果我在 /etc/hosts 中添加一个条目,它工作正常
我在 /etc/hosts 中有以下条目工作时。++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++
127.0.0.1 localhost ava-dev
::1 localhost
10.141.33.93 win-2k12r2-addc.阿伯测阿伯ad.hai.com
++++++++++++测++++++++++++++++++++++++++++++++++++++++++++++++++
/etc/nsswitch.conf 文件包含以下主机条目。
++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++
主机:文件 dns
+++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++
我有点怀疑当我们尝试解析地址时 getaddrInfo() 调用失败,即它无法正确处理包含 unicode 字符的主机名的 DNS 响应。
有没有人遇到过这个问题?或者有没有人尝试从 linux 客户端解析 unicode 主机名?
我怀疑 getaddrinfo() 的原因是由于以下原因。
除了 ping,我尝试对同一主机执行以下 ldap 命令,但失败并出现以下错误
++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++ ldapsearch -d 255 -x -h win-2k12r2 -addc.阿伯测阿伯测ad.hai.com
ldap_create
ldap_url_parse_ext(ldap://win-2k12r2-addc.%E9%98%BF%E4%BC%AF%E6%B5%8B%E9%98% BF%E4%BC%AF%E6%B5%8Bad.hai.com)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP win-2k12r2-addc.阿伯测阿伯测ad.hai.com:389
ldap_connect_to_host: getaddrinfo失败:名称或服务未知
ldap_err2string
ldap_sasl_bind(SIMPLE): 无法联系LDAP服务器(-1)
+++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++
在这两种情况下(ping / ldap),我看到 DNS 查询请求进入 DNS 服务器,并且从 DNS 服务器返回到 linux 客户端的正确响应。以下是 DNS 查询中发送的主机名的值
win-2k12r2-addc.\351\230\277\344\274\257\346\265\213\351\230\277\344\274\257\346\265\213ad.hai.com:A型,类