原網(wǎng)址:http://blog.yfwz100.cn/archives/2016/10/30/cloud-kvm-network.html
最近在折騰 KVM 以及虛擬化,KVM安裝后默認(rèn)的網(wǎng)絡(luò)鏈接方式是NAT波丰,此時(shí)虛擬機(jī)雖然可以與本機(jī)通信限番,但虛擬機(jī)的IP地址是一個(gè)私有地址,本機(jī)外的網(wǎng)絡(luò)無(wú)法訪問(wèn)該虛擬機(jī)呀舔。
虛擬機(jī)網(wǎng)絡(luò)連接的方式
接觸過(guò) VirtualBox、VMware 的話扩灯,對(duì)虛擬機(jī)網(wǎng)絡(luò)配置肯定不會(huì)陌生媚赖。虛擬機(jī)網(wǎng)絡(luò)連接常見(jiàn)的有 3 種方式:
- NAT 網(wǎng)絡(luò):即內(nèi)部地址轉(zhuǎn)換,相當(dāng)于從物理網(wǎng)卡外接了一個(gè)虛擬的路由珠插,然后所有虛擬機(jī)都連接到該“路由器”上惧磺,虛擬機(jī)可以借助這個(gè)路由器訪問(wèn)到外面的網(wǎng)絡(luò),但外面的網(wǎng)絡(luò)卻無(wú)法訪問(wèn)捻撑,因?yàn)樘摂M機(jī)的地址只是路由器上唯一的磨隘,出了路由器就不再唯一了。
- 橋接網(wǎng)絡(luò):也叫物理設(shè)備共享顾患,相當(dāng)于虛擬了一個(gè)和服務(wù)網(wǎng)卡一樣的網(wǎng)卡番捂,這個(gè)虛擬網(wǎng)卡和物理網(wǎng)卡是平行的關(guān)系,并且虛擬機(jī)共用物理網(wǎng)卡額資源江解。這樣设预,虛擬機(jī)能夠接入外部網(wǎng)絡(luò),不受物理機(jī)的限制了犁河。
- Host-Only 網(wǎng)絡(luò):與 NAT 類(lèi)似鳖枕,但是比 NAT 更封閉,只有物理機(jī)能夠訪問(wèn)該虛擬機(jī)桨螺,其他虛擬機(jī)也不能訪問(wèn)宾符。
一般安裝 KVM 后都會(huì)安裝 bridge-util,這是 Linux 下用于橋接網(wǎng)卡的工具集灭翔,通過(guò)該工具集可以虛擬出一個(gè)新的網(wǎng)卡魏烫。其中, bridge-util 安裝后會(huì)自動(dòng)建立一個(gè) NAT 網(wǎng)絡(luò),即 virbr0 網(wǎng)卡则奥,如果虛擬機(jī)連接到該網(wǎng)卡上考润,則連接到 NAT 網(wǎng)絡(luò)了。而下文主要介紹建立橋接網(wǎng)絡(luò)的做法读处。
橋接網(wǎng)絡(luò)的建立
-
新建虛擬網(wǎng)橋
編輯 /etc/network/interfaces 文件糊治,根據(jù)以下兩種情況的一種添加如下內(nèi)容:
-
假設(shè)外部網(wǎng)絡(luò)是一個(gè) DHCP 動(dòng)態(tài)分配 IP 的網(wǎng)絡(luò)環(huán)境,并且網(wǎng)卡名字為 eth0 :
auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_fd 0
其中第一句話建立了虛擬網(wǎng)橋 br0罚舱,并且該接口使用 DHCP 分配 IP 等信息井辜,后三句是配置網(wǎng)橋相關(guān)的屬性。bridge_ports 配置了該網(wǎng)橋連接到的虛擬網(wǎng)卡 eth0管闷,并關(guān)閉 stp(生成樹(shù)協(xié)議)粥脚,設(shè)置 fd(forwarding delay,轉(zhuǎn)發(fā)延遲) 為 0 包个。
-
假設(shè)外部網(wǎng)絡(luò)是靜態(tài)分配的網(wǎng)絡(luò)刷允,并且網(wǎng)卡名字為 eth0 :
auto br0 iface br0 inet static address 192.168.200.130 network 192.168.200.0 netmask 255.255.255.0 broadcast 192.168.200.255 gateway 192.168.200.1 dns-nameservers 8.8.8.8 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
需要在文件中編輯 address/network/netmask/broadcast/gateway/dsn-nameservers 等內(nèi)容。
-
-
重新啟動(dòng)網(wǎng)絡(luò)服務(wù)(以 Ubuntu 為例):
service networking restart
-
為 KVM 虛擬機(jī)配置網(wǎng)絡(luò)碧囊,編輯虛擬機(jī)配置文件:
virsh edit VM_ID
文件示意如下:
<interface type='...'> <mac address='...'/> <source bridge='...'/> <model type='rtl8139'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface>
把其中 type 改為 bridge树灶,并且 source 標(biāo)簽中的 bridge 屬性改為 br0 。
重啟虛擬機(jī)糯而。