2015年3月14日 星期六

STP(Spanning-Tree Protocol擴張樹協定)

STP主要是用來防止實體線路的迴圈,會從邏輯上刻意block可能產生迴圈的路徑,會產生迴圈有許多因素像是一開始沒有設計好,或者為了要使用備援機制等等,都有可能造成迴圈。

STP的流程
1.選擇Root Bridge(根交換器):是依據每一台的BID(bridge ID)來決定。

STP在每台交換器的連接埠發送彼此的BPDU(Bridge Protocol Data Unit)封包,此封包內有8 bytes BID其中包含兩個值,Bridge Priority和MAC位址,交換器會先比較Bridge Priority數值較小的成為Root Bridge如果一樣則比較MAC位址。



2.選擇Root Port (根連接埠RP):除了Root Bridge以外每台交換器都會有一個RP,它是依據Path cost(路徑成本)來決定,如果相同就去跟另一端的交換器BID和port ID來做比較。

在選擇完Root Bridge後接下來就是分配每個連接埠的角色,總共有三種分別為RP、DP、NDP每一個Port都會被指定一種角色。一開始STP會選擇一個Port當作RP,此為交換器到Root Bridge的最佳路徑,判斷方式則是依據Path cost來比較越小的優先



假設Switch 2為根交換器當Switch 0要選擇RP時就有兩條路徑第一條Switch 0---->Switch 2  cost為19,第二條Switch 0---->Switch 1---->Switch 3---->Switch 2   cost為19+19+19=57,因此就以最小成本的第一條port當作RP其他交換器則依此類推。

3.選擇Designated Port(委任連接埠DP):每一個LAN區段只會有一個DP,如果有兩個要競爭則是選擇最低連接埠成本和BID來決定。
目前剩下的Port通通先假設為DP再來查看一個LAN segment只有一個DP的原則,這時你會發現有一個LAN segment出現了兩個DP,他們會以最小的路徑成本來做比較,Switch 0的cost有兩個分別為19和57,Switch 1的cost都是38,先在開始比較Switch 0最小cost為19,Switch 1最小cost為38因此Switch 0的Fa0/1成為DP。




4.選擇Non-Designated Port(非委任連接埠NDP):剩下的就是NDP此埠會被封鎖。

接下來就是如何手動設定根交換器,設定方法有下列兩種
1.調整BID的值:
指令為spanning-tree vlan 1 priority 20480
在調整BID的數值時要注意必須為4096的倍數
因為在前面有提到BID是由兩個部分組成分別為Bridge Priority和MAC位址



但是在多重Vlan時就無法判別因此就有一種新的STP版本誕生了,就是PVSTP他將Bridge Priority有劃分為4bits與12bits分別表示Bridge Priority和Extend System ID(等於Vlan ID或sys-id-ext),在Bridge Priority的值就只能動到2的12次方以後也就是4096的倍數。


2.直接下spanning-tree vlan X root primary指令

BPDU Guard

設定此功能的介面只要收到BPDU封包就會將介面關閉並呈現error disable那為何要有此功能因為在PC連接交換器時是不可能有迴圈發生的因此也就不需要BPDU。

PortFast
在交換器接PC時是不會有迴圈發生的但是STP還是會檢查因此我們可以使用PortFast來停止STP的運作,當PortFast執行時會掉過學習和傾聽的過程直接重封鎖轉換到轉送,所以PC就可以直接使用網路,而不用等STP運行完畢。

Port State
1.Block(BLK):STP一運作時,port就會進入block,此時並不能傳送資料,只能接收BPDU來確認Root Bridge和Root Bridge ID。

2.Listen(LSN):此狀態port會接收別人的BPDU,和傳送自己的BPDU

3.Learn(LRN):此狀態開始學習MAC,並將其儲存到MAC Table中。

4.Forward(FWD):此狀態表示port已經在可以正常轉送資料,同時也會發送、接收BPDU。

5.Disable:此狀態為停用,通常是由管理者自行關閉。

STP與RSTP比較:

STP(IEEE802.1D)的收斂時間約為30秒因為在Port State轉換需要Timer(計數器),所以收斂時間較長,因此出現了RSTP(Rapid STP IEEE802.1w),在RSTP的Port State轉換是用Proposal and Agreememt(主動協商)所以收斂時間較快。在RSTP Port Role中將NDP用Alternate Port與Backup Port取代。
在RSTP Port State 中將Block、Disable合為Discard(丟棄),Listen、Learn合為Learn(學習)

指令
========================================================================
S1(config)#spanning-tree vlan x priority 20480(將vlan x 的BID調整為20480)
S1(config)#spanning-tree vlan X root primary(將S1的vlan x 設定為根交換器)
S1(config)#spanning-tree vlan X root secondary(將S1的vlan x 設定為備援根交換器)
S1(config)#spanning-tree portfast bpduguard default(將所有的Port啟動BPDU Guard)
S1(config-if)#spanning-tree portfast bpduguard ecable(在某介面啟用BPDU Guard)
S1(config-if)#spanning-tree portfast bpduguard disable(在某介面停用BPDU Guard)
S1(config)#spanning-tree  portfast default(將所有的Port啟動PortFast)
S1#show spanning-tree (顯示STP)
S1#show spanning-tree vlan 5(顯示vlan 5 的STP)

2015年3月6日 星期五

Port-security

在交換器的port安全性上可以設定Port-security來完成,Port-security的功能是將port的可使用mac記錄起來當違反時可以做適當的處理。

記錄方式有三種
1.Static Secure MAC(靜態安全MAC):由管理者手動設置,安全的MAC並將其記錄在Secure MAC Table中。要將以設定的Static Secure MAC清空要使用clear port-securty all指令。

2.Dynamic Secure MAC(動態安全MAC):由交換器自動記錄安全的MAC是採用先到先記錄的方式,在交換器重新啟動後記錄將被移除。

3.Sticky Secure MAC(黏滯安全MAC):由交換器自動記錄安全的MAC是採用先到先記錄的方式,會記錄在Secure MAC Table和run組態檔中,重新啟動後還可繼續使用。

一般來說違反的條件都是以MAC的數量來判斷,如果違反時會有三種方式可以使用。

違反安全MAC處理方法
1.Protect(保護):將接收到的封包直接丟棄
2.Restrict(限制):將封包直接丟棄並將違反的相關資訊記錄起來。
3.Shutdown(關閉):會將此port介面設定為error-disabled,並且發送通知和記錄,要再次啟動此介面時須先shutdown在使用no shutdown。

設定指令
========================================================================
S1(config)#interface fastEthernet 0/1(進入介面0/1設定模式)
S1(config-if)#switchport mode access(設定為存取模式)
S1(config-if)#switchport port-security(啟動port-security)
S1(config-if)#switchport port-security maximun 5(設定安全MAC數量為5)
S1(config-if)#switchport port-security mac-address xxxx.xxxx.xxxx(設定靜態安全MAC為xxxx.xxxx.xxxx)
S1(config-if)#switchport port-security mac-address sticky(設定黏滯安全MAC)
S1(config-if)#switchport port-security violation restrict(當違反安全原則時restrict)
S1(config-if)#switchport port-security violation protect(當違反安全原則時protect)
S1(config-if)#switchport port-security violation shutdown(當違反安全原則時shutdown)
S1#show port-security interface fastEthernet 0/1(顯示fa0/1的port-security)
S1#show mac-address-table(顯示交換器上的MAC table)
S1#show port-securty address(顯示Secure MAC Table)
S1#clear mac-address-table(清除交換器上的MAC table)
S1#clear port-securty all(清除Secure MAC Table)
========================================================================

2015年3月3日 星期二

VTP(Vlan Trunk Protocol)

VTP的主要功能就是將Vlan傳遞出去,在設定交換器的vlan時假設你要設定5台交換器那你就設定5次其實不用這麼麻煩,只要使用VTP就可以自動幫你完成。

交換器的模式有下列三種
1.Client mode:不可自行修改、刪除、建立Vlan只能透過VTP更新封包來完成。

2.Server mode:可以自行修改、刪除、建立Vlan,並會產生VTP更新封包來幫助Client完成更新。

3.Transparent mode:可以自行修改、刪除、建立Vlan,還可幫忙傳遞VTP更新封包,但並不會產生VTP更新封包。

要使用VTP必須符合以下條件

1.交換器之間的連線必須為Trunk模式
2.Domain的名稱必須要相同
3.其中一臺交換器必須為Server模式
4.有設密碼時必須相同

設定指令
========================================================================
S1(config)#vtp mode client(設定vtp為client模式)
S1(config)#vtp mode server(設定vtp為server模式)
S1(config)#vtp mode transparent(設定vtp為transparent模式)
S1(config)#vtp domain aaa(設定vtp domain名稱為aaa)
S1(config)#vtp password bbb(設定vtp 密碼為bbb)
S1#show vtp status(顯示vtp狀態)
S1#show vtp password(顯示vtp 密碼)
========================================================================
VTP Revision號碼
在VTP的狀態內會有一行configuration Revision這個數值越大代表被修改的次數越多,在一般的情況下Client mode是不提供VTP更新封包的,但是當Server mode 的Revision小於Client mode,這時Client就會產生VTP更新封包讓Server更新,也就是說Revision越大VTP資訊就越新,在更新時數值大的會將小的蓋掉,因此防止來路不明的交換器就相當重要。
(要將交換器的configuration Revision歸零只要更改domain名稱,之後再改回來就可以了)