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)

優先權-IEEE802.1p V.S. VLAN-IEEE802.1Q

(轉:http://drupal.morezman.com/?q=node/29)

(轉:http://drupal.morezman.com/?q=node/28)

優先權-IEEE802.1p

蝦米係IEEE802.1p
過去的網路上面跑的東東
資料非常單純
流量也不大
可是今天的網路號稱多媒體網路
上面可能跑資料/語音/影像/動畫.....
企業重要的ERP在上面跑
你老哥下載的A級電影也在上面跑
這時候問題來了
這麼多的東東跑來跑去互相影響
到底誰該先跑呢
這時候優先權的概念就出來了
按照各自的優先權等級走 就不會混亂了
一般我們在用網路的時候
MAIL晚個2分鐘收到 你可能毫無知覺
但是VOIP講網路電話或收看線上電影時
每句對話或每個畫面DELAY個10秒可能就進行不下去了
從這兒我們了解到對時間敏感的封包應該給予高優先權
另外像是剛剛提到的ERP這種企業營運的命脈
重要性非比小可當然也要給予高的優先權
至於實務運作上什麼該高什麼該低
端看你實際的環境而定 沒有標準答案
由於實務環境有這個需求
於是偉大的IEEE就定了一個標準
讓各家廠商遵循 不至於發生不相容的情形
這個標準就叫做IEEE 802.1p
IEEE802.1p的運作原理

從上面這張圖我們可以很清楚看到
在正常封包格式中加入一個4 BYTES 的 TAG CONTROL INFO
叫做802.3ac標籤格式
在這個 4 BYTES的TAG中
前面 2 BYTES固定是 8100h
這個用意是告訴所有的網路設備
1.我是一個具備802.3ac標籤格式的封包
不是一個不標準的封包
請不要拋棄我
2.我是一個帶有802.1p/Q資訊的封包
請來讀相關的資訊並且根據設定的資訊辦事
看不懂8100h會把封包當不正常封包丟掉的設備就是不相容不支援802.1p/Q
看的懂8100h不會丟封包但卻不會照資訊辦事的網路設備就是相容802.1p/Q
看的懂8100h不會丟封包也會照資訊辦事的網路設備就是支援802.1p/Q
會特別寫出第2行的相容是因為在當初標準剛出來時
有些過渡性的產品就是這樣亂搞的
接下來我們來看後面 2 個 BYTES
前面 3 個 bits就是放IEEE802.1p設定資訊的地方
大家都知道 2 的 3 次方是 8
所以這裡總共可以表現出0-7共八個優先權等級
於是封包之間的優先權就被區分出來

當優先權被區分出來時
就要靠網路設備上的佇列來實現先後的順序
以上面這張圖為例
網路卡上有2個佇列
當封包內的802.1p資訊設定為0-3時就走一般佇列
當封包內的802.1p資訊設定為4-7時就走高優先權佇列
一般的網路設備都會有2個/4個/8個佇列就是為了實現這八個優先權等級
看到這兒各位看倌應該就了解整個IEEE802.1p的運作原理吧

IEEE 802.1P:有關流量優先等級的 LAN 第二層 QoS/CoS 協定

  IEEE 802.1P 規範使得第二層交換機能夠提供流量優先級和動態組播過濾服務。優先級規範工作在媒體訪問控制(MAC)幀層(OSI 參考模型第二層)。802.1P 標準也提供了組播流量過濾功能,以確保該流量不超出第二層交換網路範圍。
   802.1P 協定標頭包括一個3位優先級字段,該字段支援將資料封包分組為各種流量種類。IEEE 極力推薦網路管理員實施這些流量種類,但它並不要求強制使用。流量種類也可以定義為第二層服務質量(QoS)或服務類(CoS),並且在網路適配器和交換 機上實現,而不需要任何預留設置。802.1P 流量被簡單分類併發送至目的地,而沒有頻寬預留機制。
   802.1P 是 IEEE 802.1Q (VLAN 標籤技術)標準的擴充協定,它們協同工作。IEEE 802.1Q 標準定義了為以太網 MAC 資料框添加的標籤。VLAN 標籤有兩部分:VLAN ID (12位元)和優先級(3位元)。 IEEE 802.1Q VLAN 標準中沒有定義和使用優先級字段,而 802.1P 中則定義了該字段。
  802.1P 中定義的優先級有8種。儘管網路管理員必須決定實際的映射情況,但 IEEE 仍作了大量建議。最高優先級為7,應用於關鍵性網路流量,如路由選擇信息協議(RIP)和開放最短路徑優先(OSPF)協定的路由表更新。優先級6和5主 要用於延遲敏感(delay-sensitive)應用程序,如交談式視訊頻寬和語音。優先級4到1主要用於受控負載(controlled-load)應用 程序,如影音串流式多媒體(streaming multimedia)和關鍵性業務流量(business-critical traffic) - 例如,SAP 資料 - 以及 "loss eligible" 流量。優先級0是預設值,並在沒有設置其它優先級值的情況下自動啟用。
協定結構
  以太網中的 IEEE 802.1Q 標籤資料框格式 - 在以太網(802.3)資料框基礎上修訂而成:

7 1 6 6 2 2 2 42-1496 bytes 4 bytes
Preamble SFD DA SA TPID TCI Type Length Data CRC

  • Preamble(Pre) - 7字節。Pre 字段中1和0交互使用,接收站通過該字段知道導入資料框,並且該字段提供了同步化接收實體層資料框接收部分和導入位元流的方法。
  • Start-of-Frame Delimiter(SFD) - 1字節。字段中1和0交互使用,結尾是兩個連續的1,表示下一位是利用目的地址的重複使用字節的重複使用位
  • Destination Address(DA) - 6字節。DA 字段用於識別需要接收資料框的站。
  • Source Addresses(SA) - 6字節。SA 字段用於識別發送資料框的站。
  • TPID - 值為8100(hex)。當資料框中的 EtherType 也為8100時,該資料框傳送標籤 IEEE 802.1Q/802.1P。
  • TCI - 標籤控制訊息字段,包括使用者優先級(User Priority)、規範格式指示器(Canonical Format Indicator)和 VLAN ID。

3 1 12 bits
User Priority CFI Bits of VLAN ID (VIDI) to identify possible VLANs

    • User Priority:定義用戶優先級,包括8個(23)優先級別。IEEE 802.1P 為3位元的用戶優先級位定義了操作。
    • CFI:以太網交換機中,規範格式指示器總被設置為0。由於兼容特性,CFI 常用於以太網類網路和令牌環類網路之間,如果在以太網路端口接收的資料框具有 CFI,那麼設置為1,表示該資料框不進行轉發,這是因為以太網端口是一個無標籤端口。
    • VID: VLAN ID 是對 VLAN 的識別字段,在標準 802.1Q 中常被使用。該字段為12位。支持4096(212) VLAN 的識別。在4096可能的 VID 中,VID=0 用於識別幀優先級。 4095(FFF)作為預留值,所以 VLAN 配置的最大可能值為4,094。
  • Length/Type - 2字節。如果是採用可選格式組成幀結構時,該字段既表示包含在資料框資料字段中的 MAC 客戶機數據大小,也表示資料框類型 ID。
  • Data - 是一組 n(46=< n =<1500)字節的任意值序列。資料框總值最小為64字節。
  • Frame Check Sequence(FCS) - 4字節。該序列包括32位的循環冗餘校驗(CRC)值,由發送 MAC 方生成,通過接收 MAC 方進行計算得出以校驗被破壞的資料框。

相關協定 IEEE 802.2、802.3、802.1D、802.1Q
組織來源 802.1P 是一種 IEEE(http://www.ieee.org協議。
相關鏈結 http://standards.ieee.org/getieee802/download/802.1Q-1998.pdf: IEEE 802.1Q Standard



VLAN-IEEE802.1Q

蝦米係IEEE802.1Q
過去的古老年代要實現分國的目的
都必須靠實體網路架構去分割
但是在實務應用上卻很難靠實體架構分割就能滿足分國的需求
後來廠商發現這個需求很重要
於是各家廠商紛紛開發所謂的BY PORT/BY MAC/BY PROTOCAL之類的VLAN分國功能
VLAN就是Virtual LAN
簡單的說就是將你的實體網路切割成一塊一塊虛擬的邏輯網路
靠著這些廠商的VLAN功能於是解決了大部份客戶的分國需求
但是一再提到的相容性問題又來了
因為是各家廠商各自開發的功能
所以你必須統一使用同一家廠牌的網路設備
萬一你有不同的品牌那就很抱歉玩不下去了
於是IEEE又訂定了IEEE802.1Q這個VLAN的標準
讓各家廠牌可以遵循
於是使用聯合國廠牌設備的你也可以享受VLAN的好處了
IEEE802.1Q的好處
  • 限制廣播風暴
  • 安全性
  • 具有移動和改變的彈性而不需大費周章設定
  • 建置成本低廉
  • 各廠牌相容性一致
  • 不管實體位置如何可以照你的想法任意建置邏輯的分國
IEEE802.1Q的運作原理

從上面這張圖我們可以很清楚看到
在正常封包格式中加入一個4 BYTES 的 TAG CONTROL INFO
叫做802.3ac標籤格式
在這個 4 BYTES的TAG中
前面 2 BYTES固定是 8100h
這個用意是告訴所有的網路設備
1.我是一個具備802.3ac標籤格式的封包
不是一個不標準的封包
請不要拋棄我
2.我是一個帶有802.1p/Q資訊的封包
請來讀相關的資訊並且根據設定的資訊辦事
接下來我們來看後面 2 個 BYTES( 16 bits)
前面 3 個 bits就是放IEEE802.1p設定資訊的地方
前一章已經介紹過了
第 4 個bit是Canonical固定設定成0
後面 12 bits就是 802.1Q VLAN Identifier
所以當支援IEEE802.1Q的網路設備讀到這部份
就知道如何去分國了

Tuesday, May 24, 2011

Authentication vs. Authorization vs. Identification

(轉: http://2010end.blogspot.com/2010/12/authentication-vs-authorization.html)

Authentication 鑒別

判斷使用者是不是他所宣稱的那個人,
如帳號密碼機制,是基於帳號密碼為只有本人跟系統本身才知道的 shared secret,所以只要可以正確輸入密碼,系統就可判斷使用者為這個帳號所代表的人物。
主要回答這些問題: 
  • Who is the user?
  • Is the user really who he/she represents himself to be?
Authorization 授權
判斷當前使用者所擁有對系統資源存取的權限(等級),例如會員登入後擁有讀寫資源的權力,而訪客只有讀的權力。
主要回答這些問題: 
  • Is user X authorized to access resource R?
  • Is user X authorized to perform operation P?
  • Is user X authorized to perform operation P on resource R?
Identification 識別
判斷使用者是誰,Identification必須是獨一無二的,才能正確的分辨出每個人。

主要回答這些問題: 
  • Who is the user?

上面三者的關係:
系統要知道某個使用者對系統資源的存取權力,包含三個部分
  1. 使用者告訴系統他是誰(Identification 機制)。
    • 例:輸入ID
  2. 系統判斷使用者是否真的是他宣稱的那個人(Authentication 機制)
    • 例:輸入Password
  3. 系統根據該帳號所擁有的權限驗証該使用者(Auorization 機制)
    • 例:系統判斷該使用者為會員,給予讀及寫的權利
參考來源:
http://www.duke.edu/~rob/kerberos/authvauth.html http://tw.18dao.net/%E9%9B%BB%E8%85%A6%E8%A9%9E%E5%85%B8/%E9%91%92%E5%88%A5%E8%88%87%E6%8E%88%E6%AC%8A_Authentication_and_Authorization
http://www.sos.cs.ru.nl/applications/courses/security2008/nistiadraft.pdf

Wi-Fi無線網路的認證與加密方式簡介

Wi-Fi無線網路的認證與加密方式簡介

轉:http://mic1491.pixnet.net/blog/post/30237227

  Wi-Fi (IEEE 802.11b, IEEE 802.11g, IEEE 802.11n)無線網路的認證與加密方式,有Open System, WEP, WPA, WPA2, MAC ACL, Web Redirection幾種。

  所謂「認證(Authentication)」,就是用來確定無線上網者的身分,身分可以是使用者的帳號/密碼數位憑證(Digital Certificate)、或是無線網卡的MAC (Media Access Control)位址,MAC位址也可稱為實體位址(Physical Address)。在Windows中,打開「命令提示字元」,輸入ipconfig /all,再按下Enter,就可以看到網卡的Physical Address,例如00-0C-6E-10-AD-7F。

  所謂「加密(Encryption)」,就是網路封包(Packet)資料在空氣中無線傳輸時,被加密鎖碼(Encrypted)保護,因此就算有第三者截聽到封包,也無法解譯出裡面的資料內容。
無線網路啟用認証,以確定連上無線基地台的人,都是合法的無線網路使用者,來防止無線網路遭人盜用。無線網路啟用加密,以防止在空氣中傳輸的資料,被人竊聽。
以下進一步解釋無線網路的幾種認証與加密方式:
    Open System: 完全不認證也不加密,任何人都可以連到無線基地台使用網路。採取這種方式,大多對無線網路安全性的問題不了解、不在意,或是不知道如何設定無線基地台與筆記型電腦。
    WEP (Wired Equivalent Privacy): 無線網路基地台設定有 WEP金鑰(Key),筆記型電腦也必須設定相同的WEP Key,才可以連上無線基地台。WEP可以用在認證或是加密,例如認證使用Open System,而加密使用WEP;或者認証與加密都使用WEP。WEP加密現在已經有軟體可以輕易破解,因此不是很安全。
    WPA (Wi-Fi Protected Access): 由Wi-Fi Alliance (http://www.wi-fi.com/)所提出的無線安全標準,有分成家用的WPA-PSK (Pre-Shared Key)與企業用的IEEE 802.1x Port-Based Network Access Control版 本。WPA-PSK的設定方式與WEP相同,無線基地台與筆記型電腦必須設定相同的Key,電腦才可以連入基地台。因為WPA-PSK運用了TKIP (Temporal Key Integrity Protocol)技術,因此比WEP難被破解而更加安全。採用IEEE 802.1x則需要有另一台儲存無線使用者帳戶資料的RADIUS (Remote Authentication Dial-In User Service)伺服器,當筆記型電腦連入無線基地台時,無線基地台會要求使用者輸入帳號密碼、或是自動向筆記型電腦索取儲存在電腦硬碟的使用者數位憑 證,然後向RADIUS伺服器確認使用者的身分。而用來加密無線封包的加密金鑰(Key),也是在認証的過程中自動產生,並且每一次連線所產生的金鑰都不 同(專業術語稱為Session Key),因此非常難被破解。IEEE 802.1x的設定非常複雜,因此只適用於對無線安全要求很高的企業。
    WPA2: WPA2顧名思義就是WPA的加強版,也就是IEEE 802.11i無線網路標準。同樣有家用的PSK版本與企業的IEEE 802.1x版本。WPA2與WPA的差別在於,它使用更安全的加密技術AES (Advanced Encryption Standard),因此比WPA更難被破解、更安全。
    MAC ACL (Access Control List): MAC ACL只能用於認証而不能用於加密。在無線基地台輸入允許被連入的無線網卡MAC位址,不在此清單的無線網卡無法連入無線基地台。
    Web Redirection: 這 種方式是WISP (Wireless Internet Service Provider,例如統一安源WiFly)最常用的方式。無線基地台設定成Open System,但是另外在後台利用存取控制閘道器(Access Control Gateway, ACG),攔截筆記型電腦發出的Web封包(開啟瀏覽器嘗試上網),並強制重導到認證網頁要求輸入帳號密碼,然後ACG向RADIUS認證伺服器來確認使 用者的身分,認證通過才可以自由到其它的網站。
在家裡裝設無線網路,除非你完全不在乎頻寬與鄰居分享或讓人偷用,否則最好還是啟用WEP或是WPA-PSK。

  咖啡店家們應該也要注意到無線網路的認證問題,因為設定成Open System,不只是來電消費的客人,其實左鄰右舍也在使用你的無線網路,你只是不知道而已。如果你希望確定只有來電消費的客人可以使用無線網路,那就需 要一台支援Web Redirection的進階無線基地台,並且有無線網路認證代管服務公司(例如Qon http://www.qon.com.tw/),來協助你控管無線網路。

關於如何設定無線安全設定,Microsoft的技術文件「為居家或小型企業設定 Windows XP IEEE 802.11 無線網路」,有非常詳細的步驟說明。