In der dnsmasq.conf:
address=/local/127.0.0.1
In der resolv.conf:
# Generated by NetworkManager
domain example.com
search example.com
nameserver 127.0.0.1
nameserver 10.66.127.17
nameserver 10.68.5.26
Ich kann nslookup verwenden:
# nslookup www.local
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www.local
Address: 127.0.0.1
Aber ich kann Ping nicht verwenden:
# ping www.local
ping: unknown host www.local
Ich benutze tcpdump, um lo zu erfassen, während ich www.local pinge, keine Pakete, während Pakete mögen
# tcpdump -i em1 -n | grep local
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on em1, link-type EN10MB (Ethernet), capture size 65535 bytes
20:14:38.189335 IP 10.66.65.188.mdns > 224.0.0.251.mdns: 0 A (QM)? www.local. (27)
20:14:39.190700 IP 10.66.65.188.mdns > 224.0.0.251.mdns: 0 A (QM)? www.local. (27)
20:14:41.192979 IP 10.66.65.188.mdns > 224.0.0.251.mdns: 0 A (QM)? www.local. (27)
erschien von der physischen Schnittstelle.
Was bedeutet, dass Ping mdns verwendet, aber warum verwendet nslookup keine mdns? Warum verwendet Ping keine normalen DNS, wenn MDNS keinen nützlichen Fehler zurückgibt?
Vielen Dank.
getent hosts foo.local
Sie diese Option übrigens, wenn Sie nur eine IP-Adresse nachschlagen möchten, unabhängig davon, ob es sich um mDNS oder DNS handelt. Im Gegensatz dazu verwendetnslookup
dergetent
Befehl den nsswitch der GNU C Library, sodass er immer funktioniert.Es ist sehr einfach -
nslookup
ist speziell ein DNS-Tool - es ist Teil der BIND-Tools.Es weiß einfach nichts über die anderen Namensdienste, auf die Bibliotheksaufrufe wie
gethostbyname
NSS zugreifen können, weilnslookup
sie nicht verwendetgethostbyname
werden usw.quelle