1. 程式人生 > >OVS搭建宿主機與KVM的橋接網路 常見命令

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]