8/28/2008 8:13:48 PM 
Cyber Dog Tech Title Image
Title Image
 
Blue Arrow Work
 •Debian Firewall
    Tutorial
 •Projects
 •School [RPI]
 •Writing
 •Random
 
Green Arrow
 •GPG Key
    [7070384A]
 •Tech Specs
 •Paranormal
    Library
 •Memberships
 •I am...
 •BOINC Stats
 •Folding@Home
 
Red Arrow Misc
 •Old News
 •AIM Quote
    Locker
 •Driving in NC
 •Top 12
 •Archives
 
Purple Arrow Hosted
 •Pyro's Nook
 •Agents Point
    Archives
 
Yellow Arrow Contact
 •Feedback Form
 
Jinx Hackware
 
Valid XHTML 1.0!
Valid CSS!

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.

Packet

NAT

Router

---->

Packet

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!

 
Copyright © 2006 Matt LaPlante. All rights reserved.
Page created in 0.0028 seconds.