llmnrd is a daemon implementing the Link-Local Multicast Name Resolution (LLMNR) protocol according to RFC 4795. It currently only supports Linux, as it uses the netlink kernel interface.
llmnrd will respond to name resolution queries sent by Windows clients in networks where no DNS server is available. It supports both IPv4 and IPv6.
To build and install llmnrd use the following commands:
$ make
$ sudo make install
By default, the llmnrd binary will be installed to /usr/local/sbin. To install the binary to a different installation path, use:
$ make
$ sudo make prefix=<path> install
To cross-compile llmnrd for a different architecture, set the CC
make
variable to the corresponding cross-compiler. To e.g. build it using the
arm-linux-gnueabihf toolchain use:
$ make CC=arm-linux-gnueabihf-gcc
When cross-compiling, you usually don't want to install the generated binary to
your root filesystem, but to the sysroot of a cross-compiled system. Use the
DESTDIR
variable to change the installation destination path, e.g.
$ make DESTDIR=$HOME/sysroot/ prefix=/usr install
To run llmnrd in the default mode (listening on UDP port 5355):
$ llmnrd
By default, LLMNR name resolution is only possible over IPv4. To additionally enable LLMNR name resolution over IPv6 use:
$ llmnrd -6
Use llmnrd --help
to show additional usage information.
Additionally, the llmnr-query
utility is shipped together with llmnrd and
can be used to send customized LLMNR queries:
$ llmnr-query <hostname>
Use llmnr-query --help
to show additional usage information.
llmnrd is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License.
llmnrd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Please see the COPYING file for the full license text.
llmnrd is authored and maintained by Tobias Klauser tklauser@distanz.ch
The following people contributed patches and ideas, found and reported bugs or otherwise helped in the development of llmnrd:
- Diego Santa Cruz (@diego-santacruz)
- Elazar Leibovich (@elazarl)
- Martin Hauke
- Michael Evertz (@dvl-mevertz)
- Pali Rohár
- @Schimmelreiter
- @svimik
- @tbetker
Thanks a lot!