Linux服務器網(wǎng)卡驅(qū)動安裝及故障排除
關 鍵 詞:Linux
閱讀提示:各種設備驅(qū)動程序構成了Linux操作系統(tǒng)代碼的主要部分,而網(wǎng)卡的驅(qū)動又是Linux操作系統(tǒng)中極其重要的一塊,本文作一介紹。
網(wǎng)卡是Linux服務器中最重要網(wǎng)絡設備。據(jù)統(tǒng)計,Linux網(wǎng)絡故障有35%在物理層、 25%在數(shù)據(jù)鏈路層、10%在網(wǎng)絡層、10%在傳輸層、10%在對話、7%在表示層、3%在應用層。由此可以看出,網(wǎng)絡故障通常發(fā)生在網(wǎng)絡七層模型的下三層,即物理層、鏈路層和網(wǎng)絡層。對應于實際網(wǎng)絡也就是使用的網(wǎng)絡線纜、網(wǎng)卡、交換機、路由器等設備故障。Linux的網(wǎng)絡實現(xiàn)是模仿FreeBSD的,它支持FreeBSD的帶有擴展的Sockets(套接字)和TCP/IP協(xié)議。它支持兩個主機間的網(wǎng)絡連接和Sockets通訊模型,實現(xiàn)了兩種類型的 Sockets:BSD Sockets和INET Sockets。它為不同的通信模型和服務質(zhì)量提供了兩種傳輸協(xié)議,即不可靠的、基于消息的UDP傳輸協(xié)議和可靠的、基于流的傳輸協(xié)議TCP,并且都是在 IP網(wǎng)絡協(xié)議上實現(xiàn)的。INET sockets是在以上兩個協(xié)議及IP協(xié)議之上實現(xiàn)的。
由于交換機、路由器通常獨立于Linux或者其他操作系統(tǒng)。網(wǎng)卡設置故障是造成Linux 服務器故障最主要原因。可能因為硬件的質(zhì)量或性能、磨損老化、人為誤操作、不正確的網(wǎng)絡設置、管理問題、Linux軟件的BUG、系統(tǒng)受到黑客攻擊和Linux病毒等原因造成。
Linux 服務器網(wǎng)卡故障排除的思路是:應當遵循先硬件后軟件的方法。因為硬件如果出現(xiàn)物理損壞那么如何設定網(wǎng)卡都不能解決故障。解決問題的方法可以從自身Linux計算機的網(wǎng)卡查起,如果確定硬件沒有問題了,再來考慮軟件的設定。
1. 網(wǎng)卡的選擇
一般來說,2.4版本以后的 Linux可以支持的網(wǎng)卡芯片組數(shù)量已經(jīng)很完備了,包括著名廠商如:Intel 以及使用廣泛的 RealTek, Via 等網(wǎng)卡芯片都已經(jīng)被支持,所以使用者可以很輕易的設定好他們的網(wǎng)絡卡。但是由于Linux發(fā)行版本眾多(目前超過188個),使用前最好查看Linux發(fā)行版本的文檔。以Redhat Linux 9.0為例,這個設備列表在Ethernet- HOWTO文檔中。另外最直接的方法是查看一個目錄:/lib/modules/release/kernel/drivers/net,其中 release是內(nèi)核版本,可以使用命令:“uname -r”獲得。對于Redhat Linux 9.0是2.4.20-8。
|
可以看到這個目錄列出所有Linux內(nèi)核支持的網(wǎng)絡設備驅(qū)動程序。其中大部分是以太網(wǎng)卡(8139、3COM、Intel)。也有一些是其他類型設備。對于初學者應當盡量選擇目錄中已經(jīng)列出的網(wǎng)卡。注意以.o 后綴結束的文件就是驅(qū)動程序。而沒有后綴的是驅(qū)動程序目錄(紅色)。
3.為新網(wǎng)卡設定IP地址
在Linux 網(wǎng)絡設備在配置時被賦予別名,該別名由一個描述性的縮略詞和一個編號組成。某種類型的第一個設備的編號為 0,其他設備依次被編號為 1、2、3,等。但是網(wǎng)卡并不是最為裸設備出現(xiàn)在/dev目錄下,而是存在內(nèi)存中。eth0, eth1是以太網(wǎng)卡接口。它們用于大多數(shù)的以太網(wǎng)卡,包括許多并行端口以太網(wǎng)卡。本文主要討論這類網(wǎng)卡。為Linux以太網(wǎng)卡設定IP地址的方式非常靈活,你可以選擇適合你工作情況的方法:
(1) 使用ip或ifconfig命令
ifconfig命令是最重要的Linux網(wǎng)絡命令,最主要的用途是設定、修改網(wǎng)卡的IP地址,修改網(wǎng)卡ip地址:
#ifconfig eth0 192.168.0.2 netmask 255.255.255.0 |
默認情況下, ifconfig 顯示活動的網(wǎng)絡設備。給這個命令添加一個 -a 開關就能看到所有設備。但是ifconfig命令設置網(wǎng)絡設備的ip地址系統(tǒng)重新啟動后設置會自動失效。所以它主要用于網(wǎng)卡狀態(tài)調(diào)試。假設您要建立一個臨時的網(wǎng)絡配置以供測試。您可以使用發(fā)行版本中的工具來編輯配置,但是需要注意在完成測試之后,將所有設置恢復回去。通過使用 ifconfig ,我們無需影響已保存的設置,就能夠快速地配置網(wǎng)卡。
Ip命令是iproute2軟件包里面的一個強大的網(wǎng)絡配置工具,它能夠替代一些傳統(tǒng)的網(wǎng)絡管理工具。例如:ifconfig、route等。 現(xiàn)在,絕大多數(shù) Linux 發(fā)行版和絕大多數(shù) UNIX都使用古老的arp, ifconfig和route命令。雖然這些工具能夠工作,但它們在Linux2.2和更高版本的內(nèi)核上顯得有一些落伍。使用iproute2前你應該確認已經(jīng)安裝了這個工具。這個包的名字在RedHat Linux 9.0叫作“iproute2”,也可以在:ftp://ftp.inr.ac.ru/ip-routing/ 下載源代碼安裝。
如果希望在以太網(wǎng)接口eth0上增加一個地址10.0.0.1,掩碼長度為24位,標準廣播地址,標簽為eth0:Alias:
#ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias |
netconfig命令可以設置網(wǎng)絡設備的ip地址,netconfig命令可以永久保存設置。
使用方法是:“netconfig ethX”。使用命令“netconfig eth0”后會在命令行下彈出一個對話框,這時即可進行設定。
設定結束后用“tab”鍵選擇“OK”即可保存設置并且退出。然后使用命令:“service network restart “激活即可生效。
使用neat命令需要配置好X window系統(tǒng),在命令行下運行“neat”命令后添加IP地址和其他相關參數(shù)后保存設置,從新啟動網(wǎng)絡和網(wǎng)絡服務或計算機。
另外neat命令還有一個同價命令:“redhat-config-network”,二者完全相同。Neat和redhat-config-config命令可以永久保存設置。
除非另行指定,Red Hat Linux 系統(tǒng)中大多數(shù)配置文件都在 /etc 目錄中。網(wǎng)卡相關的TCP/IP網(wǎng)絡配置文件是:/etc/sysconfig/network-scripts/ifcfg-ethx。其中x從0開始,第一個以太網(wǎng)配置文件即:/etc/sysconfig/network-scripts/ifcfg-eth0。使用vi編輯器修改這個文件,也可以修改網(wǎng)卡IP地址。
#vi /etc/sysconfig/network-scripts/ifcfg-eth0 |
DEVICE=eth0#設定網(wǎng)卡的名稱,要跟文件名稱對應 #
ONBOOT=yes#是否在開機的的時候啟動網(wǎng)卡#
BOOTPROTO=static #啟動的時候的 IP 取得的協(xié)議,這里是固定的,
如果是動態(tài)主機的話,要改成 dhcp 才行#
IPADDR=192.168.1.2 #IP 地址#
NETMASK=255.255.255.0#子網(wǎng)掩嗎#
NETWORK=192.168.1.0#該網(wǎng)段的第一個 IP#
BROADCAST=192.168.1.255#最后一個同網(wǎng)段的廣播地址#
GATEWAY=192.168.1.2#網(wǎng)關地址#
#GATEWAYDEV=eth0
存盤后使用命令:“service network restart “激活即可生效。這個方法同樣可以永久保存設置。
(5) 為網(wǎng)卡添加IPV6地址
和Windows系統(tǒng)相比Linux對Ipv6的支持更好,最早的支持Ipv6的Linux 內(nèi)核是 2.2.xxx。一般Linux基于2.4內(nèi)核的Linux發(fā)行版本都可以直接使用Ipv6,使用前要看系統(tǒng)IPv6模塊是否被加載,如果沒有的話可以使用命令手工加載,這需要超級用戶的權限。然后使用命令檢測,如果顯示IPv6地址(inet6 addr:fe80::200:e8ff:fea0:2586/64)證明IPv6已經(jīng)加載。
# modprobe IPv6;#ifconfig -a |
如果希望Linux系統(tǒng)啟動時自動加載Ipv6模塊,可以在配置文件:/etc/modules.conf中加入一行:
alias net?pf?10 ipv6 # automatically load IPv6 module on demand |
4.調(diào)整網(wǎng)卡工作模式
現(xiàn)在的網(wǎng)卡大多是自適應工作模式,在配置網(wǎng)卡參數(shù)時我們很少考慮它的工作模式,有時發(fā)現(xiàn)一些網(wǎng)卡模塊已經(jīng)加載,但是在某些模式工作不穩(wěn)定。如筆者使用的一塊XXX品牌的雜牌RTL-8139C芯片10/100自適應網(wǎng)卡在100兆全雙工狀態(tài)下極其不穩(wěn)定(在Qcheck的TCP和UDP的測試過程中,數(shù)據(jù)包遺失率9.12%。)。在Linux環(huán)境下,我們可以使用系統(tǒng)自帶的工具mii-tool 命令來配置網(wǎng)卡工作模式。顯示Linux服務器網(wǎng)卡支持的所有以太網(wǎng)卡類型,使用命令:
|
從以上信息中可以看出,這塊網(wǎng)卡工作在100全雙工自適應模式下,“100aseTx-FD”意為100M Full Duplex。這里可以強制網(wǎng)卡工作在100M半工模式下,輸入命令:
#mii-tool –F 100baseTx-HD eth0 |
以后恢復網(wǎng)卡的自適應工作模式,輸入命令:
#mii-tool –r eth0 |
另外路由器、交換機、代理服務器等通信量比較大的關鍵設備上,應該為它指定正確的工作模式,這樣可以提高通信效率。
5.DHCP客戶端網(wǎng)卡設定
如果希望使用DHCP是動態(tài)主機配置協(xié)議,這個協(xié)議用于向計算機自動提供IP地址,子網(wǎng)掩碼和路由信息。當設備接入這個局域網(wǎng)時,它們會向 DHCP 服務器請求一個 IP 地址。然后 DHCP 服務器為每個請求的設備分配一個地址,直到分配完該范圍內(nèi)的所有 IP 地址為止。已經(jīng)分配的 IP 地址必須定時地延長借用期。這個延期的過程稱作 leasing,確保了當客戶機設備在正常地釋放 IP 地址之前突然從網(wǎng)絡斷開時被分配的地址可以歸還給服務器。Linux下配置DHCP客戶端有兩種方法:圖形界面和手工配置。使用圖形界面可以使用neat 命令界面。選中“自動獲得IP地址設置使用DHCP”即可。
通常筆者更喜歡使用選擇手工配置 DHCP 客戶,需要修改 /etc/sysconfig/network 文件來啟用聯(lián)網(wǎng);并修改 /etc/sysconfig/network-scripts 目錄中每個網(wǎng)絡設備的配置文件。在該目錄中,每個設備都有一個叫做 ifcfg-ethX 的配置文件,ethX是網(wǎng)絡設備的名稱。如eth0等。如果你想在引導時啟動聯(lián)網(wǎng),NETWORKING 變量必須 被設為 yes。除了此處之外/etc/sysconfig/network 文件應該包含以下行:
|
6.VPN服務器網(wǎng)卡設置
VPN是由經(jīng)過相互授權的通信雙方在公網(wǎng)上建立的安全通信隧道,數(shù)據(jù)在隧道中進行加密傳輸,用于總部與分支機構的安全通信。虛擬專用網(wǎng)絡是一種新的網(wǎng)絡技術,用于跨過 Internet 或局域網(wǎng)而安全地訪問企業(yè)網(wǎng)。Redhat Linux下的VPN技術主要有CIPE (Crypto IP Encapsulation:加密 IP 封裝)是主要為 Linux 而開發(fā)的 VPN 實現(xiàn)。CIPE 使用加密的 IP 分組,這些分組被封裝或“包圍”在數(shù)據(jù)報(UDP)分組中。CIPE 分組被給以目標頭信息,并使用默認的 CIPE 加密機制來加密。CIPE 使用標準的 Blowfish 或 IDEA 加密算法來支持加密。根據(jù)你所在國家的加密出口法規(guī)而定,你可以使用默認方法(Blowfish)來加密你的專用網(wǎng)上的所有 CIPE 交通。CIPE 配置可以通過文本文件、圖形化的網(wǎng)絡管理工具來完成。這里以通過文本文件為例介紹。首先在服務器和客戶端安裝CIPE軟件。官方網(wǎng)站:http: //sites.inka.de/~ 運行CIPE VPN服務主要需要建立兩個文件:/etc/sysconfig/network-scripts/ifcfg-cipcbX和 /etc/cipe/options.cipcbX。X 是從0開始的遞增數(shù)字。
(1)VPN服務器端網(wǎng)卡設置
首先手工建立/etc/sysconfig/network-scripts/ifcfg-cipcb0文件,它是VPN服務器的虛擬網(wǎng)絡接口,主要內(nèi)容:
USERCTL=yes #是否允許所有用戶修改配置#
TYPE=CIPE #接口類型#
DEVICE=cipcb0 #給 CIPE 設備命名#
ONBOOT=yes #系統(tǒng)啟動時激活設備#
IPADDR=10.0.0.1 #本地虛擬地址#
MYPORT=7777 #通訊端口#
PTPADDR=10.0.0.2 #遠程虛擬地址#
PEER=0.0.0.0 #本地地址,0.0.0.0 表示接受連續(xù)監(jiān)聽#
ME=192.168.1.9 #對端的 CIPE UDP 地址#
TUNNELDEV=eth0 #隧道穿越設備#
然后建立/etc/cipe/options.cipcb0文件,這個文件存放密匙,主要內(nèi)容:
cttl 64 #設置載體生存時間值(TTL);推薦的值是64#
maxerr –1 #服務器錯誤掛起時間#
key 54240266869983357939377846801171299051 #128位密匙#
(2)客戶端網(wǎng)卡的配置
由于CIPE要求服務器和客戶機的密匙完全相同所以,首先將密匙文件:options.cipcb從服務器復制到客戶機主機的/etc/cipe/ 目錄中。
# scp root@192.168.1.9:/etc/cipe/options.cipcb0 /etc/cipe/options.cipcb0
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.9' (RSA) to the list of known hosts.
root@192.168.1.9's password:
options.cipcb0 100% |***************************************| 61 00:00
然后使用vi編輯器建立客戶端網(wǎng)卡配置文件:/etc/sysconfig/network-scripts/ifcfg-cipcb0包含以下內(nèi)容:
USERCTL=no #不允許客戶端修改配置#
BOOTPROTO=none
TYPE=CIPE #接口類型#
DEVICE=cipcb0 #給 CIPE 設備命名#
ONBOOT=yes #系統(tǒng)啟動時激活設備#
IPADDR=10.0.0.2 #本地虛擬地址#
MYPORT=7777 #通訊端口#
PTPADDR=10.0.0.1 #遠程虛擬地址#
PEER=192.168.1.29:7777 #VPN服務器真實IP地址和端口號#
ME=192.168.1.9 #對端的 CIPE UDP 地址#
TUNNELDEV=eth0 #隧道穿越設備#
MTU=“” #使用缺省設置#
NETMASK=“” #使用缺省設置#
NETWORK=“” #使用缺省設置#
BROADCAST=“” #使用缺省設置#
(3)使用ifup命令激活VPN網(wǎng)卡
# ifup cipcb0 |
這時VPN通道已經(jīng)開啟,可以使用tcpdump等工具檢查。
7.無線網(wǎng)卡在Linux下安裝
隨著Linux網(wǎng)絡技術的快速增長,硬件廠商大大加速對硬件產(chǎn)品對Linux的技術支持。使得Linux 支持的無線網(wǎng)卡的數(shù)量在過去的一兩年里增長顯著。一旦在計算機中安裝好了無線局域網(wǎng)卡,首先要做的就是安裝驅(qū)動來讓網(wǎng)卡工作。無線網(wǎng)卡實現(xiàn)了IEEE 802.11系列協(xié)議中的一種或多種的物理層(PHY)和媒質(zhì)訪問控制子層(MAC)的功能,而驅(qū)動是用來控制無線網(wǎng)卡,向上提供與以太網(wǎng)一致的接口并提供其他一些無線局域網(wǎng)特定的管理接口的。對于不同廠商的不同網(wǎng)卡,還沒有一種統(tǒng)一的方法可以驅(qū)動所有的網(wǎng)卡。首先必須確保內(nèi)核配置中啟動了無線局域網(wǎng)。如果沒有無線局域網(wǎng)支持,你應該重新配置、編譯內(nèi)核來啟動"Wireless LAN (non-hamradio) Drivers and Wireless Extensions"。
目前,常見的無線網(wǎng)卡大多為PCMCIA、PCI和USB三種類型,筆者使用最多的是 PCMCIA(Personal Computer Memory Card International Association)接口的無線網(wǎng)卡。對于有些設備,配置無線連接非常簡單:只要在您使用的 Linux 發(fā)行版本,插入無線網(wǎng)卡,在設置過程中單擊鼠標,并輸入正確的聯(lián)網(wǎng)參數(shù)就可以了。通常基于朗訊(Lucent)芯片組的無線網(wǎng)卡的安裝比較簡單,筆者使用的Cisco Aironet Wireless 802.11b 在Mandrake 8.2 Linu安裝程序可以順利地找到設備驅(qū)動, 使用基于intersil PRISM2-based cards 芯片組的PCMCIA的無線網(wǎng)卡安裝就比較復雜了。需要一個第三方工具安裝。
目前經(jīng)過www.Linux.org 認證的PCMCIA網(wǎng)卡有兩大類。使用基于朗訊(Lucent)芯片組的PCIMCIA無線網(wǎng)卡和使用基于intersil PRISM2-based cards 芯片組的PCMCIA的無線網(wǎng)卡見表-1。
Lucent chipset-based cards intersil PRISM2-based cards
Lucent Wavelan/IEEE and Orimoco Linksys(WPC11 v2.5)
Cabletron/Enterays RoarmAbout SMS(2632W)
Compaq(WL110、WL210、 WL215) Compaq(WL100、WL200)
Apple Airport Cisco Aironet Wireless 802.11b(340、350)
IBM High Rate Wireless LAN Dlink DWL-650
HP 802.11bWiewless LAN Nokia
DELL TrueMobile Intel PRO/Wireless 2100
3Com AirConnect SAMSUNG 11Mbps WLAN Card
LA4111 Spectrum24 Wireless LAN PC Card PROXIM LAN PC CARD HARMONY 80211B
NCR WaveLAN/IEEE Adapter
總的來說Linux下無線網(wǎng)卡的安裝順序一般是:
采取全部安裝方式安裝Linux發(fā)行版本,重新編譯內(nèi)核,并除去任何對內(nèi)核提供的 PCMCIA 驅(qū)動程序的部分。
了解網(wǎng)卡的規(guī)格并且下載并編譯相應的 PCMCIA-CS 庫和驅(qū)動程序
下載、編譯并安裝無線網(wǎng)卡必需的所有驅(qū)動程序。這一步驟對于有些網(wǎng)卡是可選的,而對于有些網(wǎng)卡是必須執(zhí)行的。做與不做很大程度上取決于您所選的無線網(wǎng)卡。
修改和無線網(wǎng)卡的相關設定。從新啟動Linux系統(tǒng)和網(wǎng)絡。
設置無線網(wǎng)絡相關步驟如下:
(1)用“iwconfig”命令來顯示無線網(wǎng)卡(eth0、eth1)的信息。在以下的步驟中,用ethX表示無線網(wǎng)卡的名稱。
(2)設置無線網(wǎng)卡的操作模式為Managed:
#iwconfig ethX mode Managed |
(3)如果采用了WEP加密,需要設置WEP密碼:
#iwconfig ethX key password XXXXXX |
對應40位和128位加密,password分別為6位和10位的十六進制數(shù)字。
(4)設置SSID,其中ESSID為無線接入(Access Point)的SSID。
# iwconfig ethX essid ESSID |
(5)創(chuàng)建/etc/sysconfig/network/ifcfg-ethX配置文件,使得機器每次啟動時,無線網(wǎng)卡都會自動獲得IP地址。該文件內(nèi)容如下:
|
(6)啟動無線網(wǎng)卡:
#ifconfig ethX up |
posted on 2007-10-09 07:08 強強 閱讀(411) 評論(0) 編輯 收藏 所屬分類: linux 操作系統(tǒng)配置