Ok, você continua editando sua pergunta e alterando o escopo. Embora não tenha certeza do que você quer dizer com:
If a router resides in the same network as the destination host, but cannot resolve the IP, meaning it cannot reach the host itself, then the router should send a host unreachable message.
Eu tenho um palpite. Se o roteador estiver no mesmo segmento de rede, o destino poderá ser potencialmente atingido por definição. O que você entende por "não pode resolver o IP" também não está claro.
No entanto, se o host de destino estiver inativo, o roteador se comportará exatamente da maneira que você descreveu, conforme o padrão. Então eu não tenho certeza do que é que você quer que difere do comportamento padrão ...
Como o seu software de camada superior atua nessa resposta do roteador é outra história. Mas de acordo com o padrão, você deve obter exatamente o comportamento que parece estar pedindo.
Resposta original
Se você quer trabalhar em torno de iptables
(o que eu não tenho certeza da sua pergunta), então você terá que definir um rota nula (também rota blackhole ). Você provavelmente desejará o primeiro, já que ele retornará as mensagens ICMP desejadas.
Com iptables
, o truque é usar um dos valores permitidos para:
... -j REJECT --reject-with ...
Citando o HOWTO :
REJECT
This module has the same effect as 'DROP', except that the
sender is sent an ICMP 'port unreachable' error message. Note
that the ICMP error message is not sent if (see RFC 1122):
o The packet being filtered was an ICMP error message in the
first place, or some unknown ICMP type.
o The packet being filtered was a non-head fragment.
o We've sent too many ICMP error messages to that destination
recently (see /proc/sys/net/ipv4/icmp_ratelimit).
REJECT also takes a '--reject-with' optional argument which
alters the reply packet used: see the manual page.
Consequentemente, na página de manual , obtemos (pesquise "REJECT (específico do IPv6)" e "REJEITAR (específico do IPv4)"):
- IPv6: icmp6 sem rota, sem rota, icmp6-adm-proibido, adm-proibido, icmp6-addr-inacessível, addr-unreach, icmp6-port-inacessível ou port-unreach (ou tcp-reset)
- IPv4: icmp-net-inacessível, icmp-host-inacessível, icmp-port-inacessível, icmp-proto-inacessível, icmp-net-proibido, icmp-host-proibido ou icmp-admin-proibido (ou tcp- redefinir)
Para o IPv4, você está procurando icmp-net-unreachable
e icmp-host-unreachable
, respectivamente, de acordo com sua pergunta.