geof@imagen.UUCP (Geof Cooper) (08/08/87)
In all this discussion of how you can't accomodate different sized subnets, I just wanted to mention that recursive subnets offer a legal solution to the problem -- if you can build the gateways to make them work. In fact, I remember thinking of recursive subnets as a solution to exactly this problem when the subnet specs were being sledgehammered out. The idea of using a subnet mask was partly to allow obscure things like this. The idea is to use higher order bits of the subnet address to label "top-level subnets", and lower bits to label "bottom-level" subnets. The address might look like: NNNNNNNN NNNNNNNN TSSSSSSS HHHHHHHH N => network number bits T => top-level subnet number S => bottom-level subnet bits H => host number There is one "top-level net" in this example (T=1), with a 15-bit host address. The other top-level subnetwork (T=0) is really a subdivision of 128 different subnets, each of which can have 256 hosts. The bottom-level subnets use a mask of 0xffffff00. The top-level subnet uses a mask of 0xffff8000. It is easy to generalize the above example to multiple top-level nets (or even multiple levels of recursive subnets - gawk!). All the gateways in all the subnets have to know the global subnet configuration (at the levels to which they are connected). This means that the configuration tables that were mentioned on the list -- with different subnet masks for different subnets or hosts -- still exist (they map to interfaces now), but only within the gateways. Hosts just use the regular subnet routing, and don't know about recursive subnets. The usual restriction of subnets, that there be only a single entry into the subnet world, still holds (I think) between the top and bottom levels. You could have redundant gateways, but all would have to be equally connected. I guess that you could remove this restriction with smarter gateways (all gateways know about all subnets, regardless of size). Hosts on the top-level network can send to hosts on the bottom-level networks, because bottom level network addresses look like hosts on the "other" top-level network (with T=0), so the packets are sent to a gateway. The Gateway Knows. Hosts on a bottom-level network can send to hosts on other bottom-level networks using the usual subnet- routing algorithm. Hosts on a bottom-level network can send to hosts on a top-level network because all hosts on the top-level network look like hosts on some other bottom-level subnet (which happens to have T=1), so the packets are sent to a gateway. The Gateway Knows. Everybody can send to hosts that are not on the subnet, because such packets always look like they are on a different "subnet", and are sent to a gateway, and The Gateway Knows. Of course, you still have to do the work to make the Gateways Know. - Geof
karels%okeeffe@UCBVAX.BERKELEY.EDU (Mike Karels) (08/08/87)
Round and round and round we go! Your suggestion for recursive subnets is exactly the original Berkeley subnet scheme and proposal (in RFC-something or other), with the bit T inverted. (We used T=1 to indicate bottom-level subnets, T=0 for the trunk network.) Mike