Arch Rota local ausente

0

Eu tenho uma caixa Linux que exibe um comportamento muito estranho. No boot, eu tenho um script que é chamado para trazer as interfaces para cima & configurá-los conforme necessário. ou seja:

ip link add link eth0 name mgt10 type vlan id 10
ip link add link eth0 name guest20 type vlan id 20

ip link set mgt10 up
ip addr add 10.10.0.1/24 dev mgt10

ip link set guest20 up
ip addr add 10.20.0.1/24 dev guest20

Com esse script sendo chamado, vejo as interfaces estão ativas e tenho o IP apropriado atribuído:

# ip addr show
1: mgt10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 10.10.0.1/24 scope global mgt10
       valid_lft forever preferred_lft forever
2: guest20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 10.20.0.1/24 scope global guest10
       valid_lft forever preferred_lft forever

Mas o problema é que, por qualquer motivo, ele não criou uma rota local para mgt10.

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.20.0.0        0.0.0.0         255.255.255.0   U     0      0        0 guest20

Não recebo erros que eu possa ver, e se eu excluir manualmente o IP da interface e adicionar novamente (copiar / colar o mesmo comando), a rota será exibida como esperado e não tenho problemas.

Eu não tenho ideia do porquê disso. Será que o link físico estava em processo de aparecer e o sistema soluçou? Existe alguma maneira de garantir que as interfaces estejam em estado pronto para atribuição? estou fazendo algo errado aqui?

    
por TheCompWiz 20.07.2018 / 20:46

1 resposta

0

Existe algum motivo específico pelo qual você está usando os comandos ip link em um script de inicialização? Existem vários exemplos no wiki do arco sobre como criar um vlan usando o systemctl. Talvez valha a pena modificar os exemplos aqui: link

Isso lhe dá o benefício de ativar as vlans como um serviço e fazer o registro acontecer se algo der errado.

Além do systemctl, você também pode tentar usar o netctl. Existem exemplos de scripts em / etc / netctl / examples para vlans que você pode modificar. Novamente, isso permitiria ativar os perfis para que eles sejam executados na inicialização, verifique os arquivos de log sobre como eles estão sendo executados com o journalctl, etc.

    
por 20.07.2018 / 23:17