Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> linux網絡硬件的配置

linux網絡硬件的配置

日期:2017/2/7 9:20:05      編輯:Linux教程

   電腦店訊 迄今為止,關於網絡接口和常見的T C P / I P問題,我們已談了不少,但尚未真正接觸到內核中的“聯網程序”訪問硬件時所發生的事。鑒於此,還必須為大家講講接口和驅動程序這兩個概念。

首當其沖的是硬件本身。比如以太網卡:它是一片環氧基樹脂卡,上面布滿了微晶片,這些微晶片上還有些編號,這塊卡插在計算機內的一個插槽內。我們通常稱之為設備(d e v i c e)。        如果希望能夠使用以太網卡,你必須在自己的內核中准備一些特殊的功能,使之能識別這種設備特有的訪問方式。這就是所謂的設備驅動程序。例如, L i n u x中就有幾個以太網卡驅動程序,這幾個程序的功能都差不多。其中,最有名的是B e c k e r串行驅動程序(得名於其作者Donald Becker)。另一個是D - L i n k驅動程序,該程序對附著在一個並行端口上的D - L i n k封裝 適配器進行控制。在提到驅動程序“控制”設備時,其含義究竟是什麼?首先回頭看看上面提到的以太網卡。驅動程序必須能夠與卡上的外設進行通信:它必須向卡發送命令和數據,而卡也應該將驅動程序發來的所有數據統統投遞出去。P C中,這種通信常常發生在一個I / O內存區內,該內存區對應板載寄存器。內核發送給卡的所有命令和數據都必須通過這些寄存器。I / O內存區一般被描述為起點或基礎地址。以太網卡的典型基礎地址是0 x 3 0 0或0 x 3 6 0。         通常情況下,不要去在意基礎地址之類的硬件問題,因為內核會在啟動時,對設備位置進行偵測。這就是所謂的“ a u t o p r o b i n g”(自動偵測),意思是如果已安裝特定的以太網卡,內核就會對若干個內存位置進行讀取,並把它所讀取的數據和它看到的數據進行比較。但是,也有內核不能自動偵測的以太網卡;比如,一些便宜仿造標准網卡的以太網卡。另外,內核在啟動時,只能試著偵測一個以太網設備的位置。如果你使用的以太網卡不止一個,就必須清楚地將這些網卡的情況告訴內核。        另一個必須告訴內核的參數是中斷請求通道( interrupt request channel)。有的硬件組件在特別需要重視時,通常可能中斷內核。比如,數據抵達或出現特殊的情況。在P C中,1 5個中斷通道(編號0、1、3一直到1 5)中,其中之一可能會發生中斷。分配給硬件組件的中斷編號叫作“中斷請求編號”或I R Q(I R Q 2和9是一樣的,因為P C有兩個層疊式中斷處理器,每個處理器都有8個I R Q;輔助處理器連接的是主處理器的IRQ 2 )。內核通過一個所謂的接口訪問設備。接口提供了適用於所有硬件的一個抽象功能集,比如收發數據報。        接口的識別是通過接口名進行的。接口名是在內核內部定義的,而不是/ d e v目錄下的設備文件。常見的接口名用於以太網接口的e t h 0、e t h 1等等。為設備分配接口常常和設備的配置順序有關;比如,第一塊以太網卡是e t h 0,下一個將是e t h 1,以此類推。唯一例外的是S L I P接口,在啟動時,顯示它所偵測的設備和它所安裝的接口。
3.1 內核配置        在運行一個系統時,應該對內核的構建非常熟練。這方面的基礎知識可參見馬特·維爾希所著的《安裝和入門指南》(這本指南也包括在Coriolis Group的《L i n u x系統編程白皮書》內)。本小節,我們只為大家討論一些連網所涉及的配置選項。在運行make config時,首先會要求你回答幾個常見的配置問題,比如,是否希望內核數學模擬等等。其中之一是問你是否需要T C P / I P支持。必須回答“ Y”(是),才能獲得內核連網能力。
3.1.1 內核選項1.0及以上版本         結束常見配置詢問之後,配置會繼續問一些不同特性方面的問題,比如S C S I驅動程序等。接下來的問題仍然和連網支持有關。由於L i n u x的開放性,要想完整地羅列出所有的配置選項幾乎是不可能的。不過, 1 . 0到1 . 1之間的大多數內核選項版本都提供了一份常見選項清單(加引號部分是批注):        如果你想使用“任何”類型的連網設備(不管它是以太網,是S L I P還是P P P)時,不管擴弧內顯示什麼樣的宏名,都必須回答“ Y”(是)。如果回答“Y”(是),就可以自動啟用對以太網設備的支持。對其他類型網絡驅動程序的支持則必須單獨啟用。 這些問題和L i n u x支持的不同鏈路層協議有關。S L I P允許你通過串行線路傳輸I P數據報。壓縮報頭( compressed header)選項提供了對C S L I P的支持,這種壓縮技術將T C P / I P報頭壓縮為三個字節。注意,這個內核選項沒有自動打開C S L I P;它只是為C S L I P提供了必要的內核功能。        P P P是通過串行線路發送網絡通信的另一種協議。它比S L I P更為靈活,對I P也沒有什麼限制,同時還支持I P X。P L I P為通過並行連接發送I P數據報提供了一種解決辦法。主要用於與運行D O S的計算機進行通信。 接下來的問題則和不同廠家的以太網卡有關。由於新的驅動程序層出不窮,這方面的問題肯定也是有增無減。如果想建立一個適用於不同類型機器的內核,可以采用多個驅動程序。         最後,是文件系統,配置腳本將問你是否想用N F S(連網文件系統)。N F S會令你將文件系統導向若干台主機,使其類似於附在主機上的普通硬盤文件。
3.1.2 內核選項1.1.14及以上版本        從1 . 1 . 1 4開始,由於增加了對I P X的A l p h a支持(處於測試階段),配置過程有了少許變化。常見選項這部分將問你是否需要常規連網支持。隨後,是涉及到各種連網選項的兩個問題。要想采用T C P / I P連網,必須回答“Y”(是)。但回答“N”(否)的話,也能編譯具有I P X支持的內核。        如果你的系統是兩個以太網或一個以太網和一個S L I P之間的網關,就必須啟用這個選項。它是動態分配的;也就是說,只要一建立S L I P鏈接,就會為串行端口分配一個接口。內核將盡管通過默認設置啟用它沒什麼壞處,但你肯定想取消這一選項,把一台主機配置為一個所謂的防火牆。防火牆即是連接兩個或兩個以上網絡,但不會在這些網絡間路由通信的主機。它們常用於對來自公司網絡的用戶提供因特網訪問,保護公司內部網絡不受來自因特網的攻擊和破壞。用戶將得到許可登錄到防火牆,使用因特網服務,但公司的機器不會因此而受到外界的攻擊和破壞。因為任何接入的連接是不能通過防火牆的。這個選項和P C / T C P的某些版本不兼容,後者是針對基於D O S的計算機的一種商業T C P / I P實施方案。如果啟用了這個選項,雖然仍然可以和普通計算機進行通信,但性能肯定會大受影響。 這個選項的作用是啟用了R A R P(逆向地址解析)。無盤客戶機和X終端在啟動時,利用R A R P來查詢自己的I P地址。只有計劃充當這類客戶機時,才有啟用R A R P的必要。網絡公用程序的最新封裝( n e t - 0 . 3 2 d)中,包含了一個小型的公用程序,其名為r a r p,它允許在R A R P緩存內增添系統。        在通過T C P鏈路發送數據時,內核必須在把數據交給I P協議之前,將它分為若干個包。對通過本地網絡(比如以太網)就能抵達的主機來說,可采用較大的數據包(相對於必須通過長距離鏈路才能抵達的主機而言)。這樣可避免小型數據包通過鏈路之後產生的碎片。如果不啟用S N A R L,內核將事實上只有一個接口的網絡假定為本地網絡。看看Groucho Marx大學的網絡B,整個網絡都是本地的,但多數主機只連接了一個或兩個子網。如果啟用S N A R L,內核就會假定“所有”的子網都是本地的,在與校園內的其他所有主機通信時,都會發送大型數據包。        如果想對發往某些特殊主機(比如這種情況:數據將通過S L I P鏈路)的數據采用小型數據包的格式,利用路由的m t u選項即可。對避免發送特別小的I P包(也稱作t i n y g r a m s)來說, N e g l e算法是頗有啟發性的。t i n y g r a m s(微型豆)通常由一些交互性的聯網工具創建,這些工具只傳輸一個單獨的鍵擊,比如t e l n e t和r s h。在諸如S L I P之類的低帶寬鏈路上,微型豆特別浪費帶寬。某些情況下,N e g l e算法通過簡單限制T C P數據傳輸的方式,試著避開這些微型豆。如果你碰上包丟失這一嚴重問題時,取消這一算法即可。從1 . 1 . 1 6版本的內核開始, L i n u x對另一種驅動程序類型提供了支持,它就是偽驅動程序(dummy driver)。下面的問題將在設備驅動程序部分的開始處出現。偽驅動程序的作用不大,但對單機或S L I P主機來說,它的用處就多了。它基本上是一個經過改頭換面的回送接口( l o o p b a c k)。出現這類接口的原因之一是在采用S L I P,但沒有以太網的主機時,人們希望有一個接口能一直保存自己的I P地址。
3.2 網絡設備指南        內核針對不同類型的配置提供了大量的硬件設備驅動程序。本小節將簡要介紹一些常見的驅動程序,以及用於這些驅動程序的接口名。 L i n u x中,有許多標准接口名(見下文)。大多數驅動程序支持的接口不止一個,所以這種情況下,就應該采用接口編號,比如e t h 0、e t h 1等等。 ■ lo 本地回送接口。和兩個網絡應用程序一起,供測試之用。它的運行類似於一個封閉式回路,任何寫入這個接口的數據報都將立即返回本地主機的網絡層。內核中始終都有一個回送接口。 ■ ethn n-th以太網接口。這是大多數以太網卡采用的一般性接口名。 ■ dln 此類接口對D-Link DE-600包適配器(另一種以太網設備)進行訪問。在衍生於並行端口的D E - 6 0 0中,它是比較特殊的一種。 ■ sln n-th SLIP接口。S L I P接口按照分配順序,依次和串行線路對應起來。比如說,為S L I P配置的第一條串行線路就是s l 0,第二條就是s l 1,以此類推。內核能支持的S L I P接口多達四個。 ■ pppn n-th PPP接口。和S L I P接口一樣,P P P接口在串行線路轉換為P P P模式之後,立即就和它對應起來。其時,內核能支持的接口多達四個。 ■ plipn n-th PLIP接口。P L I P在並行線路上傳遞I P數據報。最多能支持三個P L I P接口。這些接口是在系統啟動時,由P L I P驅動程序分配的,它們和並行端口一一對應。對於將來可能增加的其他接口,比如I S D N和A X . 2 5,還可能引入其他接口名。用於I P X(N o v e l l連網協議)和AX.25 (供火腿無線電愛好者使用)的驅動程序尚處於開發階段,但開始進入A l p h a測試階段了。隨後的幾個小節中,我們將就上面提到的驅動程序展開討論。
3.3 以太網安裝         目前的網絡程序對不同類型的以太網卡提供了廣泛的支持。大多數驅動程序都是D o n a l dB e c k e r(b e c k e r @ c e s d i s . g s f c . n a s a . g o v)編寫的,他為基於國家半導體8 3 9 0芯片的網卡編寫了一系列驅動程序;即頗有名氣的B e c k e r驅動程序系列。另外,還有兩個產品是面向D - L i n k的,其中的D - L i n k包適配器允許通過一個並行端口,訪問以太網設備。針對這一用法的驅動程序是Bjørn Ekwall ( b j O r n @ b l o x . s e)編寫的。D E P C A驅動程序則是David C.Davies˘˘(d a v i e s @ w a n t o n . l k g . d e c . c o m)編寫的。
3.3.1 以太網接纜         如果你是生平第一次安裝以太網卡,就有必要先了解一下布線方面的知識。以太網對布線是相當挑剔的。線纜的兩段必須各有一個5 0歐姆的電阻器,而且不能有任何分支(比方說,三條線纜組成一個星型連接)。如果利用一條帶有T型B N C連接頭的細同軸線纜,就應該把這些連接頭直接擰在網卡的連接器上,而不是插入一段線纜。如果連接的是粗纜,就必須通過一個收發器(有時也稱作以太網附單元)附上你的主機。可直接將收發器插入網卡上的A U I端口,但也可采用一條屏蔽雙絞線。
3.3.2 已獲支持的網卡        下面將為大家列舉一些廣為人知的、已獲L i n u x支持的網卡。其完整列表在H O W TO裡面,其數目大約是這裡列出的三倍之多。但是,即使你在這裡的列表內看到了自己使用的網卡型號,但還是建議大家查看H O W TO;H O W TO中列舉的內容更為翔實、更為重要。需要注意的是,有些基於D M A的以太網卡使用的D M A通道和Adapter 1542 SCSI控制器默認狀態下使用的通道一樣。除非你親自將其中之一移入另一個D M A通道,否則的話,以太網卡就會把包數據寫入你的硬盤專區內。
■ 3 C o m公司的E t h e r L i n k—獲得支持的有3 c 5 0 3和3 c 5 0 3 / 1 6。3 c 5 0 7和3 c 5 0 9也如此。雖然L i n u x也支持3 c 5 0 1,但其速率太慢,不建議購買。 ■ N o v e l l公司的E a g l e—獲得支持的有N E 1 0 0 0和N E 2 0 0 0及其大量的克隆產品。N E 1 5 0 0和N E 2 1 0 0已獲得支持。 ■ Western Digital/SMC—獲得支持的有W D 8 0 0 3和W D 8 0 1 3(SMC Elite和SMC Elite P l u s)。另外,L i n u x還新增了對SMC Elite 16 Ultra的支持。 ■ Hewlett Packard—獲得支持的有HP 27252和H P J 2 7 2 4 7 B和H P J 2 4 0 5 A。另外還有D - L i n k D E - 6 0 0包適配器D E - 1 0 0、D E - 2 0 0和D E - 2 2 0 - T。除此以外,還有一個用於D E - 6 5 0 - T(一種P C M C I A卡)的補丁工具。 ■ D E C—獲得支持的有DE200(32k/64k) DE2O2、D E 1 0 0和DEPCA rev E。 ■ Allied Te l i e s i s—已獲L i n u x支持的有AT 1 5 0 0和AT 1 7 0 0。 要在L i n u x下使用上面列舉的網卡,必須采用以上產品的主要分銷商提供的一個預編譯內核。這些產品一般含有內置驅動程序。但是,從長遠的角度來看,最好用你自己的內核,編譯真正能滿足自己需要的驅動程序。
3.3.3 以太網自動偵測         系統啟動時,以太網程序將試著找到網卡的位置,並判斷它的類型。自動偵測代碼存在兩大局限。其一是,不能對所有的網卡進行准備識別。這不僅表現在一些便宜的仿造品上,還表現在W D 8 0 x 3網卡上。其二是內核不能同時偵測多塊網卡。因為它會假定你打算控制網卡和接口的分配問題。         如果你正在使用多塊網卡,或自動偵測不能偵測你的網卡時,必須顯式告訴內核該網卡的基礎地址和設備名。 N e t - 3中,可通過兩個不同的方案來完成上述任務。其一是改變或增加d r i v e r s / n e t / S p a c e . c文件的信息,該文件位於包含所有驅動程序信息的內核源代碼內。不過,這一方案的前提是你對連網代碼相當熟悉。第二種方案好的多,即在系統啟動時,為內核提供驅動程序信息。如果用l i l o來啟動系統,通過l i l o . c o n f內的a p p e n d(添加)選項,指定一些參數之後,便可將這些參數傳給內核。要將一個以太網設備的信息通知給內核,傳遞下面的參數即可: ether=irq.base addr. p a r a m 1 . p a r a m 2 . n a m e         前四個參數是數字化的,最後一個參數則是設備名。所有數字化的值都是可選的;如果都被省略或都設為零,內核就會試著通過偵測參數值的方式,找到這個值,或使用默認值。第一個參數設置的是分配給這個設備的I R Q。默認情況下,內核將試著自動偵測這個設備的I R Q通道。3 c 5 0 3驅動程序有一個非常特殊的特點,它從列出的5、9、3、4中選出一個I R Q,並把網卡配置成使用這一行參數。b a s e a d d r參數給出了網卡使用的I / O基礎地址;零值表示內核將對上面列出的地址進行偵測。至於其余兩個參數,不同的驅動程序采用的方式是不一樣的。對共享內存的網卡來說,比如W D 8 0 X 3,它們指定了共享內存的起始點和終止點。其他網卡常用p a r a m 1來設置即將顯示的調試信息級別。其值如果在1到7之間,則表示冗余級不斷上升,而如果是8,就會把所有冗余都關掉; 0表示默認設置。3 c 5 0 3驅動程序利用p a r a m 2選定內部收發器(默認設置)或外部收發器(如果該值為1的話)。前者采用網卡的B N C連接器,後者采用它自己的A U I端口。
       如果有兩張以太網卡,可以自動偵測一張,將第二張卡的參數隨l i l o一起傳遞出去。但是,必須保證驅動程序不會意外地先找到第二張卡,不然另一張卡根本沒有注冊的機會(也就是說根本不認你有兩張網卡)。這是通過傳遞l i l o,一個保留選項來完成的,它顯式告訴內核避免偵測第二張卡占用的I / O空間。 例如,要在作為e t h 1的0 x 3 0 0安裝第二張以太網卡,需要向內核傳遞下列參數: reserve=0x300,32 ether=0,0x300,eth1 r e s e r v e(保留)選項可保證內核在偵測某一網卡時,驅動程序不會去訪問該網卡占用的I / O空間。另外,還可以用內核參數來改寫e t h 0的自動偵測: reserve=0x340,32 ether=0,0x340,eth0 要關掉自動偵測,可將b a s e a d d r參數指定為- 1: e t h e r = 0 , - 1,e t h 0
3.4 PLIP驅動程序         P L I P代表並行線路I P,如果只需連接兩台機器的話,這倒是最經濟的連網方式。只須一個並行端口和一條特殊的線纜,便可獲得1 0 K b p s到2 0 K b p s的傳輸速率。P L I P起初是C r y n w r公司開發的。其設計思路相當高明(如果你願意,也可把它稱為h a c k i s h):長期以來,個人電腦上采用的並行端口始終是單向的打印機端口,也就是說,要把數據從個人電腦傳到某個外設,只能用8條數據線路,除此以外,沒有別的辦法。P L I P有效地解決了這一困擾,它將並行端口的5條狀態線路用作輸入,並限定它們只能將所有數據當作半位元組來傳輸。這一操作模式就是所謂的零P L I P模式。如今,這些單向並行端口很少有人用。因此,就有了P L I P擴展的產生,其名為模式1,它使用的是完整的8位接口。        目前, L i n u x只提供了對模式0的支持。和早期的P L I P代碼不一樣,現在它正試著與C r y n w r的P L I P實施和NCSA Te l n e t中的P L I P驅動程序兼容(NCSA Te l n e t是一個D O S版本的常見程序,它在以太網或P L I P線路上運行T C P / I P,而且還支持Te l n e t和F T P)。要想利用P L I P連接兩台機器,需要一種特殊的線纜,比如Null Printer和Turbo Laplink線纜。但是,自己動手做一條這樣的線纜並不費勁。         參與P L I P驅動程序設計的人數不勝數。目前,它的維護主要由Niibe Yu t a k a負責。如果把它編入內核,它就會為每個可能的打印機端口設置一個網絡接口, p l i p 0對應並行端口l p 0,p l i p 1對應l p 1,以此類推。 如果采用別的方式配置自己的打印機端口,必須對內核源代碼的d r i v e r s / n e t / S p a c e . c內的這些值進行修改,並建立一個新的內核。但是,這並不意味著你不能像往常那樣使用這些並行端口。只有為其配置相應的接口,P L I P驅動程序才能對這些端口進行訪問。   3.5 SLIP和PPP驅動程序         S L I P和P P P廣泛用於在串行鏈路上發送I P包。大量的機構為接入因特網的機器提供了撥號S L I P和P P P訪問。因此,也為私人之間的I P連接提供了可能(雖然有時可能得不償失)。要想運行S L I P或P P P,不必更換硬件設備;任何串行端口都可以用。由於串行端口的配置不只是針對T C P / I P連網的。 
Copyright © Windows教程網 All Rights Reserved