OVS搭建宿主機與KVM的橋接網路 常見命令
載入TUN模組: /sbin/modprobe tun
檢視系統模組:lsmod | grep tun
檢視tun裝置:ll /dev/net/tun
建立橋後檢視路由表項:route #參看路由表是否正常配置
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 * 255.255.0.0 U 0 0 0 br0
default 192.168.99.1 0.0.0.0 UG 0 0 0 br0
注意修改預設路由的網路介面為橋br0,而非eth0
查詢網絡卡模式: dmesg | grep eht0
建立bridge後的狀態是讓網路介面eth0進入混雜模式(promiscuous mode,接收網路中所有資料包),網橋br0進入轉發狀態(forwarding state),而且br0和eth0有相同的MAC地址,一般也會得到和eth0相同的IP。
開啟br0的STP協議: brctl stp br0 on
STP是生成樹協議(Spanning
Tree Protocol),它主要是為了避免在建有bridge的乙太網LAN中出現橋迴路(bridge loop)。如果不開啟STP,則可能出現迴路從而導致建有bridge的主機網路不暢通。
設定br0 ip: 需要將bridge設定為與其繫結的物理網路介面一樣的IP和MAC地址,並讓預設路由使用bridge(而不是ethX)來連通。這個步驟可能導致宿主機的網路斷掉,之後重新通過bridge建立網路連線,所以建立bridge這個步驟最好不要通過SSH連線遠端(或VNC)配置。
檢視tap裝置:ls /sys/devices/virtual/net/
lo br0 tap1
由上面資訊可知,建立客戶機後,添加了一個名為tap1的TAP虛擬網路裝置,它被繫結在br0這個bridge上。Centos上預設虛擬網絡卡裝置名為vnet0(1....)。
編譯、安裝qemu-kvm使用者空間工具:
除了在核心空間的KVM模組之外,在使用者空間需要QEMU來模擬所需要CPU和裝置模型以及用於啟動客戶機程序,這樣才有了一個完整的KVM執行環境。而qemu-kvm是為了針對KVM專門做了修改和優化的QEMU分支。
由於qemu-kvm是使用者空間的程式,安裝之後不用重啟系統,直接用qemu-system-x86_64、qemu-img這樣的命令列工具即可使用qemu-kvm了。
QEMU/KVM的網路中,網橋(bridge)模式可以讓客戶機和宿主機共享一個物理網路裝置連線網路,客戶機有自己的獨立IP地址。客戶機可以訪問外部網路,外部網路也可以直接訪問客戶機(就像訪問普通物理主機一樣)。即使宿主機只有一個網絡卡裝置,使用bridge的方式也可知讓多個客戶機與宿主機共享網路裝置,其使用非常方便。
在qemu-kvm的命令列中,關於bridge模式的網路引數如下:
-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile][,helper=helper][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off][,vhostfd=h][,vhostforce=on|off]