morrison@accuvax.nwu.edu (Vance Morrison ) (04/03/89)
Hello All, I have developed software for Turning a klunky old IBM XT into a IP router. Below is a description of the software I wrote. The software is available via anonymous FTP from accuvax.nwu.edu (129.105.49.1) in the directory pub/pcroute. We here at Northwestern have found this program to be very useful Already we have replaced a major Hub in our network with a PCrouter and others additions/substitutions are planned. If you find this program useful, let me know, it helps my ego (:-). Vance -------------------------------------------------------------------------- PCROUTE - and IP routing program from the IBM PC Vance Morrison morrison@accuvax.nwu.edu Traditionally IP routers have been fairly high performance, expensive machines. Typically they run about $5000-$10,000 a unit. Until now a IP router for under $5000 was just about impossible to get. Recent developments in PC hardware, however, has made it possible to convert a PC to an IP router for a TOTAL of $800-$1000 a unit. This price is less that the cost of many ethernet boards and thus it now makes sense to always use dedicated router to perform IP gatewaying functions. --------------------------------------------------------------------- What is PCroute? PCroute is software written for an PC/XT (or AT) that will allow it to act as a IP router that will gateway between the following kinds of Physical media. Ethernet - Ethernet Ethernet - Starlan Starlan - Starlan In addition to the XT, the only other hardware needed are the networking cards, which at present run about $200-$250 a piece. Since you can buy an XT (without an monitor) for $400, the total cost for the hardware is $800-$900. --------------------------------------------------------------------- What do I need to install PCroute? 1) An XT computer (does not need monitor) 2) 2 Western Digital WD8003 network cards WD8003E Ethercard Plus WD8003S Starcard Plus WD8003SH Starlink Plus --------------------------------------------------------------------- How Fast is PC route? Some may argue that a PC simply is not fast enough to be a good IP router. This would true if the PC had to do all the work, but in fact, the ethernet cards do most of the work. All the PC needs to do is determine the route, and copy the packet from one interface to the other. By programming in assembler and optimizing for peak efficiency, the PC is up to the task. Actual tests indicate that that following formula is a worst case estimate of throughput of PCroute on a 4.77Mhz XT packet_delay = .473 + .00393 * len msec Where 'len' is the length of the packet in bytes. Thus PCroute has a fix per packet overhead of .473msec and takes 3.93usec/byte to transfer the packet from one network to the other. Thus for the largest packet size (1514) we get throughput of packet_delay = .473 + .00393 * 1514 = 6.4 ms throughput = len*8/packet_delay = 1.9 Mbit/sec For the smallest packet size (64) we get a throughput of packet_delay = .473 + .00393 * 64 = .724 ms throughput = len*8/packet_delay = .7 Mbit/sec If you were to buy a XT clone, (even the $400 variety) it would undoubtedly be a 8Mhz or 10Mhz machine, so you should expect to do 1.6 and 2.0 times better respectively with these machines. I most strongly suggest that you get the 10Mhz variety since they are usually only $30 more and will give you a 12% performance boost In addition the Ethernet boards have an on-board 6.5K packet buffer. Thus packets that come at the PCrouter too fast for it to process will be queued. The router will start dropping packets after this 6.5K buffer is exhausted. Note that since SUN NFS likes to send 8K blocks in fast spurts this will sometimes cause the router to drop packets. I suggest that you set this block size down to 4K if you expect a lot of NFS traffic through the router (look for 'wsize' in man fstab). --------------------------------------------------------------------- What PC route supports? PCroute was designed to be as simple as possible yet perform well as a IP router. In particular it supports 1) IP routing with Subsets (however the subnet mask must begin with 255.255) 2) Static routing with up to 250 routes. 3) responds to ICMP echo (ping) 3) Directed broadcasts The PCrouter also has support for more than two network interfaces, but this requires recompilation of the code, so for now you will have to contact me. --------------------------------------------------------------------- What PC route DOESN'T support? 1) Dynamic routing (yet) 2) Booting off the network (BOOTP) (yet) 3) Any IP services besides routing and ICMP echo. 4) Any other Ethernet/starlan card besides Western Digital WD8003 --------------------------------------------------------------------- Coming Soon. 1) RIP Support 2) Appletalk - Ethernet Support (like a KIP box but you can tunnel IP packets through the Appletalk network) Here at NU we use this so that we can get cheap, reasonably fast network access between buildings. 3) Network Booting a la BOOTP 4) The other ICMP functions so that router conforms to RFC1009 --------------------------------------------------------------------- Hints 1) We found that the 10Mhz XT clones that Jamco and others sell work very well. One nice feature about these units is their BIOS. By setting the dip switches in the PC, you can tell it that there is no Monitor. This also tells the BIOS not to check for a keyboard either. Thus you don't need to buy either the keyboard or the monitor. Other XT BIOS ALWAYS check for the keyboard, and thus you have to plug it in even though you never use it. --------------------------------------------------------------------- Reliability The reliability of PCroute has been EXCELLENT. We have been using these routers for months now in three places with absolutely no failures. If you wish to PING one for yourself here are some PC routers on our campus 129.105.49.13 129.105.1.1 129.105.7.1 --------------------------------------------------------------------- Comments and Bug reports I am interested in finding out what you think of PCroute and how well it performs for you. I am also interested in hearing about any problems you have or bugs in the documentation. You should send your comments to Vance Morrison <morrison@accuvax.nwu.edu> Note that since I am not paid to support this software, I can not guarantee that I can respond to your problem, but I will try. Vance Morrison Northwestern University
henry@utzoo.uucp (Henry Spencer) (04/04/89)
In article <583@accuvax.nwu.edu.NWU.EDU> morrison@accuvax.nwu.edu (Vance Morrison ) writes: >I have developed software for Turning a klunky old IBM XT into >a IP router... Was there some reason not to just use the Phil Karn ("KA9Q") TCP/IP for the PC/XT/AT/...? I can't see any reason why Phil's stuff wouldn't make a perfectly good router; were you aware of its existence? -- Welcome to Mars! Your | Henry Spencer at U of Toronto Zoology passport and visa, comrade? | uunet!attcan!utzoo!henry henry@zoo.toronto.edu
rpw3@amdcad.AMD.COM (Rob Warnock) (04/04/89)
In article <1989Apr4.000727.2759@utzoo.uucp> henry@utzoo.uucp writes: +--------------- | In article <583@accuvax.nwu.edu.NWU.EDU> morrison@accuvax.nwu.edu writes: | >I have developed software for Turning a klunky old IBM XT into a IP router... | Was there some reason not to just use the Phil Karn ("KA9Q") TCP/IP | for the PC/XT/AT/...? I can't see any reason why Phil's stuff wouldn't | make a perfectly good router; were you aware of its existence? +--------------- Well, for one thing, Phil's code associates an IP address with the *host*, not with each interface. (See? KA9Q isn't *perfect*... yet.) That's all right when you a gatewaying from (say) Ethernet to a SLIP link, but isn't so hot if you are trying to go Ether-to-Ether. (Someone at AMD hacked the KA9Q code to put the IP addresses with the interface, and *is* playing with it as an experimental IP router. But it's a hack, and not completely general. Best would be for one of the real KA9Q maintainers to do an "official" fix.) Rob Warnock Systems Architecture Consultant UUCP: {amdcad,fortune,sun}!redwood!rpw3 DDD: (415)572-2607 USPS: 627 26th Ave, San Mateo, CA 94403
les@chinet.chi.il.us (Leslie Mikesell) (04/05/89)
In article <1989Apr4.000727.2759@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes: > >Was there some reason not to just use the Phil Karn ("KA9Q") TCP/IP >for the PC/XT/AT/...? I can't see any reason why Phil's stuff wouldn't >make a perfectly good router; were you aware of its existence? Is there anything similar for OSI protocols? I would like to split a 1 Megabit starlan into at least 2 sub-nets but the only thing I have seen to connect them would be to put 10-1 bridges back to back (at about $4500 each). A PC with two boards sounds a lot nicer. Les Mikesell
karn@jupiter (Phil R. Karn) (04/05/89)
>Well, for one thing, Phil's code associates an IP address with the *host*, >not with each interface. (See? KA9Q isn't *perfect*... yet.) I consider that a feature, not a bug. :-) Seriously, I have always considered the Internet approach of giving addresses to interfaces rather than to hosts to have been a bad move, and my approach of "one IP address per customer" was a deliberate design decision based on how I wanted the amateur packet radio TCP/IP network to evolve. Nevertheless, you can still make my code emulate a conventional Ethernet router with two distinct addresses by merely enabling proxy ARP. You assign the router running KA9Q an address on each network. One of these addresses becomes the host address for the system; the other is entered into the ARP table with the "publish" subcommand such that it answers ARP requests for that address with the Ethernet address of the appropriate interface. For example, consider a system with two Ethernet interfaces and two IP addresses as follows: Interface A: Ethernet addr 02:60:8c:0:0:1 IP addr 1.2.3.4 Interface B: Ethernet addr 02:60:8c:0:0:2 IP addr 44.0.0.1 The autoexec.net file would contain, among other things, the following two lines: ip address [1.2.3.4] arp publish [44.0.0.1] ethernet 02:60:8c:0:0:2 This will make the system behave just as it should for purposes of routing packets. The only precaution you have to make is to use the router's "primary" IP address whenever you want to talk directly to it as a host. Of course, it is then operating as a host, not a router... Phil
zdwcv@dcatla.UUCP (Wm. C. VerSteeg) (04/05/89)
The notion of a cheap IP router based on a PC is a good one. When we start talking about implementations, some interesting ideas get thrown out. Is a proxy arp scheme good enough scheme for such a low-end router? Phil Karn says that his KA9Q can be used as a router by configuring it for proxy arp. If the intended user group is relatively sophisticated, and is confining itself to a SMALL network environment, I would say that proxy arp is sufficient. But proxy arp is not intended for large networks. There is no distributed routing algorithm, so it does not scale well at all. Proxy arp schemes would not work in the internet at large, but may be usefull in some limited applications. Carefully look at your options before you decide to use a package that was not designed to be a router as a router. Bill VerSteeg
karn@ka9q.bellcore.com (Phil Karn) (04/06/89)
>Is a proxy arp scheme good enough scheme for such a low-end router? >Phil Karn says that his KA9Q can be used as a router by configuring >it for proxy arp...[]..Proxy arp schemes would not work in the internet at >large, but may be usefull in some limited applications. You misunderstood the reason I suggested you use proxy arp. The idea was to use it only to circumvent the "one IP address per system" design inherent in my code. Proxy arp allows the package to reply properly to ARP requests for its secondary IP address. You could, of course, go further and use my proxy arp as a general routing mechanism, but in this case the objections you raise become valid. There is, however, no routing algorithm code in my package, although there is talk of adding OSPFIGP. Phil
fink@nucthy.physics.orst.edu (Paul Fink) (04/07/89)
In article <1989Apr4.000727.2759@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes: >Was there some reason not to just use the Phil Karn ("KA9Q") TCP/IP >for the PC/XT/AT/...? I can't see any reason why Phil's stuff wouldn't >make a perfectly good router; were you aware of its existence? >-- >Welcome to Mars! Your | Henry Spencer at U of Toronto Zoology >passport and visa, comrade? | uunet!attcan!utzoo!henry henry@zoo.toronto.edu Ah, I'm not aware of it's existence. Could you tell me wher to get it? ____________________________________________________________________________ Paul J. Fink Jr. Internet: Oregon State University fink@PHYSICS.ORST.EDU Department of Physics Phone: Corvallis, Oregon 97331 (503) 754-4631
mah@hpuviea.UUCP (Michael Haberler) (04/08/89)
We're using KA9Q as a 'super cheap' IP router for about a year now at the University of Economics at Vienna. It's an AT clone bridging a NetBIOS IBM PC Network (broadband - the early works from IBM & Sytek) and the campus ethernet. Also, it has a permanent SLIP connection to a remote PC Network running with 19200 baud. We also experimented with two KA9Q's and dialup SLIP for bridging two distant Ethernets. This worked flawless as long as traffic is low; given the average dumb PC hardware it's easy to lose interrupts when traffic is coming in from more than one side. Especially the Slip connection deteriorated badly under high load. The Ethernet card we use (3c501 - yes I know) keeps the CPU busy with interrupts disabled too long so the serial port just is overrun. The Netbios/slip route actually works better, probably due to less latency of the Netbios driver. I think that a bridge able to sustain higer traffic would need interface cards with substantial on-board buffering. The one-interrupt-per-character scheme for slip would need to be replaced with at least DMA, or better an own CPU on the card. Remember: this all is due to the !@*&^% PC hardware having lousy real-time performance. KA9Q never gave us a problem (Kudos, Phil!). Michael Haberler & Gustaf Neumann (neumann@awiwuw11.bitnet) -- Michael Haberler mah@hpuviea.uucp Hewlett-Packard Austria GmbH, ...mcvax!tuvie!hpuviea!mah Lieblgasse 1 ...hplabs!hpfcla!hpbbn!hpuviea!mah A-1220 Vienna, Austria Tel: (0043) (222) 2500 x412 (9-18 CET)
morrison@accuvax.nwu.edu (Vance Morrison ) (07/04/89)
Call for Beta Testers from PCroute 2.0 Hello All, I have written debugged, and alpha-tested the next version of the PCrouter software. For those of you who don't know what PCroute is, it is a piece of software can turn an old XT or AT into an IP router. The best part of all of this is due to the low cost of and XT clone and ethernet cards, you can make an IP router for under $800. Not bad since A Cisco router doing the same thing cost $8000. (granted, Cisco is a higher performance machine, but I think you will be pleasantly supprised by the throughput of this software, we do a fair amount of NFS and FTP and really don't notice the difference). I have been testing this code for about 3 weeks now in 9 PCrouters here at Northwestern and they seem to be operating properly. But before I schedule an 'official' release (3 - 4 Weeks), I would like to get some other people trying PCroute in situation we simply don't have here at Northwestern. The software itself as well as the source code can be found on accuvax.nwu.edu (129.105.49.1) in pub/pcroute. The source code is compressed, and both the source and the software has been 'tarred'. Please don't go modifying the code until the official release comes out in several weeks, then you can make LOCAL modifications to your hearts content. I Reserve the right to be the SOLE person to make modifications to PCroute that span organizational boundaries. My motive is simple, I want there to be only a single varient of PCroute. If you have a good idea you want incorporated let me know and I will probably put it in. People that aren't on the internet, be patient, in a couple of weeks I will ask UUNET and other UUCP archives to keep a copy, then you can get it yourself. Here are some of the highlights of Version 2.0 (beta) PCroute Version 2.0 PCroute, the software that can convert a PC into a IP router for about $500, is now in its second major Version. As with version 1 PCroute supports 1) Western Digital WD8003 Ethernet and Starlan boards. 2) Static IP routing (up to 250 routes). 3) IP subneting 4) ICMP Ping But in addition Version 2.0 also supports 1) Up to 6 networks interfaces 2) Localtalk interfaces (MacTCP compatable) 3) SLIP (coming soon) 4) ICMP TTL, Redirect, Unreachable 5) Fragmentation where necessary 6) RIP dynamic routing protocol 7) Error loging using BSD syslog 8) PROXY ARP (if desired) 9) Bootp forwarding Vance morrison@accuvax.nwu.edu