Hi
I am using libvirt (0.9.12) with openstack and xen. It looks like libvirt is not creating ebtables rules against arp spoofing etc. Here are my configs:
VM definition:
<domain type='xen'>
<uuid>d49b777f-32f1-4093-ae47-a12efd0efd2c</uuid>
<name>instance-00000168</name>
<memory>2097152</memory>
<os>
<type>linux</type>
<root>/dev/xvda</root>
<kernel>/var/lib/nova/instances/instance-00000168/kernel</kernel>
<cmdline>ro</cmdline>
<initrd>/var/lib/nova/instances/instance-00000168/ramdisk</initrd>
</os>
<features>
<acpi/>
</features>
<vcpu>2</vcpu>
<devices>
<disk type='file' device='disk'>
<driver type='raw' cache='none'/>
<source file='/var/lib/nova/instances/instance-00000168/disk'/>
<target dev='sda' bus='scsi'/>
</disk>
<disk type='file'>
<driver type='raw' cache='none'/>
<source file='/var/lib/nova/instances/instance-00000168/disk.swap'/>
<target dev='sdb' bus='scsi'/>
</disk>
<interface type='bridge'>
<source bridge='br0'/>
<mac address='fa:16:3e:1e:70:87'/>
<filterref filter="nova-instance-instance-00000168-fa163e1e7087">
<parameter name="IP" value="10.255.0.114" />
<parameter name="DHCPSERVER" value="10.255.0.3" />
</filterref>
</interface>
<console type='pty'/>
<graphics type='vnc' port='-1' autoport='yes' keymap='en-us' listen='127.0.0.1'/>
</devices>
</domain>
# virsh nwfilter-dumpxml nova-instance-instance-00000168-fa163e1e7087
<filter name='nova-instance-instance-00000168-fa163e1e7087' chain='root'>
<uuid>b6475525-5901-aeab-4ed0-dc0d7b545aea</uuid>
<filterref filter='nova-base'/>
</filter>
# virsh nwfilter-dumpxml nova-base
<filter name='nova-base' chain='root'>
<uuid>197b7f7a-389c-bd6d-6b77-07b88d3d9138</uuid>
<filterref filter='no-mac-spoofing'/>
<filterref filter='no-ip-spoofing'/>
<filterref filter='no-arp-spoofing'/>
</filter>
# ebtables -t nat -L
Bridge table: nat
Bridge chain: PREROUTING, entries: 0, policy: ACCEPT
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
Bridge chain: POSTROUTING, entries: 0, policy: ACCEPT
# ebtables -L
Bridge table: filter
Bridge chain: INPUT, entries: 0, policy: ACCEPT
Bridge chain: FORWARD, entries: 0, policy: ACCEPT
Bridge chain: OUTPUT, entries: 0, policy: ACCEPT
logs:
2013-04-23 10:47:37.438+0000: 30155: debug : virNWFilterDefineXML:16099 : conn=0x1331ff0, xmlDesc=<filter name='nova-instance-instance-00000167-fa163e4faae5' chain='roo
t'><filterref filter='nova-base'/></filter>
2013-04-23 10:47:37.544+0000: 30155: debug : virNWFilterFree:15971 : nwfilter=0x7f18400bc2b0
2013-04-23 10:47:37.544+0000: 30155: debug : virUnrefNWFilter:1262 : unref nwfilter 0x7f18400bc2b0 nova-instance-instance-00000167-fa163e4faae5 1
2013-04-23 10:47:37.544+0000: 30155: debug : virReleaseNWFilter:1222 : release nwfilter 0x7f18400bc2b0 nova-instance-instance-00000167-fa163e4faae5 875ff1e5-fc4d-2fca-9
da2-f163f273ad6a
2013-04-23 10:47:37.544+0000: 30155: debug : virReleaseNWFilter:1229 : unref connection 0x1331ff0 2
regards
Maciej Gałkiewicz