[mod.protocols.tcp-ip] On routing freedom address masks

mogul@SU-NAVAJO.ARPA (Jeff Mogul) (07/08/86)

    From: mills@dcn6.arpa
    No gateway implementation known to me (except the fuzzball as of
    today) supports the ICMP Address Mask messages described in
    RFC-950.

I looked at the 4.3BSD source code; it appears to support the Request
message, although I haven't tested an actual running system.
I would expect that the Proteon gateway supports this as well, since
Noel Chiappa is a partisan.

    This is the only known case that requires broadcast of an ICMP
    message, which not only complicates the implementations, but
    suggests that maybe something is broken in the model. 

I think what it really means is that it is the first ICMP-level
function designed with the knowledge that broadcast is possible.
I see nothing wrong with the current model; the original model
(that broadcast is not available) was what was broken.  Having
said that, I must hasten to add that broadcasting should be done
only when necessary: when you don't know who to talk to or when
(nearly) every host is interested in what you have to say.  ARP
is a good example; rwho is a rotten example.

    The real
    problem is that the ARP/RARP semantics are simply not rich enough
    and should be expanded to include the mask in the first place. For
    instance, a RARP reply should include not only the specific host
    address, but also the address mask associated with its subnet.
    Also, if promiscuous ARP is used to bypass a specific gateway
    address, an ARP reply should include the address mask associated
    with the subnet the address belongs to (if known).

    The requisite semantics and packet formats might not be hard to
    provide, since ARP and RARP are quite generic. While adding the
    subnet mask, the type-of-service mask should also be added. The
    ICMP Address Mask messages should be junked.

This would be a nice optimization of RARP+Address Mask, but it's not
a replacement.  RARP is part of the ethernet layer (well, the data
link layer, but it's only available on ethernets now) but the Address
Mask request is important to the IP layer itself.  I don't think
that, as a general policy, the ICMP Address Mask function should be
removed and pushed into RARP.

In your environment [which I would attack on aesthetic grounds
as a perversion of what is meant by a "local area network", but
I'll grant that while it is ugly it is not likely to go away],
"piggybacking" extra info on the RARP reply might be a good idea,
avoiding the ICMP broadcast unless something goes wrong.  However,
this would require modifying RARP.

Anyway, you don't have to modify the RARP protocol to avoid doing
the second broadcast.  If we assume that a host which responds to
an RARP can be trusted to know the correct mask (an assumption you
already have made) then once you get an RARP response, you know
the address of a host to which you can send a unicast ICMP Address
Mask message.

By the way, I don't understand this sentence:
    Also, if promiscuous ARP is used to bypass a specific gateway
    address, an ARP reply should include the address mask associated
    with the subnet the address belongs to (if known).
If "promiscuous ARP" means "gateway responds to ARP on behalf of
a foreign host" [commonly known as "the ARP kludge"] and "the address"
is the target IP address, then I fail to see what is the use to the
requesting host of the subnet mask for a non-local wire.

-Jeff