Network Information Services (NIS) Linux tutorial What is NIS? • Problems in running a distributed computing environment : – Each Workstations has its own copies of common configuration files such as passwd, group, and hosts files – These files must be consistent and every changes to these common files much be propagated to every hosts on the network What is NIS? Logon Failure!! ?? What is NIS? • The NIS, released by Sun in 1980s, was the first “prime time” administrative database to address these problems. • It was originally called the Sun Yellow Pages, but eventually had to be renamed for legal reasons. Many vendors have licensed Sun’s code, making NIS the most widelysupported network database system What is NIS? • It is a distributed database system that replaces copies of commonly replicated configuration files with a centralized management facility • Instead of having to manage each host’s files, you maintain one database for each file on one central server NIS Masters, Slaves, and Clients NIS MASTER SERVER NIS SLAVE SERVER NIS SLAVE SERVER CLIENT CLIENT CLIENT CLIENT NIS Servers • An NIS server is a machine storing a set of maps that are available to network machines and applications. • NIS master server – contains the set of maps that you, the NIS administrator, create and update as necessary. – Each NIS domain must have one, and only one, master server. NIS Servers • NIS Slave server – A slave server has a complete copy of the master set of NIS maps. Whenever the master server maps are updated, the updates are propagated among the slave servers. The existence of slave servers allows the system administrator to evenly distribute the load resulting from answering NIS requests. It also minimizes the impact of a server becoming unavailable. NIS Elements • NIS Domains – An NIS domain is a collection of machines that share a common set of NIS maps. Each domain has a domain name and each machine sharing the common set of maps belongs to that domain. – Domain names are case-sensitive. NIS Elements • NIS Maps – NIS maps are essentially two-column tables. One column is the key and the other column is information value related to the key. NIS finds information for a client by searching through the keys. Some information is stored in several maps because each map uses a different key. NIS Elements – For example, the names and addresses of machines are stored in two maps: hosts.byname and hosts.byaddr. When a server has a machine's name and needs to find its address, it looks in the hosts.byname map. When it has the address and needs to find the name, it looks in the hosts.byaddr map. NIS Elements – Maps for a domain are located in each server's /var/yp/domainname directory. – For example, the maps that belong to the domain test.com are located in each server's /var/yp/test.com directory. – An NIS Makefile is stored in the /var/yp directory of machines designated as a NIS server at installation time. Running make in that directory causes makedbm to create or modify the default NIS maps from the input files. NIS Elements • NIS daemons Daemon Functions ypserv Server process ypbind Binding process ypxfrd High speed map transfer rpc.yppasswdd NIS password update daemon NIS Query NIS Query Client Side Application getpwuid ypbind C Library Server Side ypserv ndbm C Library The Filesystem Basic NIS Management • Installing a new NIS Environment, building Master and slave servers • Starting the ypserv daemon, which enables the system to act as NIS Server • Adding new slave servers when growth of your network • Modifying the client’s administrative files • Starting the ypbind daemon, allowing the client to make NIS requests Building NIS Master Server • Edit /etc/defaultdomain to enter your NIS domain name • Edit /etc/rc.d/rc.inet2, modify : # if [ -r /etc/defaultdomain ]; then # nisdomainname `cat /etc/defaultdomain` # fi into : if [ -r /etc/defaultdomain ]; then /bin/ypdomainname `cat /etc/defaultdomain` fi Building NIS Master Server • Add the following lines : dname=`/bin/ypdomainname` echo "NIS domainname is $dname" echo -n "starting NIS services:" /usr/sbin/ypserv echo -n " ypserv" echo "running rpc.yppasswdd" /usr/sbin/rpc.yppasswdd -p /etc/passwd.yp Building NIS Master Server • Last, UNCOMMENT the following lines : # if [ -d /var/yp ] ; then # echo "Running ypbind..." # /usr/sbin/ypbind # fi • This made the NIS master as client Building NIS Master Server • Prepare the passwd file for use by NIS – Our Linux is using shadow password but using shadow passwords alongside NIS does not make too much senses, so we will put only root and system passwords in the local shadow map on the local host. For all the normal user you have a normal passwd map with passwords distributed trough NIS. Building NIS Master Server • NIS Masters as clients – Provide restricted access to the NIS Server – The server has its own passwd file. An alternate passwd map source file which is network wide is used – In the tutorial, we don’t need this extra security but it is required to work around the shadow passwd issue Building NIS Master Server NIS Sever Local /etc/passwd Local /etc/shadow NIS Passwd map source file : say passwd.yp ypserv ypbind root/system local logon normal user local logon through NIS (if permitted) Enabling NIS on client • Make sure that configuration files on the client includes NIS “marker” entries so that NIS map information will be added to the local files – append +: to /etc/passwd, /etc/shadow and /etc/group • Set the NIS domain name, edit /etc/defaultdomain Enabling NIS on client • Start the ypbind daemon, which is responsible for locating NIS servers and maintaining bindings of domain names to servers Changing Password in NIS • Why you need to wait sometime for your new password to be effective if you change your password in our Lab?? Changing Password in NIS NIS Master Server Map propagation NIS Slave Server Request to change passord (use yppasswd) NIS Request Merits of NIS • Simple, easy to understand. It’s analogous to copying files around; in most cases, it’s unnecessary for administrators to be aware of NIS’ internal data formats • Widely supported by multiple vendors like DEC, HP, SGI. Problems of NIS • Storing each type of information in separate data files (eg : host info and user info) resulted in problems propagating the information – When a master server updated its slaves, each of these files, if changed, was sent over the network. In environments with hundred of hosts and thousand of users, this update could take a while Problems of NIS – Between updates, slave servers contained outof-dated information. • Predefined operations limited information retrieval. – For instance, only the user’s log-in named and uid were indexed, making database searching by full user name imossible Problems of NIS • NIS was not a true database. It did not support atomic operations, undo of changes, or logging of operations. • Finally, there was no easy way to manage it. To change data in the database, the static file had to be modified, reconverted into a database, and loaded into the server Network File System (NFS) Linux tutorial What is NFS? • The Network File System, allows you to share filesystems among computers. • NFS is almost transparent to users and is “stateless”. • NFS was introduced by Sun in 1985. It was originally implemented as a surrogate filesystem for diskless clients. What is NFS? • NFS support has been implemented on many platforms ranging from the MS-DOS to the VMS operating systems. Many use code licensed from Sun. What is NFS? • The NFS environment can be implemented on different operating systems because it defines an abstract model of a file system, rather than an architectural specification. Each operating system applies the NFS model to its file system semantics. This means that file system operations like reading and writing function as though they are accessing a local file. Benefits of NFS – Allows multiple computers to use the same files, so everyone on the network can access the same data – Reduces storage costs by having computers share applications instead of needing local disk space for each user application – Provides data consistency and reliability because all users can read the same set of files – Makes mounting of file systems transparent to Benefits of NFS – Makes accessing remote files transparent to users – Supports heterogeneous environments – Reduces system administration overhead NFS Elements Client Side mount command User credentials (UID, {GIDs}) Ser ver Side rpc.mountd /etc/ exports /etc/rmtab /etc/mtab rpc.nfsd The Filesystem Setting up NFS • Start mountd and nfsd – edit /etc/rc.d/rc.inet2 file and uncomment : # # Start the various SUN RPC servers. if [ -f ${NET}/rpc.portmap ]; then # Start the NFS server daemons. if [ -f ${NET}/rpc.mountd ]; then echo -n " mountd" ${NET}/rpc.mountd fi if [ -f ${NET}/rpc.nfsd ]; then echo -n " nfsd" ${NET}/rpc.nfsd fi Setting up NFS • Export filesystems, edit /etc/exports # See exports(5) for a description. # This file contains a list of all directories exported to other computers. # It is used by rpc.nfsd and rpc.mountd. /home linux-1b (rw) – This file servers as the access control list for file systems which may be exported to NFS clients. See man pages of exports(5) for a lists of the options Hard and Soft Mounts • Hard mount – If a server goes down, make operations that try to access it block until the server comes back up • Soft mount – If a serve goes down, make operations that try to access it fail and return an error. This is useful to avoid processes “hanging” on inessential mounts Hard and Soft Mounts • How to choose hard/soft mounts – You never want to write data to an unreliable device, nor do you want to try to load executables from it. You should not use the soft mount on any filesystem that is writeable, nor on any filesystem from which you load executables. NFS only guarantees the consistency of data after a server crash if the NFS filesystem was hardmounted NFS Shortcomings • NFS Suffers its greatest performance troubles because of its stateless design – Since the client assumes a write operation is complete once it receives an acknowledgment from the server, servers must commit each modified block to disk before replying, to avoid discrepancies in the event of a crash. This introduces a significant delay in NFS writes – In contrast, some OS (Like Netware) will acknowledge the client before committing the writes. Installation & Configuration of XFree86 Linux tutorial What is XFree86? • XFree86 is a freely redistributable port of the MIT X window System version 11, release 6(X11R6) for all x86 UNIX implementations. It includes all of the required binaries, support files, libraries and tools • More information can be found in http://www.xfree86.org Latest XFree86 release • The current version of XFree86 is v3.3.2. It supports most-up-todate video chipsets like – ATI Rage Pro (AGP), Matrox Millennium II AGP, Number Nine Revolution 3D, Tseng ET6100, S3 ViRGE/MX and ViRGE/GX2. • The XFree86 comes with the Slackware distribution is v3.3.1 Installation of XFree86 • Install XFree86 by running setup. Select diskset of X, XAP and XV Installation of XFree86 • Select 16-color generic X Server and the appropriate X Server for your video chipset Configuration of XFree86 • Run XF86Setup to start the setup program. This program will walks you through a series of configuration panels. The whole process is quite painless Configuration of XFree86 • Next you need to configure the mouse. • You should pay attention to the mouse type : Microsoft, ps/2 and ports they connected to Configuration of XFree86 • Keyboard is easy to configure. Just choose the default setting should be OK Configuration of XFree86 • Configure the card you used is the most important. Be sure you have installed the corresponding X Server of your card Configuration of XFree86 • Configure the horizontal sync and vertical sync of your monitor. You can find this information in your monitor’s manual Advanced Configuration of XFree86 • The XF86Setup actually create a X configuration file for you at /etc/XF86Config • We will take a look on various sections of this Config file. Advanced Configuration of XFree86 • The Pointer section Section "Pointer" Protocol "Microsoft" Device "/dev/mouse" # When using XQUEUE, comment out the above two lines, and uncomment # the following line. # Protocol "Xqueue" # Baudrate and SampleRate are only for some Logitech mice # # BaudRate 9600 SampleRate 150 # Emulate3Buttons is an option for 2-button Microsoft mice # Emulate3Timeout is the timeout in milliseconds (default is 50ms) Emulate3Buttons Advanced Configuration of XFree86 • The Monitor Section Section "Monitor" Identifier VendorName ModelName "Eizo" "Unknown" "Unknown" # HorizSync is in kHz unless units are specified. HorizSync 31.5 - 82.0 # VertRefresh may be a comma separated list of discrete values, or a VertRefresh 40-150 Advanced Configuration of XFree86 • The screen section Section "Screen" Driver "accel" Device "WinFast S3" Monitor "Eizo" DefaultColorDepth 16 Subsection "Display" Depth 8 Modes "640x480" "800x600" "1024x768" "1280x1024" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "1024x768" "800x600" ViewPort 0 0 Virtual 1024 768 EndSubsection Advanced Configuration of XFree86 • See man page of XF86Config • See README files of separate video chipsets