Most open source NIS implementations did lack of IPv6 support. The two main reasons for this were: the from SUN published NIS protocol did not allow IPv6 addresses, and glibc only contains Sun-RPC, which does not support IPv6, too.

The needed ypbind v3 protocol informations can be found in the OpenSolaris header files. So as Hackweek-Project I started to convert my whole NIS code to use TI-RPC and the new protocol.

The current status is:

  • ypbind
    • SLP and Networkmanager support are removed/disabled.
    • Linked against ti-rpc
    • Can register with IPv4 and IPv6 on rpcbind
    • Checks correctly for connections from localhost
    • Supports ypbind v3 protocol for IPv6
    • Missing:
      • ypwhich -V 1 ::1 gives an answer, but that looks more like a rpcbind bug.
      • add_server cannot add hosts currently not available, call host2ypbind3_binding everytime we have an entry only with an hostname but no nconf/netbuf entries.
      • Read /var/yp/binding//ypservers when we get a request for and we don't have that yet. Read it durinng startup for the default domain.
      • If a NIS server is specified in /etc/yp.conf, but is not running, you will run into very long timeouts with clnt_create. No longer possible to specify a timeout.
  • yp-tools
    • Added libnis library
    • Added libnss_nis6 glibc plugin.
      To use the IPv6 ready NIS nss plugin for glibc, replace "nis" with "nis6" and add the two lines "passwd_compat: nis6" and "group_compat: nis6" in /etc/nsswitch.conf. Make sure that you don't use "nis" or "nis6" for the "hosts" entry!
    • Linked everything against libtirpc
    • All tools speak IPv6 and the new protocol
  • ypserv
    • Registers additional with udp6/tcp6
    • Answers to IPv6 queries
    • Missing:
      • trusted_master: check if this works with hostnames, IPv4 and IPv6
      • ypproc_newxfr support missing in ypserv

Thorsten Kukuk -
Last modified: Wed Nov 5 15:08:53 CET 2014