Linux多网卡绑定及子接口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 了。