[Dnsmasq-discuss] More RA testing

Simon Kelley simon at thekelleys.org.uk
Sun Dec 2 22:18:11 GMT 2012


On 02/12/12 16:32, Gene Czarcinski wrote:
> All tests run with dnsmasq 2.64rc2
>
> Rebuilt libvirt so that I was sure what was running.
>
> 1. libvirt gc2.35: bind-dynamic interface=virbr__
>
> 2. libvirt gc2.36: bind-interfaces except-interface=lo interface=virbr__
>
> Wireshark run on p33p1 for each test.
>
> After updating libvirt, waiting for stable situation, stopping net6 &
> net8, then
>
> -- start wireshark
> -- service restart libvirtd.service
>
> Check to see what happened. For both tests, the results were the same:
>
> -- net6 and net8 RAs issued from the dnsmasq on a virtual network (see
> ICMPv6 Option Source link layer address)
>
> -- In each case, the Ethernet II, Src is from p33p1
>
> I continue to work on this.
>

Great work.

A couple of questions spring to mind:

1) Is this a transient effect? Do you see subsequent RA's from/to the 
correct places?

2) Look in src/forward.c at the function send_from(), which is used to 
send the ICMP: there's a nasty hack in there:

/* certain Linux kernels seem to object to setting the source */
/* address in the IPv6 stack by returning EINVAL from sendmsg. */
/* In that case, try again without setting the source address, */
/* since it will nearly alway be correct anyway.  IPv6 stinks. */
       if (errno == EINVAL && msg.msg_controllen)
         {
           msg.msg_controllen = 0;
           goto retry;
         }

it would be very interesting to known if the "goto retry" code path is 
being taken in this case.

Simon.




More information about the Dnsmasq-discuss mailing list