Por que o Linux não remove a rota da tabela de roteamento se a interface estiver fisicamente inativa?

2

Como mostrado abaixo, o Linux (3.7-trunk-686-pae) mantém a rota para 10.10.12.64/28 na tabela de roteamento, embora a interface esteja fisicamente inativa:

root@kali:~# ip addr show dev eth0
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether b4:99:ba:57:7c:5f brd ff:ff:ff:ff:ff:ff
    inet 10.10.12.77/28 scope global eth0
root@kali:~# ip route show dev eth0
10.10.12.64/28  proto kernel  scope link  src 10.10.12.77 
root@kali:~# ip route get 10.10.12.69
10.10.12.69 dev eth0  src 10.10.12.77 
    cache 
root@kali:~# 

A rota é removida da tabela de roteamento se eu desabilitar a interface administrativamente ("ip link set dev eth0 down").

Qual é o propósito de manter a rota na tabela de roteamento enquanto a própria interface está fisicamente inativa? Por exemplo, se a rota mais específica 10.10.12.64/28 não estiver presente enquanto a interface estiver inativa, o tráfego poderá ser enviado para uma rota menos específica (por exemplo, 0.0.0.0/0) para outra interface que esteja ativa.

    
por Martin 19.12.2014 / 13:10

2 respostas

3

Não há garantia de que outra interface direcionará o tráfego adequadamente. Mesmo que seja encaminhado para um dispositivo no endereço especificado, o dispositivo pode não ser o dispositivo pretendido. Existem vários problemas que podem surgir:

Alterar o roteamento para outra interface pode causar regras de NAT no tráfego, o que interromperia as conexões quando a interface surgisse.

Para intervalos de endereços IP privados, como especificado na pergunta, a interface pode se conectar a outra organização com uma rede totalmente diferente. A rede local 10.0.0.0/8 seria um local inadequado para encaminhar esse tráfego. Mesmo na mesma organização, o bloco pode ser uma rede de teste que replica uma rede de produção.

Para endereços que podem ser roteados pela Internet, pode haver motivos de segurança para não rotear o tráfego pela Internet. Embora não seja recomendado, é possível usar o roteamento local para rotear o tráfego, que deve ser mantido seguro. Embora seja melhor criptografar o tráfego, em alguns casos isso pode ser difícil de fazer.

    
por 19.12.2014 / 15:21
2

Minha melhor sugestão seria usar o netplug - link

Use isso apenas para executar

 ip link set eth0 down

quando o cabo está desconectado. E o inverso quando voltar.

Isso é bom para uma máquina que é puramente um roteador. Mas se a máquina tiver outros serviços, esses serviços teriam que estar vinculados a endereços IP internos.

    
por 27.08.2015 / 14:36