Если вы пингуете 10.0.2.2 ОТ 10.0.2.1, то ответ ping (на 10.0.2.1 ОТ 10.0.2.2 )ТАКЖЕ является пакетом icmp, поэтому он соответствует правилу и блокируется.
Чтобы получить желаемое поведение, измените правило на:
ipfw add 02000 deny icmp from 10.0.2.2 to 10.0.1.2 icmptypes 8
Где тип 8 — это «эхо-запрос -», а тип 0 — «эхо-ответ -».
Или добавьте правило до 2000, чтобы разрешать только ответы и продолжать блокировать все остальные пакеты ICMP :
ipfw add 01999 allow icmp from 10.0.2.2 to 10.0.1.2 icmptypes 0
ipfw add 02000 deny icmp from 10.0.2.2 to 10.0.1.2
Doesn't the hardware provide the data?
Обычно это именно так. Обычно даже, потому что аппаратура даже не ощущает этого.