1. 程式人生 > >路由器基礎知識詳解

路由器基礎知識詳解

第一章  網路互聯  

        網路的根本目的非常簡單:方便人們交換所獲得的資訊。但是網路的應用需求非常複雜:有的使用者希望高頻寬,但並不要求很長的傳輸距離;有的使用者要求很長的距離,但對頻寬要求很低;有的對網路的可靠性要求較高,而另外一些則要求較低,等等。這些都導致了網路的多樣化,現在比較常見的區域網有乙太網、令牌環和FDDI,廣域網有DDN、X.25、幀中繼、ATM等,這些網路分別從不同方面滿足使用者需求。這些網路的物理介質和協議都不相同,彼此之間不能直接相互通訊。將它們相互連線,使不同網路上的使用者之間可以交換資訊的技術就稱為網路互聯技術。  實現網路互聯的技術有兩種:協議轉換和隧道技術。 TCP/IP 和Novell的IPX是兩種常見的協議轉換技術。 Novell的IPX曾經紅火一時,但現在網路互聯中佔統治地位的是TCP/IP,風靡世界的nternet就是利用TCP/IP作為互聯協議的例項。 路由器就是一種利用協議轉換技術將異種網進行互聯的裝置。而現在非常時髦的VPN(Virtual Private Network,虛擬私有網)則是隧道技術的代表。

 
第二章  路由器的基本結構和工作原理  

       路由器實質上是一種將網路進行互聯的專用計算機,路由器在TCP/IP中又稱為IP閘道器。本章擬以TCP/IP技術為例介紹路由器。大家都知道OSI的七層模型,如圖


                                                                                   TCP/IP層次模型

        路由器的軟體結構就是以TCP/IP協議棧為核心的,下圖是一個簡單的路由器軟體結構。

 

                                              路由器軟體結構

       路由器的協議轉換髮生在IP層。如下圖所示,路由器試圖互聯區域網和Internet。 區域網是乙太網,執行IEEE802.2 和IEEE802.3。路由器和接入伺服器之間為專線,而鏈路層協議為PPP(Point to Point Protocol,點對點協議)。乙太網上的主機以及Internet上的接入伺服器的網路層協議都是IP。主機將IP包封裝在乙太網幀中發向路由器;路由器的乙太網口收到主機發來的乙太網幀後處理幀頭並上交路由器的IP層;IP檢視報文頭後將IP包交給廣域網口的PPP;PPP將IP包封裝在PPP幀中並通過專線發往接入伺服器。上述互聯原理具有普遍性:某種網路裝置要在第n層上互聯異種網N1和N2,那麼N1和N2在第n層及以上的協議(若有)必須相同。這實際上也是N1和N2能夠互聯的充要條件。  

     問題是主機如何知道把要去Internet的報文交給正確的路由器(假設乙太網上有多臺主/路由器),而路由器又是如何知道將主機報文發給哪個接入伺服器(假設路由器有多個廣域網口,且每個廣域網口都和一個接入伺服器相連)的呢?答案是依靠定址和路由機制。


                                                                                           路由器的工作原理

         IP地址被用來標識一臺工作在IP層的網路裝置。在相互聯結的網路中IP地址應該是唯一的,即一個IP地址不能同時被多個網路裝置使用。但是TCP/IP允許一臺網路裝置佔用多個IP地址,這種裝置稱為“多穴主機”。路由器就是一種多穴主機,它的每個埠都有一個IP地址,甚至於一個埠可以有多個IP地址。IP地址長度為四個位元組。如下圖所示,TCP/IP將IP地址劃為A、B、C三個基本類(實際上還有D類和E類,這兩類很少用到):


      如圖所示IP地址分為網路部分和主機部分,分別相當於電話號碼中的局號和使用者線路號。 我們平時使用點分十進位制的形式來表示IP地址,如我的IP地址是129.102.1.56,129.102是指北研所區域網,是個B類網,而1.56則是我的主機號。RFC不推薦把零作為IP地址的某個位元組,如129.102.1.0。  

      TCP/IP還允許使用掩碼來將IP地址非標準地(意指與三種基本類不同)劃分為網路部分和主機部分。如果用二進位制表示掩碼,則IP地址中與掩碼中的“1”相對應的位元屬於網路部分,與“0”相對應的部分屬於主機部分。掩碼的習慣表示法也是點分十進位制。若使用基本劃分方法,則A類網的掩碼是255.0.0.0,B類網的掩碼是255.255.0.0,C類網的掩碼是255.255.255.0。仍然以129.102.1.56(10000001.1100110. 00000001.00111000)為例,如果不使用掩碼(實際是使用基本掩碼255.255.0.0),則其網路部分為129.102,主機部分是1.56。如果使用掩碼255.252.0.0(11111111.11111100.00000000.00000000),則其網路部分為129.100,主機部分為2.1.56。掩碼中的“1”可以不是連續的,但是既沒有必要又費勁,RFC也不推薦使用。  

     IP地址屬於高層地址,物理層只能依靠實體地址進行通訊。資料傳送者怎樣通過接收者的IP地址找到所對應的實體地址呢?如果傳送者與接收者在同一個物理網上,則可以通過地址解析協議(ARP——Address Resolution Protocol)或手動配置來確定接收者的實體地址。  

     ARP用於共享式網路,如乙太網。其工作方法如下:IP把要傳送的報文交給乙太網鏈路層,同時要告訴鏈路將報文轉發給哪個IP地址(記做A);鏈路用乙太網廣播幀的形式向本網詢問誰是A;A收到ARP請求後回答自己的實體地址(記作P);傳送者收到ARP響應後將IP報文發給P。裝置可以使用快取,只有在快取中查不到的才做ARP請求,收到回答後將學習到的物理插入快取。這樣可以提高ARP的效率。為適應網路的變化快取要有時限,超時後快取失效。  

     手動配置方法主要用於不能執行ARP的非共享式網路。例如2501上需要配置Dialer map將IP地址與電話號碼相對應。其中的電話號碼就相當於電話網中的實體地址。其他,如X.25網、幀中繼網等都需要手動將IP地址與實體地址相匹配。  

     如果傳送者與接收者不在一個物理網上,則需要路由。 

     一條路由主要包括目的地址和下一跳兩部分。目的(記做D)可以是一臺主機,也可以某個網路,還可以是某個網路的一個子集。下一跳(記做N)是直譯,英文稱為“next-hop”,理解成“下一個驛站”可能更形象。正個路由資訊所表示的意思就是要到達D,先要去N。比如“經北京去往美國”就是一條路由。路由的目的是一個複合成員,由一個IP地址和一個掩碼組成。目的掩碼為全“1”(255.255.255.255)的路由俗稱主機路由,它的目的地是一臺主機。如果目的掩碼不是全“1”,則該路由是要去往某個網段(子網)。根據下一跳的性質可以將路由分為直接路由和間接路由兩類。如果到達目的需要經過路由器轉發,即下一跳是一臺路由器,則該路由稱為間接路由,否則稱為直接路由。理解直接路由器有點困難,舉個例子:路由器的乙太網口接在區域網上,路由器啟動後會有一條目的地為該乙太網的路由,這條路由是路由器自動產生的,不需要手動配置或執行路由協議來獲取。這條路由就是直接路由。一個更形象的例子就是:我們在北京,要去美國,而北京有直飛美國的飛機,不需要中轉。下圖是直接路由和間接路由的對比。 

                                               直接路由和間接路由 
  
        路由器獲得路由的方式主要有手工配置(靜態路由)和路由協議(動態路由)兩種。靜態路由主要用於規模較小、相對穩定的網路。如果網路規模較大或經常變動,如經常增減網路、主機等,就需要路由協議。常見的路由協議有RIP(Route Information Protocol)、IGRP(Internal Gateway Route Protocl)、EIGRP(Enhanced IGRP)、OSPF(Open Shortest Path First)。前三種都使用VD演算法,OSPF使用LS演算法。IGRP、和EIGRP都是cisco的標準。


第三章  路由器的基本配置方法 

        所有路由器的《使用者手冊》都會對路由器的配置方法做詳細的介紹,本文僅介紹一下路由器的一般配置框架。


 
IP地址:路由器上每個要使用的埠都要配置IP地址 

線路:專線方式需要配置線路的波特率;撥號方式的配置較複雜,如果是模擬撥號除需要配置物理屬性(如非同步、modem、波特率等)外還要配置IP地址與電話號碼之間的對應關係。  

路由:配置好IP地址和線路屬性後就可以配置路由了。若配置動態路由,只要將動態路由協議開啟即可。若需要配置靜態路由,則建議首先畫出組網草圖,標出各網路的地址及所有相關路由器的各埠的地址,然後對照草圖逐個裝置配置路由。  

Quidway路由器提供的命令列配製介面將配置狀態分四級。第一級稱為使用者態,僅提供一些簡單的命令。使用enable命令可以從普通使用者態提升為特權態。特權態提供一些非配置命令,如開啟除錯開關等。要配置路由首先要使用configure命令進入全域性配置態。全域性配置態下可以對路由器的全域性引數進行配置,如配置路由等。只有在埠配置態下才能配置IP地址等埠所特有的屬性。  記住這四種狀態的名稱和意義不僅可以幫助大家更好地理解路由器的配置命令,還可以在尋求專案組的支援時與開發人員建立共同語言。

四、一些常見的計算機網路概念

      地址代理的另一個名稱為地址轉換(NAT),它試圖通過建立IP地址與傳輸層埠的對映。

                                                                 地址代理的工作原理 
  
      如圖所示,本地的PC機Local PC(IP地址為129.102.1.56)要訪問遠端的WWW 伺服器Foreign server(IP地址為9.9.9.9)時發出報文(9.9.9.9,80;129.102.1.56,5000),報文中的成員從左到右依次為:目的地址、目的埠號、源地址、源埠。該報文經過路由器的地址轉換後變為(9.9.9.9,80;202.38.161.1,10000),地址代理將源地址替換成了路由器的廣域網口地址。為了保持一一對應,地址代理還修改了源埠號。當路由器收到Foreign Server的迴文(202.38.161.1,10000;9.9.9.9,80)時,地址代理做相反的替換後得到報文(129.102.1.56,5000;9.9.9.9,80),這個報文可以被IP正確地發往Local PC。為完成這些工作地址代理顯然需要維護一張IP地址與埠號之間的對應表格。  

     如果外部的Foreign PC(IP地址為8.8.8.8)要主動訪問本地的WWW伺服器(IP地址為129.102.1.5),那麼它所傳送的報文的目的地址顯然不能直接填129.102.1.5,而應該填202.38.161.1,只有這樣報文才能到達路由器。那麼路由器怎麼知道將該報文轉交給誰處理呢(路由器並不能提供WWW服務)?回答是依靠配置。再圖5-1所示的例子中路由器應該配置129.102.1.5為本地的WWW伺服器。  

     驗證是PPP的功能之一。PPP提供CHAP(Challenge Handshake Authentication Protocol)和PAP(Password Authentication Protocol)兩種驗證方法。PAP使用明文(不加密)傳遞密碼,為單向驗證且僅在協商開始時驗證一次;CHAP使用密文傳遞密碼,為相互驗證且在傳輸過程中隨時驗證。  

     防火牆也是網路安全措施之一。防火可以分為包過濾和應用閘道器兩種。包過濾就是檢查報文的源地址、目的地址、源埠及目的埠,將某些報文過濾掉。包過濾防火牆可以實現諸如“禁止IP地址為129.102.1.56的本地微機被訪問”之類的簡單功能。應用層的防火牆則要強大得多,它可以對報文的內容進行限制。

    VPN的主要目的是用較少的資金獲取私有網的服務。VPN使用Internet上的隧道技術,PPP包封裝在UDP包中通過Internet傳送到遠端。一個公司的分支要訪問遠端的中心,他可以選擇DDN或是電話網作為連線方式。這兩種方式都非常方便,因為它們都相當於使用者組建了自己的私有網路。但是這兩種方法都非常昂貴。圖5-2提供了一種既方便又經濟的方法。位於分支機構的ISP為使用者提供VPN服務,它在Internet中建立一條TCP/IP的隧道,將其接入伺服器和中心的路由器(或伺服器)連線起來。ISP收到分支發來的資料(PPP報文)後不進行解析,而是將PPP報文通過隧道發往中心的路由器。Internet實際上提供了一條從分支到中心的虛擬私有線路,而使用者所交納的費用是兩端的本地通訊費用和Internet訪問費用,這要比長途電話費用或DDN費用低。