Когда я пытаюсь пропинговать определенное полное доменное имя, я не могу:
$ ping test-customer-1.clients.jsonar.com
ping: test-customer-1.clients.jsonar.com: Name or service not known
Тем не мение, dig
и другие. успешно:
$ dig test-customer-1.clients.jsonar.com
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> test-customer-1.clients.jsonar.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57830
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;test-customer-1.clients.jsonar.com. IN A
;; ANSWER SECTION:
test-customer-1.clients.jsonar.com. 3119 IN CNAME _r1.clients.jsonar.com.
_r1.clients.jsonar.com. 3119 IN CNAME _w1.clients.jsonar.com.
_w1.clients.jsonar.com. 3119 IN A 3.209.217.53
;; Query time: 15 msec
;; SERVER: 192.168.1.99#53(192.168.1.99)
;; WHEN: Fri Apr 12 15:44:21 PDT 2019
;; MSG SIZE rcvd: 115
$ nslookup test-customer-1.clients.jsonar.com.
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
test-customer-1.clients.jsonar.com canonical name = _r1.clients.jsonar.com.
_r1.clients.jsonar.com canonical name = _w1.clients.jsonar.com.
Name: _w1.clients.jsonar.com
Address: 3.209.217.53
$ host test-customer-1.clients.jsonar.com
test-customer-1.clients.jsonar.com is an alias for _r1.clients.jsonar.com.
_r1.clients.jsonar.com is an alias for _w1.clients.jsonar.com.
_w1.clients.jsonar.com has address 3.209.217.53
$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.99
nameserver 8.8.8.8
$ cat /etc/sysconfig/network-scripts/ifcfg-enp0s31f6
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s31f6"
UUID="cf566dc0-de91-497d-a045-560fddfbaf3e"
DEVICE="enp0s31f6"
ONBOOT="yes"
DNS1=8.8.8.8
$ cat /etc/nsswitch.conf | grep hosts
#hosts: db files nisplus nis dns
#hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
hosts: files dns myhostname
$ getent hosts test-customer-1.clients.jsonar.com
$ echo $?
2
# According to the man page, exit code 2 means:
# One or more supplied key could not be found in the database
Пинг с компьютеров Linux не выполняется, но успешно с компьютеров Windows.
Оказывается, проблема была вызвана довольно причудливой неправильной конфигурацией:
test-customer-1.clients.jsonar.com
запись в DNS была NS вместо А запись. (Кажется, что Windows не заботится, поэтому эхо-запросы с машины Windows были успешными, но * nix рассматривает эту неверную конфигурацию (правильно) как возможное нарушение безопасности и не выполняет эхо-запросы).
однажды test-customer-1.clients.jsonar.com
был зарегистрирован в DNS с А запись, проблема решена.