Are IP addresses where the last byte is 255 invalid?

Baldur Norddahl (bbn@dark.x.dtu.dk)
Tue, 13 Jan 1998 20:13:52 +0100


I better write a general message instead of answering each message
seperatly. First a lot people have stated that I should get answers when I
ping the broadcast address, but this the whole point. I am not pinging the
broadcast address. This subnet is 1024 ip addresses large, and therefore it
contains 3 addresses that ends in .255 that is not a broadcast address in
any way (192.38.212.255, 192.38.213.255 and 192.38.214.255). The real
broadcast address is 192.38.215.255 which everyone answers.

As someone suggested I will take a more simple machine that isn't routing:

[root@harboe /root]# /sbin/ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
RX packets:796 errors:0 dropped:0 overruns:0
TX packets:796 errors:0 dropped:0 overruns:0

eth0 Link encap:10Mbps Ethernet HWaddr 00:80:C8:1D:12:1C
inet addr:192.38.212.10 Bcast:192.38.215.255 Mask:255.255.252.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28644426 errors:15 dropped:230 overruns:0
TX packets:642048 errors:184 dropped:0 overruns:0
Interrupt:5 Base address:0x300

[root@harboe /root]# /sbin/route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
192.38.212.0 0.0.0.0 255.255.252.0 U 0 0 105 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 12 lo
0.0.0.0 192.38.212.1 0.0.0.0 UG 0 0 200 eth0

[root@harboe /root]# ping 192.38.212.255
PING 192.38.212.255 (192.38.212.255): 56 data bytes
64 bytes from 192.38.212.1: icmp_seq=0 ttl=64 time=7.3 ms
64 bytes from 192.38.212.114: icmp_seq=0 ttl=64 time=13.7 ms (DUP!)

--- 192.38.212.255 ping statistics ---
1 packets transmitted, 1 packets received, +1 duplicates, 0% packet loss
round-trip min/avg/max = 7.3/10.5/13.7 ms

[root@harboe /root]# ping 192.38.215.255
PING 192.38.215.255 (192.38.215.255): 56 data bytes
64 bytes from 192.38.215.248: icmp_seq=0 ttl=64 time=18.7 ms
64 bytes from 192.38.212.1: icmp_seq=0 ttl=64 time=42.4 ms (DUP!)
64 bytes from 192.38.215.234: icmp_seq=0 ttl=64 time=48.2 ms (DUP!)
64 bytes from 192.38.215.123: icmp_seq=0 ttl=64 time=72.1 ms (DUP!)
64 bytes from 192.38.215.232: icmp_seq=0 ttl=64 time=77.8 ms (DUP!)
64 bytes from 192.38.214.31: icmp_seq=0 ttl=64 time=83.7 ms (DUP!)
64 bytes from 192.38.215.241: icmp_seq=0 ttl=64 time=89.4 ms (DUP!)
64 bytes from 192.38.215.230: icmp_seq=0 ttl=64 time=107.3 ms (DUP!)
64 bytes from 192.38.215.240: icmp_seq=0 ttl=64 time=113.4 ms (DUP!)
64 bytes from 192.38.215.249: icmp_seq=0 ttl=64 time=119.2 ms (DUP!)
64 bytes from 192.38.213.43: icmp_seq=0 ttl=64 time=125.1 ms (DUP!)
64 bytes from 192.38.215.245: icmp_seq=0 ttl=64 time=133.0 ms (DUP!)
64 bytes from 192.38.215.233: icmp_seq=0 ttl=64 time=138.8 ms (DUP!)
64 bytes from 192.38.215.236: icmp_seq=0 ttl=64 time=144.8 ms (DUP!)
64 bytes from 192.38.212.114: icmp_seq=0 ttl=64 time=150.6 ms (DUP!)
64 bytes from 192.38.215.219: icmp_seq=0 ttl=64 time=168.2 ms (DUP!)
64 bytes from 192.38.215.226: icmp_seq=0 ttl=254 time=174.3 ms (DUP!)
64 bytes from 192.38.213.211: icmp_seq=0 ttl=60 time=180.2 ms (DUP!)
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=187.6 ms (DUP!)
64 bytes from 192.38.215.235: icmp_seq=0 ttl=64 time=193.5 ms (DUP!)
64 bytes from 192.38.215.255: icmp_seq=0 ttl=30 time=199.3 ms (DUP!)
64 bytes from 192.38.215.255: icmp_seq=0 ttl=30 time=205.2 ms (DUP!)
64 bytes from 192.38.215.253: icmp_seq=0 ttl=255 time=211.0 ms (DUP!)
64 bytes from 192.38.215.217: icmp_seq=0 ttl=64 time=228.5 ms (DUP!)
64 bytes from 192.38.215.228: icmp_seq=0 ttl=255 time=234.7 ms (DUP!)
64 bytes from 192.38.212.3: icmp_seq=0 ttl=15 time=240.5 ms (DUP!)
64 bytes from 192.38.215.242: icmp_seq=0 ttl=64 time=247.9 ms (DUP!)

--- 192.38.215.255 ping statistics ---
1 packets transmitted, 1 packets received, +26 duplicates, 0% packet loss
round-trip min/avg/max = 18.7/145.7/247.9 ms

The two other linux boxes with address'es of the form 192.38.212.*
(192.38.212.1 and 192.38.212.114) answers both when you ping 192.38.212.255
and 192.38.215.255. But only if it is done from another box with also with a
192.38.212.* address. If I ping 192.38.212.255 from ormen (192.38.215.240)
then noone answers, which is what is expected.

Everyone is full aware of the fact that the broadcast is 192.38.215.255, and
there is no trace of the 192.38.212.255 in any output of route or ifconfig
as you see. So why do Linux still answer the ping?

Baldur