Como evitar que as rotas do kernel com a métrica 0 sejam configuradas?

0

Eu configurei uma interface MACVLAN no Debian Stretch com systemd-networkd assim:

wlan0.network:

[Match]
MACAddress=b8:27:eb:20:d3:c6

[Network]
DHCP=yes
MACVLAN=wlan0.milight1

[DHCP]
RouteMetric=0

wlan0.milight1.netdev (a interface virtual):

[NetDev]
Name=wlan0.milight1
Kind=macvlan
MACAddress=00:11:0b:05:74:e9

[MACVLAN]
Mode=bridge

wlan0.milight1.network:

[Match]
MACAddress=00:11:0b:05:74:e9

[Network]
Address=192.168.0.53

[Route]
Gateway=192.168.0.1
Metric=20

[Route]
Destination=192.168.0.0/24
Gateway=0.0.0.0
Metric=20

No entanto, depois de fazer essa configuração, não consigo mais acessar a máquina via SSH. Olhando para a tabela de roteamento com ip route show , mostra o seguinte:

default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.31
default via 192.168.0.1 dev wlan0.milight1 proto static metric 20
192.168.0.0/24 dev wlan0.milight1 proto kernel scope link src 192.168.0.53
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.31
192.168.0.0/24 dev wlan0.milight1 proto static metric 20
192.168.0.1 dev wlan0 proto dhcp scope link src 192.168.0.31

A rota problemática parece ser essa que é criada pelo kernel com métrica 0, o que significa que ela tem precedência sobre minhas regras de interface padrão para wlan0:

192.168.0.0/24 dev wlan0.milight1 proto kernel scope link src 192.168.0.53

Assim que eu excluir esta rota com

route del -net 192.168.0.0 gw 0.0.0.0 netmask 255.255.255.0 dev wlan0.milight1

tudo funciona como esperado. Mas, de tempos em tempos, o kernel adiciona essa regra novamente à tabela de roteamento, o que torna a máquina inacessível novamente. Então, existe a possibilidade de impedir que o kernel crie regras com métrica 0?

O dhcpcd e a rede estão desativados, o sistema resolvido está ativado.

    
por Patrick Fink 08.11.2018 / 17:53

0 respostas