Saya mencoba untuk terhubung dari sistem 10,04 ke sistem 12,04 melalui SSH. Anehnya aturan-aturan itu resolv.conftampaknya hanya berlaku selektif, yang membuat saya bingung. Mengamati:
[2] user@mach:~$ ssh pangolin
ssh: Could not resolve hostname pangolin: Name or service not known
[2] user@mach:~$ host pangolin
pangolin.subdomain.domain.tld has address 172.16.7.12
subdomain.domain.tldada di searchbaris /etc/resolv.confdan menggunakan hostnama dicari dengan benar mengingat aturan-aturan tersebut. Namun, dengan klien SSH sshsaya menerima kesalahan yang direproduksi di atas. Bagaimana ini bisa terjadi? Saya selalu terkesan bahwa aturan resolusi nama dalam resolv.confmenerapkan sistem-global.
Catatan: /etc/hoststidak menyatakan nama pangolinsama sekali. Paket openssh-serverini dikonfigurasi pada mesin target. Pertanyaannya murni tentang mengapa resolusi nama tidak konsisten antara kedua program tersebut.
Catatan lain: perintah berfungsi dengan baik ketika saya memasukkan nama domain yang sepenuhnya memenuhi syarat, yaitu pangolin.subdomain.domain.tld.
Sementara itu saya reboot mesin klien (10,04) dan masalahnya masih ada. Daemon caching DNS tidak diinstal, jadi saya rasa itu seharusnya tidak menjadi masalah.
Informasi yang diminta dalam komentar:
$ grep host /etc/nsswitch.conf
hosts: files dns
/etc/resolv.conf, Saya mengubah nama domain secara konsisten:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 172.16.1.1
nameserver 172.16.1.5
search subdomain.domain1.com domain1.com domain2 domain3.com domain2.ccTLD domain3.net dev.domain1.com sdk.dev.domain1.com
... dan lengkap /etc/nsswitch.conf:
$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
... dan /etc/network/interfaces, yang merupakan sumber resolv.confdalam 12.04:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 172.16.1.234
netmask 255.255.0.0
gateway 172.16.255.254
dns-nameservers 172.16.1.1 172.16.1.5
dns-search domain1.com. domain2. domain3.com. domain2.ccTLD. domain3.net. dev.domain1.com. sdk.dev.domain1.com. subdomain.domain1.com.
dns-domain subdomain.domain1.com.
Catatan: transformasi nama domain telah dilakukan sed, sehingga konsisten antara berbagai file yang direproduksi.
Tidak ada ~/.ssh/config, tapi inilah yang global ( /etc/ssh/ssh_config), menyusut demi singkatnya:
$ grep -v '^#' /etc/ssh/ssh_config |grep -v '^[[:space:]]*$'
Host *
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
$ mtr pangolin
Name or service not known: Success
mtr pangolin?
/etc/resolv.confdan output dari perintah inigrep host /etc/nsswitch.conf?