2012年8月22日 星期三

Cisco交換器常用指令大彙整


Cisco交換器常用指令大彙整

Cisco交換器是目前最受網管人員倚重的網路設備,但長久以來Cisco交換器都著重於下達指令的管理方式,因此若想要維護安全又要立即上手,那麼唯一的辦法就是學會相關指令。為此,本文將介紹Cisco交換器常用的指令,包括基本管理指令、VLAN設定指令、CDP協定設定指令、顯示各種資訊的Show指令。

相信很多資深的網管人員都有碰過Cisco的交換器(Switch)設備,但對於剛開始接觸的網路管理人員而言,要設定並且使用這樣的網路設備,確實是一件很困難的事情。即使了解一些基本的網路知識,但因為習慣使用視窗介面導致無法記得常用的指令,尤其這種進階的網路設備大多採用指令介面來管理,而不是視窗介面。

為此,本文整理出一些常用的Cisco Switch使用指令,讓讀者很快地就能在這裡找到想要的設定。以下將說明基本管理指令、VLAN設定指令、CDP設定指令,以及最強大的Show指令說明等等。

Switch基本管理指令 

一開始,先從最基本的管理指令談起,包含一些指令模式的切換、設定主機名稱、IP位址、預設閘道位址等等。底下就來介紹這些基本管理設定指令的使用方式。

模式切換指令 

Cisco Switch有多種命令模式,包含User Mode、Privileged Mode、Global Configuration Mode及Interface Configuration Mode等等,不同的模式代表不同的用途和不同的權限等級,而各種不同的模式切換有其關聯性,並不能隨意從任意兩者之間來切換。這些模式的關係如下:


▲Cisco交換器設備的各種命令模式及其關係。

在上圖之中,箭頭的方向代表指令切換的方向。一開始所使用的是User Mode,User Mode只具備一般簡單的指令,大部分都限制在只能使用用來檢測的指令,而不能更改設備的設定值,當然就是代表權限最低的指令模式。

而Privileged Mode則可以執行用來設定Cisco設備的指令。從User Mode進入Privileged Mode的指令是enable,執行方式如下:


若要從Privileged Mode退回User Mode,可用disable指令,如下所示:


進入Privileged Mode之後,可以再進入Global Configuration Mode,大致而言,Global Configuration Mode是針對Switch整體的設定。

從Privileged Mode進入Global Configuration Mode,只要輸入configure terminal指令即可。如下所示:


進入Global Configuration Mode之後,提示符號會變成(config)#,這時候還可以從Global Configuration Mode再進入Interface Configuration Mode,此時要使用何種指令,決定在於要進入到哪個介面,假設要進入第一個Module的第一個埠,則指令設定方式如下:


Cisco Switch對內建Module的編號為0,若另外有擴充Module,才是從1開始。而埠的號碼就是從1開始計算。

設定Cisco Switch設備名稱 

設定主機名稱主要是為了方便管理,而這個名稱一旦設定之後,此名稱就會顯示在提示符號之前,以便管理員辨識目前是在哪一台設備的CLI中。這個指令通用於Switch和Router兩種設備。

其指令為hostname,後面接上主機名稱即可,而這個指令必須在Global Configuration Mode底下執行。因此,若要將主機名稱設定為Switch_406,則所要輸入的指令如下所示:


設定IP 

雖然Cisco Switch設備是屬於網路第二層協定的設備,而IP是屬於網路第三層協定,但是依然可以為Cisco Switch設備設定IP,設定IP的目的是為了管理,例如,可以透過VTY指定IP連線到Cisco Switch設備進行遠端管理。

此外,同樣要在設定IP之後,Cisco Switch設備才能使用SNMP協定。設定指令如下所示:



設定預設閘道位址 

設定預設閘道的動作,因為是針對整台Switch而言的,所以必須在Global Configuration Mode底下執行。

若要將預設閘道設成192.168.46.1,則指令範例如下:


Telnet連線指令 

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


當然,目的端的Cisco設備也要做相對應的設定才行。一旦下達telnet指令之後,跳出輸入密碼的提示符號,就代表可連線到此設備。此時,對於遠端設備而言,連線的介面稱為VTY,也就是Virtual Type Terminal。

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

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

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


若要回復Telnet連線,可以下達resume指令,後面接上Conn中的連線編號即可,如下所示:


另外一個回到Telnet連線的方法就是直接按下〔Enter〕按鍵,而如果執行resume指令後面沒有接上連線編號也可以,這樣的話,就會連回最後一次被暫停的連線。

最後就是關閉Telnet連線,一樣有多種方式可以達成。共有四種不同的指令:exit、logout、disconnect以及clear。

其中exit和logout是執行於遠端的Telnet連線中,也就是說,當連線到遠端設備時,此時命令列是掛在遠端設備下,執行這兩種指令後,就會回到本地端設備的命令列模式。

而disconnect指令是執行於本地端設備的命令列,執行這個指令就會關閉所有由目前這個使用者所開啟的全部Telnet連線,若要關閉某一個Telnet連線,就要加上sessions關鍵字,之後再接上連線代號。

關於以上的用法,執行結果範例如下:


第四種是clear指令,這是用來關閉由其他Cisco設備連進來的Telnet連線,其執行範例如下:


其中,11是連線代號,可以透過show sessions指令查詢到這項資訊。若成功關閉之後,遠端的設備會顯示「closed by a foreign host」訊息。

VLAN設定指令 

一個VLAN是由一群終端機器組合而成,例如一些使用者的PC設備,而這些VLAN中的機器通常擁有相同的特性,而這特性並不需要與這些機器的所在位置有任何的關係。

此外,VLAN技術也允許將一台Switch設備的埠分成幾個群組,並且可以針對每個不同的群組套用不同的設定。換句話說,VLAN是可以在邏輯上區分不同的廣播網域,而這樣的廣播網域可以延伸到多個實體區域網路區段,因此VLAN技術能夠增加網路組織的彈性。

對於Switch設備上的每一個埠,只能被指定到某一個VLAN之中,也就是說,一個VLAN中的所有的埠都共享整個廣播封包。

因此,一個VLAN事實上可以想成廣播網域(Broadcast Domain),所以不同VLAN之間的埠無法共享彼此的廣播封包。

在Cisco設備上若要設定VLAN,主要分成四個步驟:

1. 設定VTP(Cisco設備才需要這樣設定)
2. 設定Trunk
3. 設定VLAN
4. 將各個埠指定到某個VLAN中 

底下就分別介紹VLAN相關的設定指令。

設定VTP 

VTP協定的全名是VLAN Trunking Protocol,主要是建立一套機制,以便在Cisco Switch設備之間做訊息交換的動作,而VLAN的相關資料可以透過這樣的機制相互傳遞到別台Cisco Switch設備上,以便達到Cisco Switch設備之間的VLAN資料同步。

此外,在VTP中的每一台Cisco Switch設備都因為所扮演的角色不同,而有不同的同步與設定能力。

每一台Cisco Switch設備所能設定的模式,共有Server模式、Client模式、Transparent模式等三種選擇,而這三種角色所能支援的設定與同步能力如下表所示。

Cisco Switch設備所能設定的模式與功能


設定VTP的第一步驟是建立VTP Domain,其設定指令如下所示:



上面的範例就是建立一個DOMAIN_1的VTP Domain,並把這台設備加入到這個VTP Domain之中,而且把這台Cisco Switch設備的角色設定為transparent,並設定密碼為CISCO。

而vtp pruning指令的目的就是在於開啟VTP的最佳化動作,若要關閉VTP最佳化的設定,其指令如下:


設定Trunk 

Trunk分為ISL和802.1Q兩種協定。不過,並不是每一款Cisco設備都支援ISL協定,像最常見的Cisco Catalyst 2950 Switch設備就只支援802.1Q協定。

而Cisco Catalyst 4000 Switch設備可支援ISL協定。其設定的指令如下:


此一步驟是關閉埠的運作,這麼做的目的是為了避免待會兒在這個埠上所做的設定影響到其他埠的運作情形。當然,這一個步驟可有可無。

接著,如果要採用802.1Q協定,則執行如下指令:


若要採用ISL協定,則相關指令為:


當然,也可以選擇讓這台設備根據對方的設備自動選擇所要套用的trunk協定,其設定指令如下:


接著,把這個埠的模式設定為trunk,指令內容如下:


設定VLAN 

每一款Switch設備所能支援的VLAN個數是不一樣的,會根據設備的硬體而有些許的不同,大部分的Cisco Switch設備支援64個VLAN,而2950系列可以支援250個VLAN。

另外,通常預設的VLAN都是VLAN 1,因此CDP和VTP協定的封包一般都會送到VLAN 1之中。

假設現在要設定編號為3的VLAN,並把這個VLAN的名稱設定為VLAN_KC,則設定指令如下所示:


而標準安裝好的IOS軟體中,這個VLAN的ID範圍只能是1到1005,若是安裝加強版的軟體之後,則這個值的範圍可以是1到4094。

如果一次要設定的VLAN對象有很多,在使用這個指令的同時,後面所接的VLAN ID可以一次輸入多筆,中間只要用逗號分隔即可:


並且,可以一次輸入一個範圍的VLAN ID,如下所示:


VLAN名稱也不一定要指定,如果沒有做這個設定步驟的話,系統會指派一個預設的VLAN名稱,通常是像VLAN3或VLAN0003這樣的值。

指定埠到VLAN之中 

最後一個步驟就是將各個埠指定到這些設定好的VLAN之中。假設要將第一個槽中的第四個埠指派到VLAN 3之中,其設定的指令如下所示:


每一個埠同一個時間只能屬於某一個VLAN,因此,當指派這個埠要到哪個VLAN時,必須使用switchport access指令,而後面接上關鍵字vlan,最後再接上一個VLAN ID,這樣就設定完成了。

如果IOS版本夠新的話,也可以一次設定多個埠,同時指定到同一個VLAN之中,其設定的指令如下所示:


上面這個範例就可以針對1到12這些埠,以及第20個埠同時做設定。如果沒有做最後這個指定埠到VLAN的動作,預設上所有的埠都會被指定到VLAN 1中。

CDP協定設定指令 

CDP(Cisco Discovery Protocol)協定是用來收集Cisco設備的相關資訊,只有Cisco設備適用於CDP協定,其他廠牌都不支援。因此,CDP協定可以提供Cisco Switch、Router或是其他Cisco設備的摘要資訊給直接連接於此設備的其他Cisco設備。

另外,CDP協定只有在Cisco IOS版本為10.3版本以後才有支援,而所擷取的資訊包含:

1. 設備ID
2. 第三層的IP位址清單
3. 埠的ID
4. 所支援的功能列表
5. 硬體平台

其中,設備ID就是設備的名稱,而埠的ID則包含本地端以及遠端的埠名稱,這裡用ASCII格式的字串來表示,例如ethernet0。至於硬體平台則包含硬體型號,例如Cisco 7200 series router。目前最廣泛被使用的是CDP version 2,即CDPv2。

CDPv2可以提供更多硬體的資訊,也提供更具智慧性的硬體資訊追蹤功能,這項功能中包含一個回報機制,這個新的資訊回報機制能夠完成更迅速的資訊追蹤,以便降低收集資訊所需要的時間。

若有錯誤訊息,可以將錯誤訊息送到console端或是記錄到伺服器的檔案內。


開啟/關閉CDP協定的指令 

各個介面上的CDP預設上是開啟的。若要防止其他支援CDP協定的設備來存取某個設備,可以使用以下這個指令:


上面這個指令會關閉整台設備所有介面的CDP協定。若只要關閉某個介面的CDP協定,可以使用以下這個指令:


相反地,若要重新開啟CDP,就只要把no關鍵字拿掉即可,其指令範例如下:


若要單純開啟CDPv2的話,則可以透過下面這個指令來開啟:


如果想關閉CDPv2,只須在cdp advertise-v2之前加上no關鍵字,該指令範例如下:


清除CDP相關資訊的指令

若要清除CDP相關資訊,Cisco IOS提供clear cdp counters和clear cdp table兩個指令來達到這樣的動作。這兩個指令在Cisco IOS版本為10.3以後才有支援。

Clear cdp counters指令的功用是把CDP的traffic counters歸零,歸零之後,可以用show cdp traffic指令來查看是否已經歸零,該指令如下所示:


clear cdp table指令則是用來清除show cdp neighbors指令的相關資訊,這個指令一樣沒有進階參數。以下是執行範例:


清除之後,可以用show cdp neighbors指令來確認是否已經清除。

設定CDP發送頻率

CDP資訊的交換頻率預設為60秒交換一次,而這個設定值是可以透過cdp timer指令來改變。使用方式為cdp timer,後面再接上新的頻率,單位是秒。

因此,若要將交換CDP的頻率改為每隔80秒交換一次的話,其指令如下:


在使用這個指令後,若希望回到預設值,則可執行:


設定最大hold-time值 

若要改變hold-time的最大值,可以透過cdp holdtime指令來設定,這裡所設定的值,代表Cisco設備要在本地端保留其他設備的CDP資訊長達多久的時間,預設值為180秒。

設定方式為cdp holdtime後面接上時間參數,單位是秒。假設要將最大hold-time值設定為300秒,則執行如下的指令:


顯示各種資訊的Show指令 

Show這個指令相當複雜,但也是相當好用,它可用來顯示各式各樣的資訊,是網路管理人員進行Trouble-shooting不可或缺的指令之一。

有一點要記住的是,由於show指令只是純粹用來顯示各種設定值,因此這指令是在User Mode或Privileged Mode底下執行,而不是Global Configuration Mode及其他模式。

底下就來介紹常用的Show指令使用方式。

顯示版本資訊 

若要顯示Cisco Switch設備中的IOS版本資訊,其指令如下:


這就代表目前的Cisco IOS版本為12.1(20)EA1。

顯示正在使用的設定值

show running-config指令可以顯示目前正在使用的設定內容,這個指令必須在Privileged Mode下執行。像之前的IP位址設定、網路遮罩設定和預設閘道設定,都會在這裡顯示出來,其指令如下所示:


顯示開機時會載入的設定值 

這與上面指令的使用目的不同,此處要顯示的是下次Cisco Switch設備開機時會載入的設定值,這個設定值可能與目前正在使用的設定值不同,因為載入之後,管理者可能更改目前正在使用的設定值,而不把設定值存回下次開機時會載入的設定值內,若要顯示下次開機時會載入的設定值,則執行如下的指令:


顯示所有介面的設定值

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


當然,這個指令還可以指定要看哪一種介面的資料,例如只要看Ethernet介面或是FastEthernet介面的資料,或者可以指定某一個埠,相關指令如下:


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

顯示所有VLAN設定值 

若要顯示VLAN設定值,可以使用show vlan指令。指令如下所示: 

由上面的結果可以看出,Fas0/4這個埠被指派到VLAN 3當中,同時也可以看出第三個VLAN的名稱為VLAN_KC。 

顯示單一VLAN設定值 

若只要顯示單一VLAN的設定值,其指令的語法是,show vlan id後面再接上VLAN的ID,就可以顯示指定的這個VLAN的詳細設定值。如果忘記ID,也可以使用show vlan name指令,後面再接上VLAN的名稱。假設要顯示第二個VLAN的相關設定,則指令範例如下所示: 

由以上的輸出結果能夠看出,該指令可以查出有哪些埠已經被指定到這個VLAN之中,以及看出目前這個VLAN是啟動的狀態,還是暫時關閉的狀態。 

顯示VLAN中的STP設定值 

有時為了詳細的Trouble-Shooting,也會需要知道某個VLAN中的STP協定相關設定值,假設想查看第二個VLAN之中的STP設定,則輸入以下的指令: 

經由以上指令,就可以看到VLAN 2的STP設定值,從輸出結果可以發現,Fa0/12埠是這個VLAN的Root Port,此外,還顯示在VLAN 2這個STP中,Root Bridge的Priority值是2,而目前這一台Cisco Switch設備的Priority是32770,同時也可以看出Root Bridge的MAC位址是0008.20fc.a840,而自己這台Cisco Switch設備的MAC位址為0008.a445.9b40,所以這台Cisco Switch並不是這個STP的Root Bridge。 

顯示VTP設定值 

設定完VTP指令之後,接著利用以下這個指令來檢視VTP設定是否成功: 

執行show vtp status指令之後,就會顯示以上這些資訊。其中,VTP Version的值若為1,代表是乙太網路使用的VTP,如果VTP Version為2,則表示是可以給乙太網路以及Token Ring網路使用。但是,即使支援Version 2,也可以選擇是否要運行在Version 2上。由上面這個例子中可以看出VTP V2 Mode的值是Disabled,代表並沒有運行在Version 2上。 

通常在這樣的輸出結果中,最常觀察的值就是VTP Operation Mode和VTP Domain Name,可用來檢視這台Cisco Switch設備是扮演什麼模式,以及檢視目前處於哪一個VTP Domain之中。最多就是再看Configuration Revision,這就是之前所談到的Revision Number,因為這裡把VTP Operation Mode設定成Transparent,為了不讓其他Cisco Switch設備同步到這台設備所設定的VLAN設定值,所以Transparent模式的Configuration Revision都一定是0。 

顯示Switchport相關設定值 

藉由顯示Switchport的相關設定,能夠從中得知Trunk的設定為何,因為Trunk是由Switchport來設定的,但Trunk其實也只是某一種埠的模式。若要顯示Switchport,相關設定指令如下: 

執行上面的指令後,將顯示這個埠關於Switchport的詳細設定。若看到Administrative Mode的值是trunk,代表trunk已經設定成功,而從Administrative Trunking Encapsulation,也可以看出這個埠是使用哪一種Trunking協定。 

顯示Trunk設定值 

若要專門只看trunk的相關設定,可以用下面這樣的指令,這裡假設要看的是第一個模組的第十一個埠的trunk設定值: 

這個指令與前面用來顯示Switchport的指令不同的地方在於,這個指令可以看出這個埠對於Trunk設定的模式,例如是desirable還是auto。

顯示CDP協定設定值 

若要查看CDP的相關資訊,可以用以下這個指令: 

show cdp指令的後面可以接上各種關鍵字以便顯示不同的CDP協定資訊,例如: 

每一種不同的顯示指令,都能顯示出不同種類的輸出結果,以便迅速查到想獲得的資訊。就以Show cdp neighbors這個指令來說,可以取得下面這些資訊: 

1. 鄰近設備的Device ID
2. 本地端的介面
3. Hold-time值,單位是秒
4. 鄰近設備的種類代碼
5. 鄰近設備的硬體平台
6. 鄰近設備的遠端埠ID 

這也是查看CDP資訊中最常被使用的指令。另外,show cdp neighbors指令也可以運用在Cisco Catalyst Switch上用來顯示本地端介面接收CDP的更新資訊。如果在show cdp neighbors指令後面加上detail關鍵字,還可以取得更詳細的資訊,例如顯示鄰近Cisco設備在網路層的位址等等。 

Show cdp entry指令後面可接上Cisco設備ID或是設備的IP位址,代表要顯示那個鄰近設備的相關資訊,當然也可以加上*以便於顯示全部的鄰近設備。其中需要注意的是,show cdp traffic指令在Cisco Catalyst 1900 Switch上並不被支援。第四個show cdp interface指令則會顯示目前傳送CDP的介面狀況。 

顯示連出去的VTY連線 

VTY全名為Virtual Type Terminal。若要顯示所有關於VTY連線的資訊,可使用show sessions指令: 

執行之後,顯示結果如下面範例所示: 

簡單地說,這指令是用來顯示由本地端所連出去的VTY連線,Conn所顯示的*代表最後被使用的連線,也代表當使用者此時按下〔Enter〕後會返回的連線。 

顯示連進來的VTY連線 

若要在10.1.0.3這一台Router上顯示有哪些連到此Router的VTY連線,可透過show users指令來顯示: 

在以上這個範例中,Line欄位代表連進來的介面,con代表console,也就是本地端目前使用者正在使用的登入連線,0是起始編號,vty代表遠端telnet進來的連線,至於vty前面的11,代表的是這個VTY連線的VTY Line Number,並非埠的編號,這點要稍微注意一下。而這裡的*則代表目前使用者正在使用的連線是哪一個。

轉載自《網管人》



沒有留言:

張貼留言