淺談有關以太網交換機協(xié)議
以太網交換機是一種基于MAC地址識別,能完成封裝轉發(fā)數(shù)據(jù)包功能的網絡設備。交換機可以“學習”MAC地址,并把其存放在內部地址表中,通過在數(shù)據(jù)幀的始發(fā)者和 目標接收者之間建立臨時的交換路徑,使數(shù)據(jù)幀直接由源地址到達目的地址。
1.交換機根據(jù)收到數(shù)據(jù)幀中的源MAC地址建立該地址同交換機端口的映射,并將其寫入MAC地址表中。
2.交換機將數(shù)據(jù)幀中的目的MAC地址同已建立的MAC地址表進行比較,以決定由哪個端口進行轉發(fā)。
3.如數(shù)據(jù)幀中的目的MAC地址不在MAC地址表中,則向所有端口轉發(fā)。這一過程稱為泛洪(flood)。
4.廣播幀和組播幀向所有的端口轉發(fā)。
以太網交換機了解每一端口相連設備的MAC地址,并將地址同相應的端口映射起來存放在交換機緩存中的MAC地址表中。 轉發(fā)/過濾:當一個數(shù)據(jù)幀的目的地址在MAC地址表中有映射時,它被轉發(fā)到連接目的節(jié)點的端口而不是所有端口(如該數(shù)據(jù)幀為廣播/組播幀則轉發(fā)至所有端口)。
消除回路:當交換機包括一個冗余回路時,以太網交換機通過生成樹協(xié)議避免回路的產生,同時允許存在后備路徑。
1.交換機的每一個端口所連接的網段都是一個獨立的沖突域。
2.交換機所連接的設備仍然在同一個廣播域內,也就是說,交換機不隔絕廣播(惟一的例外是在配有VLAN的環(huán)境中)。
3.交換機依據(jù)幀頭的信息進行轉發(fā),因此說交換機是工作在數(shù)據(jù)鏈路層的網絡設備(此處所述交換機僅指傳統(tǒng)的二層交換設備)。
交換機的工作原理是,當一個端口收到一個數(shù)據(jù)幀時,首先檢查改數(shù)據(jù)幀的目的MAC地址在MAC地址表(CAM)對應的端口,如果目的端口與源端口不為同一個端口,則把幀從目的端口轉發(fā)出去,同時更新MAC地址表中源端口與源MAC的對應關系;如果目的端口與源端口相同,則丟棄該幀。
有如下的工作場景:
一個4口的switch,端口分別為Port.A、Port.B、Port.C、Port.D對應主機 A,B,C,D,其中D為網關。當 主機A向B發(fā)送數(shù)據(jù)時,A主機按照OSI往下封裝數(shù)據(jù)幀,過程中,會根據(jù)IP地址查找到B主機的MAC地址,填充到數(shù)據(jù)幀中的目的MAC地址。
發(fā)送之前網 卡的MAC層協(xié)議控制電路也會先做個判斷,如果目的MAC相同于本網卡的MAC,則不會發(fā)送,反之網卡將這份數(shù)據(jù)發(fā)送出去。Port.A接收到數(shù)據(jù)幀,交 換機按照上述的檢查過程。
在MAC地址表發(fā)現(xiàn)B的MAC地址(數(shù)據(jù)幀目的MAC)所在端口號為Port.B,而數(shù)據(jù)來源的端口號為Port.A,則交換機 將數(shù)據(jù)幀從端口Port.B轉發(fā)出去。B主機就收到這個數(shù)據(jù)幀了。
這個尋址過程也可以概括為IP->MAC->PORT,ARP欺騙是欺騙了IP/MAC的應關系,而MAC欺騙則是欺騙了MAC/PORT的 對應關系。比較早的攻擊方法是泛洪交換機的MAC地址,這樣確實會使交換機以廣播模式工作從而達到嗅探的目的,但是會造成交換機負載過大,網絡緩慢和丟包 甚至癱瘓,我們不采用這種方法。
工作環(huán)境為上述的4口swith,軟件以cncert的httphijack 為例,應用為A主機劫持C主機的數(shù)據(jù)。以下是劫持過程(da為目的MAC,sa為源MAC)
1.)A發(fā)送任意da=網關.mac、sa=B.mac的數(shù)據(jù)包到網關。
這樣就表明b.mac 對應的是port.a,在一段時間內,交換機會把發(fā)往b.mac 的數(shù)據(jù)幀全部發(fā)到a主機。這個時間一直持續(xù)到b主機發(fā)送一個數(shù)據(jù)包,或者另外一個da=網關.mac、sa=b.mac的數(shù)據(jù)包產生前。
2.)A 主機收到網關發(fā)給B的數(shù)據(jù),記錄或修改之后要轉發(fā)給B,在轉發(fā)前要發(fā)送一個請求B.MAC的廣播,這個包是正常的。
【編輯推薦】