public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Michael Tokarev <mjt@tls.msk.ru>
To: Gleb Natapov <gleb@redhat.com>
Cc: Nils Cant <nils.cant@kangaroot.net>, kvm@vger.kernel.org
Subject: Re: KVM doesn't send an arp announce after live migrating a domain
Date: Wed, 25 Aug 2010 14:51:31 +0400	[thread overview]
Message-ID: <4C74F5B3.7040900@msgid.tls.msk.ru> (raw)
In-Reply-To: <20100825084312.GH10499@redhat.com>

Gleb Natapov wrote:
> On Wed, Aug 25, 2010 at 12:37:21PM +0400, Michael Tokarev wrote:
[]
>> Jokes aside, the thing is that kvm does not know what is
>> an ARP and what is an IP address.  It emulates a hardware
>> network card, which never sends any ARP out by its own,
>> it is the operating system IP stack who's doing that.
>> That network card as emulated by kvm does not know what
>> IP addresses are assigned to it inside the guest (there
>> may be many, or may be none at all), so it just can not
>> send the ARPs.
>>
> True. Although qemu sends gratuitous ARP the IP field there is
> incorrect. It is done to update layer 2 topology, not layer 3.

Actually, the more I think about that, the more it looks
like a job for "external" (for the guest) piece.

For example, we may teach libvirt or kvm about IP addresses
the guest is using, so that kvm will send these ARPs automatically
after migration has completed.

It shouldn't be difficult to implement.  Something like:

 -net nic,model=virtio,arp=1.2.3.4:5.6.7.8,mac=foo:bar

or, even,

 -net tap,arp=...,...

for the command-line interface, and/or a 'sendarp' monitor
command that expects a network device and a list of ip
addresses.

Kvm is the most natural place to do that, I think, and it's
easy to implement there too (it has the tun device which can
inject packets on behalf of the guest)   Yes, the configuration
will be duplicated somehow, but that's not a big problem, and
it will make things much more reliable.

/mjt

  reply	other threads:[~2010-08-25 10:51 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-25  7:52 KVM doesn't send an arp announce after live migrating a domain Nils Cant
2010-08-25  8:37 ` Michael Tokarev
2010-08-25  8:43   ` Gleb Natapov
2010-08-25 10:51     ` Michael Tokarev [this message]
2010-08-25 10:59       ` Gleb Natapov
2010-08-25 11:07         ` Gleb Natapov
2010-08-25 11:36         ` Michael Tokarev
2010-08-25 12:15           ` Gleb Natapov
2010-08-25  8:38 ` Gleb Natapov
2010-08-25  9:21   ` Nils Cant
2010-08-25 10:40     ` Avi Kivity
2010-08-25 10:52       ` Daniel P. Berrange
2010-08-25 11:05         ` Avi Kivity
2010-08-25 11:15           ` Daniel P. Berrange
2010-08-25 11:30             ` Avi Kivity
2010-08-25 11:36               ` Daniel P. Berrange
2010-08-25 11:38                 ` Avi Kivity
2010-08-25 11:42                   ` Daniel P. Berrange
2010-08-25 11:59                     ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C74F5B3.7040900@msgid.tls.msk.ru \
    --to=mjt@tls.msk.ru \
    --cc=gleb@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=nils.cant@kangaroot.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox