(Combinando varios comentarios en una respuesta)
Actualmente, no es posible modificar la métrica de una ruta. Como dice un mensaje de 2005 en LKML :
[...] La métrica / prioridad no se puede cambiar porque no tenemos campos separados para que coincidan los campos y los nuevos valores, por lo que si especifica una métrica, la entrada simplemente no se encontrará y la solicitud falla con ENOENT porque NLM_F_CREATE no está especificado Esta es una limitación del protocolo actual y podría ser una buena idea cambiar esto, sin embargo, no es trivial [...]
Esto parece aplicarse tanto a ip route change
como ip route replace
: el primero resulta en un error para mí, mientras que el segundo crea una ruta adicional como se anuncia (su página de manual indica que replace
reemplazará o creará una ruta). Esto es consistente con la respuesta del núcleo con ENOENT y el ip route replace
seguimiento con una solicitud de creación de ruta.
Entonces, la solución es eliminar la ruta existente y agregar una nueva. p.ej
ip route del 40.2.2.0/24 via 30.1.2.2
ip route add 40.2.2.0/24 via 30.1.2.2 metric 1234