Por que as rotas definidas em / etc / network / interfaces não são adicionadas quando a interface é ativada?

1

Aqui está o meu arquivo de interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto eth0:0
iface eth0:0 inet static
        address 10.20.8.231
        netmask 255.255.255.0
        gateway 10.20.8.1
        up /sbin/route add 1.2.3.4 gw 10.20.8.1
        down /sbin/route del 1.2.3.4 gw 10.20.8.1

Dos vários exemplos que encontrei online, isso deve adicionar rotas quando o eth0: 0 aparecer, mas, por algum motivo, não consigo fazê-lo funcionar.

Quando tento exibir a interface com ifup eth0:0 , obtenho:

RTNETLINK answers: File exists
Failed to bring up eth0:0.

Em seguida, ifconfig mostra que eth0: 0 está ativo, mas route -n não mostra a nova rota. Na verdade, mostra exatamente as mesmas rotas que eu tinha antes. Nada mudou.

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.20.8.1       0.0.0.0         UG    0      0        0 eth0
10.20.8.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0

Esta configuração deve ser usada em sistemas remotos que só podem ser acessados via SSH. A idéia é manter o eth0 configurado como dhcp como backup quando a rede do site é alterada (já aconteceu duas vezes), tornando o ip estático inacessível. O problema com isso é que o SSH (usado pelos processos internos) usa a rota padrão via eth0 e isso não funciona porque o firewall (não gerenciado por nós) foi configurado para permitir ssh apenas para o IP estático em eth0: 0 .

Nota: No exemplo acima, 1.2.3.4 representa nosso servidor ssh e eu estou tentando rotear o tráfego via eth0: 0 para esse host único, mas depois do teste eu posso querer definir a rota padrão para usar eth0: 0, mas Eu também tentei isso e falhou da mesma maneira. Eu estava usando esta linha:

up route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.20.8.1


Obrigado pela sua ajuda.

    
por TCZ8 21.12.2015 / 16:58

2 respostas

0

Eu não acho particularmente uma boa idéia colocar os endereços IP secundários primeiro.

O problema é muito maior do que você usando a rota padrão de eth0, já que é a primeira interface, ao rotear para outras redes, seu IP de origem é o endereço IP de DHCP de fato e não 10.20 .8.231.

Como tal, eu recomendaria colocar seu endereço estático em eth0 no lugar de eth0: 0 com a seguinte configuração:

auto eth0
iface eth0 inet static
    address 10.20.8.231
    netmask 255.255.255.0
    gateway 10.20.8.1

auto eth0:0
iface eth0:0 inet dhcp
    
por 21.12.2015 / 17:24
0

Parece que ifupdown não funciona bem com ferramentas de baixo nível como iproute2 ou net-tools . É mencionado como aviso em a documentação oficial do Debian :

Warning

Do not use low level configuration tools such as ifconfig(8) and ip(8) commands to configure an interface in up state.

Você pode tentar limpar e desativar manualmente sua interface de rede antes de usar ifupdown para corrigir o problema:

 # ip addr flush dev [interface_name]
 # ip link set down dev [interface_name]
 # ifdown [interface_name]
 # ifup [interface_name]
    
por 14.10.2016 / 10:20