diff options
Diffstat (limited to 'usr/src/cmd/tcpd/README.NIS')
-rw-r--r-- | usr/src/cmd/tcpd/README.NIS | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/usr/src/cmd/tcpd/README.NIS b/usr/src/cmd/tcpd/README.NIS deleted file mode 100644 index 34d39e27cf..0000000000 --- a/usr/src/cmd/tcpd/README.NIS +++ /dev/null @@ -1,207 +0,0 @@ -@(#) README.NIS 1.2 96/02/11 17:24:52 - -> Problem: I have several [machines] with multiple IP addresses, and -> when they try to connect to a daemon with tcp wrapper, they are often -> rejected. I assume this is due to the -DPARANOID option, and depends -> on which IP address is returned first from the nameserver for a given -> name. This behavior seems to be random, may depend on ordering in -> the YP host map? - -[Note: the situation described below no longer exists. Presently, my -internet gateway uses the same IP address on all interfaces. To avoid -confusion I have removed the old name wzv-gw.win.tue.nl from the DNS. I -have kept the discussion below for educational reasons]. - -NIS was not designed to handle multi-homed hosts. With NIS, each -address should have its own hostname. For example, wzv-gw is my -gateway. It has two interfaces: one connected to the local ethernet, -the other to a serial link. In the NIS it is registered as: - - 131.155.210.23 wzv-gw-ether - 131.155.12.78 wzv-gw-slip - -In principle, wzv-gw could be the official name of one of these -interfaces, or it could be an alias for both. - -The DNS was designed to handle multi-homed hosts. In the DNS my gateway -is registered in zone win.tue.nl, with one name that has two A records: - - wzv-gw IN A 131.155.210.23 - IN A 131.155.12.78 - -And of course there are PTR records in zones 210.155.131.in-addr.arpa -and 12.155.131.in-addr.arpa that point to wzv-gw.win.tue.nl. - -This setup does not cause any problems. You can test your name service -with the two programs below. This is what they say on a local NIS client -(both client and server running SunOS 4.1.3_U1): - - % gethostbyname wzv-gw - Hostname: wzv-gw.win.tue.nl - Aliases: - Addresses: 131.155.210.23 131.155.12.78 - - % gethostbyaddr 131.155.210.23 - Hostname: wzv-gw-ether - Aliases: - Addresses: 131.155.210.23 - - % gethostbyaddr 131.155.12.78 - Hostname: wzv-gw-slip - Aliases: - Addresses: 131.155.12.78 - -Things seem less confusing when seen by a NIS client in a different -domain (both client and server running SunOS 4.1.3_U1): - - % gethostbyname wzv-gw.win.tue.nl - Hostname: wzv-gw.win.tue.nl - Aliases: - Addresses: 131.155.210.23 131.155.12.78 - - % gethostbyaddr 131.155.210.23 - Hostname: wzv-gw.win.tue.nl - Aliases: - Addresses: 131.155.12.78 131.155.210.23 - - % gethostbyaddr 131.155.12.78 - Hostname: wzv-gw.win.tue.nl - Aliases: - Addresses: 131.155.210.23 131.155.12.78 - -Alas, Solaris 2.4 still has problems. This is what I get on a Solaris -2.4 NIS client, with a SunOS 4.1.3_U1 NIS server: - - % gethostbyname wzv-gw.win.tue.nl - Hostname: wzv-gw.win.tue.nl - Aliases: 131.155.210.23 wzv-gw.win.tue.nl - Addresses: 131.155.12.78 - -The tcpd source comes with a workaround for this problem. The -workaround is ugly and is not part of the programs attached below. - - -#! /bin/sh -# This is a shell archive. Remove anything before this line, then unpack -# it by saving it into a file and typing "sh file". To overwrite existing -# files, type "sh file -c". You can also feed this as standard input via -# unshar, or by typing "sh <file", e.g.. If this archive is complete, you -# will see the following message at the end: -# "End of shell archive." -# Contents: gethostbyaddr.c gethostbyname.c -# Wrapped by wietse@wzv on Sun Jan 8 17:08:48 1995 -PATH=/bin:/usr/bin:/usr/ucb ; export PATH -if test -f gethostbyaddr.c -a "${1}" != "-c" ; then - echo shar: Will not over-write existing file \"gethostbyaddr.c\" -else -echo shar: Extracting \"gethostbyaddr.c\" \(1073 characters\) -sed "s/^X//" >gethostbyaddr.c <<'END_OF_gethostbyaddr.c' -X /* -X * gethostbyaddr tester. compile with: -X * -X * cc -o gethostbyaddr gethostbyaddr.c (SunOS 4.x) -X * -X * cc -o gethostbyaddr gethostbyaddr.c -lnsl (SunOS 5.x) -X * -X * run as: gethostbyaddr address -X * -X * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands. -X */ -X -X#include <sys/types.h> -X#include <sys/socket.h> -X#include <netinet/in.h> -X#include <arpa/inet.h> -X#include <netdb.h> -X#include <stdio.h> -X -Xmain(argc, argv) -Xint argc; -Xchar **argv; -X{ -X struct hostent *hp; -X long addr; -X -X if (argc != 2) { -X fprintf(stderr, "usage: %s i.p.addres\n", argv[0]); -X exit(1); -X } -X addr = inet_addr(argv[1]); -X if (hp = gethostbyaddr((char *) &addr, sizeof(addr), AF_INET)) { -X printf("Hostname:\t%s\n", hp->h_name); -X printf("Aliases:\t"); -X while (hp->h_aliases[0]) -X printf("%s ", *hp->h_aliases++); -X printf("\n"); -X printf("Addresses:\t"); -X while (hp->h_addr_list[0]) -X printf("%s ", inet_ntoa(*(struct in_addr *) * hp->h_addr_list++)); -X printf("\n"); -X exit(0); -X } -X fprintf(stderr, "host %s not found\n", argv[1]); -X exit(1); -X} -END_OF_gethostbyaddr.c -if test 1073 -ne `wc -c <gethostbyaddr.c`; then - echo shar: \"gethostbyaddr.c\" unpacked with wrong size! -fi -# end of overwriting check -fi -if test -f gethostbyname.c -a "${1}" != "-c" ; then - echo shar: Will not over-write existing file \"gethostbyname.c\" -else -echo shar: Extracting \"gethostbyname.c\" \(999 characters\) -sed "s/^X//" >gethostbyname.c <<'END_OF_gethostbyname.c' -X /* -X * gethostbyname tester. compile with: -X * -X * cc -o gethostbyname gethostbyname.c (SunOS 4.x) -X * -X * cc -o gethostbyname gethostbyname.c -lnsl (SunOS 5.x) -X * -X * run as: gethostbyname hostname -X * -X * Author: Wietse Venema, Eindhoven University of Technology, The Netherlands. -X */ -X#include <sys/types.h> -X#include <sys/socket.h> -X#include <netinet/in.h> -X#include <arpa/inet.h> -X#include <netdb.h> -X#include <stdio.h> -X -Xmain(argc, argv) -Xint argc; -Xchar **argv; -X{ -X struct hostent *hp; -X -X if (argc != 2) { -X fprintf(stderr, "usage: %s hostname\n", argv[0]); -X exit(1); -X } -X if (hp = gethostbyname(argv[1])) { -X printf("Hostname:\t%s\n", hp->h_name); -X printf("Aliases:\t"); -X while (hp->h_aliases[0]) -X printf("%s ", *hp->h_aliases++); -X printf("\n"); -X printf("Addresses:\t"); -X while (hp->h_addr_list[0]) -X printf("%s ", inet_ntoa(*(struct in_addr *) * hp->h_addr_list++)); -X printf("\n"); -X exit(0); -X } else { -X fprintf(stderr, "host %s not found\n", argv[1]); -X exit(1); -X } -X} -END_OF_gethostbyname.c -if test 999 -ne `wc -c <gethostbyname.c`; then - echo shar: \"gethostbyname.c\" unpacked with wrong size! -fi -# end of overwriting check -fi -echo shar: End of shell archive. -exit 0 |