openvswitch

Isolating VM traffic using VLANs

Setup:

Two Physical Networks:

  • Data Network:  Ethernet network for VM data traffic, which will carry VLAN tagged traffic between VMs.  Your physical switch(es) must be capable of forwarding VLAN tagged traffic and the physical switch ports should be VLAN trunks (Usually this is default behavior.  Configuring your physical switching hardware is beyond the scope of this document).
  • Management Network: This network is not strictly required, but it is a simple way to give the physical host an IP address for remote access, since an IP address cannot be assigned directly to eth0. 

Two Physical Hosts:

Host1, Host2.  Both hosts are running Open vSwitch.  Each host has two NICs:

  • eth0 is connected to the Data Network.  No IP address can be assigned on eth0.
  • eth1 is connected to the Management Network (if necessary).   eth1 has an IP address that is used to reach the physical host for management.

Four VMs:

VM1,VM2 run on Host1.  VM3,VM4 run on Host2.

Each VM has a single interface that appears as a Linux device (e.g., “tap0″) on the physical host.  (Note: for Xen/XenServer, VM interfaces appears as Linux devices with names like “vif1.0″)



Goal:

Isolate VMs using VLANs on the Data Network.
VLAN 1: VM1,VM3
VLAN 2: VM2,VM4

Configuration:

Perform the following configuration on Host 1:

Create an OVS bridge:

ovs-vsctl add-br br0

Add eth0 to the bridge (by default, all OVS ports are VLAN trunks, so eth0 will pass all VLANs):

ovs-vsctl add-port br0 eth0

Add VM1 as an “access port” on VLAN 1:

ovs-vsctl add-port br0 tap0 tag=1

Add VM2 on VLAN 2:

ovs-vsctl add-port br0 tap1 tag=2

On Host 2, repeat the same configuration to setup a bridge with eth0 as a trunk:

ovs-vsctl add-br br0

ovs-vsctl add-port br0 eth0

Add VM3 to VLAN 1:

ovs-vsctl add-port br0 tap0 tag=1

Add VM4 to VLAN 2:

ovs-vsctl add-port br0 tap1 tag=2

Trouble-Shooting:

Ping from VM1 to VM3, this should succeed.

Ping from VM2 to VM4, this should succeed.

Ping from VM1/VM3 to VM2/VM4, this should not succeed (unless you have a router configured to forward between the VLANs, in which case, packets arriving at VM3 should have the source MAC address of the router, not of VM1).



sudo kvm --boot c -hda ./dns.img -smp 1 -m 384 -net nic,model=virtio,vlan=11 -net tap,vlan=11 -nographic -vnc :29 -usbdevice tablet


你可能感兴趣的:(openvswitch)