Sign inSign up

azukiapp/libnss-resolver

By azukiapp

•Updated over 10 years ago

Image
2

831

azukiapp/libnss-resolver repository overview

⁠libnss-resolver

A Linux extension that adds support to the /etc/resolver/[suffix]. It supports different "nameservers" to specific suffixes. It emulates the corresponding native functionality from Mac OS X.

This is still a work in progress!

⁠Installing

⁠From package

Download and install the appropriate package for your Linux distribution here⁠.

⁠From the source (with azk)

First: install https://azk.io⁠.

And after that:

$ git clone [email protected]:azukiapp/libnss-resolver.git
# or
$ git clone https://github.com/azukiapp-samples/libnss-resolver
$ cd libnss-resolver

# build
# [so] options: debian8-0, ubuntu[12|14|15|16], fedora20, fedora23
$ azk shell [so]


# using ubuntu[12|14|15|16] or debian8-0 as [so]:

# run tests
$ azk start dns # Run a mock dns server for testing
$ azk shell [so] -t -c "scons run-test"
# or debug
$ azk shell [so] -t -c "scons run-test -Q define=DEBUG"

# install local
$ azk shell [so] -c "scons install"


# using fedora20 or fedora23 as [so]:

# run tests
$ azk start dns # Run a mock dns server for testing
$ azk shell [so] -t -c "scons run-test -Q prefix=/usr/lib64"
# or debug
$ azk shell [so] -t -c "scons run-test -Q define=DEBUG -Q prefix=/usr/lib64"

# install local
$ azk shell [so] -c "scons install -Q prefix=/usr/lib64"

Now you can add the resolver-nss in a resolution pipe:

$ sudo sed -i -re 's/^(hosts: .*files)(.*)$/\1 resolver\2/' /etc/nsswitch.conf

or edit /etc/nsswitch.conf:

# normally   ↓
hosts: files resolver dns
# but, if you have avahi (Zeroconf) installed
#            ↓
hosts: files resolver mdns4_minimal [NOTFOUND=return] dns mdns4 resolver
⁠From the source (without azk)

Dependencies: scons and clang

$ git clone [email protected]:azukiapp/libnss-resolver.git
# or
$ git clone https://github.com/azukiapp/libnss-resolver.git
$ cd libnss-resolver

# build
$ scons local-install
# or, if you're using Fedora as SO
$ scons local-install -Q prefix=/usr/lib64

Now you can add the resolver-nss in a resolution pipe:

$ sudo sed -i -re 's/^(hosts: .*$)/\1 resolver/' /etc/nsswitch.conf

or edit /etc/nsswitch.conf:

# normally   ↓
hosts: files resolver dns
# but, if you have avahi (Zeroconf) installed
#            ↓
hosts: files resolver mdns4_minimal [NOTFOUND=return] dns mdns4 resolver

⁠Configuring

After installing you can create many suffix zones in /etc/resolver/, like:

$ echo "nameserver 127.0.0.1:5353" | sudo tee -a /etc/resolver/test.resolver

Installing dnsmasq is a good way to test it:

$ sudo yum install dnsmasq
$ dnsmasq --bind-interfaces -p 5353 --no-daemon --address=/test.resolver/127.0.0.1

Now you can try this:

# ping sufix
$ ping test.resolver
# or any "subdomain"
$ ping any.test.resolver

⁠Test and build (azk only)

This project uses clang for compiling, scons for mounting and valgrind for analyzing code runtime.

All of these tools are actually available behind the azk⁠. So just use the commands below to get a development environment:

$ azk start dns
# [so] options: debian8-0, ubuntu12, ubuntu14, fedora20, fedora23
$ azk shell [so] -t -c "scons local-install"
# or, if [so] == fedora20 or fedora23
$ azk shell [so] -t -c "scons local-install -Q prefix=/usr/lib64"

After that, the following scons targets are available:

# using debian8-0, ubuntu12, ubuntu14 or ubuntu15 as so

# build and run tests
$ scons run-test -Q [define=DEBUG] [valgrind="valgrind options"]
# install in azk instance
$ scons local-install
# test:
$ ping test.resolver


# using fedora20 or fedora23 as so

# build and run tests
$ scons run-test -Q prefix=/usr/lib64 -Q [define=DEBUG] [valgrind="valgrind options"]
# install in azk instance
$ scons local-install -Q prefix=/usr/lib64
# test:
$ ping test.resolver

⁠References

⁠License

"Azuki", "Azk" and the Azuki logo are copyright (c) 2013-2016 Azuki Serviços de Internet LTDA.

Azk source code is released under Apache 2 License.

Check LEGAL and LICENSE files for more information.

Tag summary

Content type

Image

Digest

sha256:d55f62646…

Size

221.2 MB

Last updated

over 10 years ago

docker pull azukiapp/libnss-resolver:fedora20