On 28/11/18(Wed) 17:48, Stuart Henderson wrote: > On 2018-11-27, Arnaud BRAND <arnaud.brand--o...@tib.cc> wrote: > > Good evening everyone, > > > > I am stuck with a IPv6 traceroute problem in an OSPFv3 environment. > > > > Long story short : > > - IPv6 routes are propagated using OSPFv3 > > - so they are installed with link-local gateways in the fib > > - ICMPv6 "time exceeded" packets are generated with link-local source > > address > > - these packets are not to be routed so they do not get past the next > > hop > > - the endpoint never receives the "time exceeded packets" > > > > This of course is only true if the router generating the icmp packet is > > not the endpoint, but only a hop in the path. > > > > I checked the code (or at least tried to). > > It seems like it's in function icmp6_reflect in file icmp6.c at lines > > 1144/1147. > > > > This code (if I understood it correctly) : > > - fetches the route to the destination > > - gets the interface source address for this route > > - uses it as the source for the generated IP packet > > > > As my routes are installed with link-local addresses by OSPFv3, I get a > > generated packet with a link local source-address. > > The problem is when the destination is not on the local subnet : the > > generated packet is unroutable and never makes it to its destination > > > > Would it be better to try to find another address on the interface that > > is not link local if the destination address isn't on the interface > > subnets ?
That could be a solution. But if you do that, why don't you attach the routes to a routable address in the first place? Why is ospfd(8) not doing that?