多网卡同IP和同网卡多IP技术

多网卡同IP技术

将多个网卡端口绑定为一个,可以提升网络的性能。在linux系统上有两种技术可以实现,Linux 网络组和bond,通过绑定多个网卡作为一个逻辑网口并配置单个的IP地址,大幅提升服务器的网络吞吐。

Bonding

目前发布各个Linux版本内核均已包含了此模块,大多数情况下不需要重新编译内核。 Linux 的 bonding 驱动提供了绑定/集成(bond)多个网卡为一个虚拟逻辑网口的功能。 一般来说绑定的网口(bonded)有多种工作模式,主要有热后备(hot standby) 和 负载均衡(load balancing).
1.创建bond0配置文件

1.创建bond0配置文件

vi /etc/sysconfig/network-scripts/ifcfg-bond0 添加配置参数

配置属性 含义
DEVICE 物理设备名字
ONBOOT 在系统引导时是否激活此设备
TYPE 接口类型;常见有的Ethernet,Bridge
IPADDR 指明IP地址
NETMASK 子网掩码
GATEWAY 默认网关
NAME bond名称
DNS1 第一个DNS服务器指向
DNS2 第二个DNS服务器指向
USERCTL 普通用户是否可控制此设备
PEERDNS 如果BOOTPROTO的值为“dhcp”,是否允许
2.修改被绑定的eth0和eth1的配置文件

vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes(设置从属关系)
BOOTPROTO=none
HWADDR=00:15:17:CC:FC:35
eth1的配置文件与之相同,只是device的值改为eth1即可。

3.装载bond模块驱动

编辑/etc/modprobe.conf或者/etc/modules.conf文件,加入如下内容,使系统启动时加载bonding模块驱动
alias bond0 bonding
option bond0 miimon=100 mode=1
说明:
1).miimon=100 用来进行链路监测的。即每100ms监测一次链路状态。bonding只监测主机与交换机之间链路。如果交换机出去的链路出问题而本身没有问题,那么bonding认为链路没有问题而继续使用。
2).mode=1 表示提供冗余功能。除此之外还可以为0、2、3,共四种模式。0表示负载均衡

4.在/etc/rc.d/rc.local文件中加入如下语句,使得系统启动自动运行

ifenslave bond0 eth0 eth1
route add -net 192.168.1.254 netmask 255.255.255.0 bond0 #如有需要才加该路由

5.检测、验证配置

首先执行命令装载bonding模块:modprobe bonding
重启网络服务,并确认bond0正确启动:service network restart
确认设备已经正确加载:less /proc/net/bonding/bond0
至此,bond 的设置就基本结束了
删除bond
ifconfig bond0 down
rmmod bonding

网络组配置

网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量,网络组不同于旧版中bonding 技术,能提供更好的性能和扩展性,网络组由内核驱动和teamd 守护进程实现.

1.创建网络组接口

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)创建网络接口组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)给网路组team0配置IP地址
[root@centos7 ~]# nmcli connection modify team0 ipv4.method manual ipv4.addresses 200.200.200.200/24 gw4 200.200.200.1

2 创建port接口(SLAVE)

既就是生成组TEAM组成员的配置文件,这个配置文件和网卡配置文件是相互独立的。
nmcli connection add type team-slave con-name SLAVEname ifname INname master TEAMname
SLAVEname 指定连接名,INTname指定网络接口名(相当于指定要加入网络组的网卡名),TEAMnmae指定所属网络组。
若连接名不指定,默认为team-slave-IFACE
创建接口组
这里使用ens34、ens38两块网卡
[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 启用网络组

启用网络组: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 查看网络组状态

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 网络组配置文件

(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 删除网络组

(1)断开连接
[root@centos7 ~]# nmcli connection down team0

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

再次查看状态
[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 --

可以看到已经关闭成功
(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.
再次查看状态
[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 相关的内容,说明删除成功

同网卡多IP技术

不同的工作环境通常IP地址以及相关网络属性通常是不一样的.如果我们每次都是手动去修改,那将是非常繁琐的.所以我们去修改一些网络配置让网卡去自适应工作环境.在linux系统上配置同一个网卡拥有多个IP的技术也就是为网卡添加多个子网卡,如eth0:0、eth1:1这种网络接口,LINUX最多可以支持255个IP子网卡。
在linux系统上有两种方式添加子网卡。一种是使用网络配置命令,这种方式会立即生效,但不会永久生效,如果重启则会立即丢失。如果想要永久生效则是另一种方式去修改网络配置文件。配置子网卡命令前要卸载或者禁用NetworkManager服务,因为和NetworkManager有冲突。

使用命令添加子网卡:

使用ifconfig命令管理子网卡:
ifconfig device[label] [address] [up|down]
ifconfig eth0:0 192.168.1.100/24 up(添加并启用eth0:0子网卡)
ifconfig eth0:0 down(禁用eth0:0子网卡)
使用ip命令管理子网卡:
ip addr add [address] device [label]
ip addr add 172.16.1.2/16 dev eth0(为eth0网卡添加一个IP)
ip addr add 172.16.1.1/16 dev eth0 label eth0:0(为eth0网卡添加一个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(刷新)
把相关配置写入文件
将上边的命令ifconfig加入到rc.local中去(永久生效)

手动编写ip的网卡配置文件

配置属性 含义
ONBOOT 在系统引导时是否激活此设备
DEVICE 物理设备名字
TYPE 接口类型;常见有的Ethernet,Bridge
UUID 设备的惟一标识
IPADDR 指明IP地址
NETMASK 子网掩码
GATEWAY 默认网关
DNS1 第一个DNS服务器指向
DNS2 第二个DNS服务器指向
USERCTL 普通用户是否可控制此设备
PEERDNS 如果BOOTPROTO的值为“dhcp”,是否允许

所有网卡的配置文件都保存在/etc/sysconfig/network-scripts目录中,一个网卡对应一个配置文件
手工添加IP地址的
以下是网卡配置文件的部分信息说明,其他类似信息默认即可:

配置属性 含义
ONBOOT 在系统引导时是否激活此设备
DEVICE 物理设备名字
TYPE 接口类型;常见有的Ethernet,Bridge
UUID 设备的惟一标识
IPADDR 指明IP地址
NETMASK 子网掩码
GATEWAY 默认网关
DNS1 第一个DNS服务器指向
DNS2 第二个DNS服务器指向
USERCTL 普通用户是否可控制此设备
PEERDNS 如果BOOTPROTO的值为“dhcp”,是否允许

配置完成重启网卡即可:service network restart

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,108评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,699评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,812评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,236评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,583评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,739评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,957评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,704评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,447评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,643评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,133评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,486评论 3 256
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,151评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,889评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,782评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,681评论 2 272

推荐阅读更多精彩内容

  • 采用传统的命名方式 vim /etc/default/grub 编辑此文件 运行此命令grub2-mkconfig...
    尘曦的雨阅读 474评论 0 0
  • hexdump -C 查看二进制文件 xxd:查看二进制文件 whatis 简单描述命令的用途whatis c...
    JevonWei阅读 710评论 0 0
  • CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当 增加或删除网卡时,名称可能会发生变化 ...
    楠人帮阅读 726评论 0 0
  • 基础命令 为了在 sudo 中设置权限提升,您需要编辑 sudoers 文件。 你不应该直接编辑文件,而是使用:s...
    米开朗基乐阅读 1,820评论 0 5
  • 网络接口配置-bonding Bonding就是 将多块网卡绑定同一IP 地址对外提供服务,可以实现高可用或者负载...
    lijincheng阅读 2,984评论 0 0