Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!samsung!zaphod.mps.ohio-state.edu!mips!ultra!wayne From: wayne@ultra.com (Wayne Hathaway) Newsgroups: comp.protocols.tcp-ip Subject: Question on forwarding broadcasts Summary: Two nets on one cable == Trouble! Message-ID: <1990Sep28.143945.7440@ultra.com> Date: 28 Sep 90 14:39:45 GMT Reply-To: wayne@ultra.com (Wayne Hathaway) Distribution: comp Organization: Ultra Network Technologies Lines: 62 I have a little "IP forwarding of broadcasts" question. The following example configuration is absurdly contrived, of course, but it is the simplest that will illustrate the problem. The problem did surface in a much more complex (and realistic) situation, but I don't want to bore everybody with that. Anyway, consider: +------------+ +------------------------+ +------------+ | Host A | | Default Router | | Host B | | | | | | | | 192.40.1.1 | | 192.40.1.2 192.40.2.2 | | 192.40.2.1 | +------+-----+ +------+----------+------+ +-----+------+ | | | | ===========#=================#==========#=================#=========== Ethernet where both Host A and Host B are configured to forward things they cannot handle to the Default Router. Note that there are TWO DIFFERENT NETWORKS active on a SINGLE ETHERNET CABLE (192.40.1 and 192.40.2). (This is of course key to the problem, but it is a perfectly legal configuration, no?) Now assume a user on Host A does a broadcast to network 192.40.1 (its own network). No problem, Host A simply puts the message out with the Ethernet MAC layer broadcast address, and it is picked up by everybody on network 192.40.1. But Host B will also pick up this message, and will find that it is not destined for him. Host B will then forward it to the Default Router over network 192.40.2. The Default Router will receive this forwarded packet, and will see that it is a broadcast for a directly-connected network, so he will broadcast it out on network 192.40.1, by putting it out with the Ethernet MAC layer broadcast address. But Host B will also pick up this message, and will find ... [repeat as needed]. Clearly what Host B SHOULD do with the "misdelivered broadcast" is say "This is not for me AND it came in as a MAC layer broadcast; therefore just discard it (do NOT forward it)." But unfortunately that requires IP to know what MAC layer address a datagram came in on, and (at least in any BSD-derivative implementation I know of) that information is not available to IP. Finally, note that saying "Host B should recognize this is a broadcast from the destination address and not forward it" is NOT a solution, since it appears to Host B to be a perfectly legal DIRECTED broadcast to network 192.40.1 from somewhere else, and as far as Host B knows, he is the only way for that directed broadcast to get through; he HAS to forward it. Any comments/suggestions/flames? Are there non-BSD implementations out there that handle this? Mods to BSD? Future plans from vendors? Anything else? [This IS a real problem in any situation where there are multiple independent networks or subnets active on a single cable, and we in particular have a lot of those situations. Any real live help will be most appreciated!] Wayne Hathaway domain: wayne@Ultra.COM Ultra Network Technologies uucp: ...!ames!ultra!wayne 101 Daggett Drive phone: 408-922-0100 x132 San Jose, CA 95134 direct: Hey, you!