Linux 多網卡綁定和網路組

来源:https://www.cnblogs.com/heyongshen/archive/2022/07/09/16461235.html
-Advertisement-
Play Games

多網卡綁定: 把多塊網卡邏輯上綁在一塊使用,對外就相當於一塊網卡,他們共用一個ip地址。 好處: 防止一塊網卡壞了就無法使用,提升帶寬。 工作模式: mod=0:輪詢模式,兩個網卡輪流處理數據包。 提升帶寬和容錯性 mod=1:主備模式,住在一個網卡上處理,主壞了就使用備用的。 只提升了容錯性 註: ...


多網卡綁定:

把多塊網卡邏輯上綁在一塊使用,對外就相當於一塊網卡,他們共用一個ip地址。

好處:

防止一塊網卡壞了就無法使用,提升帶寬。

工作模式:

  • mod=0:輪詢模式,兩個網卡輪流處理數據包。 --- 提升帶寬和容錯性

  • mod=1:主備模式,住在一個網卡上處理,主壞了就使用備用的。 --- 只提升了容錯性
    註:某些模式(0、2、3)需要在交換機上配置。(1、5、6)不需要配置。

範例:主備模式的配置(配置文件實現)

#通過修改配置文件的方式實現。
#1.創建一張虛擬網卡,並指定工作模式
/etc/sysconfig/network-scripts/ifcfg-bond0 #創建的虛擬網卡
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
#miimon指定鏈路監測時間間隔。如果miimon=100,那麼系統每100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路 
#model=1 選用model1這種模式
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"


#2.對兩張網卡進行配置(不配置地址,地址都配置到虛擬網卡上面去了)
/etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0 #網卡並非獨立網卡,而是附屬到bond0上,網卡的設置由bond0來進行控制
SLAVE=yes #SLAVE:從設備
ONBOOT=yes


/etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

範例:主備模式的配置(nmcli命令實現)

#nmcli的最終結果就是生成配置文件

#添加bonding介面  #mode active-backup模式--model=1這個模式
nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 10.0.0.100/24 

#將物理網卡加入到bond設備裡面 #ifname:指定物理網卡的介面名
nmcli con add type bond-slave ifname ens7 master bond0
nmcli con add type bond-slave ifname ens3 master bond0
#註:沒有給物理網卡指定連接名時,則該名稱是介面名稱加類型構成 con-name:連接名 ifname:介面名

#要啟動綁定,則必須首先啟動從屬介面
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1

#啟動綁定
nmcli con up mybond0

查看創建的bond0的狀態:

/proc/net/bonding/bond0

刪除bond0:

方法一: ifconfig bond0 down

方法二: rmmod bonding

網路組

bond這種實現方案比較老了,從CentOS7開始就推出了新的技術:team(網路組)
效果和bond功能是一樣的,內核實現和命令上面發生了改變。

工作模式:

  • broadcast

  • roundrobin

  • activebackup --主備模式

  • loadbalance --- 負載均衡

  • lacp (implements the 802.3ad Link Aggregation Control Protocol)

nmcli實現team

#1.創建網路組介面  # ifname INAME 這個介面名是自己虛擬出來的介面
nmcli con add type team con-name CNAME ifname INAME 工作模式(json格式)
#CNAME 連接名
#INAME 介面名
#JSON 指定runner方式,格式:'{"runner": {"name": "METHOD"}}'
#METHOD 可以是broadcast, roundrobin, activebackup, loadbalance, lacp

#2.把物理網卡加入進來讓它成為一個從的設備
nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
#CNAME 連接名,連接名若不指定,預設為team-slave-IFACE
#INAME 網路介面名
#TEAM 網路組介面名

#3.啟動網卡(都要啟動)
nmcli con up CNAME  #啟動網卡

#斷開連接的方法:
nmcli dev dis INAME


#刪除 刪除的時候會把配置文件也一起閃出掉
nmcli con delete Name(連接名)

範例

#1。 添加一個team設備
nmcli con add type team con-name myteam0 ifname team0 config '{"runner": 
{"name": "loadbalance"}}' ipv4.addresses 192.168.1.100/24 ipv4.method manual

#2. 將物理網卡計入team中讓他成為team的成員
nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0

#3.啟動生效
nmcli con up myteam0
nmcli con up team0-eth1
nmcli con up team0-eth2

#查看使用的是那種模式
teamdctl team0 state #team0表示創建的team名字
ping -I team0 192.168.0.254

#禁用某一張網卡的方法:
nmcli dev dis eth1


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 輸入與輸出 讀取輸入 要想通過控制台進行輸入,首先需要構造一個與"標準輸入流"System.in關聯的Scanner對象。 // 創建輸入流對象 Scanner in = new Scanner(System.in); 現在,就可以使用Scanner類的各種方法讀取輸入了。例如,nextLine方法 ...
  • string常用庫函數 string的庫函數非常多,若全部掌握是非常耗時間的,但是我們只需要掌握常用,重要的庫函數即可,不常用的只需瞭解下即可,需要時,上C++標準官方庫查找。 這裡列舉出本篇說明的函數 insert、erase、swap、c_str、find、rfind、substr、getlin ...
  • 緊接上文,我們分析了Nacos的客戶端代碼, 今天我們再來試一下服務端 ,至此就可以Nacos源碼就告一段落,歡迎大家品鑒。 nacos服務端 註冊中心服務端的主要功能包括,接收客戶端的服務註冊,服務發現,服務下線的功能,但是除了這些和客戶端的交互之外,服務端還要做一些更重要的事情,就是我們常常會在 ...
  • 1. mysql的資料庫連接 step1:首先需要在代碼中添加Mysql.Data的代碼依賴。如果添加失敗則需要去搜索下載安裝!如下圖:代碼導入using MySql.Data.MySqlClient; step2:建立連接//設置連接基本參數 string connStr = "server = ...
  • .NET中間件以及VUE攔截器聯合使用 工作中遇見的問題,邊學邊弄,記錄一下 Vue的UI庫使用的是antvue 3.2.9版本的。 業務邏輯 特性 //特性 public class ModelEsignNameAttribute : Attribute { public ModelEsignNa ...
  • 主機名 查看主機名: hostname cat /etc/hostname 。。。 修改主機名: hostnamectl set-hostname xxx (和centos7、8一樣), #主機名最終存放在`/etc/hostname`下麵。 網卡名稱 命名方式和centos7的命名方式類似。 修改 ...
  • 網橋:和交換機工作原理一樣的一個硬體。 網橋內部有一個緩存,裡面放了介面和mac地址的對應關係。 橋接、NAT和僅主機模式: NAT網卡(vmnet8):相當於一個虛擬的集線器(Vmnet8),兩台使用nat模式的虛擬機能夠通信,是因為它都連接到了這個集線器(hub)上面。windows裡面本省就生 ...
  • 最近在linux下使用Chrome瀏覽器,第一次啟動時總是要輸入密碼,根據網上的方法取消輸入密碼,密碼總是回來,甚是惱人。經過思考和嘗試,最終問題得以解決。特將註意事項記錄如下: Chrome瀏覽器保存密碼和自動登錄等會生成和使用密鑰環,預設使用系統登錄用戶密碼生成和解鎖密鑰環,而密鑰環不會自動解鎖 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...