Dual TCP Stack Configuration

This paper describes how to configure WebTen to simultaneously run OpenTransport and Tenon TCP/IP stack on a single Macintosh running WebTen.

For high-volume web sites where speed is a must, it is essential to make use of the high-performance Tenon TCP/IP stack. Using Open Transport applicatios such as Timbuktu is also a requirement for many web sites with co-located servers for remote administration. There is a stack configuration called Dual Stack that solves this dilemna of of application flexibility versus TCP/IP performance.

Basic Configuration

The basic strategy is to configure OpenTransport with one IP address and WebTen TCP/IP with a second IP address. This allows Macintosh applications to use OpenTransport, and lets WebTen use its own stack.

The first step in setting up the dual stack configuration is to set up the Open Transport TCP/IP correctly and verify that it works with WebTen. Start up WebTen and verify the settings in the WebTen control panel and make sure that it can serve pages. If you have trouble with this step, please e-mail Tenon Technical Support for further assistance. Once WebTen is installed and configured to work in Open Transport, it is time to configure the Tenon stack.

To configure Tenon stack, click the "Replace Open Transport" button in the WebTen preferences. Enter the appropriate IP address, DNS and router information. The IP address should be different from that of the Mac TCP/IP control panel. The hostname should also be different. After these changes have been made, quit WebTen. Next, move the Mactcpdlib file from the Tenon Kernel Libraries folder into the "Disabled" folder. Start up WebTen and it should work along with your Mac OT applications.

System Considerations

There are a few things you should consider if you decide to use this configuration. First, more RAM will be required to run both stacks. Second, communication between the two stacks must be configured.

More RAM

More RAM will be used when running both TCP/IP implementations. You should be prepared to dedicate as much as 850K of extra RAM to simultaneous TCP/IP operations. This RAM will not be available to your applications.

Cross Talk

Since both TCP/IP implementations are running on the same physical interface on the same machine, under normal circumstances they cannot talk directly to each other. This is typically not an issue, since WebTen does not need to talk to other local servers. There are, however, two areas in which this is important.

Local Web Browsers and WebTen

While it is not essential, it is nice to be able to test Web pages from the same machine. In order to do this, you must run a Web browser on the OpenTransport IP stack and have it exchange packets with the WebTen TCP/IP stack. Normally it is not possible for a physical interface to receive a packet addressed (at the link level) to itself, but WebTen allows the deft administrator to use a local router as in intermediary for packet exchange between the two TCP/IP stacks.

The trick is to configure OpenTransport with an IP address and a subnet mask where, from OpenTransport's point of view, the WebTen IP address will be on a different subnet from the OpenTransport IP address. This will force OpenTransport to direct all packets destined for WebTen's TCP/IP to the router address specified in your OpenTransport TCP/IP Control Panel. Note that you should assign your OpenTransport IP address and subnet mask such that the OpenTransport IP address is on the same subnet as your default router.

On the WebTen side, launch WebTen with the option key down to display the WebTen Networking Preferences dialog. Configure an IP address that now resides on a logical subnet different from the subnet containing the OpenTransport IP address and based on the OpenTransport subnet mask as configured in the OpenTransport TCP/IP Control Panel. No adjustment to the WebTen TCP/IP subnet mask to match the OpenTransport subnet mask is necessary - use your original subnet mask for WebTen.

Next you must adjust the WebTen TCP/IP routing behavior, routing local packets sent to your OpenTransport stack's IP address though your local gateway. To achieve this, you must manually edit the /tenon/etc/rc.local file and add an entry to the bottom of the file that looks like this:

/sbin/route add host <OT-IP-Address> $GATEWAY 1

where <OT-IP-Address> is the OpenTransport IP "dot" address as configured in your OpenTransport TCP/IP Control Panel. This tells WebTen's TCP/IP stack to direct all packets destined for your OpenTransport IP stack to the router. When packets arrive at the router from either WebTen TCP/IP or OpenTransport TCP/IP, it will take care of routing them back to the appropriate stack on your machine!

Using a Macintosh DNS Server on WebTen Machine

If you use a Macintosh DNS server that uses OpenTransport, it will not be directly accessible to WebTen. Aside from the more elaborate router solution presented above, a simple solution is to configure WebTen to do DNS lookups through another DNS server (perhaps a local ISP's). This remote DNS server will talk to your local OpenTransport-based DNS and will automatically pass the results back to WebTen. Since the other DNS server is outside of the local machine, it solves the problem by being able to talk to both TCP/IP addresses.

If you run no Macintosh TCP applications on your WebTen machine other than a DNS server, you may alternatively enable BIND DNS under WebTen and eliminate the Macintosh DNS server.

The DNS server WebTen queries to resolve domain names can be configured in the File/Preferences menu. Enter the IP address of the alternate server in the DNS IP Address field, and WebTen will automatically start requesting DNS information from that IP address. If you enable BIND DNS under WebTen, duplicate the IP address of the WebTen TCP/IP in the DNS IP Address field.

Page last updated 12/28/1999