vm with openvswitch+KVM can not access extranal network, can ping gateway

Cloudstack4.1.1
A: one kvm host ubuntu12.04 with openvswitch,
B:  xen server6.0,
C: one kvm host centos with openvswitch

in cloudstack have two network.
Guestvlan301 Isolated 192.168.31.0/24 ,Egress rule,   0.0.0.0/0 all
Guestvlan300 Isolated  192.168.31.0/24  ,Egress rule,   0.0.0.0/0 all


①:vrouter301 run on Xen,   Public IP Address 192.168.240.54 Guest IP
Address 192.168.31.1
   vm in vlan301 ,can ping gateway 192.168.31.1 and can access
internet. vm can run on kvm or xen, both ok.

②:vronter300 run on Kvm with openvswitch,   Public IP Address
192.168.240.53 Guest IP Address 192.168.30.1
   vm in vlan300 ,can ping gateway 192.168.30.1, but can not access
internet.  vrouter can access internet.

how to make vm under kvm+openvswitch to access outside network and internet


[root@centos-kvm01 libvirt]# ovs-vsctl show
7cb5f505-7ac1-4403-9f9d-101882ed7bad
    Bridge kvmmgt
        Port kvmmgt
            Interface kvmmgt
                type: internal
        Port "eth0"
            Interface "eth0"
    Bridge "cloudbr0"
        Port "cloudbr0"
            Interface "cloudbr0"
                type: internal
        Port "eth1"
            Interface "eth1"           ## Eth1 uplink port is Esxi
vswitch in promiscuous mode,  Xen server Eth1 uplink this too, can
work fine ; Kvm use native bridge work fine too.
        Port "vnet3"
            tag: 240
            Interface "vnet3"
        Port "vnet0"
            tag: 301
            Interface "vnet0"
        Port "vnet1"
            tag: 300
            Interface "vnet1"
        Port "vnet4"
            tag: 240
            Interface "vnet4"
    Bridge "cloud0"
        Port "cloud0"
            Interface "cloud0"
                type: internal
        Port "vnet2"
            Interface "vnet2"
    Bridge storage
        Port "eth2"
            Interface "eth2"
        Port storage
            Interface storage
                type: internal
    ovs_version: "1.10.0"


i do the test,
  one VM 192.168.30.90  run  ping 192.168.123.1
  vrouter 192.168.30.1(outside IP 192.168.240.53 vlan 240)  run  ping
www.google.com

[root@centos-kvm01 ~]# ovs-dpctl dump-flows |grep 30.90

in_port(9),eth(src=02:00:07:94:00:09,dst=02:00:3c:30:00:06),eth_type(0x0806),arp(sip=192.168.30.1,tip=192.168.30.90,op=2,sha=02:00:07:94:00:09,tha=02:00:3c:30:00:06),
packets:0, bytes:0, used:never, actions:push_vlan(vid=300,pcp=0),5
in_port(11),eth(src=06:28:b6:00:01:20,dst=00:50:56:97:5c:55),eth_type(0x0800),ipv4(src=192.168.30.90,dst=192.168.123.1,proto=1,tos=0,ttl=63,frag=no),icmp(type=8,code=0),
packets:5855, bytes:573790, used:0.810s,
actions:push_vlan(vid=240,pcp=0),5
in_port(5),eth(src=02:00:3c:30:00:06,dst=02:00:07:94:00:09),eth_type(0x8100),vlan(vid=300,pcp=0),encap(eth_type(0x0806),arp(sip=192.168.30.90,tip=192.168.30.1,op=1,sha=02:00:3c:30:00:06,tha=00:00:00:00:00:00)),
packets:0, bytes:0, used:never, actions:pop_vlan,9
in_port(5),eth(src=02:00:3c:30:00:06,dst=02:00:07:94:00:09),eth_type(0x8100),vlan(vid=300,pcp=0),encap(eth_type(0x0800),ipv4(src=192.168.30.90,dst=192.168.123.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)),
packets:5855, bytes:597210, used:0.809s, actions:pop_vlan,9

######   actions:push_vlan(vid=240,pcp=0),5  ,  this is maybe have
some problem !!!!!!!  is it??




[root@centos-kvm01 ~]# ovs-dpctl dump-flows |grep 240.53
in_port(11),eth(src=06:28:b6:00:01:20,dst=00:50:56:97:5c:55),eth_type(0x0800),ipv4(src=192.168.240.53,dst=74.125.128.105,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0),
packets:6167, bytes:604366, used:0.486s,
actions:push_vlan(vid=240,pcp=0),5
in_port(5),eth(src=00:50:56:97:5c:55,dst=06:28:b6:00:01:20),eth_type(0x8100),vlan(vid=240,pcp=0),encap(eth_type(0x0806),arp(sip=192.168.240.1,tip=192.168.240.53,op=1,sha=00:50:56:97:5c:55,tha=00:00:00:00:00:00)),
packets:0, bytes:0, used:never, actions:pop_vlan,11
in_port(5),eth(src=00:50:56:97:5c:55,dst=06:28:b6:00:01:20),eth_type(0x8100),vlan(vid=240,pcp=0),encap(eth_type(0x0800),ipv4(src=74.125.128.105,dst=192.168.240.53,proto=1,tos=0,ttl=49,frag=no),icmp(type=0,code=0)),
packets:6059, bytes:618018, used:0.450s, actions:pop_vlan,11
in_port(11),eth(src=06:28:b6:00:01:20,dst=00:50:56:97:5c:55),eth_type(0x0806),arp(sip=192.168.240.53,tip=192.168.240.1,op=2,sha=06:28:b6:00:01:20,tha=00:50:56:97:5c:55),
packets:0, bytes:0, used:never, actions:push_vlan(vid=240,pcp=0),5

回复