Thank you for an overwhelming response to my question ... way too many names for me to list them out here :)
Victor Dinh
ORIGINAL :
What is the quickest way to set up a DNS client machine. This must be an easy question for you guys but I can't seem to remember.
I remember that under Solaris, you need to add/modify /etc/resolv.conf file but is this all ? How about under SunOS ??? Any help would be appreciated. Thank you
SOLUTION:
Solaris 2.X
1. create /etc/resolv.conf with the following format
domain abc.com
nameserver 100.22.11.44
2. edit the hosts line in /etc/nsswitch.conf to look as follow
hosts: files dns
comment: the above line tells the system to look at the /etc/hosts file first and then dns
Solaris 1.X
1. create /etc/resolv.conf with the following format
domain abc.com
nameserver 100.22.11.44
2. modify libc.so to use DNS.
SRDB ID: 4616
SYNOPSIS: On SunOS 4.1.X, how to use DNS without NIS (unsupported method)
DETAIL DESCRIPTION:
On SunOS 4.1.X, how to use DNS without NIS (unsupported method)
When we try to ping or telnet by hostname, we always get an
unknown host error. /etc/resolv.conf is in place, and nslookup
works fine. How can we get DNS working?
SOLUTION SUMMARY:
This is the same solution as can be found in the Infodoc #3886:
MAKING A LIBC.SO for DNS without NIS
This is a procedure that can be used to add name resolver
routines into shared libc library in SunOS_4.1.
*****************************************************************
NOTE: The Sun supported method of using DNS is via NIS, however
we understand the need for customers to be able to run DNS
without NIS which is why we provide the following procedure.
Customers should be warned that they use this method "At
their own risk," and Sun support will not be able to help
them with DNS related problems if they choose this method.
*****************************************************************
Load "SHLIB_CUSTOM" either from SunInstall or from
add_services.
Be sure to first have the file /etc/resolv.conf
properly configured. This can be tested first with
/usr/etc/nslookup.
-------------------------------------------------------------------------
1. Become super user:
% su (if necessary)
2. Make a temporary directory:
% cd /usr/lib/shlib.etc
% mkdir tmp
3. Change to the "tmp" directory that you just made, extract the pic .o from
libc_pic.a and rm the file __.SYMDEF. The reason why you needed to do two
"mv" commands is that "ar" truncated filenames over 16 characters.
% cd tmp
% ar x ../libc_pic.a
% rm __.SYMDEF
% mv rpc_dtablesize. rpc_dtablesize.o
% mv rpc_commondata. rpc_commondata.o
% ar x /usr/lib/libresolv.a
The libresolv.a (apparently) contains object modules that are
position-independent, so they can be added to the libc_pic modules
without fear.
4. Remove the old routine to do the hostname/addr resolution:
% rm gethostent.o
5. Remove the libresolv module that contains `strncasecmp' (which is now
in the main C library, so it is redundant):
% rm strcasecmp.o
6. % cd ..
7. Copy lorder-sparc to lorder-sparc.orig Edit the file lorder-sparc
and remove the reference to `gethostent.o' and add the references
to the resolver library routines by applying this patch:
remove: gethostent.o
add: gethostnamadr.o
sethostent.o
res_query.o
res_mkquery.o
res_send.o
res_debug.o
res_comp.o
res_init.o
% diff -rc2 lorder-sparc.orig lorder-sparc
*** lorder-sparc.orig Thu Feb 8 05:27:46 1990
--- lorder-sparc Mon Apr 9 12:58:59 1990
***************
*** 150,154 ****
getwd.o
getnetgrent.o
! gethostent.o << REMOVE
ypxdr.o
ttyname.o
--- 150,161 ----
getwd.o
getnetgrent.o
! gethostnamadr.o << ADD
! sethostent.o << ADD
! res_query.o << ADD
! res_mkquery.o << ADD
! res_send.o << ADD
! res_debug.o << ADD
! res_comp.o << ADD
! res_init.o << ADD
ypxdr.o
ttyname.o
8. % make libc.so
9. You should have some libc.so.x.y.z built in the current directory. Test
this library before installing by setting the environment
LD_LIBRARY_PATH to the current directory, for example:
% setenv LD_LIBRARY_PATH `pwd`
% your_favorite_test_cmd (i.e. ping, ftp, telnet)
Once you are satisfied that the new library works, install
it with the following commands:
% cp libc.so.x.y.z /usr/lib
% ldconfig
% unsetenv LD_LIBRARY_PATH
10. You are now running with the new library. Verify this by doing a trace
command of "date":
% trace date
The output should state that the new library is being used.
BUG REPORT ID: n/a
PATCH ID: n/a
PRODUCT AREA: Gen. Network
PRODUCT: DNS
SUNOS RELEASE: SunOS 4.1.3
UNBUNDLED RELEASE: n/a
HARDWARE: Sun3, Sun4, Sun4c
ANOTHER SUGGESTION for Solaris 1.X
Ric (<ric@rtd.com> "Ric Anderson", using RTD's public internet access)
-----------------------------------------------------------------------------
Subject: 3.2) How do I use DNS instead of NIS for hostname resolution?
The "normal" behavior of a hostname lookup under NIS is to consult the
NIS hosts map and then DNS (if configured). You can change this so all
hostname lookups go directly to DNS. The SunOS shared library mechanism
allows you change the behavior of any command that is dynamically linked
to the shared library. In SunOS 4.1 and greater releases, there is an
optional package called "shlib custom" that contains a kit for
rebuilding shared libraries. You can select this in suninstall or load
it later. It will put the files in /usr/lib/shlib.etc. Note that
machines that come with pre-installed SunOS don't include this. It
contains both a "normal" and System V version of libc and some tools to
build shared libraries. The Sun-supplied README file gives some help,
but doesn't detail how to change the hostname lookup functions. The
complete procedure for this is spelled out in "bindon41.shar", which is
available for anonymous ftp from "ra.mcs.anl.gov" in "/pub" - it goes
one step further and replaces the Sun resolver routines with BIND 4.8.3
(or later) versions. Note that you can still use NIS for other things in
environment, such as passwd, group info, etc - the NIS hosts map is just
ignored. There are several important statically linked binaries that
will break if you replace the Sun routines. "/etc/mount" is probably
where you will first notice that it doesn't know about any host that is
not present in /etc/hosts. The same goes for "rcp". My solution was to
recompile mount and rcp with the new resolver routines, but you need
source code to do this. Sun apparently will give you a dynamically-
linked version of mount if you have software maintenance. You can
compile your own version of rcp from the Berkeley 4.3 source that is
available on various ftp site. Otherwise, you might just have to have
all hosts (and aliases) in /etc/hosts that you want to mount or use
Internet addresses (yuck). Another "feature" of a DNS-only environment
is that hostnames will sometimes be returned all in uppercase and these
will not match the lower-case entries you typically have in
/etc/exports, /etc/bootparams, etc. There are some patches to BIND 4.8.3
called "resolv+" that allow you to specify hostname lookups to
/etc/hosts only, DNS only or both.
bind 4.8.3 can be found on gatekeeper.dec.com (16.1.0.2) in
/pub/BSD/UCB/bind.4.8.3.tar.Z. resolv+ is on osl.csc.ncsu.edu (152.1.58.11)
in pub/unix/sun/resolv+-2.1.tar.Z. A later version is available at
emx.cc.utexas.edu:/pub/mnt/source/tcp-ip/resolv+2.1.1/resolv+2.1.1.tar.Z
The latest version of bind is available from gatekeeper.dec.com (16.1.0.2)
in /pub/misc/vixie.
This archive was generated by hypermail 2.1.2 : Fri Sep 28 2001 - 23:11:11 CDT