On 2015-08-19, Denis Fondras <[email protected]> wrote: > Hi, > > I have an OpenBSD5.7 router with IPv6 enabled. I have multiple IPv6 addresses > : > - em0 : 2a00:6060::1/64 > - em1 : 2001:7f8:81::6:983:1/64 > - gif0 : 2001:470:11:c8::2/128 > > IPv6 access is provided by HurricaneElectric tunnel with BGP. > > When I try to reach 2001:7a8:b5ad::1, 2001:7f8:81::6:983:1 is selected as the > source address : > > PING6(56=40+8+8 bytes) 2001:7f8:81::6:983:1 --> 2001:7a8:b5ad::1 > ^C > --- 2001:7a8:b5ad::1 ping6 statistics --- > 3 packets transmitted, 0 packets received, 100.0% packet loss > > Even though : > # route -n get 2001:7a8:b5ad::1 > route to: 2001:7a8:b5ad::1 > destination: 2001:7a8:: > mask: ffff:ffff:: > gateway: 2001:470:11:c8::2 > interface: gif0 > if address: 2001:470:11:c8::2 > priority: 48 (bgp) > flags: <UP,GATEWAY,DONE> > use mtu expire > 138 0 0 > > Per RFC6724 : > Rule 5: Prefer outgoing interface. > If SA is assigned to the interface that will be used to send to D and > SB is assigned to a different interface, then prefer SA. Similarly, > if SB is assigned to the interface that will be used to send to D and > SA is assigned to a different interface, then prefer SB. > > Per se, it is not a big deal but in my case 2001:7f8:81::/48 is an IXP prefix > and it is not announced in the DFZ so packets never make it back to the > router. > > The issue is reproduced with OpenBSD5.8. > > Anything I could try before diving into the source address selection code ?
You should be able force it to not be used by doing 'inet6 2001:7f8:81::6:983:1 pltime 0' (just applies to automatic selection, you can still set it manually for IXP peerings), but the behaviour you describe doesn't sound quite right so diving into in6_ifawithscope() seems like a good idea.

