[comp.protocols.tcp-ip.ibmpc] KA9Q and RIP

brian@THUMPER.CC.WAYNE.EDU (Brian_Holmes) (01/11/90)

I just set up an IBM AT to act as a router using KA9Q.
This works much better then the IBM routing software
for PC's.  KA9Q allows me to set a default route, while
IBM program had to have every host in a table.
I noticed the NOS version of KA9Q has a 'rip' command.
Do anyone have any docs explaining this?  I grabbed
USERMAN.DOC from flash.bellcore.com, but this didn't have
any reference to this command.

karn@ka9q.bellcore.com (Phil Karn) (01/16/90)

In article <88@thumper.cc.wayne.edu> bholmes@cms.cc.wayne.edu writes:
>I just set up an IBM AT to act as a router using KA9Q.
>This works much better then the IBM routing software
>for PC's.

You just made my day. :-)

>I noticed the NOS version of KA9Q has a 'rip' command.
>Do anyone have any docs explaining this? 

As is usual, the documentation lags the software by quite a bit. (Why
document something when you're just going to change the code anyway,
rendering the documentation obsolete? :-))

Passive RIP is quite easy to use; just say "start rip" and routing entries
will start to appear in your table. To use active RIP (i.e., where you want
to broadcast entries as well as receive them) takes a little more work.

First you have to "hardwire" some routing and ARP entries to get the rip
broadcasts out to the wire. Say

arp add 44.255.255.255 ethernet ff:ff:ff:ff:ff:ff

where you replace "44.255.255.255" with your local net's IP broadcast
address. You should have one of these for each broadcast interface on
your system. Then make sure the IP broadcast address(es) are routed
to the appropriate interfaces:

route addprivate 44.255.255.255 ethernet0

Normally, this latter step won't be necessary since you probably already
have routing entries that would ensure this.

Now you can start up rip broadcasting with

rip add 44.255.255.255 30 1

where 44.255.255.255 is the IP broadcast address to use, 30 is the number of
seconds between updates (this is the standard for Ethernet) and 1 is a flag
that specifies split horizon/poisoned reverse is to be used (this is highly
recommended).  Use one "rip add" command per interface.

I'm working on an "ifconfig" command with a BSD-like user interface that
will create these routing and arp entries automatically when the subnet
mask and broadcast addresses are set.

There is also a semi-experimental "rip merge" flag. If you set it "on",
the routing code will automatically eliminate redundant entries. These are
defined as more specific entries that duplicate the effect of less specific
entries. E.g, if the table contains

44.1.2.3	32	ethernet0
44.0.0.0	8	ethernet0

the first entry is redundant. Without it, any packets sent to 44.1.2.3 would
still go to the same interface (ethernet0).  The rip merge feature will
delete such entries after each rip update is received.  I find this command
useful for filtering out lots of "chaff" in tree networks with multiple
levels of subnets, which are very common in amateur radio TCP/IP.

--Phil