1. 程式人生 > 其它 >網路橋接

網路橋接

作者:獨筆孤行
官網:http://anyamaze.com
公眾號:雲實戰

前言

網路虛擬化技術是虛擬化技術的重要部分,網路虛擬化技術主要有橋接、NAT、SR-IOV三種實現方法。橋接網路配置簡單、穩定可靠,是最常用的網路虛擬化模式。SR-IOV是PCIE層的虛擬化技術,配置相對複雜,使用較少。

網路橋接

網路橋接,又稱橋接網路,是網路虛擬化技術的常用方式,具有穩定、高效能、相容性強等特性,是生產環境中最常用的網路技術。網路虛擬化技術主要有NAT、橋接、僅主機三種模式。

NAT可以使虛擬機器訪問外網,並與宿主機通訊,但NAT無法使虛擬機器與外部主機通訊。

橋接技術即可以使虛擬機器訪問外網,同時可以使虛擬機器與外部主機通訊。

僅主機模式只能保證虛擬機器與宿主機通訊,虛擬機器無法訪問外網,也無法與外部主機通訊。

NAT模式相對靈活,在宿主機物理網路任意變化的場景中,NAT無需做任何調整,可以自動適應網路變化,只要宿主機可訪問外網,NAT虛擬機器就可以訪問外網,但NAT網路效能相對較弱,據實際測試效果,最高只能達到千兆網路效能。

橋接網路相對NAT網路靈活性大打折扣,宿主機物理網路變化時,橋接網路必須進行網路調整才能保證網路正常使用。但橋接網路的效能與穩定性毋庸置疑,橋接網路效能可以達到物理網路效能的80%。因此,橋接網路是生產環境中最常用的網路模型。

僅主機網路模式的效能與橋接網路幾乎相當,但由於虛擬機器只能與宿主機通訊,因此,生產環境中幾乎不用。

網路技術原理

橋接模式

通過配置橋接網路br0,將虛擬機器網路通過br0直接橋接到物理網絡卡eth0,從而訪問外網。

NAT模式

通過配置NAT網路default,將虛擬機器網路連線到default網路,通過virbr0-nic網口藉助iptables的SNAT模式,將網路流量轉發到eth0,從而訪問外網。

橋接實踐

方法一:直接配置

通過直接修改宿主機的網口配置檔案,配置網路橋接

#1.在目錄/etc/sysconfig/network-scripts建立ifcfg-br0網路橋接檔案
[root@node1 network-scripts]# cat ifcfg-br0 
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.60.128
NETMASK=255.255.255.0

#2.將物理網口eth0連線到橋接網路br0.
[root@node1 network-scripts]# cat ifcfg-eth0 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0       #橋接到網路br0                 

重啟網絡卡服務,檢視橋接網路

systemctl restart network
ip a

方法二:brctl配置

安裝網路橋接配置工具bridge-utils

yum install bridge-utils -y

通過工具建立橋接網路

brctl addbr br0
brctl addif br0 ens36
brctl show

方法三:ovs配置

ovs全稱OpenvSwitch,是強大的虛擬化網路管理工具,支援二層三層網路的配置,本次只是通過openvswitch配置網路橋接,關於openvswitch的詳細資訊,可以通過官網瞭解。

安裝openvswitch

wget https://www.openvswitch.org/releases/openvswitch-3.0.1.tar.gz

tar xvf openvswitch-3.0.1.tar.gz 
cd openvswitch-3.0.1/
./configure
make && make install

export PATH=$PATH:/usr/local/share/openvswitch/scripts/
ovs-ctl start

虛擬機器載入橋接網路

KVM虛擬機器載入橋接網絡卡,有多種實現方法,圖形化操作可通過virt-manager或Webvirtmgr直接進行載入,無論哪種方法核心都是修改kvm虛擬機器配置檔案。本文介紹配置檔案的修改方法。

修改虛擬機器vm1配置檔案

virsh edit vm1

新增內容

    <interface type='bridge'>
      <source bridge='br0'/>
      <model type='virtio'/>
    </interface>

編輯完成後,儲存退出。

開啟虛擬機器後,進入虛擬機器作業系統,直接操作ip a可檢視到新的網絡卡名稱。