您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>主機(jī)配件>網(wǎng)卡>

Linux服務(wù)器網(wǎng)卡驅(qū)動(dòng)安裝及問(wèn)題排除

2010年01月11日 11:51 srfitnesspt.com 作者:佚名 用戶評(píng)論(0

Linux服務(wù)器網(wǎng)卡驅(qū)動(dòng)安裝及問(wèn)題排除

??? 網(wǎng)卡是Linux服務(wù)器中最重要網(wǎng)絡(luò)設(shè)備。據(jù)統(tǒng)計(jì),Linux網(wǎng)絡(luò)故障有35%在物理層、25%在數(shù)據(jù)鏈路層、10%在網(wǎng)絡(luò)層、10%在傳輸層、10%在對(duì)話、7%在表示層、3%在應(yīng)用層。由此可以看出,網(wǎng)絡(luò)故障通常發(fā)生在網(wǎng)絡(luò)七層模型的下三層,即物理層、鏈路層和網(wǎng)絡(luò)層。對(duì)應(yīng)于實(shí)際網(wǎng)絡(luò)也就是使用的網(wǎng)絡(luò)線纜、網(wǎng)卡、交換機(jī)、路由器等設(shè)備故障。Linux的網(wǎng)絡(luò)實(shí)現(xiàn)是模仿FreeBSD的,它支持FreeBSD的帶有擴(kuò)展的Sockets(套接字)和TCP/IP協(xié)議。它支持兩個(gè)主機(jī)間的網(wǎng)絡(luò)連接和Sockets通訊模型,實(shí)現(xiàn)了兩種類(lèi)型的Sockets:BSD Sockets和INET Sockets。它為不同的通信模型和服務(wù)質(zhì)量提供了兩種傳輸協(xié)議,即不可靠的、基于消息的UDP傳輸協(xié)議和可靠的、基于流的傳輸協(xié)議TCP,并且都是在IP網(wǎng)絡(luò)協(xié)議上實(shí)現(xiàn)的。INET sockets是在以上兩個(gè)協(xié)議及IP協(xié)議之上實(shí)現(xiàn)的。它們之間的關(guān)系見(jiàn)圖1所示。




????圖1 Linux網(wǎng)絡(luò)模型

由于交換機(jī)、路由器通常獨(dú)立于Linux或者其他操作系統(tǒng)。網(wǎng)卡設(shè)置故障是造成Linux 服務(wù)器故障最主要原因。可能因?yàn)?a target="_blank">硬件的質(zhì)量或性能、磨損老化、人為誤操作、不正確的網(wǎng)絡(luò)設(shè)置、管理問(wèn)題、Linux軟件的BUG、系統(tǒng)受到黑客攻擊和Linux病毒等原因造成。

Linux 服務(wù)器網(wǎng)卡故障排除的思路是:應(yīng)當(dāng)遵循先硬件后軟件的方法。因?yàn)橛布绻霈F(xiàn)物理?yè)p壞那么如何設(shè)定網(wǎng)卡都不能解決故障。解決問(wèn)題的方法可以從自身Linux計(jì)算機(jī)的網(wǎng)卡查起,如果確定硬件沒(méi)有問(wèn)題了,再來(lái)考慮軟件的設(shè)定。

1.網(wǎng)卡的選擇
一般來(lái)說(shuō),2.4版本以后的 Linux可以支持的網(wǎng)卡芯片組數(shù)量已經(jīng)很完備了,包括著名廠商如:Intel 以及使用廣泛的 RealTek, Via 等網(wǎng)卡芯片都已經(jīng)被支持,所以使用者可以很輕易的設(shè)定好他們的網(wǎng)絡(luò)卡。但是由于Linux發(fā)行版本眾多(目前超過(guò)188個(gè)),使用前最好查看Linux發(fā)行版本的文檔。以Redhat Linux 9.0為例,這個(gè)設(shè)備列表在Ethernet- HOWTO文檔中。另外最直接的方法是查看一個(gè)目錄:/lib/modules/release/kernel/drivers/net,其中release是內(nèi)核版本,可以使用命令:“uname -r”獲得。對(duì)于Redhat Linux 9.0是2.4.20-8。

#ls /lib/modules/2.4.20-8/kernel/drivers/net/
3c501.o???????????? atp.o?????? eth16i.o????? ni52.o???????? smc-ultra.o
3c503.o???????????? bonding.o?? ethertap.o??? ni65.o???????? starfire.o
3c505.o???????????? cs89x0.o??? ewrk3.o?????? ns83820.o????? strip.o
3c507.o???????????? de4x5.o???? fc??????????? pcmcia???????? sundance.o
3c509.o???????????? de600.o???? fealnx.o????? pcnet32.o????? sungem.o
3c515.o???????????? de620.o???? hamachi.o???? plip.o???????? sunhme.o
3c59x.o???????????? defxx.o???? hamradio????? ppp_async.o??? tc35815.o
8139cp.o??????????? depca.o???? hp100.o?????? ppp_deflate.o? tg3.o
8139too.o?????????? dgrs.o????? hp.o????????? ppp_generic.o? tlan.o
82596.o???????????? dl2k.o????? hp-plus.o???? ppp_synctty.o? tokenring
8390.o????????????? dmfe.o????? irda????????? r8169.o??????? tulip
ac3200.o??????????? dummy.o???? lance.o?????? rcpci.o??????? tulip_old
acenic.o??????????? e100??????? lne390.o????? sb1000.o?????? tun.o
aironet4500_card.o? e1000?????? lp486e.o????? shaper.o?????? via-rhine.o
aironet4500_core.o? e2100.o???? mii.o???????? sis900.o?????? wan
aironet4500_proc.o? eepro100.o? natsemi.o???? sk98lin??????? wavelan.o
amd8111e.o????????? eepro.o???? ne2k-pci.o??? skfp?????????? wd.o
appletalk?????????? eexpress.o? ne3210.o????? slhc.o???????? winbond-840.o
arlan.o???????????? epic100.o?? ne.o????????? slip.o???????? wireless
arlan-proc.o??????? eql.o?????? netconsole.o? smc9194.o????? wireless_old
at1700.o??????????? es3210.o??? ni5010.o????? smc-ultra32.o? yellowfin.o

可以看到這個(gè)目錄列出所有Linux內(nèi)核支持的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序。其中大部分是以太網(wǎng)卡(8139、3COM、Intel)。也有一些是其他類(lèi)型設(shè)備。對(duì)于初學(xué)者應(yīng)當(dāng)盡量選擇目錄中已經(jīng)列出的網(wǎng)卡。注意以.o 后綴結(jié)束的文件就是驅(qū)動(dòng)程序。而沒(méi)有后綴的是驅(qū)動(dòng)程序目錄(紅色)。

2.檢查網(wǎng)卡是否加載:

驅(qū)動(dòng)硬件是操作系統(tǒng)最基本的功能,操作系統(tǒng)通過(guò)各種驅(qū)動(dòng)程序來(lái)駕馭硬件設(shè)備,和Windows系統(tǒng)不同Linux內(nèi)核目前采用可加載的模塊化設(shè)計(jì)(LKMs Loadable Kernel Modules),就是將最基本的核心代碼編譯在內(nèi)核中,網(wǎng)卡驅(qū)動(dòng)程序是作為內(nèi)核模塊動(dòng)態(tài)加載的??梢允褂妹睢發(fā)smod”查看加載情況:

## lsmod
Module ???????????????? Size? Used by
dm_mod???????????????? 54741? 0
button????????????????? 6481? 0
battery???????????????? 8901? 0
ac????????????????????? 4805? 0
md5???????????????????? 4033? 1
joydev???????????????? 10241? 0
uhci_hcd?????????????? 31065? 0
ehci_hcd?????????????? 30917? 0
snd_via82xx??????????? 26437? 0
snd_ac97_codec???????? 63889? 1 snd_via82xx
snd_pcm_oss??????????? 49017? 0
soundcore?????????????? 9889? 1 snd
tulip????????????????? 45025? 1
via_rhine????????????? 23113? 2
mii???????????????????? 4673? 1 via_rhine
ext3????????????????? 116809? 2
jbd??????????????????? 71257? 1 ext3

對(duì)每行而言,第一列是模塊名稱;第二列是模塊大??;第三列是調(diào)用數(shù)。調(diào)用數(shù)后面的信息對(duì)每個(gè)模塊而言都有所不同。如果 (unused) 被列在某模塊的那行中,該模塊當(dāng)前就沒(méi)在使用。如果 (autoclean) 被列在某模塊的那行中,該模塊可以被 rmmod -a 命令自動(dòng)清洗。當(dāng)這個(gè)命令被執(zhí)行后,所有自從上次被自動(dòng)清洗后未被使用的被標(biāo)記了“autoclean”的模塊都會(huì)被卸載。叢以上紅色粗體字符可以看到筆者Linux計(jì)算機(jī)中兩塊網(wǎng)卡模塊:tulip和via_rhine 已經(jīng)加載。對(duì)應(yīng)的網(wǎng)卡商業(yè)型號(hào)分別是:
tulip:Lite-On Communications Inc LNE100TX [Linksys EtherFast 10/100]
via_rhine:Via VT6102[Rhine-II] 常見(jiàn)主板集成網(wǎng)卡。

如果沒(méi)有檢測(cè)到硬件,用硬件檢測(cè)程序kuduz檢測(cè)網(wǎng)卡,它和Windows中添加新硬件差不多。kudzu程序是通過(guò)查看/usr/share/hwdata/目錄下的文件識(shí)別各種硬件設(shè)備的。如果核心支持該硬件,并且有該驅(qū)動(dòng)程序就可自動(dòng)裝載。首先說(shuō)明的是Linux下對(duì)網(wǎng)卡的支持往往是只對(duì)芯片的,所以對(duì)某些不是很著名的網(wǎng)卡,往往需要知道它的芯片型號(hào)以配置Linux.比如我的Top link網(wǎng)卡,就不存在Linux的驅(qū)動(dòng),但是因?yàn)樗荖E2000兼容,所以把它當(dāng)NE2000就可以在Linux下用了.所以當(dāng)你有一塊網(wǎng)卡不能用,在找Linux的驅(qū)動(dòng)程序之前一定搞清楚這個(gè)網(wǎng)卡用的什么芯片,跟誰(shuí)兼容,比如3c509,ne2000等。這樣的型號(hào)一般都在網(wǎng)卡上最大的一快芯片上印著,抄下來(lái)就是了。對(duì)于ISA接口的NE2000卡,先要作的一件事情,是將網(wǎng)卡設(shè)定為Jumpless模式.很多現(xiàn)在的網(wǎng)卡缺省 都是PnP模式,這在Windows下的確能減少很多麻煩,但是Linux不支持,所以Linux下必須是Jumpless模式.一般所有網(wǎng)卡都有帶的驅(qū)動(dòng)盤(pán)和DOS下可執(zhí)行的一個(gè)設(shè)定程序,用該程序?qū)⒕W(wǎng)卡設(shè)為 Jumpless。對(duì)于PCI網(wǎng)卡,可以使用命令來(lái)查看:lspci。在顯示的列表中找到“Ethernet Controller”,記下廠商和型號(hào)。然后使用modprobe嘗試加載正確的模塊,比如modprobe 3c509。如果出現(xiàn)錯(cuò)誤,說(shuō)明該模塊不存在。這時(shí)候你應(yīng)該找到正確的模塊并且重新編譯。問(wèn)題一般即可解決。
如果很不幸的,您使用的是比較罕見(jiàn)的一些網(wǎng)卡,或者是 Linux 核心支持不夠的網(wǎng)卡,以致于在安裝 Linux 時(shí),并無(wú)法檢測(cè)到網(wǎng)卡,那也不用擔(dān)心,我們可以使用較為簡(jiǎn)單的核心模塊編譯來(lái)支持這張網(wǎng)卡。下面以筆者的3Com的3CR990-TX-97 網(wǎng)卡為例(一款具有安全特性網(wǎng)卡)看看如何進(jìn)行模塊編譯。首先在其網(wǎng)站http://www.3com.com/infodeli/tools/nic/linuxdownload.htm 下載合適你使用內(nèi)核版本的相關(guān)驅(qū)動(dòng)程序,這里以2.4內(nèi)核為例。
#wegt http://www.3com.com/infodeli/tools/nic/3c990-1.0.0a.tar.gz


另外在開(kāi)始編譯核心模塊之前,因?yàn)轵?qū)動(dòng)程序需要配合核心來(lái)編譯,所以會(huì)使用到 kernel source 或者是 kernel header 的數(shù)據(jù),此外,也需要編譯器 ( compiler ) 的幫助,因此,先確定您的 Linux 系統(tǒng)當(dāng)中已經(jīng)下列軟件的存在 :kernel-source 、kernel 、gcc 、make。

#tar zxvf 3c990-1.0.0a.tar.gz
#make
此時(shí)會(huì)產(chǎn)生3c990.o 驅(qū)動(dòng)模塊。然后使用命令拷貝到相應(yīng)地方然后查看加載是否正常。
#modprobe 3c990
#cp 3c990.o? /lib/modules/2.4.20-8/kernel/drivers/net
# depmod -a
然后使用lsmod 命令檢查加載情況,如果一切正常的話。可以讓系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載該模塊:
#echo “alias eth0 3c990”>> /etc/modules.conf

3.為新網(wǎng)卡設(shè)定IP地址
在Linux 網(wǎng)絡(luò)設(shè)備在配置時(shí)被賦予別名,該別名由一個(gè)描述性的縮略詞和一個(gè)編號(hào)組成。某種類(lèi)型的第一個(gè)設(shè)備的編號(hào)為 0,其他設(shè)備依次被編號(hào)為 1、2、3,等。但是網(wǎng)卡并不是最為裸設(shè)備出現(xiàn)在/dev目錄下,而是存在內(nèi)存中。eth0, eth1是以太網(wǎng)卡接口。它們用于大多數(shù)的以太網(wǎng)卡,包括許多并行端口以太網(wǎng)卡。本文主要討論這類(lèi)網(wǎng)卡。 為L(zhǎng)inux以太網(wǎng)卡設(shè)定IP地址的方式非常靈活,你可以選擇適合你工作情況的方法:

(1)使用ip或ifconfig命令
ifconfig命令是最重要的Linux網(wǎng)絡(luò)命令,最主要的用途是設(shè)定、修改網(wǎng)卡的IP地址,修改網(wǎng)卡ip地址:
#ifconfig eth0 192.168.0.2 netmask 255.255.255.0

默認(rèn)情況下, ifconfig 顯示活動(dòng)的網(wǎng)絡(luò)設(shè)備。給這個(gè)命令添加一個(gè) -a 開(kāi)關(guān)就能看到所有設(shè)備。但是ifconfig命令設(shè)置網(wǎng)絡(luò)設(shè)備的ip地址系統(tǒng)重新啟動(dòng)后設(shè)置會(huì)自動(dòng)失效。所以它主要用于網(wǎng)卡狀態(tài)調(diào)試。假設(shè)您要建立一個(gè)臨時(shí)的網(wǎng)絡(luò)配置以供測(cè)試。您可以使用發(fā)行版本中的工具來(lái)編輯配置,但是需要注意在完成測(cè)試之后,將所有設(shè)置恢復(fù)回去。通過(guò)使用 ifconfig ,我們無(wú)需影響已保存的設(shè)置,就能夠快速地配置網(wǎng)卡。

Ip命令是iproute2軟件包里面的一個(gè)強(qiáng)大的網(wǎng)絡(luò)配置工具,它能夠替代一些傳統(tǒng)的網(wǎng)絡(luò)管理工具。例如:ifconfig、route等。 現(xiàn)在,絕大多數(shù) Linux 發(fā)行版和絕大多數(shù) UNIX都使用古老的arp, ifconfig和route命令。雖然這些工具能夠工作,但它們?cè)贚inux2.2和更高版本的內(nèi)核上顯得有一些落伍。使用iproute2前你應(yīng)該確認(rèn)已經(jīng)安裝了這個(gè)工具。這個(gè)包的名字在RedHat Linux 9.0叫作“iproute2”,也可以在:ftp://ftp.inr.ac.ru/ip-routing/ 下載源代碼安裝。
如果希望在以太網(wǎng)接口eth0上增加一個(gè)地址10.0.0.1,掩碼長(zhǎng)度為24位,標(biāo)準(zhǔn)廣播地址,標(biāo)簽為eth0:Alias:
#ip addr add 10.0.0.1/24 brd + dev eth0 label eth0:Alias

(2)使用 netconfig命令
netconfig命令可以設(shè)置網(wǎng)絡(luò)設(shè)備的ip地址,netconfig命令可以永久保存設(shè)置。
使用方法是:“netconfig ethX”。使用命令“netconfig eth0”后會(huì)在命令行下彈出一個(gè)對(duì)話框,這時(shí)即可進(jìn)行設(shè)定見(jiàn)圖2,


?
??圖2 netconfig配置界面
設(shè)定結(jié)束后用“tab”鍵選擇“OK”即可保存設(shè)置并且退出。然后使用命令:“service network restart “激活即可生效。

(3)使用neat命令
使用neat命令需要配置好X window系統(tǒng),在命令行下運(yùn)行“neat”命令后添加IP地址和其他相關(guān)參數(shù)后保存設(shè)置,從新啟動(dòng)網(wǎng)絡(luò)和網(wǎng)絡(luò)服務(wù)或計(jì)算機(jī),見(jiàn)圖-3。


?
??圖-3 圖形界面添加IP地址
另外neat命令還有一個(gè)同價(jià)命令:“redhat-config-network”,二者完全相同。Neat和redhat-config-config命令可以永久保存設(shè)置。

(4)修改TCP/IP網(wǎng)絡(luò)配置文件
除非另行指定,Red Hat Linux 系統(tǒng)中大多數(shù)配置文件都在 /etc 目錄中。網(wǎng)卡相關(guān)的TCP/IP網(wǎng)絡(luò)配置文件是:/etc/sysconfig/network-scripts/ifcfg-ethx。其中x從0開(kāi)始,第一個(gè)以太網(wǎng)配置文件即:/etc/sysconfig/network-scripts/ifcfg-eth0。使用vi編輯器修改這個(gè)文件,也可以修改網(wǎng)卡IP地址。

#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0        #設(shè)定網(wǎng)卡的名稱,要跟文件名稱對(duì)應(yīng) #
ONBOOT=yes        #是否在開(kāi)機(jī)的的時(shí)候啟動(dòng)網(wǎng)卡#
BOOTPROTO=static      #啟動(dòng)的時(shí)候的 IP 取得的協(xié)議,這里是固定的,
               如果是動(dòng)態(tài)主機(jī)的話,要改成 dhcp 才行#
IPADDR=192.168.1.2     #IP 地址#
NETMASK=255.255.255.0   #子網(wǎng)掩嗎#
NETWORK=192.168.1.0    #該網(wǎng)段的第一個(gè) IP#
BROADCAST=192.168.1.255  #最后一個(gè)同網(wǎng)段的廣播地址#
GATEWAY=192.168.1.2    #網(wǎng)關(guān)地址#
#GATEWAYDEV=eth0      

存盤(pán)后使用命令:“service network restart “激活即可生效。這個(gè)方法同樣可以永久保存設(shè)置。

(5)為網(wǎng)卡添加IPV6地址
和Windows系統(tǒng)相比Linux對(duì)Ipv6的支持更好,最早的支持Ipv6的Linux內(nèi)核是 2.2.xxx。 一般Linux基于2.4內(nèi)核的Linux發(fā)行版本都可以直接使用Ipv6,使用前要看系統(tǒng)IPv6模塊是否被加載,如果沒(méi)有的話可以使用命令手工加載,這需要超級(jí)用戶的權(quán)限。然后使用命令檢測(cè),如果顯示IPv6地址(inet6 addr:fe80::200:e8ff:fea0:2586/64)證明IPv6已經(jīng)加載。
# modprobe IPv6;#ifconfig -a

如果希望Linux系統(tǒng)啟動(dòng)時(shí)自動(dò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)卡大多是自適應(yīng)工作模式,在配置網(wǎng)卡參數(shù)時(shí)我們很少考慮它的工作模式,有時(shí)發(fā)現(xiàn)一些網(wǎng)卡模塊已經(jīng)加載,但是在某些模式工作不穩(wěn)定。如筆者使用的一塊XXX品牌的雜牌RTL-8139C芯片10/100自適應(yīng)網(wǎng)卡在100兆全雙工狀態(tài)下極其不穩(wěn)定(在Qcheck的TCP和UDP的測(cè)試過(guò)程中,數(shù)據(jù)包遺失率9.12%。)。在Linux環(huán)境下,我們可以使用系統(tǒng)自帶的工具mii-tool命令來(lái)配置網(wǎng)卡工作模式。顯示Linux服務(wù)器網(wǎng)卡支持的所有以太網(wǎng)卡類(lèi)型,使用命令:

# mii-tool -v
eth0: negotiated 100baseTx-FD, link ok
product inf vendor 00:00:00, model 0 rev 0
basic mode:?? autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising:? 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

從以上信息中可以看出,這塊網(wǎng)卡工作在100全雙工自適應(yīng)模式下,“100aseTx-FD”意為100M Full Duplex。這里可以強(qiáng)制網(wǎng)卡工作在100M半工模式下,輸入命令:
#mii-tool –F 100baseTx-HD eth0
以后恢復(fù)網(wǎng)卡的自適應(yīng)工作模式,輸入命令:

#mii-tool –r eth0

? 另外路由器、交換機(jī)、代理服務(wù)器等通信量比較大的關(guān)鍵設(shè)備上,應(yīng)該為它指定正確的工作模式,這樣可以提高通信效率。

5.DHCP客戶端網(wǎng)卡設(shè)定
????
如果希望使用DHCP是動(dòng)態(tài)主機(jī)配置協(xié)議,這個(gè)協(xié)議用于向計(jì)算機(jī)自動(dòng)提供IP地址,子網(wǎng)掩碼和路由信息。當(dāng)設(shè)備接入這個(gè)局域網(wǎng)時(shí),它們會(huì)向 DHCP 服務(wù)器請(qǐng)求一個(gè) IP 地址。然后 DHCP 服務(wù)器為每個(gè)請(qǐng)求的設(shè)備分配一個(gè)地址,直到分配完該范圍內(nèi)的所有 IP 地址為止。已經(jīng)分配的 IP 地址必須定時(shí)地延長(zhǎng)借用期。這個(gè)延期的過(guò)程稱作 leasing,確保了當(dāng)客戶機(jī)設(shè)備在正常地釋放 IP 地址之前突然從網(wǎng)絡(luò)斷開(kāi)時(shí)被分配的地址可以歸還給服務(wù)器。Linux下配置DHCP客戶端有兩種方法:圖形界面和手工配置。使用圖形界面可以使用neat命令界面見(jiàn)圖2。選中“自動(dòng)獲得IP地址設(shè)置使用DHCP”即可。
???
通常筆者更喜歡使用選擇手工配置 DHCP 客戶,需要修改 /etc/sysconfig/network 文件來(lái)啟用聯(lián)網(wǎng);并修改 /etc/sysconfig/network-scripts 目錄中每個(gè)網(wǎng)絡(luò)設(shè)備的配置文件。在該目錄中,每個(gè)設(shè)備都有一個(gè)叫做 ifcfg-ethX 的配置文件,ethX是網(wǎng)絡(luò)設(shè)備的名稱。 如eth0等。如果你想在引導(dǎo)時(shí)啟動(dòng)聯(lián)網(wǎng),NETWORKING 變量必須 被設(shè)為 yes。 除了此處之外/etc/sysconfig/network 文件應(yīng)該包含以下行:

NETWORKING=yes
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

6.VPN服務(wù)器網(wǎng)卡設(shè)置
??
VPN是由經(jīng)過(guò)相互授權(quán)的通信雙方在公網(wǎng)上建立的安全通信隧道,數(shù)據(jù)在隧道中進(jìn)行加密傳輸,用于總部與分支機(jī)構(gòu)的安全通信。虛擬專用網(wǎng)絡(luò)是一種新的網(wǎng)絡(luò)技術(shù),用于跨過(guò) Internet 或局域網(wǎng)而安全地訪問(wèn)企業(yè)網(wǎng)。Redhat Linux下的VPN技術(shù)主要有CIPE? (Crypto IP Encapsulation:加密 IP 封裝)是主要為 Linux 而開(kāi)發(fā)的 VPN 實(shí)現(xiàn)。CIPE 使用加密的 IP 分組,這些分組被封裝或“包圍”在數(shù)據(jù)報(bào)(UDP)分組中。CIPE 分組被給以目標(biāo)頭信息,并使用默認(rèn)的 CIPE 加密機(jī)制來(lái)加密。CIPE 使用標(biāo)準(zhǔn)的 Blowfish 或 IDEA 加密算法來(lái)支持加密。根據(jù)你所在國(guó)家的加密出口法規(guī)而定,你可以使用默認(rèn)方法(Blowfish)來(lái)加密你的專用網(wǎng)上的所有 CIPE 交通。CIPE 配置可以通過(guò)文本文件、圖形化的網(wǎng)絡(luò)管理工具來(lái)完成。這里以通過(guò)文本文件為例介紹。首先在服務(wù)器和客戶端安裝CIPE軟件。官方網(wǎng)站:http://sites.inka.de/~ 運(yùn)行CIPE VPN服務(wù)主要需要建立兩個(gè)文件:/etc/sysconfig/network-scripts/ifcfg-cipcbX和/etc/cipe/options.cipcbX。X 是從0開(kāi)始的遞增數(shù)字。

(1)VPN服務(wù)器端網(wǎng)卡設(shè)置
??
首先手工建立/etc/sysconfig/network-scripts/ifcfg-cipcb0文件,它是VPN服務(wù)器的虛擬網(wǎng)絡(luò)接口,主要內(nèi)容:
USERCTL=yes? #是否允許所有用戶修改配置#
TYPE=CIPE??? #接口類(lèi)型#
DEVICE=cipcb0? #給 CIPE 設(shè)備命名#
ONBOOT=yes???? #系統(tǒng)啟動(dòng)時(shí)激活設(shè)備#
IPADDR=10.0.0.1 #本地虛擬地址#
MYPORT=7777???? #通訊端口#
PTPADDR=10.0.0.2 #遠(yuǎn)程虛擬地址#
PEER=0.0.0.0??? #本地地址,0.0.0.0 表示接受連續(xù)監(jiān)聽(tīng)#
ME=192.168.1.9? #對(duì)端的 CIPE UDP 地址#
TUNNELDEV=eth0? #隧道穿越設(shè)備#
然后建立/etc/cipe/options.cipcb0文件,這個(gè)文件存放密匙,主要內(nèi)容:
cttl 64 #設(shè)置載體生存時(shí)間值(TTL);推薦的值是64#
maxerr –1? #服務(wù)器錯(cuò)誤掛起時(shí)間#
key 54240266869983357939377846801171299051 #128位密匙#

(2)客戶端網(wǎng)卡的配置
由于CIPE要求服務(wù)器和客戶機(jī)的密匙完全相同所以,首先將密匙文件:options.cipcb從服務(wù)器復(fù)制到客戶機(jī)主機(jī)的/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???????????? #接口類(lèi)型#
DEVICE=cipcb0??????? #給 CIPE 設(shè)備命名#
ONBOOT=yes???????????? #系統(tǒng)啟動(dòng)時(shí)激活設(shè)備#
IPADDR=10.0.0.2????? #本地虛擬地址#
MYPORT=7777??????????? #通訊端口#
PTPADDR=10.0.0.1???????? #遠(yuǎn)程虛擬地址#
PEER=192.168.1.29:7777???? #VPN服務(wù)器真實(shí)IP地址和端口號(hào)#
ME=192.168.1.9??????????? #對(duì)端的 CIPE UDP 地址#
TUNNELDEV=eth0??? #隧道穿越設(shè)備#
MTU=“”?????????? #使用缺省設(shè)置#
NETMASK=“”???????? #使用缺省設(shè)置#
NETWORK=“”???????? #使用缺省設(shè)置#
BROADCAST=“”???? #使用缺省設(shè)置#
(3)使用ifup命令激活VPN網(wǎng)卡
# ifup cipcb0
這時(shí)VPN通道已經(jīng)開(kāi)啟,可以使用tcpdump等工具檢查。

7.無(wú)線網(wǎng)卡在Linux下安裝
?
隨著Linux網(wǎng)絡(luò)技術(shù)的快速增長(zhǎng),硬件廠商大大加速對(duì)硬件產(chǎn)品對(duì)Linux的技術(shù)支持。使得Linux 支持的無(wú)線網(wǎng)卡的數(shù)量在過(guò)去的一兩年里增長(zhǎng)顯著。一旦在計(jì)算機(jī)中安裝好了無(wú)線局域網(wǎng)卡,首先要做的就是安裝驅(qū)動(dòng)來(lái)讓網(wǎng)卡工作。無(wú)線網(wǎng)卡實(shí)現(xiàn)了IEEE 802.11系列協(xié)議中的一種或多種的物理層(PHY)和媒質(zhì)訪問(wèn)控制子層(MAC)的功能,而驅(qū)動(dòng)是用來(lái)控制無(wú)線網(wǎng)卡,向上提供與以太網(wǎng)一致的接口并提供其他一些無(wú)線局域網(wǎng)特定的管理接口的。對(duì)于不同廠商的不同網(wǎng)卡,還沒(méi)有一種統(tǒng)一的方法可以驅(qū)動(dòng)所有的網(wǎng)卡。首先必須確保內(nèi)核配置中啟動(dòng)了無(wú)線局域網(wǎng)。如果沒(méi)有無(wú)線局域網(wǎng)支持,你應(yīng)該重新配置、編譯內(nèi)核來(lái)啟動(dòng)"Wireless LAN (non-hamradio) Drivers and Wireless Extensions"。??

目前,常見(jiàn)的無(wú)線網(wǎng)卡大多為PCMCIA、PCI和USB三種類(lèi)型,筆者使用最多的是PCMCIA(Personal Computer Memory Card International Association)接口的無(wú)線網(wǎng)卡。 對(duì)于有些設(shè)備,配置無(wú)線連接非常簡(jiǎn)單:只要在您使用的 Linux 發(fā)行版本,插入無(wú)線網(wǎng)卡,在設(shè)置過(guò)程中單擊鼠標(biāo),并輸入正確的聯(lián)網(wǎng)參數(shù)就可以了。通?;诶视?Lucent)芯片組的無(wú)線網(wǎng)卡的安裝比較簡(jiǎn)單,筆者使用的Cisco Aironet Wireless 802.11b 在Mandrake 8.2 Linu安裝程序可以順利地找到設(shè)備驅(qū)動(dòng), 使用基于intersil PRISM2-based cards 芯片組的PCMCIA的無(wú)線網(wǎng)卡安裝就比較復(fù)雜了。需要一個(gè)第三方工具安裝。
目前經(jīng)過(guò)www.Linux.org 認(rèn)證的PCMCIA網(wǎng)卡有兩大類(lèi)。使用基于朗訊(Lucent)芯片組的PCIMCIA無(wú)線網(wǎng)卡和使用基于intersil PRISM2-based cards 芯片組的PCMCIA的無(wú)線網(wǎng)卡見(jiàn)表-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

總的來(lái)說(shuō)Linux下無(wú)線網(wǎng)卡的安裝順序一般是:
??采取全部安裝方式安裝Linux發(fā)行版本,重新編譯內(nèi)核,并除去任何對(duì)內(nèi)核提供的 PCMCIA 驅(qū)動(dòng)程序的部分。
??了解網(wǎng)卡的規(guī)格并且下載并編譯相應(yīng)的 PCMCIA-CS 庫(kù)和驅(qū)動(dòng)程序
??下載、編譯并安裝無(wú)線網(wǎng)卡必需的所有驅(qū)動(dòng)程序。這一步驟對(duì)于有些網(wǎng)卡是可選的,而對(duì)于有些網(wǎng)卡是必須執(zhí)行的。做與不做很大程度上取決于您所選的無(wú)線網(wǎng)卡。
??修改和無(wú)線網(wǎng)卡的相關(guān)設(shè)定。從新啟動(dòng)Linux系統(tǒng)和網(wǎng)絡(luò)。
?? 設(shè)置無(wú)線網(wǎng)絡(luò)相關(guān)步驟如下:
??? (1)用“iwconfig”命令來(lái)顯示無(wú)線網(wǎng)卡(eth0、eth1)的信息。在以下的步驟中,用ethX表示無(wú)線網(wǎng)卡的名稱。
??? (2)設(shè)置無(wú)線網(wǎng)卡的操作模式為Managed:
#iwconfig ethX mode Managed
??? (3)如果采用了WEP加密,需要設(shè)置WEP密碼:
#iwconfig ethX key password XXXXXX
??? 對(duì)應(yīng)40位和128位加密,password分別為6位和10位的十六進(jìn)制數(shù)字。
??? (4)設(shè)置SSID,其中ESSID為無(wú)線接入(Access Point)的SSID。
???
# iwconfig ethX essid ESSID

??? (5)創(chuàng)建/etc/sysconfig/network/ifcfg-ethX配置文件,使得機(jī)器每次啟動(dòng)時(shí),無(wú)線網(wǎng)卡都會(huì)自動(dòng)獲得IP地址。該文件內(nèi)容如下:

BOOTPROTO=‘dhcp’
MTU=‘’
REMOTE_IPADDR=‘’
STARTMODE=‘onboot’
UNIQUE=‘’

(6)啟動(dòng)無(wú)線網(wǎng)卡:
???
#ifconfig ethX up

總結(jié):以上介紹Linux服務(wù)器上各種類(lèi)型的網(wǎng)卡驅(qū)動(dòng)安裝以及一些故障排除技巧。


非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

( 發(fā)表人:admin )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?