MY MULTIHOMING APPLICATION
By Jay O’Brien
jayobrien@att.net
January 10, 2001

Click here for a discussion of SSL email to ATT Worldnet

Warning:

This is NOT a step-by-step set of instructions. It is assumed that the reader has already configured a working LAN and has both working broad-band and dial-up connections available. This is really written to help me should I need to do this again or to troubleshoot my setup. You are on your own following this document; all the necessary reference material (and then some) is listed below. I cannot provide technical assistance beyond this document itself. I hope it is useful, and I would very much appreciate advice about any errors contained herein.

Preface:

This setup allows a dial-up connection to ATT Worldnet and a DSL connection (to Speakeasy) to be active at the same time. Only the traffic that must reach ATT directly is routed via the dial-up connection. All other traffic is routed via the DSL modem to Speakeasy (via COVAD and PacBell).

I put this together to satisfy my desire to continue to use my ATT Worldnet email account and to be able to access ATT Worldnet newsgroups, both of which are only available in my area via dial-up to ATT, while at the same time accessing all other internet addresses via my DSL connect to Speakeasy. I also wanted to be able to access Speakeasy news and mail without switching anything.

Physical wiring:

My SpeedStream 5260 ADSL Modem is connected to a Linksys BEFSR41 router which provides NAT and a firewall. The BEFSR41 is then connected to a Linksys EZXS88W 8-port 10/100 switch. The computers on the LAN are connected to ports on the BEFSR41 or the EZSXS88W. If there were four computers or less, there would be no reason for the EZXS88W; all computers could plug directly into the BEFSR41. There is nothing unusual about this arrangement, which is well covered in the references below.

Computer 2 has an external USR V.everything V.90 modem connected to its COM1 port and provides the dial-up gateway. An internal modem will also work.

Initial Setup before multihoming:

All file sharing between computers on the LAN is done with NetBEUI protocol; NetBEUI for each NIC card is bound to Client for Microsoft Networks, File and Printer Sharing for Microsoft Networks, and to Microsoft Family Logon if required (Family Logon seems to not be required with Win Me).

Computer 2 on a stand-alone basis can make dial-up connections to ATT; standard DUN setup is used. When connected to ATT, it is possible to use the MSDOS Ping command to successfully ping locations on the internet.

In the DUN selection to be used by NAT32, go to the Server Types (Win 98) or Networking (Win Me) tab, select TCP/IP settings and un-check the "Use default gateway on remote network" selection. This will then not override your LAN gateway and send all internet IPs to the dial-up.

TCP/IP protocol is installed on each computer for the NIC’s in each computer. The TCP/IP protocol is unbound from Client for Microsoft Networks, File and Printer Sharing for Microsoft Networks, and Microsoft Family Logon (if present).

IP addresses are specified for each computer on the LAN, from 192.168.1.2 to 192.168.1.11 (maximum for a combination of a 4 port switch and a 8 port switch). Subnet mask is 255.255.255.0. WINS is disabled. Gateways are set to 192.168.1.1 (the BEFSR41 address). DNS is enabled with a unique “Host” name for each computer, and the DNS addresses provided by the DSL ISP are entered. Domain is left blank. The BEFSR41 is set up with the assigned IP, default gateway IP address and DNS IP addresses provided by the DSL ISP. DHCP is disabled.

Each computer on the LAN can access the Internet via the BEFSR41 and DSL, and can successfully ping locations on the internet. In addition, they can ping each other.

Install NAT32 (http://www.nat32.com):

Nat32 is a Network Address translator which will call ATT and then make ATT connections available to the computers on the local area network (LAN). NAT32 is available for free download, but the trial version will only run for an hour each time it is started. Once you get everything working then purchase it for $25, on-line; it's well worth it. Follow the NAT32 readme file and nat32doc.html to install, as follows:

Unzip the nat32v6.zip archive (or later version) to directory C:\nat32.

Install NDIS3PKT as follows: Control Panel|Network|Add|Protocol|Have disk (C:\nat32\ndis3pkt.inf). ok. Restart.

Run C:\nat32\setup.exe.

When SETUP.EXE has completed, click START then Programs then NAT32 and then click Configure NAT32.  An Options Dialog Box will be displayed. Check client, one, and select the default DUN script to be used by NAT32 for calls to the ISP. Check “create a desktop shortcut”.

Note that NAT32 has two Logical Interfaces, #2 and #3, which are identical. View from Console|Config:
NAT32 IP addr: 192.168.1.100
Mask: 255.255.255.0
Gateway: 0.0.0.0
Name Server: auto
Address Filter: 192.168.1.xx (this is the LAN address of the NAT32 server)
Primary Interface and Use DHCP are unchecked

NDIS3PKT bindings now show on Dial-up Adapter and NIC Adapter in Network Neighborhood Properties.

Later, put a copy of the desktop shortcut into the startup menu if it is desired that NAT32 be loaded when the NAT32 server computer is started.

Test NAT32 from Client Computer:

With the DSL modem unplugged from the BEFSR41, in a client computer type the following at a MSDOS prompt: ROUTE /F. Then type ROUTE ADD 0.0.0.0 MASK 0.0.0.0 192.168.1.100. This changes the default route from the BEFSR41 to the NAT32. Verify Internet access via the NAT32 and the dial-up connection; enter the dial-up user ID and password (a window will open on the NAT32 server) the first time NAT32 calls out. Verify that ATT mail and news are available, both incoming and outgoing. Reboot client computer, plug in DSL modem and verify that the client is now back on the DSL.

Install Batch files on client computers:

This batch file, called ATT.BAT, will redirect 6 IP addresses from the DSL default to the NAT32. These are the addresses that must be accessed via dial-up directly to ATT. The batch file may be executed from a MSDOS window, included in the start-up group or executed via a short cut on the desktop. Run the batch file and verify that Internet access is via DSL, yet ATT mail is still available, via NAT32 and the dial-up modem. The only command here that is unusual is the add 12.0.0.0 line; I'll explain that later.

:ATT.BAT
:ATT WORLDNET ROUTING VIA NAT32
:
:first clear default and then set default to Linksys BEFSR41
route.exe -f
route.exe add 0.0.0.0 mask 0.0.0.0 192.168.1.1
:
:assure 12 series IPs (att) go to Linksys BEFSR41
route.exe add 12.0.0.0 MASK 255.0.0.0 192.168.1.1
:
:PWP publish & ftp servers
route.exe add 204.159.38.0 MASK 255.255.255.0 192.168.1.100
:
:MSWS and WN homepage
route.exe add 204.127.43.0 MASK 255.255.255.0 192.168.1.100
route.exe add 204.127.12.0 MASK 255.255.255.0 192.168.1.100
:
:netnews server
route.exe add 204.127.36.0 MASK 255.255.255.0 192.168.1.100
:
:postoffice server
route.exe add 204.127.5.0 MASK 255.255.255.0 192.168.1.100
:
:mailhost server
route.exe add 204.127.8.0 MASK 255.255.255.0 192.168.1.100
:end

Install Batch file on computer with NAT32:

There is a problem on the NAT32 server computer. As ATT WN issues an IP to the NAT32 server computer that starts with “12.”, default routes are set up in the server computer which will route the IPs beginning with “12.” (nearly 17 million IPs!)  to the dial-up connection. As this is not desired, a workaround will be established.

It turns out that Win 98SE, Win Me and Win 2K all act differently when a dial-up connection is established to ATT. Win 98SE establishes a route for all the “12.” addresses that can't be deleted. Win Me establishes the same route, but it can be deleted. And best of all, Win 2K doesn't make the route in the first place.

If the NAT32 server computer is running Win 98SE, a preemptive route command can be executed BEFORE the DUN dial-up is established. When the connect completes, another route for the "12" routes is entered into the route table, but the preemptive one continues to work. The preemptive route command is the one above with the preceding note note "assure 12 series IPs (att) go to Linksys BEFSR41".

If the NAT32 server computer is running Win Me, the ATT.BAT file above will work fine. The command with the –f argument will flush the unwanted route, except that if the dial-up connect goes away and is restarted, the unwanted “12.” Route will come back. But, with the preemptive route entered first, nothing happens.

There is a small Problem, however!

This applies ONLY to the computer that has the modem connection. If the Batch file is run again AFTER the DUN connect is established, that causes the unwanted 12.0.0.0 routing to take over. There's two fixes, should the batch file need to be run in this manner. The first, and simplest fix, is to kill the modem connect and reconnect. The other fix substitutes 24 routing commands for the preemptive command. There are 24 bits in the IP address after the "12" part of the "12" IPs; there is a routing command which responds to each of those bits. This probably will never need to be used, but just in case, it is included as Appendix A.

Credit where Credit is due:

Thanks to Chris Chlap from NAT32 for the guidance in creating the routing batch files. Chris proposed the "first" fix, the 24 commands in the "special" batch file in Appendix A. Later, Chris found that ONE command works, if you are aware of WHEN to send that command. His knowledge of the actual IP addresses and how they are represented, bit by bit, in the route commands, made a seemingly impossible task doable, and later he made the "fix" much simpler. When you buy NAT32 you also get superlative email tech support from Chris. Now, if some of the other vendors would follow his example!

Conclusion:

This solution works great for me. I hope this description helps someone else with similar needs, in the same manner that the many posts to URLs and newsgroups have helped me.  Good luck!

References:

This is by no means a complete set of reference material. However, I found this all to be useful in learning about networking and setting up my personal network.

Att Worldnet Home-Networking newsgroup: netnews.att.net:worldnet.help.home-networking (available dial-up only to ATT WN)

Microsoft networking newsgroup: microsoft.public.win98.networking

Steve Gibson: http://grc.com

PRACTICALLY NETWORKED: http://www.practicallynetworked.com

NAT32: http://www.nat32.com

Robert Graham: http://www.robertgraham.com

SOHO: http://www.sohointer.net

911 Networks: http://www.911networks.com

World of Windows Networking: http://www.wown.com

MS TCP/IP and Windows 95 Networking (58 pages): http://www.microsoft.com/TechNet/win95/technote/mstcpip.asp

MS TCP/IP Implementation Details Chapter 6 (41 pages): http://www.microsoft.com/TechNet/winnt/reskit/sur_tcp2.asp

MS Introduction to Networking Configuration Chapter 14 (12 pages): http://www.microsoft.com/TechNet/win98/Reskit/Part3/wrkc14.asp

MS Network Adapters and Protocols Chapter 15 (74 pages): http://www.microsoft.com/TechNet/win98/Reskit/Part3/wrkc15.asp

MS Route Utility syntax: http://msdn.microsoft.com/library/wcedoc/wcecomm/tcpip_57.htm

MS Routing primer: http://msdn.microsoft.com/library/wcedoc/wcecomm/tcpip_12.htm

RFC 1597: LAN addresses: http://www.safety.net/sum1597.html

WRQ: Using Simultaneous LAN and Dial-up Interfaces with Microsoft TCP/IP: http://support.wrq.com/techdocs/1281.html

O’Rellly: Windows NT TCP/IP Network Administration Chapter 11 (30 pages): http://www.oreilly.com/catalog/wintcp/chapter/ch11.html
 
 

Appendix A: Special Batch file
See "There is a small Problem, however!", above

:ATT.BAT
:ATT WORLDNET ROUTING VIA NAT32
:
:first clear default and then set default to Linksys BEFSR41
route.exe -f
route.exe add 0.0.0.0 mask 0.0.0.0 192.168.1.1
:
:now correct for the 12.0.0.0 route added with DUN to ATT
route.exe add 12.1.0.0 mask 255.255.0.0 192.168.1.1
route.exe add 12.2.0.0 mask 255.254.0.0 192.168.1.1
route.exe add 12.4.0.0 mask 255.252.0.0 192.168.1.1
route.exe add 12.8.0.0 mask 255.248.0.0 192.168.1.1
route.exe add 12.16.0.0 mask 255.240.0.0 192.168.1.1
route.exe add 12.32.0.0 mask 255.224.0.0 192.168.1.1
route.exe add 12.64.0.0 mask 255.192.0.0 192.168.1.1
route.exe add 12.128.0.0 mask 255.128.0.0 192.168.1.1
route.exe add 12.0.1.0 mask  255.0.255.0 192.168.1.1
route.exe add 12.0.2.0 mask 255.0.254.0 192.168.1.1
route.exe add 12.0.4.0 mask 255.0.252.0 192.168.1.1
route.exe add 12.0.8.0 mask 255.0.248.0 192.168.1.1
route.exe add 12.0.16.0 mask 255.0.240.0 192.168.1.1
route.exe add 12.0.32.0 mask 255.0.224.0 192.168.1.1
route.exe add 12.0.64.0 mask 255.0.192.0 192.168.1.1
route.exe add 12.0.128.0 mask 255.0.128.0 192.168.1.1
route.exe add 12.0.0.1 mask 255.0.0.255 192.168.1.1
route.exe add 12.0.0.2 mask 255.0.0.254 192.168.1.1
route.exe add 12.0.0.4 mask 255.0.0.252 192.168.1.1
route.exe add 12.0.0.8 mask 255.0.0.248 192.168.1.1
route.exe add 12.0.0.16 mask 255.0.0.240 192.168.1.1
route.exe add 12.0.0.32 mask 255.0.0.224 192.168.1.1
route.exe add 12.0.0.64 mask 255.0.0.192 192.168.1.1
route.exe add 12.0.0.128 mask 255.0.0.128 192.168.1.1
:
:PWP publish & ftp servers
route.exe add 204.159.38.0 MASK 255.255.255.0 192.168.1.100
:
:MSWS and WN homepage
route.exe add 204.127.43.0 MASK 255.255.255.0 192.168.1.100
route.exe add 204.127.12.0 MASK 255.255.255.0 192.168.1.100
:
:netnews server
route.exe add 204.127.36.0 MASK 255.255.255.0 192.168.1.100
:
:postoffice server
route.exe add 204.127.5.0 MASK 255.255.255.0 192.168.1.100
:
:mailhost server
route.exe add 204.127.8.0 MASK 255.255.255.0 192.168.1.100
:end