Linux系統中高階網路管理 之 網橋.橋接
網橋:(Bridge)
Linux網橋是一種以同種協議連線兩個區域網的產品。可以把它看成是一個決定傳送的包是到自己的區域網還是到另一個區域網的裝置。linux網橋檢查區域網上所有的包,在同一個區域網中傳送它,如果不是同一個網中的,就將它發到別的網上。
原理:
網橋是連線兩個區域網的儲存轉發裝置,用它可以完成具有相同或相似體系結構網路系統的連線。一般情況下,被連線的網路系統都具有相同的邏輯鏈路控制規程(LLC),但媒體訪問控制協議(MAC)可以不同。
網橋工作在資料鏈路層,將兩個LAN連起來,根據MAC地址來轉發幀,可以看作一個“低層的路由器”(路由器工作在網路層,根據網路地址如IP地址進行轉發)。 遠端網橋通過一個通常較慢的鏈路(如電話線)連線兩個遠端LAN,對本地網橋而言,效能比較重要,而對遠端網橋而言,在長距離上可正常執行是更重要的。
注:我們在安裝LINUX的虛擬機器的時候,有三個網路配置供我們選擇分別為:
橋接模式、nat模式、host-only模式 (其中我們用的最多的是橋接模式,nat模式;host-only模式基本不用):
Bridge:使真機和虛擬機器的網絡卡可以直接交換資料(不用通過核心了),使得資料傳輸速度變快
NAT : 虛擬機器把資料先轉發給真機,真機再通過網絡卡傳輸,所以速度較慢(而且!虛擬機器可以ping宿主機,宿主機ping不了虛擬機器)
所以我們一般優先使用bridge橋接模式!!!
開始實驗!
首先在真機上進行操作:
ifconfig檢視我們的網路資訊:(可以看到有很多網絡卡裝置)
也可以用nm-connection-editor圖形介面直觀檢視:
我們第一步要做的就是清除所有網路配置檔案:(注:刪除之前先備份檔案資料;這是一個非常重要的習慣!!!)
首先建立一個根下的 名為 networkmessages的目錄用來備份我們的網路配置檔案:
可以看到我們之前的這些網路配置檔案(ifcfg-開頭的檔案):
備份它們先:(複製到/networkmessages 目錄下):
刪除掉/etc/sysconfig/network-scripts/下的所有網路配置檔案:
可以看到都刪掉了:
因為真實網絡卡上沒有配置網路檔案資訊,此時也是ping百度,或者114.114.114.114的:(真機沒有網路)
另一方面,虛擬機器的管理介面裡,虛擬機器的網絡卡的網路連線選項裡也沒有了橋接選項(bridge)
目前可用的只有NAT模式,但是NAT模式效率相比較Bridge橋接模式效率不高:
所以我們需要建立橋接:
####以配置檔案的形式建立橋接#####
在/etc/sysconfig/network-scripts/下編寫配置檔案:
首先編寫我們真機的網絡卡(enp3s0)的配置資訊:(每臺機子 網絡卡裝置名稱不一樣,需要自己ifconfig檢視確認)
編寫一個ifcfg-enp3s0檔案:
檔案內容如下:
DEVICE=enp3s0 #裝置名稱
。。。
BRIDGE=br0 #enp3s0網絡卡開啟的網橋連結為br0裝置
再編寫 ifcfg-br0檔案:(編寫橋接裝置br0的檔案資訊)
內容如下:
編寫完畢後,重啟網路服務: (注:如果檔案編寫沒有問題,但是不能重啟網路,需要先停止NetworkManager.service服務)
(systemctl stop NetworkManager.service)
systemctl restart network
看到改變:
其中 檢視網橋,橋接資訊的命令為:
brctl show
通過brctl命令可以看到橋接br0的資訊:(利用的是enp3s0網絡卡介面)
此時可以看到虛擬機器的網絡卡網路連線選項裡有了網橋橋接選項:
####利用brctl命令來建立網橋(我們這次在虛擬機器裡進行)
剛進入虛擬機器檢視網橋橋接資訊:
可以看到沒有橋接裝置:
新增橋接裝置br0:
brctl addbr br0
可以看到新增成功了:
給br0設定一個IP地址:
PING一下真機172.25.254.148 :
可以看到ping不通:
這是因為我們還沒有給網橋配置可用的物理網絡卡裝置:
將物理網絡卡eth0與網橋br0連線:
可以看到eth0作為了br0的物理網絡卡介面(interfaces)
再次嘗試PING一下真機:(可以看到PING通了)
網橋的刪除:
brctl delif br0 eth0 #刪除br0網橋的物理網絡卡介面
ifconfig br0 down #關閉br0網橋
brctl delbr br0 #刪除網橋br0
over!