Le 2018-11-28 21:33, Martin Pieuchot a écrit :
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?

I'm not 100% sure, but afaik that's standard behavior for ospf6d.
At least that's what I have seen on the few different brands I've worked with so far.

The old thread contains more information imho, so I'm gonna revive it.

Reply via email to