| 1 | ICMP host name utilities |
| 2 | |
| 3 | Since the Linux kernel does not support the ICMP host name facilities as |
| 4 | described in RFC 1788, I wrote a simple implementation in user-space. |
| 5 | It comprises three parts: |
| 6 | |
| 7 | * icmpdnd - The ICMP Domain Name daemon, which listens to ICMP |
| 8 | domain name requests and replies to them. |
| 9 | |
| 10 | * idnlookup - A user utility to query a host for its host name over |
| 11 | ICMP. Like ping and all other utilities that use ICMP, it needs to |
| 12 | be installed SUID root. |
| 13 | |
| 14 | * libnss_icmp.so.2 - A glibc NSS module, which uses idnlookup to |
| 15 | perform queries for the gethostbyaddr function. |
| 16 | |
| 17 | General information |
| 18 | |
| 19 | The NSS module caches all requests (including failures) and honors the |
| 20 | TTL value sent by the responding host. It uses a configuration file called |
| 21 | /etc/nss-icmp.conf, which controls different aspects of its operation: |
| 22 | |
| 23 | * timeout - Sets the timeout in milliseconds for ICMP host name |
| 24 | queries, by passing the -t option to idnlookup. |
| 25 | * nocache - Disables the cache. |
| 26 | * ttlnotfound - Sets the TTL for not-found cache entries is |
| 27 | seconds. The default is 5 minutes. |
| 28 | |
| 29 | Both icmpdnd and idnlookup need to run as root, due to the fact that |
| 30 | they use ICMP. Thus, idnlookup needs be installed SUID root. |
| 31 | |