ndd is an user-space implementation of ND(4p) protocol, used by early SUN Microsystems' diskless workstations to access data on servers over network.
The ND protocol was developed in early 1980s by SUN Microsystems. It was completely replaced by NFS in SunOS 4.1.x (around 1989). The protocol is mentioned in some books and papers from 1980s but its internals are described only in the man pages distributed with the SunOS; this work is based on the version distributed with SunOS 3.5.
The ND protocol is very simple: the client encapsulates block I/O request into one or multiple IP datagrams and transmit them to the server. The server performs the I/O and sends the reply back, to the client. Each network "disk" on the server is implemented as a dedicated raw disk slice. The protocol does not provide any kind of access control or support for concurrent access: each client is supposed to modify only its own data; shared data needs to be accessed read-only.
My implementation uses file(s) instead of disk slice(s) and can run either as a daemon or a foreground process. It was originally developed on Solaris 11, but it should run basically on any modern UNIX-like system which provides adequate support for SOCK_RAW/IPPROTO_IP sockets.
The ndd was implemented from scratch, it does not contain any source code created by Sun Microsystems Inc.
Obtain and install the iniparser
ndd uses GNU Autotools:
./bootstrap.sh
./configure
make
sudo make install
See the wiki page for more details on how to configure and use the ndd.
Jan Senolt senjan
This project is licensed under the MIT License - see the COPYING file for details