接續前面兩期的文章,這一期將繼續介紹撥接導向路由的設定,之前的文章介紹了不少關於撥接導向路由的概念與運作的方式,也詳細說明了設定過程中的前兩個步驟,包含設定靜態路由以及如何設定有興趣的封包等等。
這一期將介紹設定上的最後一個步驟——如何設定撥號資訊到介面上,並說明如何透過指令完成這些設定。在設定完這些事情之後,還更重要的是,如何透過指令的設定讓網路封包送往目的地,筆者會透過一個簡單的網路範例讓讀者容易了解設定的過程與方式。這裡所要介紹的知識將與PPP協定和ISDN網路息息相關。
撥接導向路由簡介
撥接導向路由(DDR)允許在一般的撥接設備環境中,讓兩個以上的Cisco路由器動態地做連線。一般而言,撥接導向路由技術用在ISDN網路或PSTN網路中,針對傳輸量少或會定期做網路傳輸動作的網路連線而使用。簡單地說,撥接導向路由會在須要傳送資料的時候才建立連線。
撥接導向路由運作過程
接下來說明撥接導向路由連線是如何產生的。就Cisco路由器而言,要產生一個連線讓雙方傳遞資料之前,必須知道雙方的傳遞網路路徑。
步驟一:決定網路路徑與傳輸介面
一旦Cisco路由器設備收到封包,首先必須查看本地端的路由表格,以便於了解目前路由表內是否擁有已知路徑可前往所要到達的目的地。若擁有已知的網路路徑,就會知道要從哪個介面把這個網路封包傳送出去,這也是第一個步驟主要的工作內容。
步驟二:決定是否為感興趣的封包
決定要傳出的介面之後,先觀察若傳出的介面被設定為使用撥接導向路由,則從網路管理人員事先已經定義的感興趣(Interesting)封包的條件,來決定這個封包是否為感興趣的封包。所謂的感興趣的封包,係指任何可用來啟動(Trigger)一個撥號連線(Call)的封包。
步驟三:決定下一個設備與撥號動作
路由器設備判斷下一個設備的位置在哪裡,然後決定要進行的撥號動作為何。
步驟四:建立連線與傳遞封包
從撥號清單中查看目前這個介面是否連接著遠端的目的地,如果目前這個介面連接著所要的遠端目的地,就會送出封包,而倘若這個封包是感興趣的封包,則也會重置(Reset)閒置計時器(Idle Timer)。
當這個連線建立之後,基本上所有的網路封包都可以通行,不過收到感興趣的網路封包後,就會重置閒置計時器。
如果目前這個介面沒有連接到遠端的目的地,採用BRI的路由器時就會使用D Channel來發送建立連線(Call Setup)的資訊。什麼是BRI?什麼又是D Channel?等一下再詳細介紹。
等到連線建立完成之後,所有的網路封包就都會被傳遞,其中包含感興趣的和不感興趣的,那些所謂不感興趣的(Uninteresting)網路封包,可能就是包含資料與路由更新等等。
步驟五:中斷連線
剛才提到過,一旦收到感興趣的網路封包,就會重置閒置計時器。因此,若沒有收到感興趣的封包,則閒置計時器就會開始計時,當閒置計時器持續計時到達一定的時間,連線就會中斷。因此,連線的中斷動作是由閒置計時器所控制。
撥接導向路由的設定方式
基本上,可以做一套簡單的撥接導向路由的設定,裡面擁有單一一套撥號參數設定,然後套用於一個介面上,這樣的基本撥接導向路由設定,稱之為Legacy DDR。
如果須要在同一個介面上套用多個不同的撥接導向路由設定值,則可以透過使用Profile來達到這個目的。
了解這些差異之後,接著介紹如何設定撥接導向路由。基本上,設定撥接導向路由分成以下三個主要的步驟:
STEP 1:建立靜態路由以便決定如何前往目的地,這裡建議使用靜態路由。不然,若使用動態路由的話,可能在交換路由表的時候就會觸發撥號的行為,這可能就不是原先所想要的情況。
STEP 2:定義何謂有興趣的網路封包,也就是怎樣的網路封包可用來啟動這個連線。
STEP 3:設定撥號相關的資訊,就像是電話系統的電話號碼。
不過,交換機和路由器的一些基本設定值都必須在這些步驟之前就先設定完成。所以撥接導向路由的連線架構圖大致上會像是下面這樣的網路圖。
|
▲撥接導向路由之連線架構。 |
一開始,由左邊的伺服器K發送有興趣的封包給路由器A,接著路由器A收到後,發現是有興趣的封包,就會啟動撥號路由連線,然後經由DCE設備前往ISDN或是其他類型的網路,以到達目的地端的DCE設備,最後透過目的地端的路由器設備B傳給目的地端。
第一步:設定靜態路由
這個步驟在之前的文章中詳細介紹過,因此就只是簡單介紹一下。首先,要了解為什麼這裡要使用靜態路由?由於動態路由之所以可以一直得到正確的訊息,也就是各個路由器設備之間不斷互相分享Routing Table的成果,因此使用動態路由的作法,當網路有任何改變的時候,不須要更動Routing Table。
由於現在要介紹的撥接導向路由是只有當需要的時候才傳遞資料,因此不適合使用動態路由,否則就會因為動態路由須要隨時得到最正確的Routing Table而一直有傳遞資料,觸發撥接導向路由的可能性。而設定靜態路由的指令如下所示:
若要檢視靜態路由的設定值,則執行下面這個指令:
第二步:定義有興趣的封包
在設定好靜態路由之後,接下來必須定義有興趣的封包為何。
當定義好有興趣的封包是什麼之後,往後只要收到所定義的有興趣的封包,就會建立撥接導向的路由連線。其設定的指令格式如下所示:
在上面的指令格式之中,粗體為關鍵字,不可以變更,而斜體字部分則必須替換成為真正要執行的資料。
這個指令為dialer-list,而後面可以指定網路協定,接著就是指定是要允許(permit)還是拒絕(deny)。最後,則接上存取清單的編號。
存取控制清單分為標準型存取控制清單和延伸型存取控制清單兩種。標準型存取控制清單的設定指令如下所示:
而延伸型存取控制清單的設定指令如下:
第三步:結合撥號資訊與介面
接下來進入這篇文章的重點,也就是第三步驟。這個步驟主要的工作就是要設定撥號相關的資訊到所指定的網路介面上。
該步驟中主要要執行的指令關鍵字為dialer-group和dialer map兩個指令,這裡必須要執行這兩個指令,將撥號清單和特定的埠與撥號字串對應在一起。
在設定之前,同樣必須先完成一些其他設定的步驟。底下開始說明這些詳細的設定步驟:
步驟一:選擇你想撥號的實體介面
這個步驟的主要目的是進入想要設定的介面,也就是進入對應介面的Interface Mode。Interface Mode是Global Configuration Mode所包含的五種模式的其中一種,Global Configuration Mode之下有以下五種設定模式:
1. Interface Mode
2. Sub-interface Mode
3. Controller Mode
4. Line Mode
5. Router Mode
Interface Mode是用來設定每個介面的設定值,在路由器(Router)和交換機(Switch)上都一樣,其提示符號為:
進入之前,必須先進入到Global Configuration Mode下,若看到提示符號為config,就代表目前正在Global Configuration Mode中。
接著,假設要進入ethernet0/1這個介面(這個範例就是要設定第0個模組的第1個介面),則進入Interface Mode的指令如下所示:
當看到config-if這個提示符號時,代表已經進入Interface Mode。
步驟二:設定好這個介面的IP位址
接下來,在這個介面上設定好IP位址,設定IP位址的指令關鍵字是ip address,後面接上IP位址和子網路遮罩。
Cisco路由器的IP設定與Cisco交換機的IP設定類似,只是指令有一點不同之處。路由器的各個介面一般用於連接不同的網路,因此每個介面都有自己的IP設定,這裡不像Cisco交換機只有一個IP位址,所以在步驟一中才要先進入要設定的介面,然後再進行IP位址設定動作。其設定IP的指令如下所示:
此處所設定的IP位址是10.1.2.3,而網路遮罩為255.255.255.0。
步驟三:設定封裝種類
最後,設定封裝的種類。舉例來說,假設要使用PPP協定,則設定封裝的指令如下:
這個指令必須在Interface模式下執行,它相當於啟動PPP協定的使用,是設定PPP協定的第一步驟。可以透過以下這些實體介面來連接設定:
1. 非同步Serial介面
2. 同步Serial介面
3. 高速Serial介面(High Speed Serial Interface,HSSI)
4. 整合服務數位網路(ISDN)
如果是在非同步的Serial介面上設定Cisco路由器的PPP協定相關配置,則需要額外的步驟來啟動PPP協定的使用。
那什麼是PPP協定呢?PPP協定是普遍被使用的廣域網路協定,全稱為Point to Point Protocol,如同名稱所示,PPP協定是指點對點的網路協定,通常用於兩個網路節點的直接連接。
例如可用於兩台電腦透過電話線的網路連接,不過目前最被普遍使用的是在寬頻網路連線上。以下這張圖顯示了PPP協定的運作架構:
|
▲PPP協定的運作架構。 |
在這個網路架構圖內,中間兩台路由器使用PPP協定,之間的通訊採用PPP協定的資料封裝。左邊的部分有三台電腦,分別採取不同的網路協定與使用PPP協定的路由器互相連接,由這個圖中可以看出,PPP協定中的一個重要特性是可與各種不同的網路協定互相整合。
左邊的三台電腦即使採用AppleTalk,Novell IPX或TCP/IP協定,都可以同時與使用PPP協定的路由器連接並使用。
而中間這台路由器為了要銜接來自左邊各種不同網路協定的封包,PPP協定會使用Network Control Protocol(NCP)來負責上層資料的封裝過程。因為篇幅有限,這裡就不介紹PPP協定了。
如果使用PPP協定,除了啟動PPP協定的封裝外,還要設定PPP協定的認證(Authentication)方式。PPP協定所使用的認證協定有PAP協定和CHAP協定。
PAP認證協定其實是一種雙向握手(Two Way Handshake)協定,透過雙向握手的流程來讓遠端的電腦或是網路設備進行辨識(Identity)認證的工作。當網路連線建立而且認證協定被決定之後,就代表連線的雙方可進入認證確認的階段。
因此,認證的發生時間是在PPP協定連線建立之後就進行。進行時,遠端的電腦或網路設備會不斷地發送帳號和密碼到Cisco路由器,這樣的發送過程會一直持續,直到這個認證被接受或是這個PPP連線被中斷為止。
CHAP認證協定採用的運作流程則是3-way Handshake。若使用CHAP認證協定,當PPP連線建立階段完成之後,Cisco路由器設備(本地端)就會發送所謂的Challenge封包給遠端的網路設備,接著遠端的網路設備會透過One Way Hash的方式,針對傳送過來的Challenge值和密碼計算出一個特定的值。
然後,將這個特定的值傳回給原本發送的Cisco路由器設備。這裡所使用的One Way Hash方式一般都是使用MD5(Message Digest 5)演算法。
接著,本地端的Cisco路由器設備根據已知的計算方式再次計算出Hash值,然後比對自己所計算的Hash值和收到的Hash值是否相同。
如果兩個計算出來的Hash值相同,代表這個認證已經通過,否則就會立刻中斷目前這個PPP連線。而設定PPP認證的指令如下所示:
上面的指令範例是採用CHAP認證協定,指令的關鍵字是ppp authentication,若要採用PAP認證協定,只須將chap改成pap即可,其指令如下所示:
無論設定成PAP認證協定,或是設定成CHAP認證協定,都代表所有透過這個介面進來的PPP連線要求,都會使用所設定的認證協定來要求認證。
而這裡要注意的是,當某一台Cisco路由器設定成某一種認證協定時,若使用CHAP認證協定,則所有其他想要與這台路由器建立PPP連線的Cisco路由器都必須使用CHAP認證協定才行,否則無法通過認證動作。
步驟四:設定撥號資訊
最後一個步驟是撥接導向路由設定的重點,亦即設定好撥號的資訊。主要是將撥接導向路由網路封包的定義結合到介面上,這個步驟主要是透過dialer-group指令來完成。其設定範例如下所示:
指令的關鍵字是dialer-group,後面接上group number。group-number是一個1到10其中一個整數,這個數字代表著其中一個dialer group的編號,該數字必須與藉由dialer-list指令設定好的group number數字相同。
另外,每一個介面只能設定一組dialer group,但是同一組dialer list卻可以設定給多個介面。
將網路封包送往目的地
前面的設定完成之後,就算已經可以啟動撥接導向路由,接下來要做的是讓路由器知道如何將網路封包傳送到一個或是多個目的地。假設現在網路架構如下圖所示:
|
▲網路架構範例。 |
上面這個網路架構圖內有RouterA和RouterB這兩台Cisco路由器設備,中間透過ISDN網路連接,路由器A連接到ISDN的介面IP位址為10.3.0.1,是BRI 0的介面,速度為5551000,路由器B連接到ISDN的介面IP位址是10.3.0.2,為BRI 0的介面,速度是5552000。
另外,路由器B後面還接上10.7.0.0的網路區段,現在要在路由器A上設定讓網路封包可以從路由器A傳送到10.7.0.0的網路區段。由於這裡提及ISDN網路,就順便稍微介紹一下ISDN網路的相關知識。
ISDN是一個數位型網路,整個網路中全部都是運行數位資料,與其他網路比較不同。ISDN採用的是DDR路由技術。
ISDN基本上包含許多標準,而這些標準都是為了在公開的交換式網路(Public Switched Network)中整合資料與語音等網路封包,這些標準定義了傳輸介面的規格。
這樣,讀者對於ISDN網路就有了簡單的認知,不過網路架構圖中提到的BRI,那到底是什麼呢?其實那是一種ISDN的存取方式。ISDN網路有兩種存取的模式,一種是BRI,另一種是PRI。由於這裡只提到BRI,因此就只介紹BRI。
BRI是由兩條64kbps的B Channel以及一條16kbps的D Channel所組成,很多Cisco的設備都是使用BRI,而且因為BRI的組成因素,所以也會稱BRI為2B+D,以便直接代表BRI的Channel組成成分,可以一眼看出其速度或Channel相關考量因素。
由於B Channel所能承載的速度比較快,因此通常被拿來傳遞資料。而D Channel一般都是用來處理在B Channel上所使用的撥號連線建立處理過程。B Channel和D Channel的差異如下列表格所示:
由於篇幅有限,這裡就不針對ISDN網路做繁瑣的介紹。了解ISDN的基本知識之後,再回到這個範例的網路架構圖進行說明。
由於要設定讓路由器A可以把封包送到10.7.0.0的網路區段,因此要在路由器A上面的BRI 0這個介面做設定。其設定的指令如下所示:
假設要設定範例中的路由器A,則執行指令如下所示:
在以上指令中,標示為粗體是指令關鍵字,而斜體則為需要變更的值,主要的指令關鍵字為dialer-map,後面第一個接上網路協定名稱。其中,協定名稱可以是以下這幾種關鍵字:
當然還有其他的種類。接著,下一個參數是下一個路由器設備的介面位址。就這個範例來說,對於路由器A要前往10.7.0.0這個網路區段,下一個路由器設備就是路由器B,而路由器B的位址為10.3.0.2。
接下來要設定的是遠端路由器設備的主機名稱,這參數必須先接上name這個關鍵字,然後再接上遠端主機的名稱,也就是RouterB,事實上,這個主機名稱參數的設定可有可無。
在剛才範例指令中,最後的參數是5552000,這個字串就像電話系統的電話號碼一樣。
不過,在這個範例指令中有兩組參數並沒有被設定,第一組是[speed 56|64],接於主機名稱參數之後,關鍵字是speed,後面接上連線的速度,單位是kbps。這個設定是用於ISDN網路,速度的設定上有56和64兩種設定值可以選擇,預設值為64。
另一個沒設定到的參數是[broadcast],與剛剛設定速度的參數一樣,都是用[]括號包起來,這裡所要表達的只是此參數可有可無,因此可千萬別誤會了。這個參數的關鍵字是broadcast,一旦設定這個參數,就代表要允許廣播封包(Broadcast)和群播封包(Multicast)可以被轉送到目的地。
預設上,撥接導向路由是不允許轉發這些封包,因此更新專用的封包是無法跨越這些連線,除非這個參數有被設定。因此,當這個參數被使用時,也就相當於表示動態路由協定可以跨越這樣的連線互相傳遞。
結語
經過幾期文章連續介紹撥接導向路由之後,相信各位讀者都已經明白撥接導向路由是如何運作,以及了解如何設定。撥接導向路由所牽涉的知識稍微廣泛一點,讀者必須稍微明白一些封裝協定、ISDN網路的基本知識、靜態路由和ACL存取控制清單等等。不過,即使讀者不清楚其中的內容也沒關係,筆者已經在文章中盡量只談及相關的部分,並且以簡單的口吻解釋,相信對各位讀者而言,應該都不是什麼問題。但撥接導向路由事實上還有很多深入的主題可以介紹給各位,筆者會在往後的文章中逐一講解。