Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!cbatt!ihnp4!icom!andy From: andy@icom.UUCP Newsgroups: comp.dcom.lans Subject: Internet Gateways on IEEE 802.3 Message-ID: <1147@icom.COM> Date: Fri, 23-Jan-87 09:30:21 EST Article-I.D.: icom.1147 Posted: Fri Jan 23 09:30:21 1987 Date-Received: Sat, 24-Jan-87 10:44:56 EST Organization: Icom Systems, Inc., Arlington Hts., IL Lines: 65 Keywords: Internet, Gateway, Ethernet, IEEE 802.3, IP (This should probably also [only?] be posted to mod.protocol.tcp-ip, but moderated posting, they no work so pretty good 'round these parts.) The problem: some devices interfaced to a (not necessarily THE) Internet via an 802.3 Ethernet have no user interface which would enable them to obtain from a human the name of at least one gateway. An example: Suppose I want to build a terminal server which connects to an internet with the following topology: 802.3 net #1 net #2 host A -------+---------- gateway ---------- host B | terminal server goes here. Now, the terminal server can find out its Ethernet address using RARP, and the Ethernet address of host A and the gateway using ARP, but how does it learn that the gateway is in fact a gateway? Solution 1: hard code one gateway in the TS's ROM. Yuck. 'Nuff said. Solution 2: use invisible gateways. Modify the ARP server of at least one (preferably all) gateways on the local net to match all non-local network numbers and handle them as though they referred to this machine. That is in the gateway ARP server procedure change phrases like "if the destination IP address field matches this host's IP address" to phrases like "if the IP adress field matches this host's IP address, or the network number portion of the IP address field differs from the network number of the IP adress field of the source and this machine is a gateway to that network." This will make it appear as though every machine on the internet were on the local network. Solution 3: modify RARP to return the IP address of at least one gateway on the local network. This seems straightforward enough. Solution 4: hunt and pray. If you get a packet that needs gatewaying, and don't know any gateways yet, try sending it to each host you know about in hopes it is a gateway (if it isn't you should get an ICMP packet). The problem here is keeping track of which hosts have been tried needs to be done at the transport level (TCP or UDP), also only the transport level knows the best choice of host to make. This has the singular strong point of compatibility. I'm interested in hearing about the following WRT the above: * How has this been dealt with by others? * Is there anything particularly good or bad about the above techniques? * Which of the above techniques is likely to be best in a BSD 4.3 environment? * Am I missing anything obvious? I am relatively new to internetworking, so if I am reinventing a wheel I'd really like to know about it. -- andy@icom.COM, or icom.COM!andy, Andrew H. Marrinson or if you must: ICOM Systems, Inc. ..!ihnp4!icom!andy Arlington Heights, IL 60005