網路介面配置--Bonding

来源:http://www.cnblogs.com/Sunzz/archive/2017/06/16/7028074.html
-Advertisement-
Play Games

Bonding 就是講到快網卡綁定到同一IP地址對外服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡被修改為同一MAC地址。 一 Bonding 的工作模式 Mode 0 (balance-rr) 輪轉(Roun ...


Bonding

就是講到快網卡綁定到同一IP地址對外服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡被修改為同一MAC地址。

一 Bonding 的工作模式

    Mode 0 (balance-rr)

輪轉(Round-robin)策略:從頭到尾順序的在每一個slave介面上面發送數據包。本模式提供負載均衡和容錯的能力。

    Mode 1 (active-backuop)

活動-備份(主備)策略:在綁定中,只有一個slave被激活,當且僅活動的slave介面失敗是才會激活其他的slave。為了避免交換機發生混亂此時綁定的MAC地址只有一個外部埠上可見。

    Mode 3 (broadcast)

廣播策略:在所有的slave介面上發送所有的報文。本模式提供容錯能力。

二 Bonding配置

1 創建bonding設備的配置文件

[root@CentOS68 ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=none

BONDING_OPTS="miimon=100 mode=0"

IPADDR=200.200.200.200

PREFIX=24

GATEWAY=200.200.200.1

miimon是設置檢測鏈路的時間,單位為毫秒。如果miimon=100,那麼系統每100毫秒檢測一側鏈路的連接狀態,如果有一條線路不通就轉入另一條線路。

mode用來指定模式

2 創建slave的配置文件

既就是要加入的網卡的配置文件,這裡使用eth1、eth2兩塊網卡,下來修改兩塊網卡的配置

[root@CentOS68 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

TYPE=Ethernet

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

USERCTL=0

MASTER指定測網卡屬於哪個bond。SLAVE指定從屬關係。USERCTL指定用戶是否有控制許可權。

eth2和eth1配置類似

[root@CentOS68 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth2

DEVICE=eth2

TYPE=Ethernet

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

USERCTL=0

3 重啟網路服務

[root@CentOS68 ~]# service NetworkManager stop #centos6上不穩定,建議關閉
[root@CentOS68 ~]# service network restart

Shutting down interface bond0: [ OK ]

Shutting down interface eth0: [ OK ]

Shutting down loopback interface: [ OK ]

Bringing up loopback interface: [ OK ]

Bringing up interface bond0: Determining if ip address 200.200.200.200 is already in use for device bond0...

[ OK ]

Bringing up interface eth0: Determining if ip address 192.168.29.68 is already in use for device eth0...

[ OK ]

 

可以看到已經啟動成功,再來看下IP地址和MAC

[root@CentOS68 ~]# ip a

[……]

7: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000

link/ether 00:0c:29:74:74:45 brd ff:ff:ff:ff:ff:ff

8: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000

link/ether 00:0c:29:74:74:45 brd ff:ff:ff:ff:ff:ff

9: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP

link/ether 00:0c:29:74:74:45 brd ff:ff:ff:ff:ff:ff

inet 200.200.200.200/24 brd 200.200.200.255 scope global bond0

inet6 fe80::20c:29ff:fe74:7445/64 scope link tentative dadfailed

valid_lft forever preferred_lft forever

可以看到IP地址已經生效,並且MAC地址都相同。

4 查看bond0的狀態

[root@CentOS68 ~]# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

 Bonding Mode: load balancing (round-robin)

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

Slave Interface: eth1

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:74:74:45

Slave queue ID: 0

Slave Interface: eth2

MII Status: up

Speed: 1000 Mbps

Duplex: full

Link Failure Count: 0

Permanent HW addr: 00:0c:29:74:74:4f

Slave queue ID: 0

好了,一切都很順利

5 刪除bond

[root@CentOS68 ~]# ifconfig bond0 down

[root@CentOS68 ~]# rmmod bonding

看下是否刪除成功,

[root@CentOS68 ~]# ifconfig bond0

bond0: error fetching interface information: Device not found

已經找不到bond0,說明刪除成功。

詳細幫助:/etc/share/doc/kernel-doc-version/Documentation/networking/bonding.txt

 

三 nmcli實現bonding

 1 添加bonding介面

[root@centos7 ~]# nmcli connection add type bond con-name mybond0 ifname bond0 mode active-backup

Connection 'mybond0' (cc101e79-3dcb-49ee-8164-89c9e877c315) successfully added.

2添加從屬介面

[root@centos7 ~]# nmcli connection add type bond-slave ifname ens34 master mybond0

Connection 'bond-slave-ens34' (9c8ff11a-72ef-4d63-a950-2ab777d2a1ea) successfully added.

[root@centos7 ~]# nmcli connection add type bond-slave ifname ens38 master mybond0

Connection 'bond-slave-ens38' (c40b3e6f-32f4-4d1a-a323-aed2519cf865) successfully added.

註意:如沒有指定從屬介面連接名,則該名稱是介面名稱加類型構成

3 啟動從屬介面

[root@centos7 ~]# nmcli connection up bond-slave-ens34

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/40)

[root@centos7 ~]# nmcli connection up bond-slave-ens38

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/41)

4 啟動bonding 綁定

[root@centos7 ~]# nmcli connection up mybond0

Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/48)

5 查看綁定

[root@centos7 ~]# nmcli connection show

NAME UUID TYPE DEVICE

bond-slave-ens34 9c8ff11a-72ef-4d63-a950-2ab777d2a1ea 802-3-ethernet ens34

bond-slave-ens38 c40b3e6f-32f4-4d1a-a323-aed2519cf865 802-3-ethernet ens38

mybond0 cc101e79-3dcb-49ee-8164-89c9e877c315 bond bond0

6 添加IP地址

[root@centos7 ~]# nmcli connection modify mybond0 ipv4.method manual ipv4.addresses 200.1.1.1/24

7 刪除bond綁定

(1)關閉bond

[root@centos7 ~]# nmcli connection down mybond0

Connection 'mybond0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/18)

[root@centos7 ~]#

(2)刪除bond

[root@centos7 ~]# nmcli connection delete mybond0

Connection 'mybond0' (9ed2f027-bbb1-44d1-87fc-7f7275d7fe70) successfully deleted.

(3)刪除從屬介面

[root@centos7 ~]# nmcli connection delete bond-slave-ens34

Connection 'bond-slave-ens34' (a46ad620-d4b5-43f9-a73a-447785504a17) successfully deleted.

[root@centos7 ~]# nmcli connection delete bond-slave-ens38

Connection 'bond-slave-ens38' (66b1f44d-ad71-4576-8061-f6cba2b976e8) successfully deleted.

 

好了


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

-Advertisement-
Play Games
更多相關文章
  • 1、新建虛擬機 (1)點擊文件-->新建虛擬機 (2)選擇 自定義(高級)--> 下一步 (3)選擇Workstation 12.0 --> 下一步 (4)選擇 稍後安裝操作系統 --> 下一步 (5)選擇 Linux à Red Hat Enterprise Linux 6 64位 --> 下一步 ...
  • 開發中需要用到多個虛擬機進行實驗。重新安裝過程又太繁瑣,通過vmware虛擬機自帶軟體能夠很好的快速克隆出完全相同的系統。下麵會為大家講解關於vmware虛擬機怎麼克隆,我所用的VMware版本是11.0.0。 1、在Vmware Workstation主面板左側的我的電腦節點下選一個已安裝過的虛 ...
  • 1、輸入"uname -a ",可顯示電腦以及操作系統的相關信息。 $ uname -aLinux hadoop02.zjl.com 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/ ...
  • 由於做了虛擬機的克隆,發現克隆機和被克隆機的MAC地址相同了,下麵我將要介紹一下linux中網卡的配置步驟,我使用的linux是CentOS release 6.9 (Final) 1、root用戶編輯/etc/udev/rules.d/70-persistent-net.rules文件,找到mac ...
  • 1.AMD $ sudo apt-get install fglrx 2.Nvidia $ sudo apt-get install nvidia-current installed after restart your computer ...
  • 命令行編輯的輔助操作: Tab健:自動補齊 Ctrl +U :清空至首行 Ctrl +K: 清空至尾行 Ctrl +L:(或者clear) 清屏 Ctrl +C: 取消執行命令 獲取幫助命令: 內部命令help 例如:help cd 大多數外部命令 --help 使用man命令閱讀手冊 使用info ...
  • netstat 命令用於顯示各種網路相關信息,如網路連接,路由表,介面狀態 (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等 1 常用選項: -a :(all)顯示所有選項,預設不顯示LISTEN相關 -t :( ...
  • 測試工具:ab(apacheBench) 硬體環境: Intel xeon cpu E5-2682 v4 2.50GHz 4 core 8GBytes 記憶體 軟體環境: ubuntu16 nginx 靜態文件 3Kbytes 26000次響應/秒(平均值)吞吐量:111Mbytes/秒(平均值)併發 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...