I'm trying to get an Archlinux guest running on a Archlinux host. Everything works except ethernet.

When I boot the host,

---
# dmesg |tail
[    8.265493] Bridge firewalling registered
[    8.514547] IPv6: ADDRCONF(NETDEV_UP): virbr0: link is not ready
[    8.645303] ip6_tables: (C) 2000-2006 Netfilter Core Team
---

Then I do

---
# virsh -c lxc:/// start gitolite
Domain gitolite started

# dmesg |tail
[  348.793398] device veth0 entered promiscuous mode
[  348.793553] IPv6: ADDRCONF(NETDEV_UP): veth0: link is not ready
[  348.997973] IPv6: ADDRCONF(NETDEV_CHANGE): veth0: link becomes ready
[  348.997998] virbr0: topology change detected, propagating
[  348.998001] virbr0: port 1(veth0) entered forwarding state
[  348.998008] virbr0: port 1(veth0) entered forwarding state
[  348.998017] IPv6: ADDRCONF(NETDEV_CHANGE): virbr0: link becomes ready
[  349.784174] EXT4-fs (xvdg): re-mounted. Opts: (null)
---

Then I enter the guest and do

---
# ip link
5: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 02:00:00:00:00:17 brd ff:ff:ff:ff:ff:ff
7: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
---

So, eth0 exists. Now, still in the guest:

---
# systemctl start dhcpcd@eth0
A dependency job for dhcpcd@eth0.service failed. See 'journalctl -xn' for details.

# journalctl -xn
-- Logs begin at Sat 2013-01-19 10:50:45 UTC, end at Sat 2013-01-19 10:56:26 UTC
Jan 19 10:54:48 gitolite sudo[38]: pam_unix(sudo:session): session opened for us
Jan 19 10:54:48 gitolite systemd[1]: Expecting device sys-subsystem-net-devices-
-- Subject: Unit sys-subsystem-net-devices-eth0.device has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/7d495
--
-- Unit sys-subsystem-net-devices-eth0.device has begun starting up.
Jan 19 10:56:18 gitolite systemd[1]: Job sys-subsystem-net-devices-eth0.device/s
Jan 19 10:56:18 gitolite systemd[1]: Timed out waiting for device sys-subsystem-
-- Subject: Unit sys-subsystem-net-devices-eth0.device has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/be02c
--
-- Unit sys-subsystem-net-devices-eth0.device has failed.
--
-- The result is timeout.
Jan 19 10:56:18 gitolite systemd[1]: Dependency failed for dhcpcd on eth0.
-- Subject: Unit dhcpcd@eth0.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/be02c
--
-- Unit dhcpcd@eth0.service has failed.
--
-- The result is dependency.
---

At this point, nothing new in dmesg.

Even though ip link should a eth0 device, the sys-subsystem-net-devices-eth0.device has failed?
I don't understand this.

This is libvirt 1.0.1 in linux 2.6.11. I tried with both systemd 197 and (thinking that recent changes with device naming could be the problem) with 196. It didn't work on either.

The domain configuration is:

---
<domain type='lxc'>
  <name>gitolite</name>
  <uuid>3122bf1d-11bb-0dd8-be64-7e352b3f8694</uuid>
  <memory unit='KiB'>262144</memory>
  <currentMemory unit='KiB'>262144</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <os>
    <type arch='x86_64'>exe</type>
    <init>/sbin/init</init>
  </os>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/lib/libvirt/libvirt_lxc</emulator>
    <filesystem type='mount' accessmode='passthrough'>
      <source dir='/mnt/gitolite'/>
      <target dir='/'/>
    </filesystem>
    <interface type='network'>
      <mac address='02:00:00:00:00:17'/>
      <source network='default'/>
    </interface>
    <console type='pty'>
      <target type='lxc' port='0'/>
    </console>
  </devices>
</domain>
---

I also tried using bridged networking configuration but I see the same problem.

What could be causing this? Any ideas?

Thanks,
Marco