[Q]: Routing for OS/2

[A]: Tony Rall (trall@almaden.ibm.com)

Organization : IBM Almaden Research Center (2:50/128.0@fidonet)

Routing for OS/2 TCP/IP

(Wherever “SLIP” is indicated below, any supported point-to-point protocol could be substituted. From the routing standpoint, it makes no difference. Currently, August 1994, SLIP is the only such protocol supported by OS/2 TCP/IP.)

In the examples below, IP addresses are shown using the following shorthand:

L1 = IP address for interface 1 on subnet L. For example, if the
subnet address is 128.1.2.0 (subnet mask = 255.255.255.0), the IP
address would be 128.1.2.1.

Most, if not all, of the changes suggested below for SETUP.CMD and TCPSTART.CMD (these are in the TCPIP\BIN directory) can be accomplished by completing the Network, Routing, and Autostart sections of the TCP/IP configuration notebook (TCPIPCFG.EXE) rather than simply editing the indicated files.

Routing on a machine with a single interface

————– LAN

| | |

L1 L2 L3-----other subnets
router

Static routing

Simple, cheap, but no recovery from router failure. In SETUP.CMD,

for machines such as L1 and L2, add:
route -f add default L3 1
The network administrator should provide you with the router's IP
address.
* Dynamic routing
Not very complicated, some cost (requires another process (demon)
running on your machine that listens for certain broadcast
packets), can provide automatic recovery from router failure and
configuration changes. To use this, at least one router on your
network must also support RIP, a routing protocol most commonly
used on end-user networks. In TCPSTART.CMD, add (or uncomment):
start routed -q
or (to avoid having the demon's window appear on your screen):
start /min routed -q
or (to avoid routed even showing up in your window list):
detach routed -q
You don't need any route statements in SETUP.CMD.

Routing a LAN via SLIP to the internet

————– LAN

| | | SLIP link

L1 L2 L3/S1-------------------S2/I1---(the internet)

In this setup, the administrator of the S2/I1 machine (usually a
commercial Internet provider) must be aware that you have a "network"
at your end of the SLIP link and not simply a single machine. That
administrator usually must assign you the local network address (L)
that you will be using (as well as the SLIP addresses (S1 and S2). In
some cases, the SLIP addresses will be handled dynamically; this would
usually be handled in SLIPUP.CMD, rather than in SETUP.CMD, on L3/S1.
(I hope that the LAN addresses, L1, L2, and L3, are not dynamic - I
wouldn't know how to handle that.)

The non-SLIP LAN machines (L1, L2)

In SETUP.CMD, add:

route -f add default L3 1
* The SLIP-LAN machine (two IP addresses: L3 and S1)
In SETUP.CMD, add:
route -f add default S2 1
In TCPSTART.CMD, you may need to start routed (but without the
"-q" option) - see below:
start routed
* Routing required on the "internet" side
If routed is not being used by L3/S1, a network route (on S2/I1)
is needed to the LAN:
route add net L S1 1
If routed is being used by L3/S1, no route statements should be
needed on S2/I1.

Routing a LAN (office) machine via SLIP to a home machine

SLIP link
S1-------------------S2/I1---(the office network)
home office

In this setup, the administrator of the office network must provide
you with your IP addresses. You need at least 3 of them: S1, S2, and
I1. Ideally S1 and S2 will be on a different subnet than I1 - ask for
this configuration. If your network administrator will only provide
addresses in the same network, you must use the "proxy arp" solution
below.

The home machine

In SETUP.CMD, add:

route -f add default S2 1
* The office (SLIP-LAN) machine
* Routing to a SLIP subnet
You simply must be running a routing protocol out the LAN (I1)
interface. In TCPSTART.CMD, you need to start routed (but without
the "-q" option):
start routed
* Proxy arp solution - no separate SLIP subnet
In this case, all of the IP addresses (S1, S2, I1) that you've
been assigned are on the same subnet. Normal routing techniques
will not work because the S1 address (no other LAN machine needs
to talk to S2) is not physically on the same network as I1. So
we try to use a technique call "proxy arp": the office machine
will respond on the I network to arp queries for S1 with its own
adapter address.

First you have to determine the LAN adapter address of the I1
interface. Issue "netstat -n" and copy the displayed "physical
address" for the I1 interface. In SETUP.CMD, after the "arp -f"
statement add:
arp -s S1 12:34:56:78:90:12 pub
where 12:34:56:78:90:12 is the adapter address of I1.

This tells TCP/IP that when it receives an arp message for IP
address S1, that it should respond with its own adapter address.
Thus other machines on the I subnet, when wanting to send to S1,
will actually transmit to I1. The S2/I1 machine should forward
the packet over the SLIP link to S1.