Subject: Re: (usagi-users 04056) Re: ping6 is sent out from wrong interface

From: Naohiro Ooiwa <[email-masked]>
Date: Thu, 26 Jun 2008 09:48:26 +0900

Hi Marcus

Thank you for your comment.

>>
>> Thank you for your quick reply.
>>
>>> It's due to routing.
>> For the reason of selecting 'eth0', I agree.
>> But, I think the device is specified before looking up the 
>> routing table in this case.
> 
> Well, ping's man page reads: 
> ---
>        -I interface address
>               Set source address to specified interface  address.  Argument
>               may  be  numeric  IP  address or name of device. When pinging
>               IPv6 link-local address this option is required.
> ---
> 
> So you only set the address, not the interface to be used for sending.

Then, the man page doesn't match with the implementation.

> 
>>> ...with eth0 being preferred over eth1 for multicast packets.
>>> You could add a dedicated route for ff02::/16 to make the 
>> kernel output the packet via eth1.
>>
>> This works when using only "eth1" for multicasts.
>> When multiple I/Fs are connected to separate networks, this 
>> scheme requires changing the route every time a user need to 
>> send ping to different network.
>>
> 
> Ok, my proposition was a bit too general. It would probably be better to set up routes for the exact addresses. So in your case to ff02::1. 
> 
> Of course, if you wish to send the same packet via several interfaces within a short time, this would still result in adding and deleting the routes over and over again.
> 
>> I think kernel can solve this problem better.
>>
> 
> I don't think this would be intended....
> 

I was just confused by the difference of
source address things between IPv4 and IPv6.

Regards,
Naohiro Ooiwa