Linux多网卡绑定及子接口

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux多网卡绑定、IP别名

在介绍多网卡绑定以及子接口技术之前,首先来介绍一下查看网卡信息的指令操作。

查看网卡线缆状态:

mii-tool eth0 #命令显示网卡的底层信息(双工,速率,物理连接是否正常等信息)

查看网卡底层信息:

ethtool eth0 #此命令显示的网卡信息较为详细,作为高级的排错指令

ethtool -i eth0 查看网卡驱动信息

[root@www ~]# ethtool -i eth0

driver: pcnet32

version: 1.35

firmware-version:

bus-info: 0000:02:01.0

ethtool -S eth0 查看网卡状态统计信息

子接口(IP别名):

CentOS和RHEL默认会启用NetworkManager对网卡管理,Linux下可以通过IP别名(子接口)功能为一个物理网卡添加多个IP地址;要使用IP别名(子接口)需要关闭NetworkManager服务。如下所示:

service NetworkManager stop

chkconfig NetworkManager off

#此服务对网卡进行管理在功能上来讲很单一,实现的功能很少;

使用ip命令为一个接口添加别名:(或者通过ifconfig命令来实现)

ip addr add 10.1.10.118/24 dev eth0 label eth0:0

eth0:1

永久添加别名,需要在/etc/sysconfig/network-scripts/中添加配置文件:

文件名:ifcfg-eth0:0

内容如下所示:

DEVICE=eth0:0

IPADDR=10.1.10.118

PREFIX=24 或者NETMASK 255.255.255.0 (在这里直接使用地址前缀信息)ONPARENT=yes #子接口的依附关系;

备注:使用多网卡的主机上需要将NetworkManager服务关闭,避免出现问题

Linux下可以通过多网卡绑定来提升网卡的稳定性及带宽,多网卡绑定通过将多个物理网卡绑定为一个逻辑网卡的形式创建。绑定后的逻辑网卡可以并行使用组成它的所有物理网卡;

备注:绑定后的物理网卡不在使用,IP地址配置在绑定后的逻辑网卡上面操作;

Linux支持的网卡绑定模式:

模式0 平衡轮训(RR)生产环境中运用最多的模式,提高带宽。(多网卡同时处理数据包) 模式1 主动备份主要提供了备份功能,不能提高带宽;(默认只使用一块网卡)

模式2 广播这种模式使用的比较少,使用广播从接口发送数据包容易产生相同的数据包;

多网卡绑定具体做法:

1.首先来查看系统中的网卡配置信息,如下所示:

2.创建绑定网卡的配置文件:

/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0 #设置名称

IPADDR=10.1.210.10 #逻辑网卡的IP地址

PREFIX=yes #前缀掩码长度

ONBOOT=yes #启动加载配置文件

BOOTPROTO=none #获得地址的方式(DHCP,static)手工自定配置设置USERCTL=no #是否允许非root用户控制该设备

BOUNDING_OPTS="mode=1 miimon=100"

#最后面的bondinoption参数指定工作模式(主动备份模式以及链路监测的间隔)

#miimon是用来进行链路监测的。miimon=100,系统每100ms监测一次链路连接状态。

3.修改属于该逻辑网卡的物理网卡(Slave接口)的配置文件:(切记关闭网卡在修改配置文件)

vim /etc/sysconfig/network-scirpts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

MASTER=bond0

SLAVE=yes

USERCTL=no

#eth1接口配置文件修改如上;

#/etc/init.d/network restart 重启网络服务,使之生效;

效果如下所示:

4.添加bond0网卡的驱动支持

#/etc/modprobe.d控制相关驱动的配置文件信息,文件命名的方法就是驱动名称加上.conf) /etc/modprobe.d/bonding.conf

alias bond0 bonding #告诉bond0设备使用的驱动是bonding;

options bond0 miimon=100 mode=0 #绑定网卡的工作模式和监测链路状态时间间隔

#编辑逻辑网卡配置文件时,切记要使用ifdown bond0关闭逻辑网卡;

5.测试主备备份方式的网卡收发数据包的过程

通过watch指令进行全屏测试分析,测试指令用法分析如下:

watch [options] command (--interval 等同于-n )

功能:每隔一段时间重复运行一个命令,默认间隔时间是2秒。执行的命令直接传给Bashshell,同时输出内容会以全屏显示。因此可以很方便分析数据改变情况;

watch -n 3 ifconfig # -n选项设置执行指令的时间间隔为3秒;效果如下所示:

如上所示得出主动备份模式仅有eth0网卡处理数据包,eth1网卡处于待命状态。若要想实现负载均衡模式改变ifcfg-bond0配置的中的mode=0即可;

/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0 #设置名称

IPADDR=10.1.210.10 #逻辑网卡的IP地址

PREFIX=yes #前缀掩码长度

ONBOOT=yes #启动加载配置文件

BOOTPROTO=none #获得地址的方式(DHCP,static)手工自定配置设置USERCTL=no #是否允许非root用户控制该设备

BOUNDING_OPTS="mode=0 miimon=100"

原理扩展:在正常情况下,ethernet网卡只接收目的mac地址是自身mac的以太网帧,对于别的数据帧都过滤掉,以减轻驱动程序也就是软件的负担。但是ethernet网卡也支持另外一种被称为promisc的模式,可以接收网络上所有的帧,很多系统程序如:sniffer、tcpdump,都运行在这个模式下。Bonding网卡绑定也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。如果一个IP地址对应两个不同的MAC地址,显然会造成网络的延迟和不稳定,这跟ARP攻击比较像。当有多个不同MAC对应同一个IP,网络里面各终端设备包括路由器对应这个IP的ARP会不停的变,包不是丢了就是发到错误的MAC 了。

相关文档
最新文档