區域網路、乙太網路與交換

MAC 學習(MAC learning)

MAC 學習是交換器在沒人告知的情況下,自己弄清楚每個人在哪裡的方法。想像一位新櫃檯接待員的第一天:每當有人走到櫃檯前,接待員就記下這個人是從哪條走廊過來的。過一陣子,接待員光憑觀察誰從哪裡來,就能把訪客直接帶到對的人那裡。

機制很簡單。每個訊框都帶有一個來源 MAC 位址。當訊框從某個埠進來時,交換器把(來源 MAC、這個埠)這組對應記到它的 MAC 位址表裡。所以若一個來自位址 11:22:33:aa:bb:cc 的訊框從埠 5 進來,交換器現在就知道那台機器可經由埠 5 抵達。之後當別的訊框需要送到 11:22:33:aa:bb:cc 時,交換器一查表,就只從埠 5 送出。若某目的地還不在表中,交換器就把訊框氾濫到其他每一個埠;回覆會教會交換器那台機器在哪,氾濫便停止。表中項目會逾時(常見預設約五分鐘),讓表在機器移動或拔線時保持最新。

MAC 學習讓交換器自我設定——你把裝置插上去它就能用,不必手動設定。它有時被稱為反向學習,因為交換器是從某台機器「送出」的訊框學到通往它的路徑,而非從送「給」它的訊框學到。代價是:大量帶著偽造或隨機來源 MAC 的訊框可以塞爆這張表、使交換器效能劣化(MAC 氾濫攻擊),這也是受管理交換器能限制每個埠所學位址數量的原因。

全新交換器,表是空的。PC-A(埠 1)ping PC-B。第一個訊框因為 B 未知而被氾濫到各處,但交換器立刻把 A 記在埠 1。當 B 回覆時,交換器把 B 記在埠 2——此後兩個方向都改為轉送,不再氾濫。

交換器從來源位址學習;一旦兩端都開過口,氾濫就停止。

交換器從所收訊框的「來源」位址學習,並依「目的」位址轉送。它從不需要被告知拓樸——但偽造的來源 MAC 可以騙過它。

又稱
backward learningaddress learning來源位址學習