交換機有多個網絡端口,它通過識別數據幀的目標 MAC 地址,根據 MAC 地址表決定從哪個端口發送數據。MAC 地址表不需要在交換機上手工設置,而是可以自動生成的。
交換機是如何添加、更新、刪除 MAC 地址表條目的?
在初始狀態下,交換機的 MAC 地址表是空的,不包含任何條目。當交換機的某個端口接收到一個數據幀時,它就會將這個數據幀的源 MAC 地址、接收數據幀的端口號作為一個條目保存在自己的 MAC 地址表中,同時在接收到這個數據幀時重置這個條目的老化計時器時間。這就是交換機自動添加 MAC 地址表條目的方式。
在新增這一條 MAC 地址條目后,如果交換機再次從同一個端口收到相同 MAC 地址為源 MAC 地址的數據幀時,交換機就會更新這個條目的老化計時器,確保活躍的的條目不會老化。但是如果在老化時間內都沒收到匹配這個條目的數據幀,交換機就會將這個老化的條目從自己的 MAC 地址表中刪除。
還可以手動在交換機的 MAC 地址表中添加靜態條目。靜態添加的 MAC 地址條目優先動態學習的條目進行轉發,而且靜態條目沒有老化時間,會一直保存在交換機的 MAC 地址表中。
如何使用 MAC 地址表條目進行轉發?
當交換機的某個端口收到一個單播數據幀時,它會查看這個數據幀的二層頭部信息,並進行兩個操作。一個操作是根據源 MAC 地址和端口信息添加或更新 MAC 地址表。另一個操作是查看數據幀的目的 MAC 地址,並根據數據幀的目的 MAC 地址查找自己的 MAC 地址表。在查找 MAC 地址表后,交換機會根據查找結果對數據幀進行處理,這里有 3 中情況:
-
1.交換機沒有在 MAC 地址表中找到這個數據幀的目的 MAC 地址,因此交換機不知道自己的端口是否有連接這個 MAC 地址的設備。於是,交換機將這個數據幀從除了接收端口之外的所有端口泛洪出去。
-
2.交換機的 MAC 地址表中有這個數據幀的目的 MAC 地址,且對應端口不是接收到這個數據幀的端口,交換機知道目的設備連接在哪個端口上,因此交換機會根據 MAC 地址表中的條目將數據幀從對應端口單播轉發出去,而其它與交換機相連的設備則不會收到這個數據幀。
-
3.交換機的 MAC 地址表中有這個數據幀的目的 MAC 地址,且對應端口就是接收到這個數據幀的端口。這種情況下,交換機會認為數據幀的目的地址就在這個端口所連接的范圍內,因此目的設備應該已經收到數據幀。這個數據幀與其它端口的設備無關,不會將數據幀從其它端口轉發出去。於是,交換機會丟棄數據幀。
單播: 主機一對一的發送數據。單播地址是主機的 MAC 地址。
廣播:向局域網內所有設備發送數據。只有全 1 的 MAC 地址為廣播 MAC 地址,即 FF-FF-FF-FF-FF-FF 。
泛洪:將某個端口收到的數據從除該端口之外的所有端口發送出去。泛洪操作廣播的是普通數據幀而不是廣播幀。