實驗十二:kvm環境下qemu-kvm創建虛擬機之間的網絡配置


實驗名稱:

  kvm環境下使用qemu-kvm創建虛擬機之間的網絡配置

實驗環境:

  保證kvm環境正常即可,擁有qemu-kvm管理工具;

  同時,我們這里離需要擁有bridge-utils橋工具

實驗需求:

  1、保證kvm環境的正常運行;

  2、安裝qemu-kvm管理工具,以及bridge-utils橋管理工具;

  3、安裝虛擬機;

  4、配置網絡,包括隧道模式、路由模式、nat模式、以及僅主機模式四種;

實驗配置:

  1、配置啟動腳本程序

  配置一個腳本,到時候需要引用到虛擬機啟動參數中;

vim /etc/qemu-ifup
#!/bin/bash
#
bridge=br0

if [ -n '$1' ]
then
    ip link set $1 up
   brctl addbr $bridge brctl addif $bridge $
1 [ $? -eq 0 ] && exit 0 || exit 1 else echo "Error: no interface specified" exit 1 fi

  賦予腳本程序執行權限

chmod +x /etc/qemu-ifup

  2、創建虛擬機

cd /images/kvm/
qemu-kvm -m 256 -cpu host -smp 2 -name 'test1' -drive file=cirros-0.3.0-i386-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback -nographic -net nic -net tap,ifname=vif0.0,script=/etc/qemu-ifup

  其中,nic指定的是前端虛擬機上面的io驅動;而tap則指定是物理機上面的前端驅動程序;

  【這里需要注意的是,-cpu 的參數在hypervisor為虛擬機的時候,可能導致系統無法啟動,可以刪除這個選項】

  啟動第二台虛擬機:

qemu-kvm -m 256 -cpu host -smp 2 -name 'test2' -drive file=cirros-0.3.0-i386-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback -nographic -net nic -net tap,ifname=vif1.0,script=/etc/qemu-ifup

  3、配置網絡,實現隧道模式

  此時,兩台虛擬機正常啟動,且都通過腳本程序自動橋接到了br0橋上;

  此時,需要將兩台虛擬機配置到同一個網絡即可:

#第一台虛擬機
ifconfig eth0 192.168.100.1/24 up
#第二台虛擬機
ifconfig eth0 192.168.100.2/24 up

  相互ping通,則隧道模式測試成功;

  【這時候注意一個問題,我們的虛擬機的mac地址的獲取是自動的,會出現mac地址沖突】 所以,我們需要手動去指定MAC地址;

-net nic,macaddr=52:54:00:12:34:57 -net tap,ifname=vif1.0,script=/etc/qemu-ifup

  #如果不存在mac地址沖突的問題,則可以不用使用這個命令

  4、配置網絡,實現路由模式

  此時,我們需要使虛擬機能夠通過我們的centos7能訪問外網,通過配置路由模式來實現

#虛擬機配置網關
route add default gw 192.168.100.254

  虛擬機有了網關以后,還需要在真實機器上配置網關地址,同時需要開啟路由轉發功能;

#centos7
ifconfig br0 192.168.100.254 up
echo 1 > /proc/sys/net/ipv4/ip_forword

  測試:

  這時候數據包能到達192.168.238.129,卻無法到達192.168.238.1,是因為192.168.238.1沒有回去192.168.100.0/24網段的路由,所以這是需要在192.168.238.1上面配置明晰路由

#在192.168.238.1上面添加回指路由
route -p add 192.168.100.0 mask 255.255.255.0 192.168.238.129

  再在cirros上面來ping就可以通了

  5、配置網絡,nat模式配置

  首先我們的nat模式屬於三層功能,所以centos7也必須支持路由轉發才行:

echo 1 > /proc/sys/net/ipv4/ip_forword

  去掉192.168.238.1機器上面的路由配置:

route delete 192.168.100.0

  此時,cirros到192.168.238.1的網絡又不通了;則需要我們來指定nat方式來實現:

iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j SNAT --to-source 192.168.238.0/24
iptables -t nat -L -n

  此時虛擬機cirros依然能夠正常通訊,ping 192.168.238.1;

  同時可以抓包查看;

tcpdump -i br0 -nn icmp
tcpdump -i eno16777736 -nn icmp

   6、網絡配置,橋接模式

  在橋接模式下面,我們需要將物理網卡橋接到橋交換機上面來;

  首先我需要去掉br0上面地址

ifconfig br0 0 up

  再把eno16777736的網卡添加到br0上面來;

brctl addif br0 eno16777736; ifconfig br0 192.168.238.129/24 up
brctl show
ifconfig
route  #查看本機路由,看清楚網關地址

  把虛擬機cirros的地址也配置到同一個網段中,同時制定網關地址;

ifcongfig eth0 192.168.238.100/24 up
route add default gw 192.168.238.2

  此時,虛擬機去ping公網就能ping通,這就是橋接模式:

實驗結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM