WINS Injector
Description | Current
Issues | Download
Description:
A WINS server is used as a central point in a network for mapping computer
IP addresses with their NETBIOS names. This allows each client on the network
to simply query the server for which IP address to relate to a given name,
rather than doing a more inefficient network broadcast. This method works fine
with all clients directly connected to the network, but a problem arises when
NAT is introduced.
NAT, short
for Network Address Translation, is employed in many different standard
network switches (routers). The purpose is to allow several computers
to connect to a network under a single external IP address. The router
assigns all the machines within its network internal numbers (ie 192.168.0.2),
and translates between these internal numbers and the single external
IP when traffic travels outside the local net. The problem is that
standard switches are only capable of translating the outer IP header
of the packets travelling to the network. This is sufficient for most
normal communication, but presents a problem for WINS.
The issue
which arises is that the packets used to register a computer with a
WINS server do not rely on the IP header as the source of the machine
IP address. Instead, the client imbeds its IP address within the packet
data itself. A NAT router has no ability to alter the data within the
packet itself, so while the IP header address correctly reflects the
external IP number, the number that is registered will be the internal
address which is invalid outside the router's network. Here is an example:
Computer
FOOBAR is located behind a standard NAT router. The router has assigned
it IP Address 192.168.0.3. The external address of the router is 12.34.56.78.
When FOOBAR starts, its Windows OS sends a short series of packets
to the WINS server attempting to register its name and IP address in
the database.
 |
NAT
Router
---->
|
 |
The WINS
Server proceeds to register the data from within the packet, setting
FOOBAR = 192.168.0.3 (assuming the name is not already taken by another
machine). As you can see, now all network computers looking for files
on FOOBAR will send a network request to 192.168.0.3. Unfortunately,
they are outside the switch and this number is invalid. What they need
to know is that to find FOOBAR they really need machine 12.34.56.78.
This is where the WINS Injector comes in!
The Injector
first synthesizes packets asking the WINS server to release (or
delete) its record for FOOBAR=192.168.0.3. Since there is no machine
matching this data that the server can locate, it will comply. Now
we have an open window to reregister the same computer name with the
external address. The Injector then sends the remaining synthesized
packets saying register FOOBAR=12.34.56.78. Now the WINS server
has the external address registered as the location of FOOBAR. Assuming
the firewall has the appropriate NETBIOS ports open between FOOBAR
and the external net, requests will now come into 12.34.56.78 and be
forwarded back and forth properly.
Current
Issues:
- The WINS
injector is manually run, and does not interface with incoming network
traffic or Windows NETBIOS system. This causes a few issues:
A) Windows will still attempt to register its internal IP address on the
WINS server. The catch that makes Injector useful is since the external address
is also valid, the server will refuse to release the external address. While
it shouldn't impact system or network performance, Windows still won't be
happy.
B) It is necessary to re-run the Injector each time the machine is booted,
or each time the server expires the name registration.
C) The name record will not be released from the server when the machine
shuts down as it would be under Windows.
Download:
[System Requirements]
Windows Platform w/ .NET Framework
Current Version: 1.3 - DOWNLOAD!