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.

Reply via email to