|
This appendix describes how to modify HOSTS and LMHOSTS files to
support address-to-name resolution in Microsoft Windows 98
networking.
- The HOSTS file is used as a local Domain
Name System (DNS) equivalent to resolve host names to Internet
Protocol (IP) addresses.
- The LMHOSTS file is used for name
resolution when a Windows Internet Naming Service (WINS) server is
not available to resolve NetBIOS computer names to IP addresses.
Each of these files is also known as a host table. Sample
versions of LMHOSTS (called Lmhosts.sam) and HOSTS files are added
to the \Windows directory when you install Windows 98 with Transport
Control Protocol/Internet Protocol (TCP/IP) support. These files can
be edited using any ASCII editor, such as WordPad or Edit.
Important To use the HOSTS file for name resolution, the
Enable DNS option must be selected. To do this, use the DNS
Configuration tab in TCP/IP properties in the Network option in
Control Panel.
Microsoft TCP/IP can be configured to search the local host table
file, HOSTS, for mappings of remote host names to IP addresses. The
HOSTS file format is the same as the format for host tables in the
version 4.3 Berkeley Software Distribution (BSD) UNIX
/etc/hosts file. For example, the entry for a computer with
an address of 192.102.73.6 and a host name of trey.research.com
looks similar to this:
192.102.73.6 trey.research.com
Edit the sample HOSTS file that is created when you install
TCP/IP to include remote host names and their IP addresses for each
computer with which you will communicate. This sample file also
explains the syntax of the HOSTS file.
Host names are used in virtually all TCP/IP environments. A host
name always corresponds to an IP address that is stored in a HOSTS
file or on a DNS server and is assigned by an administrator to
identify a TCP/IP host or default gateway. A host name can be used
in place of an IP address when using ping or other TCP/IP
utilities.
Host names are not used in the Windows 98 network user interface,
such as Network Neighborhood or Net.exe. The only time a host name
is used to access a Windows-based computer is when ping or
ftp or another TCP/IP utility is used. In this case, the host
name and corresponding IP address must be stored in a HOSTS file.
The HOSTS file is a static file used to map host names to IP
addresses. This file provides compatibility with the UNIX HOSTS
file. The following describes HOSTS file entries:
- A single entry consists of an IP address
corresponding to one or more host names.
- Entries are case-sensitive. Therefore,
it is a good idea to assign multiple host names with different
cases.
For example, to connect to the UNIX host archive.research.com at
the IP address 144.3.56.200, make two entries in the HOSTS file:
144.3.56.200 ARCHIVE.RESEARCH.COM 144.3.56.200
archive.research.com
This way, a user can connect to ARCHIVE using a utility, whether
or not the CAPS LOCK is enabled.
A HOSTS file must reside on each system. By default, the host
name localhost is an entry in the HOSTS file with the
loopback address 127.0.0.1.
The HOSTS file is parsed whenever a host name is referenced.
Names are read in a linear fashion. The most commonly used names
should be near the beginning of the file. HOSTS file entries do not
replace or interact with Windows-based NetBIOS computer names in any
way.
The following shows the default HOSTS file provided with Windows
98.
# Copyright (c) 1994 Microsoft Corp. # # This is a
sample HOSTS file used by Microsoft TCP/IP for Windows 98 # #
This file contains the mappings of IP addresses to host names.
Each # entry should be kept on an individual line. The IP address
should # be placed in the first column followed by the
corresponding host name. # The IP address and the host name
should be separated by at least one # space. # #
Additionally, comments (such as these) may be inserted on
individual # lines or following the computer name denoted by a
'#' symbol. # # For example: # # 102.54.94.97
rhino.acme.com # source server # 38.25.63.10 x.acme.com # x
client host 127.0.0.1 localhost
| Setting Up LMHOSTS Files |
 |
 | 
When you use Microsoft TCP/IP on a local network with any
combination of computers running Windows 98, Windows NT, LAN
Manager, or Windows for Workgroups, server names are automatically
mapped to their corresponding IP addresses. However, to map server
names across remote networks connected by routers (or gateways), you
can use the LMHOSTS file if WINS servers are not available on the
network. The LMHOSTS file is commonly used to locate remote
computers for Microsoft networking file, printer, and remote access
services, and for domain services, such as logon, browsing,
replication, and so on.
The LMHOSTS file used by Windows 98 contains mappings of IP
addresses to Microsoft networking computer names (which are NetBIOS
names). Microsoft LAN Manager 2.x TCP/IP LMHOSTS files are
compatible with Microsoft TCP/IP.
Microsoft TCP/IP loads the LMHOSTS file into memory when the
computer is started. The LMHOSTS file is a text file in the \Windows
directory that lists the IP addresses and computer names of remote
Windows networking servers that you want to communicate with. The
LMHOSTS file should list all the names and IP addresses of the
servers you regularly access.
For example, the LMHOSTS table file entry for a computer with an
address of 192.45.36.5 and a NetBIOS computer name of Finance1 looks
like this:
192.45.36.5 finance1
The format for the LMHOSTS file is the same as the format for
host tables in 4.2 MSD UNIX systems, with the exception that LMHOSTS
does not allow a scoped name to be indicated. The computer name is
optionally enclosed in quotation marks (this is necessary for
computer names that contain spaces).
To create an LMHOSTS file
- Use a text editor to create a file named
LMHOSTS, or edit the default file named Lmhosts.sam in the
\Windows directory and then save this file as LMHOSTS. This
LMHOSTS file will be checked by default as the machine
starts.
- In the LMHOSTS file, type the IP address
and the host name of each computer that you want to communicate
with. Separate the items with at least one space.
Entries in the LMHOSTS file are not case-sensitive.
You will want to use LMHOSTS for smaller networks or to find
hosts on remote networks that are not part of the WINS database
(because name query requests are not broadcast beyond the local
subnetwork). If WINS servers are in place on an internetwork, users
do not have to rely on broadcast queries for name resolution,
because WINS is the preferred method for name resolution. Therefore,
with WINS servers in place, LMHOSTS may not be necessary.
However, the LMHOSTS file is read when WINS or broadcast name
resolution fails, and resolved entries are stored in a system cache
for later access. When the computer uses the replicator service and
does not use WINS, LMHOSTS entries are required on import and export
servers for any computers on different subnetworks participating in
the replication.
You can use Notepad or any other text editor to edit the sample
Lmhosts.sam file that is automatically installed in the \Windows
directory. The following rules apply for entries in LMHOSTS:
- Each entry should be placed on a
separate line.
- The IP address should begin in the first
column, followed by the corresponding computer name.
- The address and the computer name should
be separated by at least one space or tab.
- The # character is usually used to mark
the start of a comment. However, it can also designate special
keywords, as described in this section.
The keywords listed in the following table can be used in LMHOSTS
using Microsoft TCP/IP. Notice, however, that LAN Manager 2.x
treats these keywords as comments.
Keyword
|
Meaning
|
#PRE
|
Added after
an entry to cause that entry to be preloaded into the name
cache. #PRE entries in LMHOSTS are looked up and cached prior
to WINS lookup. #PRE must be appended for entries that also
appear in #INCLUDE statements; otherwise, the entry in
#INCLUDE is ignored.
|
#DOM:domain
|
Added after
an entry to associate that entry with the domain specified by
domain. This keyword affects how the Browser and Logon
services behave in routed TCP/IP environments. To preload a
#DOM entry, you must also add the #PRE keyword to the
line.
|
#INCLUDE
filename
|
Forces the
system to seek the specified filename and parse it as
if it were local. Specifying a universal naming convention
(UNC) filename allows you to use a centralized LMHOSTS
file on a server. You must map the server before its entry in
the #INCLUDE section, and also append #PRE to ensure that it
is preloaded (otherwise, the #INCLUDE will be
ignored).
|
#BEGIN_ALTERNATE
|
Used to group
multiple #INCLUDE statements. Any single successful #INCLUDE
statement causes the group to succeed.
|
#END_ALTERNATE
|
Used to mark
the end of an #INCLUDE grouping.
|
\0xnn
|
Support for
nonprinting characters in NetBIOS names. Enclose the NetBIOS
name in quotation marks and use \0xnn hexadecimal
notation to specify a hexadecimal value for the character.
This allows custom applications that use special names to
function properly in routed topologies. However, LAN Manager
TCP/IP does not recognize the hexadecimal format, so you
surrender backward compatibility if you use this
feature. Notice that the hexadecimal notation applies only
to one character in the name. The name should be padded with
blanks so the special character is last in the string
(character 16).
|
The following example shows how all of these keywords are used:
102.54.94.98 localsrv #PRE 102.54.94.97 trey #PRE
#DOM:networking #net group's PDC 102.54.94.102 "appname \0x14"
#special app server 102.54.94.123 popular #PRE #source
server #BEGIN_ALTERNATE #INCLUDE \\localsrv\public\lmhosts
#adds LMHOSTS from this server #INCLUDE \\trey\public\lmhosts
#adds LMHOSTS from this server #END_ALTERNATE
In the preceding example:
- The servers named localsrv and
trey are preloaded so they can be used later in an #INCLUDE
statement in a centrally maintained LMHOSTS file.
- The server named "appname \0x14"
contains a special character after the 15 characters in its
name (including blanks), so its name is enclosed in quotation
marks.
- The server named popular is
preloaded, based on the #PRE keyword.
Guidelines for LMHOSTS
When you use a host table file, be sure to keep it up to date and
organized. Follow these guidelines:
- Update the LMHOSTS file whenever a
computer is changed or removed from the network.
- Use #PRE statements to preload popular
entries into the local computer's name cache and to preload
servers that are included with #INCLUDE statements.
- Because LMHOSTS files are searched one
line at a time from the beginning, you can increase the speed of
searches for the entries used most often by placing frequently
used servers near the top of the file. Follow these with less
frequently used servers, and then remote #INCLUDE statements. The
#PRE entries should be at the end of the file, because these are
preloaded into the cache at system startup time and are not
accessed later. Comment lines add to the parsing time, because
each line is processed individually.
|