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?