Linux学习之CentOS29Linux网卡高级命令IP别名及多网卡绑定.docx
《Linux学习之CentOS29Linux网卡高级命令IP别名及多网卡绑定.docx》由会员分享,可在线阅读,更多相关《Linux学习之CentOS29Linux网卡高级命令IP别名及多网卡绑定.docx(13页珍藏版)》请在冰豆网上搜索。
Linux学习之CentOS29Linux网卡高级命令IP别名及多网卡绑定
Linux学习之CentOS(二十九)--Linux网卡高级命令、IP别名及多网卡绑定
您可以通过点击右下角的按钮来对文章内容作出评价,也可以通过左下方的关注按钮来关注我的博客的最新动态。
如果文章内容对您有帮助,不要忘记点击右下角的推荐按钮来支持一下哦
如果您对文章内容有任何疑问,可以通过评论或发邮件的方式联系我:
501395377@/lzp501395377@
如果需要转载,请注明出处,谢谢!
!
本篇随笔将详细讲解Linux系统的网卡高级命令、IP别名以及Linux下多网卡绑定的知识
一、网卡高级命令
在之前的一篇随笔里Linux学习之CentOS(九)--Linux系统的网络环境配置,详细讲解了Linux系统下的网络环境配置等知识,我们了解了一些关于网络配置的一些基本命令。
在这里将补充一些Linux系统下有关网卡的一些高级命令。
①mii-tool 命令
mii-tool命令我们可以用来查看网卡状态信息,包括了以太网连接是否正常,使用的是哪种型号的网卡等等
[root@xiaoluo~]#mii-tooleth0
eth0:
noautonegotiation,100baseTx-FD,linkok
我们从输出的信息可以看到,当前以太网连接正常,以太网的速率是100M每秒,通过这个命令我们可以看到网卡底层的一些信息,当有时我们在上层通过ping、traceroute等命令进行网络排错时,如果发现网络还是不能连接畅通,这时就可以使用这个命令来查看是否是以太网连接出问题了
②ethtool 命令
通过mii-tool命令可以查看网卡的一些底层信息,但是如果我们想要查看网卡的更详细信息,就可以使用ethtool这个命令,它可以将网卡的所有信息都详细列出来
[root@xiaoluo~]#ethtooleth0
Settingsforeth0:
Supportedports:
[TP]
Supportedlinkmodes:
10baseT/Half10baseT/Full
100baseT/Half100baseT/Full
1000baseT/Full
Supportedpauseframeuse:
No
Supportsauto-negotiation:
Yes
Advertisedlinkmodes:
10baseT/Half10baseT/Full
100baseT/Half100baseT/Full
1000baseT/Full
Advertisedpauseframeuse:
No
Advertisedauto-negotiation:
Yes
Speed:
1000Mb/s
Duplex:
Full
Port:
TwistedPair
PHYAD:
0
Transceiver:
internal
Auto-negotiation:
on
MDI-X:
Unknown
SupportsWake-on:
umbg
Wake-on:
d
Currentmessagelevel:
0x00000007(7)
drvprobelink
Linkdetected:
yes
包括网卡支持的链接速率、双工模式等等信息都能查看到
如果说我们想要查看网卡的驱动信息,可以在ethtool命令后加上-i参数,就能显示网卡的驱动信息了
[root@xiaoluo~]#ethtool-ieth0
driver:
e1000
version:
7.3.21-k8-NAPI
firmware-version:
bus-info:
0000:
00:
03.0
supports-statistics:
yes
supports-test:
yes
supports-eeprom-access:
yes
supports-register-dump:
yes
supports-priv-flags:
no
如果说我们还需要查看网卡当前底层工作状态信息,可以在命令后加上-S参数
[root@xiaoluo~]#ethtool-Seth0
NICstatistics:
rx_packets:
3255
tx_packets:
898
rx_bytes:
477575
tx_bytes:
2228309
rx_broadcast:
2190
tx_broadcast:
198
rx_multicast:
0
tx_multicast:
6
rx_errors:
0
tx_errors:
0
tx_dropped:
0
multicast:
0
collisions:
0
rx_length_errors:
0
rx_over_errors:
0
rx_crc_errors:
0
rx_frame_errors:
0
rx_no_buffer_count:
0
rx_missed_errors:
0
tx_aborted_errors:
0
tx_carrier_errors:
0
tx_fifo_errors:
0
tx_heartbeat_errors:
0
tx_window_errors:
0
tx_abort_late_coll:
0
tx_deferred_ok:
0
tx_single_coll_ok:
0
tx_multi_coll_ok:
0
tx_timeout_count:
0
tx_restart_queue:
0
rx_long_length_errors:
0
rx_short_length_errors:
0
rx_align_errors:
0
tx_tcp_seg_good:
263
tx_tcp_seg_failed:
0
rx_flow_control_xon:
0
rx_flow_control_xoff:
0
tx_flow_control_xon:
0
tx_flow_control_xoff:
0
rx_long_byte_count:
477575
rx_csum_offload_good:
0
rx_csum_offload_errors:
0
alloc_rx_buff_failed:
0
tx_smbus:
0
rx_smbus:
0
dropped_smbus:
0
包括网卡发送了多少数据包、接受了多少数据包等信息都能看到。
所以通过mii-tool和ethtool这两个命令,我们可以看到网卡更多的底层信息以及网卡的物理信息等等,这可能会为我们在进行网络排错时提供便利
二、IP别名
在Linux系统中,我们可以在一块物理网卡上配置多个IP地址,以此来实现类似子接口的功能,我们称之为IP别名。
当然在其他操作系统上,比如windowns、macos上也支持在一块物理网卡配置多个IP地址。
比如说我们的Linux主机作为一个DHCP服务器,它可能要为不同的网段分配多个IP地址,在Linux系统中,我们通过IP别名来实现在一块物理网卡上配置多个IP地址。
【注意:
】要使用IP别名来配置多个IP地址,我们首先需要关闭NetworkManager服务
在CentOS或者RHEL上,都默认会启用NerworkManager这个服务来对网卡进行管理,NetworkManager服务其实就是我们操作系统右上方那两个小电脑图标,我们在图形化界面可以点击那个来指定使用哪块网卡,但是我们如果需要使用IP别名,就必须要禁用掉这个服务
[root@xiaoluo~]#serviceNetworkManagerstop
StoppingNetworkManagerdaemon:
[OK] //停掉我们的NetworkManager服务,此时我们可以发现右上角那个图标就不见了
[root@xiaoluo~]#chkconfigNetworkManageroff // NetworkManager这个服务默认会开机启动,所以我们将其设置成开机不启动
[root@xiaoluo~]#chkconfig--list|grepNetworkManager
NetworkManager0:
off1:
off2:
off3:
off4:
off5:
off6:
off
在停掉NetworkManager服务以后我们就可以使用IP别名技术来配置多个IP地址了,这里我们使用 ip 这个命令,命令语法格式如下:
ipaddradd172.25.215.40/24devetholabeleth0:
0
后面的eth0:
0表示,我们给eth0这块网卡增加一个IP别名,后面那个0表示别名号,第二个别名就可以写成eth0:
1
我们首先通过ifconfig命令来查看我们当前网卡的信息
[root@xiaoluo~]#ifconfig
eth0Linkencap:
EthernetHWaddr08:
00:
27:
D7:
F8:
84
inetaddr:
172.25.215.40Bcast:
172.25.215.255Mask:
255.255.255.0
inet6addr:
fe80:
:
a00:
27ff:
fed7:
f884/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
5801errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
2011errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
819876(800.6KiB)TXbytes:
2288399(2.1MiB)
loLinkencap:
LocalLoopback
inetaddr:
127.0.0.1Mask:
255.0.0.0
inet6addr:
:
:
1/128Scope:
Host
UPLOOPBACKRUNNINGMTU:
16436Metric:
1
RXpackets:
167errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
167errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
0
RXbytes:
14861(14.5KiB)TXbytes:
14861(14.5KiB)
此时我们的eth0网卡信息就会显示出来,我们此时通过ip命令来给eth0添加一个IP别名
[root@xiaoluo~]#ipaddradd172.25.215.31/24deveth0labeleth0:
0
[root@xiaoluo~]#ifconfig
eth0Linkencap:
EthernetHWaddr08:
00:
27:
D7:
F8:
84
inetaddr:
172.25.215.40Bcast:
172.25.215.255Mask:
255.255.255.0
inet6addr:
fe80:
:
a00:
27ff:
fed7:
f884/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
6323errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
2011errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
914440(893.0KiB)TXbytes:
2288399(2.1MiB)
eth0:
0Linkencap:
EthernetHWaddr08:
00:
27:
D7:
F8:
84
inetaddr:
172.25.215.31Bcast:
0.0.0.0Mask:
255.255.255.0
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
loLinkencap:
LocalLoopback
inetaddr:
127.0.0.1Mask:
255.0.0.0
inet6addr:
:
:
1/128Scope:
Host
UPLOOPBACKRUNNINGMTU:
16436Metric:
1
RXpackets:
167errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
167errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
0
RXbytes:
14861(14.5KiB)TXbytes:
14861(14.5KiB)
我们看到,此时我们对出来了一块eth0:
0网卡,其实这个就是eth0网卡的一个IP别名,eth0上就有两个IP地址了,此时我们通过外面的主机ping这两个IP地址都是可以ping通的,如果说我们需要永久保存这个信息,我们就需要在 /etc/sysconfig/network-scripts 这个文件下建立一个名字为 ifcfg.eth0:
0 这样的配置文件,新建的IP别名是什么,那么就在这个目录下建立一个与该名字对应的文件即可
[root@xiaoluo~]#cd/etc/sysconfig/network-scripts/
[root@xiaoluonetwork-scripts]#ls
ifcfg-eth0ifdown-isdnifup-aliasesifup-plusbinit.ipv6-global
ifcfg-loifdown-postifup-bnepifup-postnet.hotplug
ifdownifdown-pppifup-ethifup-pppnetwork-functions
ifdown-bnepifdown-routesifup-ipppifup-routesnetwork-functions-ipv6
ifdown-ethifdown-sitifup-ipv6ifup-sit
ifdown-ipppifdown-tunnelifup-isdnifup-tunnel
ifdown-ipv6ifupifup-plipifup-wireless
[root@xiaoluonetwork-scripts]#viifcfg-eth0:
0
DEVICE=eth0:
0 //设备名字
IPADDR=172.25.215.31 // IP地址
PREFIX=24 //前缀是24,其实就是相当于子网掩码有24位
ONPARENT=yes // eth0:
0是eth0的IP别名,yes表示附属于eth0
通过添加上述的配置文件,我们的IP别名信息就能永久保存了。
三、多网卡绑定
为什么要使用多网卡绑定技术呢?
我们知道如果使用一块网卡进行网络数据传输时其速度是有限的,即使是千兆网卡,其速度也是有限制的,我们为了提高带宽,我们可以将多块物理网卡绑定成一块逻辑网卡,这样网卡的速率就是多块网卡的速率了。
Linux支持将多块物理网卡绑定成一块逻辑网卡,绑定后的逻辑网卡可以并行使用组成其的所有物理网卡,通过这样的方式可以提高带宽以及网路的稳定性
我们在将多块物理网卡绑定成一块逻辑网卡以后,我们的IP地址就要求配置在这块逻辑网卡上了,而非多块物理网卡
Linux下支持三种模式的网卡绑定:
①模式0:
平衡轮训 使用这种模式来进行多网卡绑定时我们可以提高网络的带宽,其流量是从绑定的多块网卡上平均分配的
②模式1:
主动备份 使用这种模式来进行多网卡绑定时我们可以提高网络的稳定性,这种模式不会提高网络的带宽,每次只有一块网卡在走流量,只有当这块网卡发生故障时,绑定在一起的其它物理网卡才会工作
③模式3:
广播模式 这种模式一般都不用
我们如果想通过多网卡绑定来提升网络的带宽,就选择模式0,如果想提高网络的稳定性,则选择模式1
下面我们来看看如何进行网卡绑定的配置
①网卡绑定以后我们需要给我们的逻辑网卡取一个名字,通常格式为bondn,n代表的是编号,如/dev/bond0,/dev/bond1
②然后我们需要在/etc/sysconfig/network-scripts这个目录下创建该逻辑网卡的配置文件,如:
/etc/sysconfig/network-scripts/ifc-bond0
[root@xiaoluonetwork-scripts]#viifcfg-bond0
DEVICE=bond0 // 设备名字
IPADDR=172.25.215.200 // 网卡ip地址
PREFIX=24 // 子网掩码24位
ONBOOT=yes // 开机启动yes
BOOTPROTO=none // 启动协议,因为我们是手动配置IP,所以设置成none,如果是通过DHCP动态分配,则设置成dhcp
USERCTL=no // 关闭掉用户控制
BONDING_OPTS="mode=1miimon=5" // 这个是bond网卡最主要的配置,我们的bond网卡其实是根据一个叫做bonding的驱动来配置的,后面跟配置参数,这里我们使用的是模式1(主动备份)
因为我们要使用多网卡绑定,所以我们这里再添加一块网卡,然后根据提示就可以添加一块新网卡了,我们这里添加一块网卡eth1,使用ifconfig查看一下:
[root@xiaoluonetwork-scripts]#ifconfig
bond0Linkencap:
EthernetHWaddr00:
00:
00:
00:
00:
00
inetaddr:
172.25.215.200Bcast:
172.25.215.255Mask:
255.255.255.0
UPBROADCASTRUNNINGMASTERMULTICASTMTU:
1500Metric:
1
RXpackets:
0errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
0errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
0
RXbytes:
0(0.0b)TXbytes:
0(0.0b)
eth0Linkencap:
EthernetHWaddr08:
00:
27:
D7:
F8:
84
inet6addr:
fe80:
:
a00:
27ff:
fed7:
f884/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
1285errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
6errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
221706(216.5KiB)TXbytes:
468(468.0b)
eth1Linkencap:
EthernetHWaddr08:
00:
27:
F4:
7D:
CC
inet6addr:
fe80:
:
a00:
27ff:
fef4:
7dcc/64Scope:
Link
UPBROADCASTRUNNINGMULTICASTMTU:
1500Metric:
1
RXpackets:
1196errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
95errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
1000
RXbytes:
216126(211.0KiB)TXbytes:
4806(4.6KiB)
loLinkencap:
LocalLoopback
inetaddr:
127.0.0.1Mask:
255.0.0.0
inet6addr:
:
:
1/128Scope:
Host
UPLOOPBACKRUNNINGMTU:
16436Metric:
1
RXpackets:
73errors:
0dropped:
0overruns:
0frame:
0
TXpackets:
73errors:
0dropped:
0overruns:
0carrier:
0
collisions:
0txqueuelen:
0
RXbytes:
6330(6.1KiB)TXbytes:
6330(6.1KiB)
此时我们计算机里面就有两块网卡了,因为我们需要将这两块网卡绑定到bond0这个逻辑网卡中,所以我们要在两块网卡的配置文件里面添加两条语句:
MASTER=bond0 //将这两块网卡绑定到bond0这块逻辑网卡上
SLAVE=yes // SLAVE=yes表示这两块网卡附属于bond0这块网卡
[root@xiaoluonetwork-scripts]#viifcfg-eth0
DEVICE=eth0
HWADDR=08:
00:
27:
D7:
F8:
84
TYPE=Ethernet
UUID=2877e96e-6ddd-443b-a337-bafa7c77c6e5
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=none
IPV6INIT=no
USERCTL=no
MASTER=bond0
SLAVE=yes
[root@xiaoluonetwork-scripts]#viifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
TYPE=Ethernet
PEERDNS=yes
IPV6INIT=no
ONBOOT=no
USERCTL=no
HWADDR=08:
00:
27:
f4:
7d:
cc
MASTER=bond0
SLAVE=yes
之前说过bond0这块网卡其实是通过一个叫做bonding的驱动来配置的,所以我们还需要为bond0这块网卡添