Ubuntu14.04 Vxlan實驗

Vxlan實驗
實驗目的:
主要是通過vxlan隧道將不同網段的主機實現互通,實驗中主要包括ovs虛擬交換機的建立,拓撲環境的配置,使用ovs創建vxlan隧道,最終實現跨網段主機的互通。實驗中主要有個難點,需要理解OVS網橋的橋接功能,以及網口與網橋的掛接,虛擬機與網橋的掛接,理解以上便可以用ovs創建各種拓撲完成實驗。
1.環境安裝:
Ubuntu 14.04 uname –kernel-release:3.13.0-57-generic
Libvirt version 1.2.2
OVS 2.3.0
其中關於OVS的安裝,KVM的配置在附錄部分,注意Linux內核版本與OVS版本的問題

2.實驗中環境的配置:
主要使用兩臺主機host1,host2,並在兩臺在面安裝KVM虛擬機,kvm虛擬機
Host1 有兩塊網卡,eth0,eth1,其中eth0用以連接外網,與host2進行通信,eth1則在未建立Vxlan之前不能與host1進行通信。
其中OVS創建的網橋br0,br1:
Br0主要負責連接內網,給其分配ip:10.0.1.6
Br1則負責與另一端主機互通,給其分配ip:192.168.146.131
Vm1 是host1下的虛擬機, Ip地址:10.0.1.3在未建立隧道前,它可以與br0互ping
Host2 也有兩塊網卡,eth0,eth1,其中eth0用以連接外網,與host2進行通信,eth1則在未建立Vxlan之前不能與host1進行通信。
其中OVS創建的網橋br0,br1:
Br0主要負責連接內網,給其分配ip:10.0.2.6
Br1則負責與另一端主機互通,給其分配ip:192.168.146.136
Vm3 是host2下的虛擬機, Ip地址:10.0.2.3在未建立隧道前,它可以與br0互ping
這裏寫圖片描述

Kvm虛擬機建立過程中使用OVS創建的網橋br0
這裏寫圖片描述
創建過程中可能出現以下錯誤:

這裏寫圖片描述
解決方案參照以下網址:
Re: [libvirt-users] Libvirt 1.0.5 with Openvswitch 1.11.90: unable to ad
https://www.redhat.com/archives/libvirt-users/2013-May/msg00043.html
使用OVS建立網橋:
Ovs-vsctl add-br br0,建立vxlan隧道,可以使用ovs-vsctl show命令查看創建的網橋和。
這裏寫圖片描述

附錄:
OVS-2.3.0安裝與配置

# apt-get install -y build-essential
# apt-get install -y uml-utilities libtool python-qt4 python-twisted-conch debhelper python-all
# wget http://openvswitch.org/releases/openvswitch-2.3.0.tar.gz
# tar -xzf openvswitch-2.3.0.tar.gz
# cd openvswitch-2.3.0
# make clean
# ./configure --with-linux=/lib/modules/`uname -r`/build
# make && make install
# modprobe gre
# insmod datapath/linux/openvswitch.ko  //這一步貌似不通使用下面命令替代
----------------------------------------------------------------------------------------------------
cd datapath/linux
modprobe openvswitch
----------------------------------------------------------------------------------------------------
make modules_install
mkdir -p /usr/local/etc/openvswitch
ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema 

ovsdb-server -v --remote=punix:/usr/local/var/run/openvswitch/db.sock \
             --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
             --private-key=db:Open_vSwitch,SSL,private_key \
             --certificate=db:Open_vSwitch,SSL,certificate \
             --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
             --pidfile --detach

ovs-vsctl --no-wait init
ovs-vswitchd --pidfile --detach
ovs-vsctl show
depmod -A openvswitch
KVM虛擬機的創建,這裏安裝KVM虛擬機不做介紹大家可以自行百度
 cd /etc/libvirt/qemu/networks
default.xml
cat default.xml <network>  <name>default</name>  <bridge name="virbr0"/>  <forward/>  <ip address="192.168.122.1" netmask="255.255.255.0">    <dhcp>      <range start="192.168.122.2" end="192.168.122.254"/>    </dhcp>  </ip></network>
仿照default.xml來創建一個新網絡,將br0(OVS創建的)包含進來,創建ovsnet.xml
<network>      <name>ovs-br1</name>      <forward mode='bridge'/>      <bridge name='ovs-br1'/>      <virtualport type='openvswitch'/></network>
使用如下命令在libvirt中創建網絡,啓動網絡,設置自動啓動網絡
virsh net-define ovsnet.xmlvirsh net-start br0virsh net-autostart br0
這個就可以在創建虛擬機時剛剛創建和啓動的br0:
sudo virt-install --name test2 --ram 1024 --vcpus 1 --disk path=/home/fay/kvm/ubuntu14.10.img.,format=qcow2 --network network:br0 
KVM虛擬機:
配置guest網絡使其與host主機中的OVS交換機的br0的ip地址處於同一個網段可以ping通 

參考資料:

搭建基於Open vSwitch的VxLAN隧道實驗 | SDNLAB | 專注網絡創新技術
http://www.sdnlab.com/5365.html
Connecting VMs Using Tunnels
http://openvswitch.org/support/config-cookbooks/port-tunneling
使用 Virtual Machine Manager 管理虛擬機
http://www.ibm.com/developerworks/cn/cloud/library/cl-managingvms/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章