多網(wǎng)卡同IP技術(shù)
將多個網(wǎng)卡端口綁定為一個拔鹰,可以提升網(wǎng)絡的性能。在linux系統(tǒng)上有兩種技術(shù)可以實現(xiàn),Linux 網(wǎng)絡組和bond,通過綁定多個網(wǎng)卡作為一個邏輯網(wǎng)口并配置單個的IP地址乌庶,大幅提升服務器的網(wǎng)絡吞吐。
Bonding
目前發(fā)布各個Linux版本內(nèi)核均已包含了此模塊契耿,大多數(shù)情況下不需要重新編譯內(nèi)核瞒大。 Linux 的 bonding 驅(qū)動提供了綁定/集成(bond)多個網(wǎng)卡為一個虛擬邏輯網(wǎng)口的功能。 一般來說綁定的網(wǎng)口(bonded)有多種工作模式搪桂,主要有熱后備(hot standby) 和 負載均衡(load balancing).
1.創(chuàng)建bond0配置文件
1.創(chuàng)建bond0配置文件
vi /etc/sysconfig/network-scripts/ifcfg-bond0 添加配置參數(shù)
配置屬性 | 含義 |
---|---|
DEVICE | 物理設(shè)備名字 |
ONBOOT | 在系統(tǒng)引導時是否激活此設(shè)備 |
TYPE | 接口類型透敌;常見有的Ethernet,Bridge |
IPADDR | 指明IP地址 |
NETMASK | 子網(wǎng)掩碼 |
GATEWAY | 默認網(wǎng)關(guān) |
NAME | bond名稱 |
DNS1 | 第一個DNS服務器指向 |
DNS2 | 第二個DNS服務器指向 |
USERCTL | 普通用戶是否可控制此設(shè)備 |
PEERDNS | 如果BOOTPROTO的值為“dhcp”,是否允許 |
2.修改被綁定的eth0和eth1的配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes(設(shè)置從屬關(guān)系)
BOOTPROTO=none
HWADDR=00:15:17:CC:FC:35
eth1的配置文件與之相同踢械,只是device的值改為eth1即可酗电。
3.裝載bond模塊驅(qū)動
編輯/etc/modprobe.conf或者/etc/modules.conf文件,加入如下內(nèi)容内列,使系統(tǒng)啟動時加載bonding模塊驅(qū)動
alias bond0 bonding
option bond0 miimon=100 mode=1
說明:
1).miimon=100 用來進行鏈路監(jiān)測的撵术。即每100ms監(jiān)測一次鏈路狀態(tài)。bonding只監(jiān)測主機與交換機之間鏈路话瞧。如果交換機出去的鏈路出問題而本身沒有問題嫩与,那么bonding認為鏈路沒有問題而繼續(xù)使用。
2).mode=1 表示提供冗余功能交排。除此之外還可以為0划滋、2、3埃篓,共四種模式处坪。0表示負載均衡
4.在/etc/rc.d/rc.local文件中加入如下語句,使得系統(tǒng)啟動自動運行
ifenslave bond0 eth0 eth1
route add -net 192.168.1.254 netmask 255.255.255.0 bond0 #如有需要才加該路由
5.檢測、驗證配置
首先執(zhí)行命令裝載bonding模塊:modprobe bonding
重啟網(wǎng)絡服務同窘,并確認bond0正確啟動:service network restart
確認設(shè)備已經(jīng)正確加載:less /proc/net/bonding/bond0
至此玄帕,bond 的設(shè)置就基本結(jié)束了
刪除bond
ifconfig bond0 down
rmmod bonding
網(wǎng)絡組配置
網(wǎng)絡組:是將多個網(wǎng)卡聚合在一起方法,從而實現(xiàn)冗錯和提高吞吐量,網(wǎng)絡組不同于舊版中bonding 技術(shù)想邦,能提供更好的性能和擴展性桨仿,網(wǎng)絡組由內(nèi)核驅(qū)動和teamd 守護進程實現(xiàn).
1.創(chuàng)建網(wǎng)絡組接口
nmcli connection add type team con-name TEAMname ifname INTname [config JSON]
TEAMname 指定連接名,INname指定接口名案狠,JSON指定runner方式服傍,格式為:'{"runner":{"name":"METHOD"}}'
METHOD 可以是broadcast、roundrobin骂铁、activebackup吹零、loadbalance、lacp
(1)創(chuàng)建網(wǎng)絡接口組team0
[root@centos7 ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"loadbalance"}}'
Connection 'team0' (e70483a1-2688-4eb2-9466-8e732360291d) successfully added.
(2)給網(wǎng)路組team0配置IP地址
[root@centos7 ~]# nmcli connection modify team0 ipv4.method manual ipv4.addresses 200.200.200.200/24 gw4 200.200.200.1
2 創(chuàng)建port接口(SLAVE)
既就是生成組TEAM組成員的配置文件,這個配置文件和網(wǎng)卡配置文件是相互獨立的拉庵。
nmcli connection add type team-slave con-name SLAVEname ifname INname master TEAMname
SLAVEname 指定連接名灿椅,INTname指定網(wǎng)絡接口名(相當于指定要加入網(wǎng)絡組的網(wǎng)卡名),TEAMnmae指定所屬網(wǎng)絡組钞支。
若連接名不指定茫蛹,默認為team-slave-IFACE
創(chuàng)建接口組
這里使用ens34、ens38兩塊網(wǎng)卡
[root@centos7 ~]# nmcli connection add con-name team0-ens34 type team-slave ifname ens34 master team0
Connection 'team0-ens34' (a481fb6d-bf61-413d-a2c7-289966bee1a7) successfully added.
[root@centos7 ~]# nmcli connection add con-name team0-ens38 type team-slave ifname ens38 master team0
Connection 'team0-ens38' (758d0eba-1625-46b2-b539-1d853a45be6b) successfully added.
3 啟用網(wǎng)絡組
啟用網(wǎng)絡組:nmcli connection up team0
啟用組成員:nmcli connection up SLAVEname
[root@centos7 ~]# nmcli connection up team0
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/20)
[root@centos7 ~]# nmcli connection up team0-ens34
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/23)
[root@centos7 ~]# nmcli connection up team0-ens38
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/24)
4 查看網(wǎng)絡組狀態(tài)
teamdctl TEAMname state
[root@centos7 ~]# teamdctl team0 state
setup:
runner: loadbalance
ports:
ens34
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens38
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
5 網(wǎng)絡組配置文件
(1)MASTER配置文件
[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
TEAM_CONFIG="{"runner":{"name":"loadbalance"}}"
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=team0
UUID=e70483a1-2688-4eb2-9466-8e732360291d
ONBOOT=yes
DEVICETYPE=Team
IPADDR=200.200.200.200
PREFIX=24
GATEWAY=200.200.200.1
(2)組成員(SLAVE)配置文件
[root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-team0-ens34
NAME=team0-ens34
UUID=a481fb6d-bf61-413d-a2c7-289966bee1a7
DEVICE=ens34
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort
6 刪除網(wǎng)絡組
(1)斷開連接
[root@centos7 ~]# nmcli connection down team0
Connection 'team0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
再次查看狀態(tài)
[root@centos7 ~]# teamdctl team0 state
Device "team0" does not exist
[root@centos7 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 be9d1f2f-20e0-4282-9cb5-0da4c8b0fc7c 802-3-ethernet ens33
virbr0 8b1532d4-d99b-4201-8163-44d733302230 bridge virbr0
team0 e70483a1-2688-4eb2-9466-8e732360291d team --
team0-ens34 a481fb6d-bf61-413d-a2c7-289966bee1a7 802-3-ethernet --
team0-ens38 758d0eba-1625-46b2-b539-1d853a45be6b 802-3-ethernet --
可以看到已經(jīng)關(guān)閉成功
(2)刪除TEAM組成員
[root@centos7 ~]# nmcli connection delete team0-ens34
Connection 'team0-ens34' (a481fb6d-bf61-413d-a2c7-289966bee1a7) successfully deleted.
[root@centos7 ~]# nmcli connection delete team0-ens38
Connection 'team0-ens38' (758d0eba-1625-46b2-b539-1d853a45be6b) successfully deleted.
(3)刪除TEAM組
[root@centos7 ~]# nmcli connection delete team0
Connection 'team0' (e70483a1-2688-4eb2-9466-8e732360291d) successfully deleted.
再次查看狀態(tài)
[root@centos7 ~]# nmcli connection show
NAME UUID TYPE DEVICE
ens33 be9d1f2f-20e0-4282-9cb5-0da4c8b0fc7c 802-3-ethernet ens33
virbr0 8b1532d4-d99b-4201-8163-44d733302230 bridge virbr0
已經(jīng)看不到team0 相關(guān)的內(nèi)容烁挟,說明刪除成功
同網(wǎng)卡多IP技術(shù)
不同的工作環(huán)境通常IP地址以及相關(guān)網(wǎng)絡屬性通常是不一樣的.如果我們每次都是手動去修改,那將是非常繁瑣的.所以我們?nèi)バ薷囊恍┚W(wǎng)絡配置讓網(wǎng)卡去自適應工作環(huán)境.在linux系統(tǒng)上配置同一個網(wǎng)卡擁有多個IP的技術(shù)也就是為網(wǎng)卡添加多個子網(wǎng)卡婴洼,如eth0:0、eth1:1這種網(wǎng)絡接口,LINUX最多可以支持255個IP子網(wǎng)卡撼嗓。
在linux系統(tǒng)上有兩種方式添加子網(wǎng)卡柬采。一種是使用網(wǎng)絡配置命令,這種方式會立即生效且警,但不會永久生效粉捻,如果重啟則會立即丟失。如果想要永久生效則是另一種方式去修改網(wǎng)絡配置文件斑芜。配置子網(wǎng)卡命令前要卸載或者禁用NetworkManager服務肩刃,因為和NetworkManager有沖突。
使用命令添加子網(wǎng)卡:
使用ifconfig命令管理子網(wǎng)卡:
ifconfig device[label] [address] [up|down]
ifconfig eth0:0 192.168.1.100/24 up(添加并啟用eth0:0子網(wǎng)卡)
ifconfig eth0:0 down(禁用eth0:0子網(wǎng)卡)
使用ip命令管理子網(wǎng)卡:
ip addr add [address] device [label]
ip addr add 172.16.1.2/16 dev eth0(為eth0網(wǎng)卡添加一個IP)
ip addr add 172.16.1.1/16 dev eth0 label eth0:0(為eth0網(wǎng)卡添加一個IP并且指定label)
ip addr del 172.16.1.1/16 dev eth0 label eth0:0(刪除eth0上172.16.1.1/16這條IP)
ip addr flush dev eth0 label eth0:0(刷新)
把相關(guān)配置寫入文件
將上邊的命令ifconfig加入到rc.local中去(永久生效)
手動編寫ip的網(wǎng)卡配置文件
配置屬性 | 含義 |
---|---|
ONBOOT | 在系統(tǒng)引導時是否激活此設(shè)備 |
DEVICE | 物理設(shè)備名字 |
TYPE | 接口類型杏头;常見有的Ethernet,Bridge |
UUID | 設(shè)備的惟一標識 |
IPADDR | 指明IP地址 |
NETMASK | 子網(wǎng)掩碼 |
GATEWAY | 默認網(wǎng)關(guān) |
DNS1 | 第一個DNS服務器指向 |
DNS2 | 第二個DNS服務器指向 |
USERCTL | 普通用戶是否可控制此設(shè)備 |
PEERDNS | 如果BOOTPROTO的值為“dhcp”盈包,是否允許 |
所有網(wǎng)卡的配置文件都保存在/etc/sysconfig/network-scripts目錄中,一個網(wǎng)卡對應一個配置文件
手工添加IP地址的
以下是網(wǎng)卡配置文件的部分信息說明大州,其他類似信息默認即可:
配置屬性 | 含義 |
---|---|
ONBOOT | 在系統(tǒng)引導時是否激活此設(shè)備 |
DEVICE | 物理設(shè)備名字 |
TYPE | 接口類型续语;常見有的Ethernet,Bridge |
UUID | 設(shè)備的惟一標識 |
IPADDR | 指明IP地址 |
NETMASK | 子網(wǎng)掩碼 |
GATEWAY | 默認網(wǎng)關(guān) |
DNS1 | 第一個DNS服務器指向 |
DNS2 | 第二個DNS服務器指向 |
USERCTL | 普通用戶是否可控制此設(shè)備 |
PEERDNS | 如果BOOTPROTO的值為“dhcp”垂谢,是否允許 |
配置完成重啟網(wǎng)卡即可:service network restart