Use o iproute2.
ip route add unreachable 74.1.1.0/24
Nesse caso, se você está tentando negar o tráfego de saída para essa rede, é melhor usar o roteamento para negar essa rede, em vez do netfilter. Para entrada , é mais idiomático usar o netfilter, como em outra resposta aqui, mas com --src
ao invés de --dst
, e é melhor usar o ICMP admin proibido, ou simplesmente dropar. Você pode usar o RPDB (consulte ip-rule(8)
, para obter o mesmo efeito, mas provavelmente ficará fora de lugar.
Não use ifconfig, route ou outras ferramentas do pacote net-tools
; eles estão demorando muito.
Você pode confirmar o que o próprio roteador usará como decisão de roteamento.
$ ip route get 74.1.1.0/24
RTNETLINK answers: Network is unreachable
Observe que o verbo 'get' não é o mesmo que 'show' (ou 'list'), já que 'calcula' a decisão de roteamento em vez de apenas filtrar e listar entradas na tabela de roteamento.
Os hosts do seu lado da rede terão a rede de destino do ICMP inacessível.
$ ping 74.1.1.1 -c 1
PING 74.1.1.1 (74.1.1.1) 56(84) bytes of data.
From 172.16.6.254 icmp_seq=1 Destination Net Unreachable
--- 74.1.1.1 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0.7ms
$ echo $?
1
Se o espaço de usuário envolvido estiver com defeito e travar em vez de retornar um erro imediatamente, isso é outro problema. O kernel não pode compensar esse espaço de usuário com bugs.