[libvirt-users] [ovs-discuss] OpenVswitch with KVM virtual machines

Ben Pfaff blp at nicira.com
Mon Jul 9 16:55:57 UTC 2012


On Tue, Jul 10, 2012 at 01:46:07AM +0900, Neha Jatav wrote:
> I have KVM installed on my Fedora 17 box. I added the network interfaces of the virtual machines to the openvswitch bridge as follows:
> 
>  ____                  ____
> / VM1\______br0_______/ em1\
> \____/       |        \____/
>      |
>     _|_
> /VM2\
> \____/
> 
> virbr0 is the virtual network switch
> VM1 and VM2 are on the same subnet having tap interfaces vnet0 and vnet1 respectively.
> em1 is the default network interface.
> 
> $sudo ovs-vsctl add-br br0
> $sudo ovs-vsctl add-port br0 em1
> $sudo ifconfig br0 <ip address of em1>
> $sudo ip route del default dev em1
> $sudo ip route add default dev br0
> (Using the above commands, I was able to connect to the internet)
> 
> $sudo brctl delif virbr0 vnet0
> $sudo ovs-vsctl add-port br0 vnet0
> $sudo brctl delif virbr0 vnet1
> $sudo ovs-vsctl add-port br0 vnet1
> 
> $brctl show
> bridge name    bridge id        STP enabled    interfaces
> virbr0        8000.52540094e45e    yes        virbr0-nic
>                             vnet0
>                             vnet2
> 
> $sudo ovs-vsctl show
> Bridge "br0"
>         Port "vnet1"
>             Interface "vnet1"
>         Port "br0"
>             Interface "br0"
>                 type: internal
>         Port "vnet0"
>             Interface "vnet0"
>         Port "em1"
>             Interface "em1"
>     ovs_version: "1.4.0"
> 
> $ifconfig em1
> em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
>         inet 10.66.97.253  netmask 255.255.254.0  broadcast 10.66.97.255
>         inet6 fe80::226:55ff:fe3e:971c  prefixlen 64  scopeid 0x20<link>
>         ether 00:26:55:3e:97:1c  txqueuelen 1000  (Ethernet)
>         RX packets 194955  bytes 81216930 (77.4 MiB)
>         RX errors 0  dropped 0  overruns 0  frame 0
>         TX packets 53004  bytes 9477482 (9.0 MiB)
>         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
>         device interrupt 19  memory 0xf0200000-f0220000
> 
> $ifconfig br0
> br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
>         inet 10.66.97.253  netmask 255.0.0.0  broadcast 10.255.255.255
>         inet6 fe80::226:55ff:fe3e:971c  prefixlen 64  scopeid 0x20<link>
>         ether 00:26:55:3e:97:1c  txqueuelen 0  (Ethernet)
>         RX packets 84745  bytes 60302978 (57.5 MiB)
>         RX errors 0  dropped 0  overruns 0  frame 0
>         TX packets 44528  bytes 7732040 (7.3 MiB)
>         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
> 
> By default, the OVS should act as a MAC-layer learning switch. However, the VMs which are in the same subnet can ping each other but the VMs can't ping the host machine (10.66.97.253) & viceversa.
> Can you tell me where am I wrong in my approach?

You appear to have both OVS bridges and Linux bridges.  Why?  And at
least interface vnet0 is configured to be on both the Linux bridge and
the OVS bridge.  That can't work.

Also you appear to have the same IP address 10.66.97.253 configured on
both em1 and br0 (with different netmasks).  That won't work properly
either.

Did you read the FAQ?  http://openvswitch.org/faq/




More information about the libvirt-users mailing list