Re: [Discuss]iproute2: ipv6 route add fail

From: David Ahern
Date: Mon Jan 22 2024 - 23:59:33 EST


On 1/22/24 8:08 PM, gaoxingwang wrote:
>>> Hello everyone,
>>>
>>> Here is a particular problem with routing.
>>> Sometimes users can run the ip -6 route command to add a route whose destination address is the same as the gateway address, and it can be successfully added. However, adding another route with the same gateway address will fail later.
>>>
>>> Example:
>>> # ip -6 route add 2409:8080:5a0a:60c7::7/128 via 2409:8080:5a0a:60c7::7 dev eth2

I missed that this is a self-referencing route. This one really should
fail because it adds itself as a gateway.

>>> # ip -6 route add 2409:8080:5a0a:60c7::8/128 via 2409:8080:5a0a:60c7::7 dev eth2
>>> RTNETLINK answers: No route to host

and this one fails because of the above self referencing route; see
ip6_route_check_nh:

err = ip6_nh_lookup_table(net, cfg, gw_addr,
cfg->fc_table, flags, &res);
/* gw_addr can not require a gateway or resolve to a reject
* route. If a device is given, it must match the result.
*/


>>>
>>> Does the kernel not support this application scenario?

you need to remove the host route that adds a gateway as itself