Thursday, May 26, 2011

不錯的網路基本知識

2010年10月26日

DHCP...

DHCP (Dynamic Host Configuration Protocol)
是用來自動取得IP的一種通訊協定
定義在RFC2131 & RFC2132
在switch中有提供兩種DHCP的作法
● DHCP server : 提供client所需的ip
● DHCP relay agent : 將client所送出的dhcp request轉送到網路上(因為DHCP client & DHCP server在不同的broadcast domain), 並且將broadcast的封包轉成unicast的封包

可以依據不同的Relay Agent Information 來分配IP以及做認證的用途 (RFC3046)
Relat Agent Information的資訊加到option82這個DHCP header的欄位中
包含了
> Slot ID(1byte) : 沒有插卡的設備為0
> Port ID(1byte) : DHCP client所接的port
> VLAN ID(2bytes) : DHCP client所屬的vlan
> Information(15bytes) : 可已自行key入的資訊

DHCP relay分為兩種mode
> Global mode : 所有的DHCP request都送到相同的DHCP server
(如果不同的VLAN要assign不同的IP range, 請將option82的選像打開。才會將vlan的資訊送給DHCP server)


> VLAN mode : 收到來自不同VLAN的DHCP request會轉送到不同VLAN的DHCP server (在設定前必須先將每個vlan的IP設好)

2010年7月8日

RIP...

RIP(Routing Information Protocol)
這個protocol是用在layer 3 (IP layer)
用來做router間交換路由資訊的protocol
可以根據不同的domain來做不同的設定

在這邊domain的意思是一個IP layer的網路
像是192.168.1.1/24的網段
這個網段包含的IP從192.168.1.1 ~ 192.168.1.254的網路IP

可以設定兩種資訊
● Direction
》Both:定期的收送並更新routing table
》Incoming:只收來自其他台router的資訊,不送出RIP
》Outgoing:指送routing資訊,不收來自其他router的資訊
》None: 不送也不收routing資訊

● Version:用來控制版本 & broadcast的作法
》RIP-1:version 1基本上就足夠了
》RIP-2B: 比version 1多帶些資訊,用broadcast的方式
》RIP-2M:用multicast的方式

2010年4月14日

Static Route....

手動設定路由的方向
● 要設定destination IP與subnet mask
若是要針對某個IP那subnet mask就設定255.255.255.255
● 設定所要送的gateway IP address
● 設定metric (1 ~ 15)
代表說routing所需的成本
routing的成本代表經過多少個router
一般來說設定2 ~ 3就好了

為什麼要手動設定路由的方向呢?
因為有可能switch上面的default gateway找不到對應的位置
那為什麼default gateway會找不到這些IP呢?
有些是因為安全性的考量
比方說網路管理的server就不會想加入到default gateway中
所以就可以透過手動設定的方式來處理

ARP Table...

ARP(Address Resolution Protocol)
這個通訊協定最主要是用來做IP與MAC之間的對應
ARP Table則是存IP與MAC對應的表
有以下幾個欄位
● IP Address:對應到MAC的IP
● MAC Address:對應到IP的MAC
● VID:MAC所屬的VLAN ID
● Type:是動態學到或是手動設定的
● Age:此筆資料可以存在多久,0代表一直存在

在收到封包之後
switch會先去查這個進來的IP有沒有存在ARP Table中
若是存在則會送到對應MAC的device

若沒有在ARP Table中
那這台switch會broadcast ARP request
將自己的IP&MAC放到source IP與MAC裡面
並將要知道的IP放到destination IP裡面
再將destination MAC設為FF:FF:FF:FF:FF:FF (廣播MAC address)
如果在LAN中有人有對應到此IP的device
就會透過unicast送到剛剛發送的switch
switch就會學到這IP與MAC的對應

如果都沒有人回
此packet就會送給gateway讓它去想辦法了

2010年4月2日

DSCP...

DSCP(Differentiated Service CodePoint)
用來進行QoS(Quality of Service)
讓不同的封包在網路擁塞時有不同的優先權
這個功能主要是用來取代Class of service的功能
因為原先的class of service只有8個等級
DSCP將這個功能擴充到64個不同的priority
比較高的等級在網路擁塞的狀況下
可以有比較好的傳輸品質
由於可以向下相容
這64個priority也都可以對應到COS的8個priority中

接著介紹流量控管的機制
此功能都必須在DSCP下才能作用
● TRTCM (Two Rate Three Color Marker) [RFC2698]
首先些介紹顏色
Red:有很高的機率送不出去
Yellow:有網路擁塞時,則會送不出去
Green:會盡量將此封包送出
分成兩個Rate
CIR (Committed Info Rate):保證的頻寬
PIR (Peak Info Rate):最高的頻寬
分為兩種mode
》Color-blind Mode
基本上不看近來封包的顏色
1.只要網路超過PIR,封包都標為Red
2.如果只超過CIR,封包則標為Yellow
3.如果都沒有超過則為Green
》Color-aware Mode
先看顏色再看目前的頻寬
1.如果進來為Red,則繼續標為Red
2.網路超過PIR,封包都標為Red
3.如果進來為Yellow,則繼續標為Yellow
4.如果超過CIR,封包則標為Yellow
5.若都不符合上述條件則標為Green

2010年4月1日

ACL...

ACL(Access Control List)
是將進來的traffic進行對應的動作
比方說將某特定VLAN進來的traffic都貼上較高的priority
分為兩個主要的步驟
第一是將traffic進行分類(Classifier)
第二是把上述分類的traffic指定到對應的動作(Policy Rule)

● Classifier
這裡的行為主要是將traffic包成一個group
可以針對進來封包的VLAN, priority, Ethernet type, MAC, port來分類
也可以針對layer 3的DSCP, IP protocol, source\destination IP來分類
分類完會放在同一個group中

● Policy Rule
在Classifier分類完封包之後
這裡就是針對上述的group進行對應的動作
→ Forwarding:是否要drop packet或不要drop
→ Priority:是否要換成新的priority
→ DiffServ:是否要換成新的DSCP
→ Outgoing:送出去的packet是否要帶新的VLAN ID,或指定送到某port
→ Metering:在發生網路擁塞時要怎麼處理(drop,換DSCP,...)

關於DSCP請參考此篇

2009年10月5日

Multicast VLAN...

在看這篇文章會建議先看一下Multicast
Multicast VLAN 或 Multicast VLAN Registration
是為了MOD(Media-on-Demand)所設計出來的
一個Multicast VLAN可以將multicast traffic透通到其他的VLAN
如下圖
在switch上面設定multicast vlan 99
則multicast server S的multicast traffic就會送給VLAN 100, 200, 300

這樣可以簡化頻寬的使用與降低multicast group的管理難度
MVR主要會針對IGMP join與leave封包進行處理
至於IGMP report的封包則是交給IGMP snooping

MVR port分為兩種
一種為source port: 可以收送multicast traffic (此port都是接到multicast sever或是multicast router)
一種為receive port: 只能收multicast traffic (此port都是接到用戶端)

MVR分為兩種模式
dynamic(自動):會將IGMP report的封包送到所有的source port,並且自動更新multicast forwarding table
compatible(手動):不會轉送任何的封包,必須手動設定

由下圖來做各設定與流程的範例

MVLAN要設為99並且要設定802.1p的priority (0~7)
在設定的部份port 1 & 2要設為recive port
port 9要設定為source port
最後在multicast group的部份加入
Movie :224.1.3.10 ~ 224.1.3.20
News : 230.3.2.100 ~ 230.3.2.110
以上便大功告成了

如果A user想要看某個電影頻道(224.1.3.15)
A會送IGMP report給switch去join 224.1.3.15的multicast group
IGMP report送到switch之後
switch會去比對MVR的table看是否有match到multicast group
並存到multicast forwarding table
最後透過A user所屬的vlan 100來傳送multicast traffic

如果A user想要換頻道或關機不看了
他會送一個leave的message給switch告知說要離開此頻道
switch會送query的message給port 1
如果還有其他的人在此port要收看的則會繼續送multicast封包
如果沒有別人在此port要收看了switch會將此port給移除

PS:一個port能屬於多個mulitcast VLAN但是multicast group不能有overlap

2009年3月31日

Layer 2 Switch...

寫了一大堆的Layer 2 Switch的功能
卻沒有做較完整的概論
希望能在這篇有個大致的輪廓...

首先要介紹的是
為什麼要用Switch而不用hub?
這就要提到Ethernet Network的原罪了
因為Ethernet是採用CSMA/CD的方式傳輸
在網路設備要傳輸前會偵測網路的使用狀況(碰撞偵測)
如果有別的設備在傳輸
則會等一段時間在試著傳輸
若太多的網路設備都在同一個網路上面的話
就會常常要等待
這樣的一個網路區域通常稱為"碰撞領域"(collision domain)
hub只會將碰撞領域變大
而switch可以切割碰撞領域
所以用switch可以增加網路使用的效能

如果要增加Ethernet的頻寬使用率
必須要減少一些不需要的封包在網路上傳送
以下將功能大致分為三類
減少網路流量、增加網路頻寬、安全與偵錯

● 減少網路流量
首先要介紹switch最主要的功能
802.1d (bridge behavior)
主要是介紹如何自動學習MAC以及轉送frame
在這邊可以參考MAC Table以及Static MAC forwarding
並且透過port security來設定MAC forwarding的作法
也可以透過filtering的功能來限制traffic的數量
除了這點之外還要避免"迴圈"的發生
迴圈會導致broadcast strom(廣播風暴)
在這邊可以參考RSTP
但是RSTP只能有一隻tree於是有了MRSTP(這不是在standard裡面)
而且RSTP無法解決不同VLAN可以有不同tree的問題
於是有了MSTP(802.1s)
而且為了避免edge端的loop產生
於是有了Loop Guard的功能

為了減少一些不必要的資料在網路上傳送
於是產生了VLAN(802.1q)的概念
並且衍伸了
Protocol based VLAN (根據protocol來切VLAN)
Port based VLAN (根據對應的port來區分traffic)
Subnet based VLAN (根據IP range來切VLAN)


● 增加網路頻寬
如果頻寬不夠的話
在802.3ad定義了link Aggregation
就是可以將多個實體的port綁成一個邏輯上的port
那個port有更高速的頻寬跟容錯的機制

而在802.1p則是定義了Ethernet的priority以及Multicats的運作
在priority的部份可以參考Queue Method
在Multicast的部份可以參考GARP以及Static Multicast Forwarding

在802.3x也定義了flow control的部份
可以參考broadcast strom control以及bandwidth control


● 安全與偵錯
在switch的認證與安全的部份定義了802.1x
可以參考AAAPort Authentication
在tunneling(VPN)的部分有802.1ad (Q-in-Q)
可以參考Layer 2 Protocol TunnelingVLAN StackingVLAN Mapping

之前最為大家所詬病的Fault Management
也在最近有了802.1ag CFM
Mirroring真的不知道要放在哪裡
就先在這邊借放一下啦...

2009年3月25日

Static Multicast Forwarding...

就是手動設定要將Multicast MAC的frame
送到某個VLAN的某些port

IGMP Snooping與Static Multicast Forwarding的關係
有點類似MAC Table裡面的
Address Learning跟Static MAC Forwarding的關係
IGMP Snooping會自動學習
並且把對應的Multicast Packet送到適合的port
而Static Multicast Forwarding就是
手動指定Multicast Packet送到指定的port

這邊有個比較特殊的地方要做說明的
那就是關於Multicast MAC Address
在Layer 3的Multicast IP為Class D
224.0.0.0 ~ 239.255.255.255
而在Layer 2的Multicast MAC
必須為01:00:5E開頭的(這六碼通常稱為OUI)
所以Multicast MAC Address的範圍為
01:00:5E:00:00:00 ~ 01:00:5E:7F:FF:FF

如果眼尖的人會發現
為什麼不是
01:00:5E:00:00:00 ~ 01:00:5E:FF:FF:FF
因為這好像是standard定義的
如果要將Multicast IP轉為Multicast MAC
就只能針對後面的23個bits進行轉換
下面做個簡單的範例

如果想將224.10.0.1轉成Multicast MAC的話
先轉成2進位11100000.00001010.00000000.00000001
再針對最後面23個bit進行轉換
0001010.00000000.00000001 = 0a:00:01
在將前面帶入01:00:5E
所以224.10.0.1的Multicast就會成為01:00:5E:0a:00:01
因為只有針對後面的23個bit進行轉換
所以以下的Multicast IP都會被轉成01:00:5E:0a:00:01
224.10.0.1、224.138.0.1
225.10.0.1、225.138.0.1
226.10.0.1、226.138.0.1
227.10.0.1、227.138.0.1
228.10.0.1、228.138.0.1
229.10.0.1、229.138.0.1
230.10.0.1、230.138.0.1
231.10.0.1、231.138.0.1
232.10.0.1、232.138.0.1
233.10.0.1、233.138.0.1
234.10.0.1、234.138.0.1
235.10.0.1、235.138.0.1
236.10.0.1、236.138.0.1
237.10.0.1、237.138.0.1
238.10.0.1、238.138.0.1
239.10.0.1、239.138.0.1
一共32個Multicast IP會轉成相同的Multicast MAC

PS: 至於為什麼是23個bit,請參考此篇

2009年3月24日

Multicast...(IGMP)

在IP packet的傳送方式中
主要分為兩類:unicast以及broadcast
unicast就是 一送一收
broadcast就是 一送全收
而multicast就是 一送群組收
以上翻的很爛...但是就差不多意思啦

在提到了Multicast時
必須要提到IGMP (Internet Group Management Protocol)
主要是用來定義如何在Layer 3建立multicast group
這個protocol不是用來傳送資料用的
專門用來建立multicast群組

之前學過網路的人一定知道
D class(224.0.0.0 ~ 239.255.255.255)是用來做multicast group
所以說如果
A的PC(IP為172.23.23.1)加入multicast group 224.0.0.1
B的PC(IP為172.23.123.1)加入multicast group 224.0.0.1
C的PC(IP為172.23.23.2)加入multicast group 224.0.0.2
而A的PC在做multicast只會傳給B的PC
特地將IP寫出來的意思是說IP是電腦的地址
而multicast group的address是群組的名稱
有點類似A以及B的PC都加入天道盟
而C加入竹聯幫的意思

IGMP Filter Profile指的是說
Switch可以收到哪些的multicast的group
如果設定IGMP Filter Profile (224.0.0.0 ~ 225.0.0.0)
那233.0.0.1的multicast的packet就會被這台switch捨棄掉

在來提一下IGMP Snooping
Snooping就是刺探的意思
但我覺得在這邊翻譯成"偷偷學"比較好

比方說port 3送了一個Join multicast 224.0.0.1的封包到switch
switch就偷偷地學起來
等到從port 5收到multicast 224.0.0.1的封包時
就知道只要傳給port 3就好了
不用傳給別的port
透過IGMP snooping就不需要手動設定了
而且也不會送到其他不屬於這個multicast group的port
減少封包傳遞的數量

而且每個VLAN都可以有自己的multicast group
所以IGMP snooping最多可以support到16個VLAN
所以VLAN 100有multicast group 224.0.0.100
VLAN 200也可以有multicast group 224.0.0.100
IGMP snooping有分為兩種mode
● auto
自動從任何vlan學multicast group
直到學滿16個VLAN就不再學了
● fixed
只會由手動建的vlan學multicast group

每台Device需要設定
● IGMP Snooping
用來決定是否要開啟IGMP snooping的功能
● Querier
讓這台switch可以送querier的封包給對應的port
● Host Timeout
多久沒有收到report message
就將此port從某個multicast group移除
● 802.1p Priority
出去的IGMP control packet要轉貼成什麼樣的priority
● Unknown Multicast Frame
如果收到未知的multicast frame要採取什麼樣的作法
可以選擇Drop或Flooding
● Reserved Mulitcast Group
224.0.0.0 ~ 224.0.0.255是用來保留給
local network使用的multicast group
如果收到這個domain的frame要採取什麼樣的作法
可以選擇Drop或Flooding

每個Port需要設定
● Immed. Leave
當一收到leave message的封包時
馬上將這個port從那個multicast group移除
● Normal Leave
在某一個port要離開某個multicast group時,會送出一個leave的msg
switch收到之後會送出一個query的msg,然後等依段時間
如是有收到join的msg則會繼續送資料
若沒有收到則從switch中刪掉
● Fast Leave

● Group Limited & Max Group number
限制這個port最多可以加入幾個multicast group
如果超過的multicast group的數量
就由Throttling來決定處裡的方式
● Throttling
如果超過某個port最多的multicast group的數量
可以選擇捨棄掉新的multicast group (deny)
或是將舊的multicast group給取代掉 (replace)
● IGMP Filtering Profile
選擇這個port的可以允許的multicast group
如果multicast group不屬於IGMP Filtering Profile
就不會進到此port
● IGMP Querier Mode
當此port收到query message的作法
選擇Auto時
如果一收到query message就會成為query port
選擇Fixed時
不管如何都會成為query port
選擇Edge時
不管如何都不會成為query port

PS:目前IGMP的版本到v3
IGMP-v1:只有query和report的封包,要等到timeout才會leave
IGMP-v2:加入了leave的封包
IGMP-v3:加入了source filter的功能,host端可以決定要收到來自哪些source來的IGMP封包

2009年3月23日

GARP...

Generic Attribute Registration Protocol(GARP)
簡單來說
就是在網路上用來自動註冊或撤銷某些attribute
並將這些attribute傳送到整個網路
而attribute有VID或Multicast Group
使用VID當attribute的protocol就是GVRP
使用Multicast Group當attribute的protocol就是GMRP

GARP有三種不同的Message
● Join:用來註冊attribute (設備主動送出)
● Leave:用來註銷attribute (設備主動送出)
● Leave All:在固定時間註銷所有的attribute (Switch在固定時間註銷)

GARP也要設定三種不同的Timer
● Join Timer
實際上Join Message會送兩次
若第一次送出之後沒有回應
會再等Join Timer的時間之後
再送出第二次
● Leave Timer
在收到Leave Message之後
Switch會等待Leaver Timer的時間
若在這中間有收到Join Message
則會保留此attribute
若沒有收到Join Message
則再將此attribute刪除
● Leave All Timer
當GARP啟動之後
Leave All Timer就會開始倒數
在timer結束之後
會送Leave All Message給其他Device
所有的Device要重新註冊

PS:GARP不會單獨存在,一定要有GVRP或GMRP

2009年3月5日

AAA...

AAA是三個英文的縮寫
● Authentication(認證)
確認User是否可以存取Switch
● Authorization(授權)
User可以使用哪些的功能
● Accounting(紀錄)
User用過哪些功能的紀錄


如果有一台Server提供上述的功能
就可以稱為AAA Server
目前Switch所support的AAA Server有
● RADUIS (Remote Authentication Dial-In User Service)
用UDP的Protocol
只會對密碼的部份做加密
其他的資料都不會加密
● TACACS+ (Terminal Access Controller Access Control System Plus)
用TCP的Protocol
所有傳輸的資訊都會做加密的動作

RADIUS以及TACACS+都需要設定以下的資訊
● Mode
有兩種Mode:index-priority & round-robin
index-priority是如果發現第一台Server掛了
再用第二台Server做認證
round-robin是輪流使用第一台以及第二台Server
● Timeout
等待Server回應的時間
若選擇index-priority的模式
則每台Server各分到一半的時間
● Server IP
RADIUS以及TACACS+ Server的IP Address
● UDP/TCP Port
在Authentication的部份
RADIUS Server用UDP Port 1812
TACACS+ Server用TCP Port 49
在Accounting的部份
RADIUS server用UDP Port 1813
TACACS+ Server用TCP Port 49
● Shared Serect
存在Switch上面的密碼
並不會傳出網路
所以要跟遠端AAA Server相同
才可以進行認證

2009年3月4日

Port Authentication...

利用RADIUS(Remote Authentication Dial In User Service) Server
來認證合法的使用者
如果User通過RADIUS的認證
就可以透過此Port來存取網路
若沒有通過認證
這台電腦就無法存取網路

Port Authentication分為兩種的作法
● IEEE 802.1x Authentication
就是採用user name以及password來進行認證
以下是認證的流程

每個Port都可以設定使否要重新認證
以及多久重新認證一次

● MAC Authentication
用連上電腦的MAC以及switch所給定的password做認證
認證流程如下

每台Switch都需要設定一組Password
跟著MAC一起送過去給RADIUS Server
每台Switch也可以設定Name Prefix
帶在MAC的後面
比方說
MAC是00:19:CB:12:34:56
Name Prefix是123
則送到RADIUS的MAC就是0019CB123456123
還有一個timeout要設定
如果有一台PC的MAC authentication失敗
在Switch的MAC Table中就會被視為無法存取網路
timeout是指在多久會從MAC Table將這筆清掉
如果設定timout = 0的話
這筆MAC就永遠無法存取網路了

PS:關於設定RADIUS的部份
請參考AAA(還沒寫...)

2009年3月3日

Port Security...

Port Security只能允許
透過動態學到MAC以及User手動設定的MAC的frame
可以經由那個port進出
簡單來說
就是如果MAC Table有這筆MAC
才會送到對應的Port
如果沒有就不會送出了

每個Port都可以設定是否開啟Port Security的功能
並且決定要不要有Address Learning的功能
基本上預設是會將此功能打開的
也可以設定每個Port所能學到的MAC數量

除了上述的功能
在Port Security裡面
有一個MAC Freeze的功能
這項功能是將某個Port的學到的MAC
轉成Static MAC Forwarding的資料
再將Address learning的功能關掉

PS:
最高等級的Port Security是將Port security打開
並且關掉Address Learning
然後要通過這個Port的frame
只能用手動的設定
PS2:
如果同時關掉Port Security以及Address Learning
會造成大量的廣播封包

2009年3月2日

MAC Table...

這個table是Switch在轉送frame參考的表
記錄著某個MAC
從哪個VLAN、Port學到的
並且是Dynamic(Switch自動學到)
或是Static(User從Static MAC Forwarding設定)

MAC Table的運作方式下:
1.當收到一個frame時
Switch會將這個frame的source MAC
記錄到MAC Table中

2.接著將看這個frame的destination MAC
看看是否有在MAC Table中出現
A.如果在MAC Table中出現
則Switch會將這個frame從那個Port送出去
B.如果沒有在MAC Table中出現
則Switch會將這個frame送到所有的Port
C.如果在MAC Table中出現
但是在跟進來同一個port時
則Switch會將這個frame丟掉


2009年2月26日

Layer 2 Protocol Tunneling...

這個功能主要用在edge Switch
當edge Switch啟動了這項功能之後
edge Switch可以將Layer 2 Protocol (STP, CDP, VTP)
經過Core Network傳送到另一台edge Switch
並不會影響到中間的Layer 2 Protocol


在edge Switch C & D開啟L2PT(Layer 2 Protocol Tunneling)
這樣Switch A & B & E的STP就可以互通
而不會影響到Service Provider Network的STP

Edge Switch會將這些Layer 2 Protocol封裝成特定的MAC
然後再送到Service Provider Network出去

除了上述的Layer 2 Protocol之外
還有些point-to-point的layer 2 protocol
像是PAGP、LACP、UDLD等等
可以透過L2PT將遠端的Port做trunking

在Edge Switch的Port分為
● Tunnel Port
連接Service Provider Network的Port
負責將封裝後的frame送到Service Provider Network
在收到從外面來的frame之後
將frame解開並傳送給Access Port
這種Port並不可以設定要送什麼樣Layer 2 Protocol的frame

● Access Port
連接用戶端網路的Port
負責把來自用戶端的frame封裝
並送到Tunnel Port
可以設定要送什麼樣的Layer 2 Protocol的frame到Tunnel Port

PS:以下都是Cisco自己的Protcol
● CDP (Cisco Discovery Protocol)
用來告知周圍的Device關於自己的資訊
● VTP (VLAN Trunking Protocol)
用來傳送和同步VLAN的資訊
● PAGP (Port Aggregation Protocol)
類似LACP,將多個Port綁成一個Port
● UDLD (Uni-Directional Link Direction)
用來查測實體連線的狀態

2009年2月25日

Loop Guard

Loop Guard就是在edge Network避免loop的發生
而STP用在core Network避免loop的發生


而且STP無法解決
一台Switch同時有兩個Port被一條網路接起來的loop
這時就可以用loop guard去處理

在Device A會先發probe packet給Device B
若又從同一個收到相同的probe packet
就代表產生Loop了
所以Device A就會將連到Device B的port關掉
這樣就不會有broadcast storm
但是所有的封包都過不來了
所以在處理完loop的問題之後
要記得將Device A的port打開
要不然仍然連不到Device B


若像上圖一樣
從Device A的Port N送出probe packet
從Device A的Port M收到
雖然是不同Port收到
但是仍會造成loop
所以loop guard依舊會把Device A的Port N關掉




2009年2月18日

MSTP....

為什麼要出現MSTP呢?
因為STP/RSTP出現下面的問題

若有兩台Device對接
VLAN 1走下面這條link,VLAN 2走上面這條link
在開啟RSTP之後
VLAN 2就不通了
所以MSTP要解決這個問題
並且可以向下相容STP/RSTP

為了解決上述的問題
1. 所以每一個VLAN都必須要有自己的STP
它透過兩個概念來完成 (MST Region、MST Instance)
● MST Region

多台Switch組成一個MST Region
從外面看MST Region就是一台Switch
每一台Switch只能加入一個MST Region
同一個Region的Switch會有相同的Region Name、Revision Level、VLAN對MSTI的mapping

● MST Instance (MSTI)
簡單來說MSTI就是在MST Region中的STP
每一個MSTI就是一隻STP
MSTI在Region中是unique,MSTI的運作範圍僅在Region中
多個VLAN可以mapping到同一個MSTI上
一個VLAN只能mapping到一個MSTI

如上圖VLAN 100會走MSTI 1的路徑
而VLAN 200會走MSTI 2的路徑

2. 向下相容STP/RSTP
在MSTI=0的那筆為Common and Internal Spanning Tree(CIST)
CIST是用來負責整個網路的STP
以及負責各MST Region之間的STP
若有不屬於MSTI的VLAN就由CIST來處理


在設定的部份
每台Switch都必須設定跟RSTP一樣的項目
像是Hello Time、Max Age、Forward Delay(請參考STP/RSTP)
也要設定關於MST Region的相關資訊
●Max Hops
BPDU最多通過多少台device就要丟掉
●Configuration Name
就是MST Region的Name
若要在同一個Region中
此名稱一定要相同
●Revision Number
就是MST Region的Revision Level
若要在同一個Region中
此Number一定要相同

每個MSTI都要設定以下的資訊
●Instance
一台Swicth有0~16的MSTI (0是用在CIST上)
●Bridge Priority
當MSTI=0時就是用在跟其他的RSTP溝通用的
●VLAN Range
要加入此MSTI的VLAN Range
一個VLAN只能加入一個MSTI
一個MSTI可以有多個VLAN
●Port (Priority、Path Cost)
(請參考STP/RSTP)

2009年1月13日

MRSTP...

Multiple RSTP(MRSTP)
不是屬於standard的一種STP
是指一台switch中可以同時存在多個STP
彼此間不會相互影響


最上面那一台switch有兩個RSTP
各有不同的port join
彼此間有不同的 Hello Time, Max Age, Forwarding Delay
MRSTP的設定與RSTP相同
只是需要設定多設定幾次
因為每個MRSTP都可以設定不同的參數
RSTP的設定可以參考這篇

2009年1月12日

STP/RSTP...

避免網路上發生loop的狀況
並且提供備援的線路
最簡單的來說
每兩台switch之間都只會有一條路徑

綠色的就是STP所找出的路徑
紅色的就是被阻斷的路徑(避免loop)

RSTP是快速收斂的STP
原本STP需要到30秒才可以收斂
RSTP僅需不到1秒就可以收斂
在STP中topology的轉換
需要透過root bridge統一發布
在RSTP中topology的轉換
device可以直接傳給其他的device

每台Device需設定
● Bridge Priority
用來決定哪個switch為root bridge
值越小Priority越高
如果權限相同比較MAC
所以Bridge ID = Bridge Priority + MAC
root bridge可以決定
整個Network的Hello Time、Max Age、Forwarding Delay
● Hello Time
送出BPDU的間隔(1~10秒)
由root bridge所送出
● Max Age
持續收不到BPDU的時間(6 ~ 40秒)
如果持續收不到BPDU超過這個時間
就會重新建立STP
● Forwarding Delay
等待topology change的時間(4 ~ 30秒)
每台switch必須在topology change之後
才能進行frame的傳送

每個port需設定
● Priority
在發生loop時
值越大的越容易被block
值越小,Priority越高
● Path Cost
傳送frame的成本
傳送速度越快值越小(成本越低)
1G=4、100M=19、10M=100

PS:2*(Forward-1) >= Max Age >= 2*(Hello Time)

No comments:

Post a Comment