Dialer 撥接導向 ISDN PSTN DDR 路由

善用Dialer Profile快速設定撥接導向路由

2011-09-16
撥接導向路由技術普遍用於ISDN網路或是PSTN網路之中,主要針對傳輸量少或是會定期做網路傳輸動作的網路連線而使用。本文將介紹如何在撥接導向路由的環境中快速設定,而快速套用設定值的方法就是使用Dialer Profile。除了說明Dialer Profile的概念與詳細指令之外,也會驗證Dialer Profile的設定。
在前幾期的文章當中,筆者介紹了許多關於撥接導向路由的概念與設定技巧,想必讀者對於如何在Cisco網路設備上設定撥接導向路由已經有一定程度的瞭解。

接下來,這篇文章會將著重在如何在撥接導向路由的環境之中快速進行設定,而快速套用設定值的方法就是使用Dialer Profile。

所謂的Dialer Profile,就是類似「一套設定值」的概念,能夠把設定值從實體的介面中抽取出來,也就是說,可以預先設定好一套設定值,然後再與實體的介面做設定上的配對。

由於Dialer Profile有這樣好用的功能,所以當企業的網路管理人員要在Cisco網路設備中實作新的撥接導向網路時,Dialer Profile能夠協助這些網路管理人員進行複雜的撥接導向網路設定部署,同時也能讓整個部署的動作變得更加具有彈性。

除了介紹Dialer Profile外,文章中還會提供撥接導向路由的疑難排解技巧。底下就帶領大家瞭解撥接導向路由的Dialer Profile各種知識及設定指令。

撥接導向路由簡介

撥接導向路由的英文名稱是Dial-on Demand Routing(DDR),可允許在一般的撥接設備環境中讓兩個以上的Cisco路由器動態地做連線。

撥接導向路由技術通常都應用在ISDN網路或PSTN網路中,針對傳輸量少或是會定期做網路傳輸動作的網路連線而使用。而PSTN(Public Switched Telephone Network)就是每天都會使用的電話系統。

其實,ISDN與現在大家使用的電話就是這種網路。以電話為例應該最容易體會,當在台灣想與外國某個地方聯絡,一開始必須先撥打對方的電話號碼,當撥接成功後,在通訊過程中連線都不能中斷,否則整個連線就會中斷,而且也是只有在需要交換資訊時才會撥號,因此就是Dial On Demand。一旦沒有任何再互相通訊的需要時,就會切斷連線,亦即掛掉電話的動作。

藉由使用撥接導向路由,可以讓廣域網路的使用成本大大地減低,如同剛剛所舉的電話例子,總不可能一直讓電話處於連線狀態,即使沒什麼話要講也不掛掉,而是當有話要說的時候,才會撥打對方的電話號碼並且對談。對談結束,就把電話掛掉,等於切斷網路連線,掛掉之後就不會再繼續浪費電話網路的資源。

Dialer Profile概念與詳細指令介紹

Dialer Profile這個專有名詞實在很難找到適當的中文翻譯,所以這裡就直接使用英語名稱。當須要設定ISDN的PRI時,就必須設定Dialer Profile。

什麼是Dialer Profile

那什麼是Dialer Profile呢?Profile在這裡就是類似「一套設定值」的概念,可以把設定值從實體的介面中抽取出來,也就是說,可以預先設定好一套設定值,然後再與實體的介面做設定上的配對。

基本上,Dialer Profile可以包含封裝的設定、存取控制清單、決定撥號連線數量的最大值及最小值,還有包含哪些功能是啟動而哪些功能是關閉的等等設定。

Dialer Profile的用途

如此看來,Dialer Profile似乎可以包含不少設定。剛才提過,Dialer Profile可以把設定值從實體介面抽取出來,但更棒的是,套用的動作還可以根據當時不同的需求自動套用適合的Dialer Profile。

由於這樣好用的功能,當企業的網路管理人員要在Cisco網路設備內實作新的撥接導向網路時,Dialer Profile能夠協助這些網路管理人員進行複雜的撥接導向網路設定部署。此外,也讓整個部署的動作變得更加具有彈性。

可以想像一下Dialer Profile的用途。舉例來說,透過Dialer Profile,能夠在ISDN網路的B Channel上使用不同的封裝協定、設定不同的撥接導向網路選項,或是使用不同的IP位址等等。

Dialer Profile的組成元素

再來看看一個Dialer Profile究竟包含哪些東西。基本上,一個Dialer Profile包含以下三種元素:

1.撥號介面(Dialer interface)
2.Dialer Pool
3.實體介面(Physical interface)

撥號介面是一個邏輯性(Logical)的介面,也就是說並非實體性的介面。而Dialer Pool則是由一些已經使用Dialer Profile的實體介面所組成,而每一個撥號介面都參考到一個Dialer Pool。

而實體介面的用途可以用來設定封裝種類、PPP的驗證方式、PPP多重連結等等。

Dialer Profile的設定指令

接著,講解一下Dialer Profile組成元素之間的關係,還有這些關係的設定指令為何。從底下這張圖,可以看出組成元素之間的關係:

▲Dialer Profile組成元素與其彼此關係。

首先,底下這個指令是用來指定目的端的電話號碼:

設定指令關鍵字為dialer string number,後面若是接上class map,再接上特定的class名稱,就代表要使用事先所定義的class map,並且將它用於撥接的連線當中。

另外,dialer pool指令可以指定用來讀取目的端子網路之實體介面所屬的Dialer Pool編號:

指令關鍵字為dialer pool,後面接上一個Dialer Pool的數字編號,這個編號是一個介於1到255的整數。以上這兩個指令都是屬於用來設定撥號介面與Dialer Pool之間的指令。

最後,dialer pool-number這個指令是屬於用來設定實體介面與Dialer Pool之間關係的設定指令,以下是這個指令的格式:

指令關鍵字是dialer pool-number,後面所接的是Dialer Pool的編號。這個指令可用來設定所選擇的實體介面與Dialer Pool的對應關係,並將這個實體介面分配到所選擇的Dialer Pool中。一個實體介面可以同時被分配到多個Dialer Pool中,針對這點並沒有限制。

如果在Dialer Pool中有兩個以上的實體介面的話,可以針對Dialer Pool中的每個實體介面設定詳細的優先權(priority)順序,不過這個優先權順序只有當撥出連線的時候才會被使用到。

至於優先序的參數選項是可有可無,設定的參數關鍵字是priority,後面接上一個從1到255之間的正整數當作優先順序。數字越大,代表優先程度越高。

另外,還可以選擇性地設定要留給這個介面的ISDN網路B Channel的最多使用個數及最少使用個數,設定參數的關鍵字為max-link和min-link,後面接上數量,數量值的範圍介於1到255之間的任何一個正整數。

Dialer Profile設定範例

底下透過一個範例來說明如何設定Dialer Profile。基本上,要設定使用Dialer Profile必須經過以下幾個步驟:

1.設定一個以上的撥號介面。
2.設定撥號字串。
3.設定Dialer Map用來針對每個不同的撥號連線套用不同的選項(選擇性)。
4.設定實體介面並且將實體介面分配到Dialer Pool中。

就上面這些步驟而言,第三個步驟可有可無,不一定要設定Dialer Map。在路由器上,可以設定任何數量的撥號介面,每一個撥號介面相對於一個目的端的完整設定。底下為設定指令的範例:

至於interface dialer指令,則可以用來建立一個撥號介面,並進入這個撥號介面中。

驗證Dialer Profile的設定

接著,講解如何驗證Dialer及Dialer Profile相關設定的指令。首先要介紹的指令是show dialer,指令如下:

這個指令可以顯示出和撥接導向路由連線相關的偵錯指令,能夠顯示的資訊包含已經成功送達的撥號次數以及B Channel上的逾時設定等等資料。B Channel使用於ISDN網路,而ISDN是一個數位型網路,整個網路中全部都是運行數位資料,與其他網路比較不同。

此外,ISDN正是採用撥接導向路由技術的代表作,所以在討論撥接導向路由時,常常會提到ISDN網路。

而B Channel是ISDN網路兩種Channel的其中一種。ISDN網路所使用的Channel包含B Channel及D Channel,最主要的差別在於速度和使用的環境。

以下說明如何查看Dialer Profile設定,所使用的指令與執行範例如下所示:

這個指令的關鍵字是show dialer interface bri0,在上面的執行範例中,從Dialer state is data link layer up這個字串可以得知,目前這個撥接導向路由連線已被正常地啟動著。

如果在上面的執行範例中,看到Physical layer up這樣的文字,代表Line Protocol沒問題,但是NCP(Network Control Protocol)沒有正常啟動。

NCP用於PPP協定中,為了銜接各種不同網路協定的封包,PPP(Point to Point Protocol)協定會使用NCP來負責上層資料的封裝過程。

PPP協定是很普遍被使用的廣域網路協定,如同名稱所示,PPP協定是指點對點的網路協定,通常用於兩個網路節點的直接連接,例如可讓兩台電腦透過電話線的網路進行連接,不過目前最被普遍的用途在於寬頻網路連線上。

現在,很多ADSL網路服務供應商(ISP)會提供使用者以PPP協定的方式撥接到網路服務供應商,然後連上網際網路。下面這張圖顯示了PPP協定的運作架構。

▲PPP協定的運作架構。

由此圖例可以看出,PPP協定其中一個重要的特性是可以與各種不同的網路協定互相整合。PPP協定的階層式架構主要分成兩層,上層為NCP(Network Control Protocol),下層為LCP(Link Control Protocol)。

上層的NCP最主要的工作是負責像是認證等等的工作,並且與OSI網路架構的第三層協同運作,也因為NCP,PPP協定才能夠與各種不同的網路協定做整合。

而下層的LCP負責建立資料連結的連線,PPP協定提供不少種類的設定給LCP,以便建立資料連結的連線,主要內容是協調點對點的網路連線以及檢查網路封包訊框等等設定。

撥接導向路由的疑難排解

以下將學習如何在撥接導向路由的網路環境中,進行疑難排解的技巧。這裡主要以介紹指令為主,相關的知識在之前的網管人雜誌專欄中已經詳細介紹過,這裡會視需要簡單做介紹。

檢查撥接導向路由的設定

首先,看看如何驗證撥接導向路由的設定值。基本上,可以利用Cisco IOS最常用的show指令,後面接上不同的參數來決定要顯示並且驗證何種資料。其中,下面這個指令可以用來顯示ISDN網路中正在進行的撥接導向網路連線:

這個指令主要用來顯示目前正在使用中的ISDN網路連線資訊。這裡會顯示的資訊包含撥號的號碼、目前這個ISDN網路連線所使用的時間、連線期間的AOC Charging Units,以及連線期間是否會顯示AOC的資料還是連線結束之後才顯示等等。

如果要查看所有連線的統計值,可以透過下面這個指令來完成。很明顯地,這個指令如同它的名字一般,就是用來顯示目前ISDN網路連線的狀態資訊,同時也可用來確保目前這台路由器能夠和ISDN交換機做正常的資料傳輸。

在所輸出的結果中,可以確認一下Layer 1的狀態是否為ACTIVE,以及Layer 2的狀態是否為MULTIPLE_FRAME_ESTABLISHED。透過這個指令,同時也能夠清楚地觀察到目前使用中的ISDN連線有多少個。

這個指令也可以用來檢查線路有沒有問題,是蠻有用的指令。另外,show ip route指令可以顯示所有的路由資料,包含靜態路由的資料都會顯示出來,以下為指令執行範例:

上面顯示的結果就是整個Routing Table的資料,而Routing Table中的資料,代表目前這台路由器所熟知的網段資訊。

從以上的結果得知,一開始會列出所有的代碼意義對照表,例如R是代表使用此路徑是經由RIP路由協定學習而來,C則代表此網路路徑是直接連接的,並不須要經過任何學習過程。

至於其他的代碼,稍微要注意的有S,代表是靜態路由。另外,I代表此路徑是由IGRP路由協定學習而來,D則代表EIGRP路由協定,O代表OSPF路由協定,i代表IS-IS路由協定。

再來比較重要的是顯示結果最下方的Routing Table,在這裡可以看到許多資訊。以下這一行代表目前這台路由器有192.168.2.0/24這網段:

下面這一行則顯示在192.168.2.0/24網段下的詳細子網段路由資訊。在這一行中,前面顯示的C代表這網段是直接連接的,由網路架構圖中也可以證實真的是這樣。這就是在Routing Table中的一筆資料。

而以下這一行,則表示在10.0.0.0/24底下有兩個子網段的資訊。

繼續往下看,就可以發現下面這兩個子網段的路由資訊:

上面的第一行前面的R表示這筆網路路由是經由RIP路由協定學習而來,而同一行後面的資訊又多又複雜。有個小秘訣,就是從後面往前看,會比較簡單一點。

以第一行為例,可以知道這筆路由是由目前這台路由器的Serial2介面出去,經過10.1.2.7的路由器後,可以到達10.1.1.0網段,所以最後面的Serial2所代表的是目前這台路由器的介面,而10.1.2.7代表下一台路由器的IP位址。

而10.1.1.0網路IP位址的後面接著[120/1],其中120代表RIP路由協定的AD值,後面的1則表示要經過一個路由器設備才能到達10.1.1.0網段。

至於此行中間的00:00:06,說明了這筆路由從最後一次更新後到目前為止已經過了6秒,所以透過這個值,就可以知道這筆路由有多新或多舊了。

以同樣的方法,就很容易明白第二行所要表示的意義是什麼。第二行是指經由目前這台路由器設備的Serial2介面出去,可以直接連接到10.1.2.0網段,因為這邊寫著「10.1.2.0 is directly connected」,代表10.1.2.0這個網段是直接連接的,不僅如此,前面的C也代表此網段與目前這台路由器是直接連接。

如果執行show ip route這個指令後,發現在Routing Table中沒有任何的資料,建議試試show running-config或show ip protocols指令來查看可能發生的錯誤在哪裡,並嘗試做疑難排解。

除了這些方式之外,當然還有其他的方法可以進行疑難排解。讀者不妨思考一下,例如透過ping指令,或telnet的指令也可以用來測試連線是否沒問題。

以Telnet為例,Telnet是一種虛擬終端協定(Virtual Terminal Protocol),是TCP/IP的一部分。藉由telnet指令,後面接上主機名稱或是IP位址,就可以連線到其他設備:

若要暫停目前的Telnet連線,其方法為:

先同時按下〔Ctrl〕、〔Shift〕按鍵及〔6〕數字鍵,放開之後再按下〔X〕按鍵

這個暫停的方法有點複雜,可能要多試幾次才能抓到訣竅,假設本地端是RouterA,目前用Telnet連線到RouterB,希望從RouterB的命令列暫時回到RouterA,其執行在命令列的結果如下:

當然前提假設是ping或telnet的封包並不會被擋住,有些企業網路環境設定會擋掉這些網路封包,因為企業覺得這些網路封包會淪為攻擊用途。

撥接導向路由網路的疑難排解

這裡說明撥接導向路由的疑難排解相關指令。debug dialer指令可以針對藉由接收介面所收到與撥接導向路由網路相關的網路封包做偵錯動作,其指令格式如下:

指令關鍵字是debug dialer,後面可以接上events和packets參數,這兩種不同的參數可用來顯示不同的輸出項目。底下先來看看使用events參數的指令執行範例:

從上面的執行結果中可以看出,目前這台路由器網路設備之撥接導向路由的介面,這裡看到只有一個介面,那就是Serial0,而後面所顯示的則是所處理之網路封包的來源IP位置和目的地IP位置。s代表source,就是來源位置,而d表示destination,亦即目的端位置。

再來觀察一下若使用packets參數的話,會有怎樣的顯示結果:

上面的執行結果顯示撥接導向路由介面的種類,此範例顯示的介面種類為BRI0,並顯示送出的網路封包協定種類,以這裡的範例而言是IP協定,而且還顯示這個網路封包的來源IP位置及目的端IP位置。

此外,也會顯示這個網路封包的大小,本例為100bytes,而最後所顯示的則是對於這個網路封包的處置方式,也就是所看到的PERMIT字樣,代表允許此網路封包。

除此之外,還有一個也很好用的shutdown指令,可以用來強迫切斷連線,該指令格式如下:

讀者可以發現,這個指令是用於Cisco IOS的介面模式,所以在發現連線過程中有任何不適當的事情發生時,就可以透過這個指令來關閉目前這個介面。

其他路由器設備的疑難排解

除了上述的指令外,路由器還有很多好用的疑難排解指令可以派上用場,例如show running-config,這應該也是最常被使用的偵錯指令。show running-config指令能夠顯示目前正在使用的設定內容,而這個指令必須在Privileged Mode下執行。

像之前的IP位址設定、網路遮罩設定及預設閘道設定,都會在這裡顯示出來。show running-config指令格式如下:

show interfaces指令則是用來顯示目前這台Switch上所有埠的靜態資料和狀態,而Switch的Trunk和Line Port都是屬於interface,因此也都會藉由這指令顯示出狀態與相關資料。

這個指令還可以指定要看哪一種介面的資料,例如只看Ehternet介面或FastEthernet介面的資料,或者可以指定某一個埠。指令範例如下:

執行完show interface指令後,通常第一個要看的結果是這個介面是否正常運作,如果正常運作的話,所輸出的結果會有以下這一行。

還有很多其他有用的輸出資訊,都是很好理解的內容,讀者可以自行利用這個指令進行疑難排解。

解決撥入的連線問題

如果要解決撥接導向路由網路中撥入的連線問題,就必須把握一個大原則——先從網路最底層開始檢查起,也就是實體層(Physical layer),然後才慢慢往高層檢查。

可以參考下面這樣的問題來檢查撥接導向路由的撥入連線問題。如果答案為「是」的話,那就繼續檢查下一個問題;如果答案為「否」,當然就是問題點所在了。

1. 網路撥號(Call)的連線動作有到達目的端嗎?
2. 目的端網路設備有回應這個撥號動作嗎?
3. 這個撥號動作有正確地完成嗎?
4. 所要傳遞的資料有經過這個撥號連線被傳送過去嗎?
5. 這個連線(Session)有正確地被建立起來嗎?

其中,前三個問題可以透過debug isdn q931指令來回答,而第四個問題可以透過show interface bri指令來瞭解所要傳遞的資料是否有被正確的傳送出去,至於最後一個問題則是透過debug ppp指令來分析。

此外,debug ppp指令後面要接上authentication或negotiation參數,以便得知更詳細的資訊。

接authentiication參數的指令格式如下所示。這個指令可以用來顯示PPP驗證階段的相關資訊,包含CHAP驗證協定以及PAP驗證協定所使用的封包交換資訊。

而接negotiation參數的指令格式如下所示。這個指令可用來顯示PPP連線過程的資訊,其中包含LCP相關資料、驗證過程的資料以及NCP相關資料等等。

當然,一個成功的PPP連線中,對於這三者的先後順序為:「LCP狀態→接著做驗證動作→最後做NCP」。

最後,如果發現PPP協定有發生任何的問題,可以透過以下這個指令來查看相關的疑難排解:

如同其指令名稱,以上指令是用來顯示PPP連線過程所有可能的錯誤資訊,當錯誤發生時,這個指令會相當有用。

解決撥出的連線問題

針對撥接導向路由網路撥出的相關連線問題,筆者根據Cisco的建議列出以下幾個問題以供參考:

1. 撥接導向路由的撥號動作能否成功地被初始化嗎?
2. 這個撥號動作是否成功地從ISDN網路連通出去嗎?
3. 遠端網路設備是否已回應這個撥號動作嗎?
4. 這個撥號動作是否成功地完成嗎?
5. 所要傳遞的資料能夠成功地透過這個撥號連線送出去嗎?
6. 撥接導向路由連線已成功地被建立起來嗎?

在第一個問題中,可以透過debug dialer events指令來確保撥號的動作是否有嘗試被初始化,這個指令剛才已經介紹過。

從這個指令的輸出結果中,可以從來源IP位置和目的端IP位置來判別是否有初始化這樣的撥號動作。

結語

以上介紹了關於撥接導向路由相關的疑難排解技巧,其中牽涉到很多其他的知識,例如ISDN、PPP協定等等,由於文章篇幅有限,這裡並沒有多花太多時間加以介紹。Dailer Profile其實相當好用,讓網路的設定與部署等工作變得更加容易以及更具彈性。讀者若能靈活運用Dailer Profile,想必一定能夠在撥接導向路由的設定上更加得心應手。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!