<div dir="ltr"><div>On Tue, Mar 3, 2015 at 11:25 AM, Axel Beckert <span dir="ltr"><<a href="mailto:abe@debian.org" target="_blank">abe@debian.org</a>></span> wrote:<br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span><br>
</span>Hmm, not sure what we're doing differently but I'm using Xen at work<br>
with Debian on Dom0 and DomUs for many years now (IIRC since Lenny),<br>
my DomUs all do DHCP and I've never run into any issues of that kind<br>
so far.<br></blockquote><div><br></div><div><div>My experiment has shown that there has to be a combination of two things to trigger this bug:</div><div><br></div><div>1- The DHCP server needs to be running on another VM on the same host, or on Dom0. The problem is with virtual interfaces traffic flowing through software bridge not having valid checksums (since the packets aren't leaving memory, checksums are not being uselessly calculated). </div><div><br></div><div>2- The VM virtual interface needs to have TX offloading enabled. When enabled, ISC DHCP looks at the UDP checksum bits and find they are invalid (because of #1). The patch to ISC DHCP implements checking the TP_STATUS_CSUMNOTREADY to determine if checksum is to be verified.</div><div><br></div><div>One workaround is to instruct iptables to recalculate the checksum for all DHCP responses. Another workaround is to use ethtool to disable TX offload on the vif interface (which I suppose causes the checksum to be forcefully calculated by the kernel).<br></div><div><br></div><div>Depending of the version of Xen and/or which device model you are using, TX offload might not be supported on your virtual interface. <br></div><div><br></div><div>I ran into this bug with the DHCP server running on a Jessie Dom0, Xen <span style="color:rgb(0,0,0)">4.4.1 running a Debian Wheezy PVHVM DomU.</span><br></div><div><span style="color:rgb(0,0,0)"><br></span></div><div><span style="color:rgb(0,0,0)">Simon</span></div></div></div><br></div></div>