配置openvswitch kvm虛擬機器環境
實驗環境 主機:ubuntu 桌面版,虛擬機器 ubuntu server
主機其實也是Vmware虛擬機器,也就是說我在虛擬機器裡又建立了虛擬機器。在主機的/etc/network/interfaces裡不需要任何設定。
1、openvswitch安裝
其實總結起來,就是下面的指令碼,可以直接複製貼上在openvswitch資料夾裡執行:
sudo ./configure --with-linux=/lib/modules/$(uname -r)/build sudo make sudo make install sudo make modules_install sudo /sbin/modprobe openvswitch mkdir -p /usr/local/etc/openvswitch sudo ovsdb-tool create /usr/local/etc/openvswitch/conf.db \ vswitchd/vswitch.ovsschema mkdir -p /usr/local/var/run/openvswitch sudo ovsdb-server --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 --log-file sudo ovs-vsctl --no-wait init sudo ovs-vswitchd --pidfile --detach --log-file
假設指令碼名為startovs.sh。執行:
chmod +x startovs.sh
sudo ./startovs.sh
2、安裝KVM環境
很懶,不寫了
3、配置openvswitch和kvm。
3.1 安裝軟體及編寫指令碼
主要工作為:
apt-get install uml-utilities echo << EOF > /etc/ovs-ifup #!/bin/sh switch='br0' /sbin/ifconfig $1 0.0.0.0 up ovs-vsctl add-port ${switch} $1 EOF echo << EOF > /etc/ovs-ifdown #!/bin/sh switch='br0' /sbin/ifconfig $1 0.0.0.0 down ovs-vsctl del-port ${switch} $1 EOF
3.2 刪除預設網橋,virbr0是linux的bridge模組建立的,我們不需要。aptitude需要提前安裝。
apt-get install aptitude
sudo virsh net-destroy default
sudo virsh net-autostart --disable default
sudo aptitude purge ebtables
3.2 建立openvswitch網橋
sudo ovs-vsctl add-br br0
sudo ovs-vsctl add-port br0 eth0
不能上網了,刪除eth0地址,並將這個地址(可以不是同一個)給br0
sudo ifconfig eth0 0 sudo ifconfig br0 192.168.82.130/24 up
這個時候還不能上網,修改預設路由。
sudo route add default gw 192.168.82.2
(或者 sudo route add default gw 192.168.82.2 dev br0)這個樣子可以指定網絡卡,在有多個網絡卡時很有用
這個時候可以上網了,ping www.baidu.com驗證。路由表如下:
4、安裝虛擬機器
準備好映象和iso檔案。
在合適的位置(主要是資料夾夠大)建立映象:
qemu-img create vm1.img 6G
啟動虛擬機器:
kvm -m 512 -net nic -net \
tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown -drive \
file=/path/to/disk-image -cdrom /path/to/isofile
建立虛擬機器後,下次啟動虛擬機器只需要映象就可以了,命令如下:
kvm -m 512 -net nic -net \
tap,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown -drive \
file=/path/to/disk-image
建立虛擬機器時,ip地址不能通過dhcp獲取到,改用手動設定,設定為192.168.82.135,閘道器設定為br0的地址,即192.168.82.130。
虛擬機器建立成功後不能上網,但是能ping通br0地址。此時,虛擬機器的/etc/network/interfaces設定為:
5、在主機上設定nat。
開啟ip轉發,兩種方式:
臨時:echo "1">/proc/sys/net/ipv4/ip_forward 固定:修改/etc/sysctl.conf,取消這一行的註釋: net.ipv4.ip_forward= 1 然後使之立即生效 sudo sysctl -p在主機上設定nat(nat 後面跟的是大寫的i)
sudo iptables -t nat -I POSTROUTING -s 192.168.82.135 -J SNAT --to-source 192.168.82.130
檢視nat規則
sudo iptables -t nat -nL
重啟虛擬機器,ping www.baidu.com測試。上網成功
其實個人對sdn還不是很熟,如果問題請指教,不勝感激。
參考地址:
Kvm教程
附:
修改域名伺服器的方式為:
sudo vi /etc/resolv.conf
新增
nameserver 8.8.8.8