Saya mencoba untuk terhubung dari sistem 10,04 ke sistem 12,04 melalui SSH. Anehnya aturan-aturan itu resolv.conf
tampaknya 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.tld
ada di search
baris /etc/resolv.conf
dan menggunakan host
nama dicari dengan benar mengingat aturan-aturan tersebut. Namun, dengan klien SSH ssh
saya menerima kesalahan yang direproduksi di atas. Bagaimana ini bisa terjadi? Saya selalu terkesan bahwa aturan resolusi nama dalam resolv.conf
menerapkan sistem-global.
Catatan: /etc/hosts
tidak menyatakan nama pangolin
sama sekali. Paket openssh-server
ini 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.conf
dalam 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.conf
dan output dari perintah inigrep host /etc/nsswitch.conf
?