sale@ed.uucp (Ed Sale) (03/16/89)
RFC 792 when describing the Information Request message, states: This message may be sent with the source network in the IP header source and destination address fields zero (which means "this" network). The replying IP module should send the reply with the address fully specified. This message is a way for a host to find out the number of the network it is on. Douglas Comer in "Internetworking with TCP/IP", states: Machines use the ICMP information request message to obtain an Internet address for a network to which they attach; it is an alternative to RARP. I'm confused. Which does it do - get the network part of the internet address (in which case how does it know what class network address it is to determine how many bytes are host address?) - or get the entire internet address translated from the hardware address in the physical header - or both? Ed Sale ...!uunet!ingr!b11!sale or b11!ed!sale@ingr.com Ed Sale ..!uunet!ingr!b11!sale or b11!ed!sale@ingr.com
hedrick@athos.rutgers.edu (Charles Hedrick) (03/17/89)
I do not think you are confused. If Comer says ICMP Information Request can be used as a complete replacement for RARP, then he is confused. However it could be used in some cases. According to RFC792, ICMP Information Request can be used in the case where a host knows its own host number, but not its network number. The source address would be thus be something like 0.0.0.123. The host generating the reply fills in the address by supplying the local network number. In the early days, there were some schemes that mapped the host number into the low-order byte of the Ethernet address, derived it from the machine serial number, etc. In such a situation the local software might reasonably be able to deterine the local host number but not the network number. In practice I don't think anybody uses such schemes these days. So this technique for finding your own address isn't much use. I suppose one could extend ICMP information request by allowing a source address of 0.0.0.0 where a host didn't know anything about its address at all. If the system generating the reply can see the Ethernet address from which the request came, and if it has a table of Ethernet address vs IP address (i.e. the data needed to use RARP), it would then be in a position to fill in the full address. While one could imagine using such a technique, I've never heard of it being done. 4.3 BSD will work if you supply 0.0.0.123, but not 0.0.0.0. (If you did that, it would return an address like 128.6.0.0, i.e. the network number with the zero still in the low-order end.) In my view, that is technically what RFC 792 says to do. I suggest using BOOTP to find your IP address. Its advantage over RARP is that it will work even if you are separated from the bootp server by a router. It is also possible to us bootp to give configuration information other than just the IP address.
braden@VENERA.ISI.EDU (03/22/89)
The Host Requirements RFC draft says ICMP Information Request/Response is a SHOULD NOT. The discussion notes that RARP and BOOTP are better approaches to booting a diskless host. Bob Braden