Eu tenho um script (parte inferior da pergunta) que adiciona um link fictício, adiciona alguns endereços a esse link e adiciona algumas rotas a esse link.
Como posso fazer com que os comandos ip link
, ip addr
e ip route
persistam?
Estou usando o trecho Debian, o NetworkManager está instalado.
Pensamento 1:
Se eu colocar esse arquivo, /etc/network/if-up.d/
ele pode ser chamado quando a máquina inicializar. /etc/NetworkManager/dispatcher.d/01ifupdown
parece apontar para este diretório.
Atualização: eu tentei, não foi uma boa ideia
Pensamento 2:
Talvez eu precise traduzir isso para um idioma de configuração diferente e colocá-lo em /etc/network/interfaces.d/
, mas os exemplos que vi até agora para configurar esse arquivo pressupõem que existem dispositivos. Não encontrei uma linha de configuração equivalente a ip link add mocknet type dummy
.
Este arquivo depende da auto
palavra-chave no início das linhas para identificar interfaces físicas ( auto mocknet
), mas mocknet
ainda não existe.
Script de trabalho
ip link add mocknet type dummy
ip addr add 10.10.1.1/24 dev mocknet
ip addr add 10.10.2.1/24 dev mocknet
ip addr add 10.10.3.1/24 dev mocknet
ip addr add 10.10.4.1/24 dev mocknet
ip addr add 10.10.5.1/24 dev mocknet
ip addr add 10.10.6.1/24 dev mocknet
ip addr add 10.10.7.1/24 dev mocknet
ip addr add 10.10.8.1/24 dev mocknet
ip addr add 10.10.9.1/24 dev mocknet
ip link set mocknet up
ip route del 10.10.1.0/24
ip route del 10.10.2.0/24
ip route del 10.10.3.0/24
ip route del 10.10.4.0/24
ip route del 10.10.5.0/24
ip route del 10.10.6.0/24
ip route del 10.10.7.0/24
ip route del 10.10.8.0/24
ip route del 10.10.9.0/24
ip route add 10.10.1.0/24 dev mocknet proto kernel scope link src 10.10.1.1 metric 6000
ip route add 10.10.2.0/24 dev mocknet proto kernel scope link src 10.10.2.1 metric 6000
ip route add 10.10.3.0/24 dev mocknet proto kernel scope link src 10.10.3.1 metric 6000
ip route add 10.10.4.0/24 dev mocknet proto kernel scope link src 10.10.4.1 metric 6000
ip route add 10.10.5.0/24 dev mocknet proto kernel scope link src 10.10.5.1 metric 6000
ip route add 10.10.6.0/24 dev mocknet proto kernel scope link src 10.10.6.1 metric 6000
ip route add 10.10.7.0/24 dev mocknet proto kernel scope link src 10.10.7.1 metric 6000
ip route add 10.10.8.0/24 dev mocknet proto kernel scope link src 10.10.8.1 metric 6000
ip route add 10.10.9.0/24 dev mocknet proto kernel scope link src 10.10.9.1 metric 6000
O pensamento 2 está correto. Além disso, não é tão difícil traduzir esse script simples para um arquivo correto. Uma boa surpresa aqui é que
ip link set mocknet up
é automático.man interfaces
dá uma boa informação. Aqui está o arquivo de trabalho:/etc/network/interfaces.d/mocknet
:Não tenho certeza se
/bin/ip
ou/sbin/ip
é a maneira "certa" de fazer isso, mas tudo parece funcionar.