問題

如果 switch 接收到的是廣播封包-例如: ARP request
那麼當它比對該 Frame 的 ethernet destination address 為 FF:FF:FF:FF:FF:FF 時在 switch 的
MAC Address Table 一定找不到,因此會將 Frame flood 出去.

請教,
若此無誤,那麼 switch 既無法擋廣播,假若其所接網段又很多時,那會不會很慘呢(豈不 flood 來 flood 去嗎)?

另外,
那一般講的廣播風暴與此相同嗎?
(以下是我查到的資訊)
===============================
如果接收端位址與發
送端位址屬於同一個連接埠,那
麼該封包將會被 "交換器" 丟
棄,不會通過交換器傳送到其
他的網段;如果接收位址與發
送位址是屬於兩個不同的連
接埠,那麼該封包就會被交換
器轉發到接收位址所屬的連
接埠上。這樣,我們就可以通
過交換器的過濾和轉發功
能,來避免網路 "廣播風暴" ,減
少碰撞和網路擁塞的情況出
現。
===============================

參考網路回應

1.

的確...你問的就是廣播風暴..
目前能檔Broadcast封包的只有Router這一層
當你有很多網段時,Router就是扮演Gateway的腳色來串聯個網段並阻斷廣播造成的影響
你有沒有偶爾觀察一下自己平常在用的ADSL呢
它可是最大的廣播來源 = =

2.

在TCP/IP對網路定址的定義中,有一個位址是用來代表此網段上的全部電腦的,就是廣播(broadcast)位址,定義為「將子網路的bit全部設成1」。比如說,10.1.1.0這個網域,其廣播位址為10.1.1.255。當封包目標IP為這個地址時,該封包會透過L1實體網路介面的廣播編號(FF:FF:FF:FF:FF:FF)傳送出去,而所有連接此網路的網路卡都會將此封包接收進主機中,對此封包進行回應或處理。

而Client送出的broadcast封包進到Target的網域時,L3網路層(IP layer)的廣播位址(如:10.1.1.255)
必須要能夠轉換成L1實體層(Physical layer)的Mac Address(FF:FF:FF:FF:FF:FF)才能夠被該區所有PC的網卡接收,
而扮演這個轉換的腳色,就是Router。

而一般的L2連結層Switch是負責一開始的資料編碼與打包 (frame或packet),並加入ICMP Control,再與L1實體層做Link。

當該網段所有的PC接收封包會開始進行處理與回應時,問題就產生了!
Client若假冒其他主機之名向Router發出broadcast的ICMP Echo Request。由於目的地是廣播位址,Router在收到之後會對該區域網段內的所有電腦發出此ICMP封包,所有該區的電腦在接收到此訊息後,會對來源主機(也就是被假冒的受害主機,非原發送封包主機)送出ICMP Echo Reply回應。

當所有的ICMP封包在極短的時間內湧入被假冒的受害主機內,不但造成網路壅塞,更會使受害主機因為無法大量承受與即時反應,造成系統中斷而當機、服務暫停。另外,這些ICMP broadcast(packet flood)被送進該網域內,將會造成該網段內的壅塞,而該網域上的所有電腦都成為攻擊的受害者,也就變成所謂的ICMP Dos/Smurf攻擊。

將router的廣播功能關掉,便可以阻止此種broadcast封包的擴散,阻擋攻擊。
另外設定Fliter對外界傳入的封包過濾。不過如果是來自網域內部的攻擊時,這種防禦方法無效。

3.

你是說 Broadcast Storm 嗎?

那個是因為把兩台Switch的實體線路接成Loop的關係,
簡單說,就是網路封包可以從SwitchA[PortA]到SwitchB[PortA],又可以從Switch[PortB]回到SwitchA上

由於,Switch會自動學習MAC address
在Switch MAC Table中紀錄著往同一個目的地上會有兩份MAC address
所以會造成網路封包會在這兩台Switch中一直相互傳送,吃掉網路的頻寬和Switch的資源

所以才會有STP這玩意出來

前面的大大們說了一下Broadcast封包,小弟也來插嘴一下 ^^
首先,先有一個觀念,每個IP(Layer3)都會有一個相對應的MAC(Layer2)
像是IP:0.0.0.0 其所對應的MAC:FF FF FF FF FF FF
像是IP:192.168.1.255(192.168.1.0網段的廣播封包就是用這個IP),其所對應的MAC:[與發出封包的電腦的MAC 前四碼相同]FF FF

第二個觀念,MAC TABLE 的中每筆資料至少會有下列兩欄 1.MAC ADDRESS 2.在Switch上的哪個Port

第三個觀念,Switch 對於封包會做以下的處置
1.將封包DESTATION MAC位置與MAC TABLE裡相比對
2.如果MAC TABLE有此資料,就將該往該紀錄的PORT送出
3.如果沒有資料,就會往每個PORT送(flood),如果有接收到TCP SYN回應,會把MAC ADDRESS及Switch Port新增到MAC TABLE上

第四個觀念,Switch不理會IP ADDRESS,它只管MAC ADDRESS

言歸正傳 ^^
廣播封包有兩種,
一種是本身網域的廣播封包,其IP是xxx.xxx.xxx.255,其MAC是[與發出封包的電腦的MAC 前四碼相同] FF FF
一種是全世界通行的廣播封包,其IP是0.0.0.0,其MAC是FF FF FF FF FF FF

如果一台Switch上面有接很多不同網段的話,每個網段的廣播封包要如何處理?
很簡單,Switch只會去比較前面四碼,再把廣播封包送到前四碼相同的MAC ADDRESS而已
除非是收到MAC ADDRESS=FF FF FF FF FF FF 的封包或是第一次收到的封包,才會往每個PORT送(flood)

不知道,這樣寫,板大是否明白 ^^

arrow
arrow

    Johnson峰 發表在 痞客邦 留言(0) 人氣()