[an error occurred while processing this directive]

    Microsoft ICS: Internet Connection Sharing

Internet Connection Sharing is the feature that comes with Windows98SE/2000 / Millennium that allows two or more networked computers to share a single Internet connection. The problem is that the Internet Connection Sharing Wizard that comes with Windows98SE doesn't work very well, and in some cases, can break your existing Internet Connection. However, it's not that hard to set up, as long as you do it properly. If you perform the following steps, in order, you should be able to get it right the first time. 

Note: This is one REALLY long article...   It shouldn't take you more than 20 minutes or so to set up ICS (assuming you have the proper hardware installed). I have tried to be as thorough as possible, covering all possible issues that may arise. 


  What You Need
  Setting Up the Host
  Setting Up the Clients
  Cabling Decisions
  Installing the ICS Component
  Testing the Connection
  Cleaning Up
  More Information


What You Need
In order to get ICS (Internet Connection Sharing) to work, you'll need the following items:

At least two computers.
A functioning Netword card properly installed in each computer. 
If you're sharing a DSL, cable modem, or other ethernet-based Internet connection, the computer with the connection must have two Network cards installed. (Microsoft doesn't tell you about this...)
The network must be cabled correctly. 10base-T or 100base-T, category-5 patch cables, and a Network hub are recommended. If you have only two computers, you can forgo the hub, and use a Category 5 crossover cable instead.
One of the computers must have a dial-up internet connection, properly set up, or a high-speed connection, such as DSL, a cable modem, or T1.
There is no minimum connection speed, but you should keep in mind that when two users are downloading/using the shared connection simultaneously (the worst-case scenario), each user will experience half of the original performance. In other words, you probably don't want to bother sharing a 14.4k analog modem connection.
The computer with the Internet connection must be running Windows 98 Second Edition or another version of Windows with ICS, such as Windows 2000.


Setting Up the Host
The first step to setting up ICS is to configure the host, the computer with the Internet Connection that will be shared. All the other computers are called "Clients," and are discussed in the following section. This step requires the correct protocols to be bound to the correct adapters.

Important: This must be done before the Internet Connection Sharing component is installed. If you've installed it already, jump to Installing the ICS Component to remove it, and then return back here. Double-click on the Network icon in Control Panel, or right-click on the Network Neighborhood icon and select Properties.  In the list labeled The following network components are installed, you should see an entry for your network card. If you have two network cards, there should be an entry for each one. If you have a dial-up connection, you'll also see Dial-Up Adapter here. If the expected items aren't there, you haven't installed your hardware properly.

In addition to the network card entries, you should have each of the following:

Client for Microsoft Networks
NetBEUI -> your first network card
NetBEUI -> your second network card, or Dial-Up Adapter
TCP/IP -> your first network card
TCP/IP -> your second network card, or Dial-Up Adapter
File and printer sharing for Microsoft Networks
The arrows after NetBEUI and TCP/IP mean that the protocols are bound to the devices to which the arrows are pointing.

If you don't see one or more of these items, click Add. If you're adding TCP/IP or NetBEUI, they are both under Protocol. Client for Microsoft Networks is under Client, and File and printer sharing for Microsoft Networks is under Service. For all items, choose Microsoft as the manufacturer. When you add a protocol, it will automatically install an instance for each adapter; if you only see one instance of TCP/IP, for example, just add it again to install it for all your adapters.

If there are extra entries, just ignore them. The exceptions are NDISWAN or any ATM protocols...  if you encounter a problem later on, you might have to remove these to use ICS.

If you have any other Internet sharing solutions (more information) installed on any of the machines, make sure they have been removed or disabled on each machine.

Lastly, make sure your current Internet connection is operational. This will either be your Dial-Up Networking connection, or your high-speed ethernet-based connection. Refer to the instructions for your DSL, cable modem, or other connection type for specific requirements; most likely, this will involve entering an IP address, gateway address, and DNS addresses for the "TCP/IP -> some network card" entry.

If you've made any changes, click Ok when you're done. Confirm that you want to restart Windows when prompted.


Setting Up the Clients
The client machines don't require any special software; just a properly installed copy of Windows 95/98, Windows NT, or Windows 2000 (see What You Need for details.). Do the following for each client machine that will be using the shared connection:

Start by repeating the steps in Setting Up the Host, above, for each client. Note the following exceptions:
1) Don't include the NetBEUI protocol for the clients. It's not needed, and may interfere with ICS.
2) Ignore any settings in regards to a "second Network card" or "dial-up connection."

Next, highlight the TCP/IP entry bound to the Network card (not bound to Dial-Up Adapter), e.g. "TCP/IP -> some network card"), and click Properties.

Select the IP Address tab, and choose Obtain and IP address automatically.

Select the WINS Configuration tab, and choose Use DHCP for WINS Resolution.

Select the Gateway tab, and remove any items in the Installed gateways list.

Select the DNS Configuration tab, and choose Disable DNS.

Click Ok when you're done (the NetBIOS, Advanced, and Bindings tabs don't matter). This will clear any Internet information from the protocol, and allow Windows to configure it automatically. This will make setup much easier.

If you've made any changes, click Ok when you're done. Confirm that you want to restart Windows when prompted.


Cabling Decisions
Once you have the correct protocols and drivers set up on the host and each of the clients, the next step is to figure out the cabling. Without the internet connection, your network should look something like this:

 (Naturally, the number of PCs and printers on your network will probably be different.) The next step is to figure out how the Internet Connection will be wired. For ICS to work, your setup should look like this:

Note that the Internet connection can be in the form of a phone cable plugged into an analog modem, a Network cable plugged into a second network card, or some other connection plugged into the appropriate card.

Make sure you resolve the following before continuing. 
If you are sharing a dial-up connection (using an analog or ISDN modem over phone lines), the adapter that provides your Internet access is Dial-Up Adapter.
If you are using a cable modem, DSL, or another type of connection that connects through an Network card, then the adapter that provides your Internet access is that Network card. In this case, you must have two Network cards installed in the host computer. If they are both the same make and model, it doesn't matter which one is used for the Internet connection and which is used for your LAN - you don't need to decide now. If your Network cards are different, and, for some reason, it matters to you which is used for the Internet, make sure you know which card it is before you proceed.

In any case, it's easier to straighten this out now than in the middle of the next step.


Installing the ICS Component
Now you're ready to install ICS. Note that if something is done incorrectly, you'll have to start this section over. That means removing the ICS component, restarting Windows, and then attempting to add it again.

Important: This step must only be performed on the host computer. ICS does not need to be installed on any of the clients. 

Double-click on the Add/Remove Programs icon in Control Panel, and choose the Windows Setup tab. 
Highlight the Internet Tools without altering the checkbox next to it. If you check or uncheck this box, click Cancel and try again.
Click Details, and then put a checkmark next to the first item, Internet Connection Sharing. For now, don't add or remove any other components - it'll just make it more complicated. If the ICS option is already checked, you'll have to uncheck it now, click Ok, wait for the system to reboot, and then attempt to add it again.
Click Ok, and then Ok again. There will be some delays, some hard disk access, and some more delays. Insert the Windows CD when prompted.
The next thing you see should be the Internet Sharing Setup Wizard. Important: Don't click Cancel or restart your computer before completing this Wizard. There's no way to start it again, so if it's interrupted, you'll have to start over, which means removing and reinstalling ICS.
Click Next at the first information screen.
If the next screen tells you, "To select the connection you want to use to access the Internet, start the Internet Connection Wizard," it means that Internet Sharing Setup Wizard has determined (possibly in error) that you can only share a Dial-Up connection:

If this is incorrect, you probably don't have what you need.
Otherwise, if you indeed want to share a dial-up connection, just click Next again. Click Cancel if the useless Internet Connection Wizard pops up at this point. If you see the message, The wizard cannot detect the network, just click Advanced Settings. The Advanced Settings window is what this whole Wizard catastrophe should've been - the options here should be self-explanatory. 
When you're done, click Ok, then Next, and then Finish.
When you're done with this proceed to Testing the Connection and Cleaning Up.
Otherwise, the next screen should look like this:


Choose the option that best suits the way the host computer connects to the Internet. Essentially, the first option uses Dial-Up Adapter as the adapter to be shared, and the second option lets you choose the physical adapter that provides your connection. Click Next when you've made a choice.  

The next screen (seen only if you choose High-speed connection, above) is often the most confusing, mostly due to its sloppy design. This is especially unfortunate, since an incorrect selection here will cause ICS to not work at all.


Here are some things to keep in mind while making your selection:
The first problem with this screen is that it not only shows all network adapters currently installed, but any adapter that has ever been installed - even those removed long ago! If you choose an adapter that isn't installed, ICS won't work, and you'll have to start over, which means removing and reinstalling ICS.
The second problem is that if both of your Network adapters are the same, they will be indistinguishable here. That's why we carefully added the correct protocols to both adapters in Setting Up the Network. If you did that right, it won't matter which one you choose here.
If your Network adapters aren't the same, it should be easy to choose the one that provides the Internet connection.
Naturally, there's no horizontal scroll bar here, so if you have two different adapters, they might look the same (for example, #1 3Com Etherlink and #2 3Com Etherlink in the screenshot are actually different, but it's virtually impossible to tell here).
If you're not sure which one to use here, but you know that it makes a difference, just guess - worst case is that you'll have to start over.
Don't choose Dial-Up Adapter. If you're using a Dial-Up connection, click Back and choose the first option instead.
The adapters in this list are shown in the same order in which they were installed. That means if you see more than two adapters, and you don't know which two to select, your best bet is to choose the last two (#2 and #3 in the screenshot example).
Make your selection, and click Next.
The next screen should look just like the last, except that the item you just selected will not longer be in the list. Ideally, this should just leave one Network adapter, which you should select. If you see more than one, refer to the notes in the previous step. Click Next when you're done.
The last thing the wizard asks you to do is create an "Internet Connection Sharing Client Disk." This is a pointless step, and can be skipped by pressing Cancel when asked to insert a floppy. (All this does is copy icsclset.exe, the Browser Configuration Setup Wizard, and ICSRM.TXT, a readme file. If you need them later on, they're both in the host's \Windows\System folder.)

That should be it - click Finish and then confirm that you want to restart Windows when prompted.


Testing the Connection
Once all the computers have been restarted, Internet Connection Sharing should be in effect, and all connected computers should have access. To see what the addition of Internet Connection Sharing has changed on the host computer, double-click on the Network icon in Control Panel, or right-click on the Network Neighborhood icon and select Properties. Here's what you should see:

 A new adapter called Internet Connection Sharing has been added.
An instance of Internet Connection Sharing (protocol) should appear bound to your two network cards, and the Internet Connection Sharing adapter, like this:

Internet Connection Sharing (protocol) -> Your first Network card
Internet Connection Sharing (protocol) -> Your second Network card, or Dial-Up Adapter
Internet Connection Sharing (protocol) -> Internet Connection Sharing

Any other instances of this protocol can be removed. For example, if you're using it with two network cards, you can remove the instance that points to your Dial-Up Adapter.

Next, you'll see three new instances of TCP/IP, like this:
TCP/IP (Home) -> Your first Network card
TCP/IP (Shared) -> Your second Network card, or Dial-Up Adapter
TCP/IP -> Internet Connection Sharing

The (Home) instance refers to the device used to connect the host to the rest of the home network - if you select it and click Properties, you'll notice that an IP address (usually has been assigned to it. 
The (Shared) instance refers to the device used to provide the shared Internet connection...  it has no interesting properties. The last entry is what used to be the TCP/IP properties of your internet connection .
In addition, each of the other protocols you had installed (e.g. NetBEUI) are now also bound to the new Internet Connection Sharing adapter. 

What does this all mean? The items that were added should help to show how the ICS layer has been inserted between the TCP/IP stack and your network cards, routing information back and forth as necessary.


Cleaning Up (optional)
There's another step that can be performed (it's optional, so you can skip this section if you want). You may want to disable any unneeded protocol bindings. For example, having NetBEUI bound to the Internet connection adapter is a security risk, so we should remove it. Here's how you do it:

Find your "Shared" adapter:
If you have two ethernet adapters, highlight one of the adapter entries, and click Properties. 
Choose the Binding tab, and examine the items in the list. If one of the items is TCP/IP (Home), then click Cancel and choose the other adapter. 
Likewise, if you see TCP/IP (Shared), then the selected adapter is the "Shared" adapter (this is the one you want).
If, instead, you're sharing a Dial-Up connection, then the Dial-Up Adapter is your "Shared" adapter. Highlight it and click Properties.
For the "Shared" adapter, un-check NetBEUI, and any other protocols you only want to use over the local network (e.g. IPX/SPX, if it's there).
Click Ok when you're done to return to the Network dialog. Scroll down the list, and every time you see a protocol bound to <nothing>, remove it.
Next, remove NetBEUI -> Internet Connection Sharing if you see it.
Then, select the TCP/IP (Shared) -> entry pointing to your Network card, and click Properties. Choose the Bindings tab, uncheck the File and Printer sharing for Microsoft Networks option, and click Ok.
That's it. Click Ok when you're done, and confirm that you want to restart Windows when prompted.

If something stops working after you have removed the unwanted protocols, then you removed something you needed after all. To repair, for example, a disabled NetBEUI instance, just add the protocol again using the instructions in Setting Up the Host.


Ideally, you shouldn't have to install any software or do any more configuration on any of the clients. However, this isn't an ideal world, so if this doesn't work as expected, try the following:

If you're sharing an ethernet-based connection, such as DSL or a cable modem, make sure the host computer has two network cards.
Go back through Setting Up the Host and Setting Up the Clients and make sure all the necessary components and protocols are properly installed.
If you have two network cards, and they're both the same, you had a 50% chance of guessing the right one in Installing the ICS Component. If you guessed incorrectly, all you have to do is switch the cables plugged into each card (that's why it didn't matter which one you chose).
Some Internet Connection Sharing options are available by double-clicking on the Internet Options icon in Control Panel, selecting the Connections tab, and clicking Sharing. If the Sharing button is not there, see Microsoft's technical note on the subject.
During Installing the ICS Component, the wizard prompts you to make an "Internet Connection Sharing Client Disk." While this step can be skipped, you might find the Browser Configuration Setup Wizard (icsclset.exe, located in the host's \Windows\System folder) useful. Just run it on each client machine to perform any additional setup that might be necessary.
Check out Microsoft's technical notes on ICS - they detail the known bugs, and there are plenty of them.
After ICS has been installed on the host computer, a log file, icssetup.log, is created in the \Windows folder. It basically details the process used to select the network cards for the wizard, and might provide some insight as to which cards to choose in the Installing the ICS Component section.


More Information
  There's a readme file, ICSRM.TXT, located in the C:\Windows\System\   folder of the host. It's not terribly helpful, but it might have something of use to you.Microsoft has a page explaining Internet Connection Sharing, but there isn't any useful setup advice there.

See Microsoft's list of ICS Frequently Asked Questions

See the list of ICS-related articles in Microsoft's Knowledge Base.



[an error occurred while processing this directive]