🍖網路管理之網絡卡配置
阿新 • • 發佈:2020-11-16
一.網絡卡名字修改
1.網絡卡命名規則
- CentOS6之前基於傳統的命名方式如: eth1, eth0....
- Centos7提供了不同的命名規則,預設是基於韌體、拓撲、位置資訊來分配
- 這樣做的優點是命名是全自動的、可預知的,缺點是比eth0更難讀, 比如ens33
2.網絡卡命名策略(瞭解)
3.配置網絡卡命名的方式
- 修改網絡卡配置檔案名稱
⛅為了方便先進到目錄,改成你想要的名字
[root@shawn ~]#cd /etc/sysconfig/network-scripts/
[root@shawn network-scripts]#mv ifcfg-ens32 ifcfg-eth100
- 修改網絡卡配置檔案
⛅直接使用"sed"查詢後替換掉
[root@shawn network-scripts]#sed -i "s/ens32/eth100/g" ifcfg-eth100
⛅或者進配置檔案進行修改
[root@shawn network-scripts]#vim ifcfg-eth100
- GRUB新增 kernel 引數
⛅進入核心引數檔案 [root@shawn network-scripts]#vim /etc/sysconfig/grub ⛅修改這一行,"100" GRUB_CMDLINE_LINUX="rhgb quiet 'net.ifnames=100 biosdevname=100'" ⛅載入到引導分割槽,生成選單 [root@shawn network-scripts]#grub2-mkconfig -o /boot/grub2/grub.cfg ⛅重啟系統生效,再檢視是否成功 [root@shawn network-scripts]#reboot [root@shawn ~]#ifconfig eth100: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 #發現已經改變了
二.基本網路配置
1.檢視網絡卡連線狀態
⛅檢視當前系統所連線的所有網絡卡 (我這裡只有一個網絡卡,所以顯示一個) [root@shawn ~]#lspci | grep -i eth 02:00.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01) ⛅確認網絡卡是否連線(link ok 表示網絡卡能被識別,並且接了有效的網線) [root@shawn ~]#mii-tool eth100 eth100: negotiated 1000baseT-FD flow-control, link ok ⛅如果顯示"failed: .....",則代表網線沒連線等等
2.ifconfig
命令
⛅檢視
ifconfig -a #檢視所有網絡卡資訊
ifconfif eth100 #檢視指定網絡卡資訊
⛅配置,新增子介面
ifconfig eth100 192.168.12.188/24 #臨時設定IP和掩碼(重啟服務或系統都失效)
ifconfig eth100 192.168.12.188 netmask 255.255.255.0 #同上一樣
ifconfig eth100:1 192.168.12.199/24 #配置子介面
⛅刪除子介面
ifconfig eth100:1 down #刪除這個子介面
ifconfig eth100:1 del 192.168.12.199 #刪除這個子介面
⛅開啟與關閉網絡卡配置
ifconfig eth100 down/up #不載入/載入這個網絡卡的配置檔案
ifdown eth100 / ifup eth100 #不載入/載入這個網絡卡的配置檔案
⛅設定網絡卡最大傳輸單元
ifconfig eth0 mtu 1500
⛅開啟和關閉模式(瞭解)
ifconfig eth0 promisc #開啟繁雜模式
ifconfig eth0 -promisc #關閉繁雜模式
ifconfig eth0 multicast #開啟多播
ifconfig eth0 -multicast #關閉多播
ifconfig eth0 allmulti #開啟
ifconfig eth0 -allmulti #關閉
⛅新增刪除"ipv6"地址
ifconfig eth0 add 3ffe:3240:800:1005: :2/64
ifconfig eth0 del 3ffe:3240:800:1005: :2/64
3.ifconfig 檢視結果解釋
[root@shawn ~]#ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
# [表示介面已啟用] [表示主機支援廣播] [表示介面在工作中] [表示主機支援多播] [mtu:1500最大傳輸單元(位元組)]
inet 192.168.12.188 netmask 255.255.255.0 broadcast 192.168.12.255
#IPV4地址 #子網掩碼 #廣播地址
inet6 fe80::20c:29ff:fe93:fdc8 prefixlen 64 scopeid 0x20<link>
#IPV6地址 #掩碼長度 #作用域, link表示僅該介面有效
ether 00:0c:29:93:fd:c8 txqueuelen 1000 (Ethernet)
#網口介面的MAC地址 #傳輸佇列長度 #介面型別
RX packets 192442 bytes 23005768 (21.9 MiB)
#表示此介面接收到的報文個數,總位元組數
RX errors 0 dropped 3378 overruns 0 frame 0
#接收報文錯誤數,丟棄數,溢位數(由於速度過快而丟失的資料包),衝突的幀數
TX packets 441431 bytes 34287197 (32.6 MiB)
#表示此介面傳送的報文個數,總位元組數
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
#傳送報文錯誤數,丟棄數,溢位數(由於速度過快而丟失的資料包),載荷數(發生carrier錯誤而丟失的資料包),衝突的幀數
4.ethtool解決網路丟包問題
- 全雙工與半雙工(儲備知識)
⛅全雙工傳輸英文寫法是:Full - Duplex Transmissions
是指交換機在傳送資料的同時也能夠接收資料,兩者同步進行
這好像我們平時打電話一樣,說話的同時也能夠聽到對方的聲音,目前的交換機都支援全雙工。
全雙工的好處在於遲延小、衝突少、速度快
⛅半雙工:就是指一個時間段內只有一個動作發生,
舉個簡單例子,一條窄窄的馬路,同時只能有一輛車通過,當目前有兩量車對開,這種情況下就只能一輛先過,等到頭兒後另一輛再開
這個例子就形象的說明了半雙工的原理
早期的對講機、以及早期集線器等裝置都是實行半雙工的產品
隨著技術的不斷進步,半雙工會逐漸退出歷史舞臺
- CRC校驗(儲備知識)
⛅CRC即迴圈冗餘校驗碼(Cyclic Redundancy Check)
是資料通訊領域中最常用的一種查錯校驗碼,其特徵是資訊欄位和校驗欄位的長度可以任意選定
迴圈冗餘檢查(CRC)是一種資料傳輸檢錯功能
對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳
輸的正確性和完整性
- 網絡卡工作原理(儲備知識)
⛅網絡卡發包
1、"ip"包 + 14 個位元組的"mac"頭變成資料幀"frame"
2、"frame"拷貝到網絡卡晶片內部的緩衝區,由網絡卡處理
3、網絡卡晶片為"frame"新增頭部同步資訊和"CRC"校驗,此時才是真正可以傳送的"packet",然後傳送
該"packet"
⛅網絡卡收包
1、網路包"packet"到達網絡卡,網絡卡先檢查包"packet"的"CRC"校驗,保證其完整性和正確性,然後去掉它的頭得到"frame"
2、網絡卡將"frame"拷貝到網絡卡內部的"FIFO"緩衝區
3、網絡卡驅動程式產生硬體中斷,把"frame"從網絡卡拷貝到記憶體中,接下來就交給核心處理
⛅網絡卡丟包
1.核心通常需要快速的拷貝網路資料包到系統記憶體
2.因為網絡卡上接收網路資料包的快取大小固定,而且相比系統記憶體也要小得多
3.所以上述拷貝動作一旦被延遲, 必然造成網絡卡FIFO快取溢位-進入的資料包占滿了網絡卡的快取
4.後續的包只能被丟棄,這也應該就是"ifconfig"裡的"overrun"的來源。
- 丟包問題解決
⛅丟包排查
網絡卡工作在資料鏈路層,資料量鏈路層,會做一些校驗,封裝成幀
我們可以檢視校驗是否出錯,確定傳輸是否存在問題。然後從軟體層面,是否因為緩衝區太小丟包
⛅先檢視底層硬體情況