Linux学习之CentOS(二十九)--Linux网卡高级命令、IP别名及多网卡绑定
本篇隨筆將詳細(xì)講解Linux系統(tǒng)的網(wǎng)卡高級命令、IP別名以及Linux下多網(wǎng)卡綁定的知識
一、網(wǎng)卡高級命令
在之前的一篇隨筆里Linux學(xué)習(xí)之CentOS(九)--Linux系統(tǒng)的網(wǎng)絡(luò)環(huán)境配置,詳細(xì)講解了Linux系統(tǒng)下的網(wǎng)絡(luò)環(huán)境配置等知識,我們了解了一些關(guān)于網(wǎng)絡(luò)配置的一些基本命令。在這里將補(bǔ)充一些Linux系統(tǒng)下有關(guān)網(wǎng)卡的一些高級命令。
①mii-tool 命令
mii-tool命令我們可以用來查看網(wǎng)卡狀態(tài)信息,包括了以太網(wǎng)連接是否正常,使用的是哪種型號的網(wǎng)卡等等
?
[root@xiaoluo?~]#?mii-tool?eth0eth0:?no?autonegotiation,?100baseTx-FD,?link?ok?
我們從輸出的信息可以看到,當(dāng)前以太網(wǎng)連接正常,以太網(wǎng)的速率是100M每秒,通過這個命令我們可以看到網(wǎng)卡底層的一些信息,當(dāng)有時我們在上層通過ping、traceroute等命令進(jìn)行網(wǎng)絡(luò)排錯時,如果發(fā)現(xiàn)網(wǎng)絡(luò)還是不能連接暢通,這時就可以使用這個命令來查看是否是以太網(wǎng)連接出問題了
②ethtool 命令
通過mii-tool命令可以查看網(wǎng)卡的一些底層信息,但是如果我們想要查看網(wǎng)卡的更詳細(xì)信息,就可以使用ethtool 這個命令,它可以將網(wǎng)卡的所有信息都詳細(xì)列出來
[root@xiaoluo?~]#?ethtool?eth0Settings?for?eth0:Supported?ports:?[?TP?]Supported?link?modes:???10baseT/Half?10baseT/Full?100baseT/Half?100baseT/Full?1000baseT/Full?Supported?pause?frame?use:?NoSupports?auto-negotiation:?YesAdvertised?link?modes:??10baseT/Half?10baseT/Full?100baseT/Half?100baseT/Full?1000baseT/Full?Advertised?pause?frame?use:?NoAdvertised?auto-negotiation:?YesSpeed:?1000Mb/sDuplex:?FullPort:?Twisted?PairPHYAD:?0Transceiver:?internalAuto-negotiation:?onMDI-X:?UnknownSupports?Wake-on:?umbgWake-on:?dCurrent?message?level:?0x00000007?(7)drv?probe?linkLink?detected:?yes
包括網(wǎng)卡支持的鏈接速率、雙工模式等等信息都能查看到
如果說我們想要查看網(wǎng)卡的驅(qū)動信息,可以在 ethtool 命令后加上 -i 參數(shù),就能顯示網(wǎng)卡的驅(qū)動信息了
[root@xiaoluo?~]#?ethtool?-i?eth0driver:?e1000 version:?7.3.21-k8-NAPI firmware-version:? bus-info:?0000:00:03.0supports-statistics:?yes supports-test:?yes supports-eeprom-access:?yes supports-register-dump:?yes supports-priv-flags:?no
如果說我們還需要查看網(wǎng)卡當(dāng)前底層工作狀態(tài)信息,可以在命令后加上 -S 參數(shù)
[root@xiaoluo?~]#?ethtool?-S?eth0NIC?statistics:rx_packets:?3255tx_packets:?898rx_bytes:?477575tx_bytes:?2228309rx_broadcast:?2190tx_broadcast:?198rx_multicast:?0tx_multicast:?6rx_errors:?0tx_errors:?0tx_dropped:?0multicast:?0collisions:?0rx_length_errors:?0rx_over_errors:?0rx_crc_errors:?0rx_frame_errors:?0rx_no_buffer_count:?0rx_missed_errors:?0tx_aborted_errors:?0tx_carrier_errors:?0tx_fifo_errors:?0tx_heartbeat_errors:?0tx_window_errors:?0tx_abort_late_coll:?0tx_deferred_ok:?0tx_single_coll_ok:?0tx_multi_coll_ok:?0tx_timeout_count:?0tx_restart_queue:?0rx_long_length_errors:?0rx_short_length_errors:?0rx_align_errors:?0tx_tcp_seg_good:?263tx_tcp_seg_failed:?0rx_flow_control_xon:?0rx_flow_control_xoff:?0tx_flow_control_xon:?0tx_flow_control_xoff:?0rx_long_byte_count:?477575rx_csum_offload_good:?0rx_csum_offload_errors:?0alloc_rx_buff_failed:?0tx_smbus:?0rx_smbus:?0dropped_smbus:?0
包括網(wǎng)卡發(fā)送了多少數(shù)據(jù)包、接受了多少數(shù)據(jù)包等信息都能看到。
所以通過 mii-tool 和 ethtool 這兩個命令,我們可以看到網(wǎng)卡更多的底層信息以及網(wǎng)卡的物理信息等等,這可能會為我們在進(jìn)行網(wǎng)絡(luò)排錯時提供便利
二、IP別名
在Linux系統(tǒng)中,我們可以在一塊物理網(wǎng)卡上配置多個IP地址,以此來實現(xiàn)類似子接口的功能,我們稱之為IP別名。當(dāng)然在其他操作系統(tǒng)上,比如windowns、mac os上也支持在一塊物理網(wǎng)卡配置多個IP地址。比如說我們的Linux主機(jī)作為一個DHCP服務(wù)器,它可能要為不同的網(wǎng)段分配多個IP地址,在Linux系統(tǒng)中,我們通過IP別名來實現(xiàn)在一塊物理網(wǎng)卡上配置多個IP地址。
【注意:】要使用IP別名來配置多個IP地址,我們首先需要關(guān)閉NetworkManager服務(wù)
在CentOS或者RHEL上,都默認(rèn)會啟用NerworkManager這個服務(wù)來對網(wǎng)卡進(jìn)行管理,NetworkManager服務(wù)其實就是我們操作系統(tǒng)右上方那兩個小電腦圖標(biāo),我們在圖形化界面可以點擊那個來指定使用哪塊網(wǎng)卡,但是我們?nèi)绻枰褂肐P別名,就必須要禁用掉這個服務(wù)
[root@xiaoluo?~]#?service?NetworkManager?stopStopping?NetworkManager?daemon:????????????????????????????[??OK??] //?停掉我們的NetworkManager服務(wù),此時我們可以發(fā)現(xiàn)右上角那個圖標(biāo)就不見了[root@xiaoluo?~]#?chkconfig?NetworkManager?off // NetworkManager這個服務(wù)默認(rèn)會開機(jī)啟動,所以我們將其設(shè)置成開機(jī)不啟動[root@xiaoluo?~]#?chkconfig?--list?|?grep?NetworkManager NetworkManager?????0:off????1:off????2:off????3:off????4:off????5:off????6:off
在停掉NetworkManager服務(wù)以后我們就可以使用IP別名技術(shù)來配置多個IP地址了,這里我們使用 ip 這個命令,命令語法格式如下:
ip?addr?add?./?dev?etho?label?eth0:我們首先通過 ifconfig 命令來查看我們當(dāng)前網(wǎng)卡的信息
?
[root@xiaoluo?~]#?ifconfigeth0??????Link?encap:Ethernet??HWaddr?08:00:27:D7:F8:84??inet?addr:172.25.215.40??Bcast:172.25.215.255??Mask:255.255.255.0inet6?addr:?fe80::a00:27ff:fed7:f884/64?Scope:LinkUP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1RX?packets:5801?errors:0?dropped:0?overruns:0?frame:0TX?packets:2011?errors:0?dropped:0?overruns:0?carrier:0collisions:0?txqueuelen:1000?RX?bytes:819876?(800.6?KiB)??TX?bytes:2288399?(2.1?MiB)lo????????Link?encap:Local?Loopback??inet?addr:127.0.0.1??Mask:255.0.0.0inet6?addr:?::1/128?Scope:HostUP?LOOPBACK?RUNNING??MTU:16436??Metric:1RX?packets:167?errors:0?dropped:0?overruns:0?frame:0TX?packets:167?errors:0?dropped:0?overruns:0?carrier:0collisions:0?txqueuelen:0?RX?bytes:14861?(14.5?KiB)??TX?bytes:14861?(14.5?KiB)
?
此時我們的eth0網(wǎng)卡信息就會顯示出來,我們此時通過ip命令來給eth0添加一個IP別名
[root@xiaoluo?~]#?ip?addr?add?172.25.215.31/24?dev?eth0?label?eth0:0[root@xiaoluo?~]#?ifconfigeth0??????Link?encap:Ethernet??HWaddr?08:00:27:D7:F8:84??inet?addr:172.25.215.40??Bcast:172.25.215.255??Mask:255.255.255.0inet6?addr:?fe80::a00:27ff:fed7:f884/64?Scope:LinkUP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1RX?packets:6323?errors:0?dropped:0?overruns:0?frame:0TX?packets:2011?errors:0?dropped:0?overruns:0?carrier:0collisions:0?txqueuelen:1000?RX?bytes:914440?(893.0?KiB)??TX?bytes:2288399?(2.1?MiB)eth0:0????Link?encap:Ethernet??HWaddr?08:00:27:D7:F8:84??inet?addr:172.25.215.31??Bcast:0.0.0.0??Mask:255.255.255.0UP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1lo????????Link?encap:Local?Loopback??inet?addr:127.0.0.1??Mask:255.0.0.0inet6?addr:?::1/128?Scope:HostUP?LOOPBACK?RUNNING??MTU:16436??Metric:1RX?packets:167?errors:0?dropped:0?overruns:0?frame:0TX?packets:167?errors:0?dropped:0?overruns:0?carrier:0collisions:0?txqueuelen:0?RX?bytes:14861?(14.5?KiB)??TX?bytes:14861?(14.5?KiB)
我們看到,此時我們對出來了一塊 eth0:0 網(wǎng)卡,其實這個就是eth0網(wǎng)卡的一個IP別名,eth0上就有兩個IP地址了,此時我們通過外面的主機(jī)ping這兩個IP地址都是可以ping通的,如果說我們需要永久保存這個信息,我們就需要在 /etc/sysconfig/network-scripts?這個文件下建立一個名字為 ifcfg.eth0:0 這樣的配置文件,新建的IP別名是什么,那么就在這個目錄下建立一個與該名字對應(yīng)的文件即可
[root@xiaoluo?~]#?cd?/etc/sysconfig/network-scripts/-scripts]#?-eth0???ifdown-isdn????ifup-aliases??ifup-plusb?????init.ipv6--lo?????ifdown-post????ifup-bnep?????ifup--ppp?????ifup-eth??????ifup-ppp???????network--bnep??ifdown-routes??ifup-ippp?????ifup-routes????network-functions--eth???ifdown-sit?????ifup-ipv6?????ifup--ippp??ifdown-tunnel??ifup-isdn?????ifup--ipv6??ifup???????????ifup-plip?????ifup--scripts]#??ifcfg-eth0:=eth0:=.==yes // eth0:0是eth0的IP別名,yes表示附屬于eth0
通過添加上述的配置文件,我們的IP別名信息就能永久保存了。
三、多網(wǎng)卡綁定
為什么要使用多網(wǎng)卡綁定技術(shù)呢?我們知道如果使用一塊網(wǎng)卡進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)傳輸時其速度是有限的,即使是千兆網(wǎng)卡,其速度也是有限制的,我們?yōu)榱颂岣邘?#xff0c;我們可以將多塊物理網(wǎng)卡綁定成一塊邏輯網(wǎng)卡,這樣網(wǎng)卡的速率就是多塊網(wǎng)卡的速率了。
Linux支持將多塊物理網(wǎng)卡綁定成一塊邏輯網(wǎng)卡,綁定后的邏輯網(wǎng)卡可以并行使用組成其的所有物理網(wǎng)卡,通過這樣的方式可以提高帶寬以及網(wǎng)路的穩(wěn)定性
我們在將多塊物理網(wǎng)卡綁定成一塊邏輯網(wǎng)卡以后,我們的IP地址就要求配置在這塊邏輯網(wǎng)卡上了,而非多塊物理網(wǎng)卡
Linux下支持三種模式的網(wǎng)卡綁定:
①模式0:平衡輪訓(xùn) 使用這種模式來進(jìn)行多網(wǎng)卡綁定時我們可以提高網(wǎng)絡(luò)的帶寬,其流量是從綁定的多塊網(wǎng)卡上平均分配的
②模式1:主動備份 使用這種模式來進(jìn)行多網(wǎng)卡綁定時我們可以提高網(wǎng)絡(luò)的穩(wěn)定性,這種模式不會提高網(wǎng)絡(luò)的帶寬,每次只有一塊網(wǎng)卡在走流量,只有當(dāng)這塊網(wǎng)卡發(fā)生故障時,綁定在一起的其它物理網(wǎng)卡才會工作
③模式3:廣播模式 這種模式一般都不用
我們?nèi)绻胪ㄟ^多網(wǎng)卡綁定來提升網(wǎng)絡(luò)的帶寬,就選擇模式0,如果想提高網(wǎng)絡(luò)的穩(wěn)定性,則選擇模式1
下面我們來看看如何進(jìn)行網(wǎng)卡綁定的配置
①網(wǎng)卡綁定以后我們需要給我們的邏輯網(wǎng)卡取一個名字,通常格式為 bondn,n代表的是編號,如 /dev/bond0, /dev/bond1
②然后我們需要在 /etc/sysconfig/network-scripts 這個目錄下創(chuàng)建該邏輯網(wǎng)卡的配置文件,如:
/etc/sysconfig/network-scripts/ifc-bond0
?
[root@xiaoluo?network-scripts]#?vi?ifcfg-bond0DEVICE=bond0 // 設(shè)備名字 IPADDR=172.25.215.200 // 網(wǎng)卡ip地址PREFIX=24 // 子網(wǎng)掩碼24位ONBOOT=yes // 開機(jī)啟動yes BOOTPROTO=none // 啟動協(xié)議,因為我們是手動配置IP,所以設(shè)置成none,如果是通過DHCP動態(tài)分配,則設(shè)置成dhcp USERCTL=no // 關(guān)閉掉用戶控制 BONDING_OPTS="mode=1?miimon=5" // 這個是bond網(wǎng)卡最主要的配置,我們的bond網(wǎng)卡其實是根據(jù)一個叫做bonding的驅(qū)動來配置的,后面跟配置參數(shù),這里我們使用的是模式1(主動備份)
?
因為我們要使用多網(wǎng)卡綁定,所以我們這里再添加一塊網(wǎng)卡,然后根據(jù)提示就可以添加一塊新網(wǎng)卡了,我們這里添加一塊網(wǎng)卡eth1,使用ifconfig查看一下:
?
[root@xiaoluo?network-scripts]#?ifconfigbond0?????Link?encap:Ethernet??HWaddr?00:00:00:00:00:00??inet?addr:172.25.215.200??Bcast:172.25.215.255??Mask:255.255.255.0UP?BROADCAST?RUNNING?MASTER?MULTICAST??MTU:1500??Metric:1RX?packets:0?errors:0?dropped:0?overruns:0?frame:0TX?packets:0?errors:0?dropped:0?overruns:0?carrier:0collisions:0?txqueuelen:0?RX?bytes:0?(0.0?b)??TX?bytes:0?(0.0?b)eth0??????Link?encap:Ethernet??HWaddr?08:00:27:D7:F8:84??inet6?addr:?fe80::a00:27ff:fed7:f884/64?Scope:LinkUP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1RX?packets:1285?errors:0?dropped:0?overruns:0?frame:0TX?packets:6?errors:0?dropped:0?overruns:0?carrier:0collisions:0?txqueuelen:1000?RX?bytes:221706?(216.5?KiB)??TX?bytes:468?(468.0?b)eth1??????Link?encap:Ethernet??HWaddr?08:00:27:F4:7D:CC??inet6?addr:?fe80::a00:27ff:fef4:7dcc/64?Scope:LinkUP?BROADCAST?RUNNING?MULTICAST??MTU:1500??Metric:1RX?packets:1196?errors:0?dropped:0?overruns:0?frame:0TX?packets:95?errors:0?dropped:0?overruns:0?carrier:0collisions:0?txqueuelen:1000?RX?bytes:216126?(211.0?KiB)??TX?bytes:4806?(4.6?KiB)lo????????Link?encap:Local?Loopback??inet?addr:127.0.0.1??Mask:255.0.0.0inet6?addr:?::1/128?Scope:HostUP?LOOPBACK?RUNNING??MTU:16436??Metric:1RX?packets:73?errors:0?dropped:0?overruns:0?frame:0TX?packets:73?errors:0?dropped:0?overruns:0?carrier:0collisions:0?txqueuelen:0?RX?bytes:6330?(6.1?KiB)??TX?bytes:6330?(6.1?KiB)
?
此時我們計算機(jī)里面就有兩塊網(wǎng)卡了,因為我們需要將這兩塊網(wǎng)卡綁定到bond0這個邏輯網(wǎng)卡中,所以我們要在兩塊網(wǎng)卡的配置文件里面添加兩條語句:
MASTER=bond0 //?將這兩塊網(wǎng)卡綁定到bond0這塊邏輯網(wǎng)卡上 SLAVE=yes // SLAVE=yes表示這兩塊網(wǎng)卡附屬于bond0這塊網(wǎng)卡[root@xiaoluo?network-scripts]#?vi?ifcfg-eth0DEVICE=eth0 HWADDR=08:00:27:D7:F8:84TYPE=Ethernet UUID=2877e96e-6ddd-443b-a337-bafa7c77c6e5 ONBOOT=no NM_CONTROLLED=yes BOOTPROTO=none IPV6INIT=no USERCTL=no MASTER=bond0 SLAVE=yes[root@xiaoluo?network-scripts]#?vi?ifcfg-eth1DEVICE=eth1 BOOTPROTO=none TYPE=Ethernet PEERDNS=yes IPV6INIT=no ONBOOT=no USERCTL=no HWADDR=08:00:27:f4:7d:ccMASTER=bond0 SLAVE=yes
之前說過bond0這塊網(wǎng)卡其實是通過一個叫做 bonding 的驅(qū)動來配置的,所以我們還需要為bond0這塊網(wǎng)卡添加驅(qū)動支持,將這個驅(qū)動添加到?/etc/modprobe.d/ 這個目錄下
這個文件夾下放的都是我們系統(tǒng)所需驅(qū)動的配置文件,我們這時需要給我們的bonding添加一個名字為 bonding.conf 的配置文件
?
[root@xiaoluo?modprobe.d]#?vi?bonding.confalias?bond0?bonding?
此時配置好以后,我們就可以通過 ifup bond0 來啟動我們的bond0網(wǎng)卡
[root@xiaoluo?network-scripts]#?ifup?bond0Active?connection?state:?activated Active?connection?path:?/org/freedesktop/NetworkManager/ActiveConnection/2此時我們可以通過ifconfig命令來查看一下當(dāng)前網(wǎng)卡信息:
[root@xiaoluo?network-scripts]#?:::D7:F8:.??Bcast:.??Mask:./??Metric:?errors:?dropped:?overruns:?frame:?errors:?dropped:?overruns:?carrier:?txqueuelen:?(?MiB)??TX?bytes:?(:::D7:F8:??Metric:?errors:?dropped:?overruns:?frame:?errors:?dropped:?overruns:?carrier:?txqueuelen:?(?KiB)??TX?bytes:?(:::D7:F8:??Metric:?errors:?dropped:?overruns:?frame:?errors:?dropped:?overruns:?carrier:?txqueuelen:?(?KiB)??TX?bytes:?(.??Mask:./??Metric:?errors:?dropped:?overruns:?frame:?errors:?dropped:?overruns:?carrier:?txqueuelen:?(?KiB)??TX?bytes:?(?KiB)
此時我們通過 ping 命令來ping我們外面的主機(jī),發(fā)現(xiàn)已經(jīng)可以正常ping通的
[root@xiaoluo?network-scripts]#??..?(.)?(?bytes?from?.:?icmp_seq=?ttl=?=?bytes?from?.:?icmp_seq=?ttl=?=?bytes?from?.:?icmp_seq=?ttl=?=?bytes?from?.:?icmp_seq=?ttl=?=?bytes?from?.:?icmp_seq=?ttl=?=?ms ***********************************************************************************
這個時候我們的bond0網(wǎng)卡就已經(jīng)配置成功了,它是由兩塊物理網(wǎng)卡組成的,我們可以根據(jù)需要,比如說要提高網(wǎng)絡(luò)帶寬或者提高網(wǎng)絡(luò)穩(wěn)定性來設(shè)置bond0的網(wǎng)卡綁定模式即可
?
本篇隨筆詳細(xì)講解了Linux網(wǎng)卡的一些高級命令以及如何在給一塊物理網(wǎng)卡配置多個IP地址,我們稱之為IP別名,當(dāng)然還有我們的多網(wǎng)卡綁定配置!!!
轉(zhuǎn)載于:https://blog.51cto.com/sandshell/1947772
總結(jié)
以上是生活随笔為你收集整理的Linux学习之CentOS(二十九)--Linux网卡高级命令、IP别名及多网卡绑定的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu中怎么安装Kdevelop
- 下一篇: spring 如何检测到循环依赖/如何解