Traduzindo este comando 'ip' para o comando 'route' no gancho 'post-up'

1

Estou tendo problemas para obter um comando ip de roteamento estático para se tornar permanente por meio do post-up hook em /etc/network/interfaces . Aqui estão os detalhes relevantes:

/etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# Network A
allow-hotplug eth0
iface eth0 inet static
address 10.1.10.100
netmask 255.255.255.0
gateway 10.1.10.1

# Network B
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.1
netmask 255.255.0.0
gateway 127.0.0.1

O comando ip e a tabela de roteamento relevantes

ip route add 192.168.50.0/24 via 10.1.10.100 dev eth0
# This command makes things happy...

$ ip route show
default via 10.40.16.1 dev eth0
10.1.10.0/24 dev eth0  proto kernel  scope link  src 10.1.10.100
192.168.0.0/16 dev eth1  proto kernel  scope link  src 192.168.100.1
192.168.50.0/24 via 10.1.10.100 dev eth0

O (não funciona) post-up / post-down ganchos

#/etc/network/interfaces

# Network A
allow-hotplug eth0
iface eth0 inet static
address 10.1.10.100
netmask 255.255.255.0
gateway 10.1.10.1
post-up route add -net 192.168.50.0 netmask 255.255.255.0 eth0
post-down route del -net 192.168.50.0 netmask 255.255.255.0 eth0

# Network B
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.1
netmask 255.255.0.0
gateway 127.0.0.1

Exoneração de responsabilidade

O comando ip route add... faz o truque, mas eu preciso que isso seja uma rota estática permanente, portanto, o post-up stuff. Eu simplesmente não consigo entender a sintaxe corretamente. Quando executo a versão do /etc/network/interfaces em uma rede de teste local, a rota não aparece na tabela de roteamento após uma reinicialização, portanto, acho que ela está falhando ao executar o post-up hook devido à sintaxe incorreta.

Atualizar

O gerenciamento de /etc/network/interfaces não ajuda muito em me dar uma pista sobre a sintaxe dos comandos post-up ou aqui está tudo o que encontrei:

post-up

Run command after bringing the interface up. If this command fails then ifup aborts, refraining from marking the interface as configured (even though it has really been configured), prints an error message, and exits with status 0. This behavior may change in the future.

    
por datUser 29.04.2015 / 15:47

1 resposta

5

Basta adicionar o comando ip como um comando up em /etc/network/interfaces (não é necessário traduzir para route , post-up é um alias para up ):

allow-hotplug eth0
iface eth0 inet static
   address 10.1.10.100
   netmask 255.255.255.0
   gateway 10.1.10.1
   up ip route add 192.168.50.0/24 via 10.1.10.100 dev eth0

Não há necessidade de down , pois quando a interface fica inativa, todas as rotas dessa interface são removidas automaticamente.

Além de: você está adicionando uma rota a outra rede por meio do endereço IP local que acabou de ser criado? Este sistema está sendo usado como um gateway?

EDITAR:

Os rótulos up , down , pre-up etc. são apenas isso: rótulos para indicar quais comandos precisam ser executados nesse momento. Esses comandos podem ser qualquer coisa , por ex. envie um email ou o que for. Nenhuma sintaxe especial ...

    
por 29.04.2015 / 16:07