什么是交換機?顧名思義,交換機就是用來數據包交換的;廣泛用於終端接入;它的前身是hub(集線器),hub是一個古老的設備,它的作用也是用於終端接入,但hub有一個最大的缺點是它不能隔離沖突域;所謂沖突域就好比我們現實生活中的單行道路;沖突域的特點就是在一個沖突域內的設備,同一時刻只能允許一個設備發送數據;這樣一來就很影響雙方通訊;為了解決沖突域問題,交換機出現了;交換機的出現解決了hub的沖突域問題(其原因是交換機的每個端口都是一個沖突域,而hub的所有端口都屬於一個沖突域,即交換機天生就有隔離沖突域的作用),極大提升網絡的性能和安全性;
沖突域和廣播域
在以太網中沖突域是由hub設備產生的,一個hub就是一個沖突域。而交換機的一個端口屬於一個沖突域,有多少個接口就有多少個沖突域,接口之間的沖突域是相互隔離的;在同一個沖突域中的每個節點都能收到所有被發送的幀,而在同一廣播域中的每個節點能接收任意一台設備發出的廣播幀;我們可以簡單理解同一沖突域中的設備只能同一時刻一台設備發送,多台設備接收;而在同一廣播域中的設備,可以同一時刻多台設備同時發送和接收;沖突域是基於第一層(物理層,由硬件設備屬性決定),而廣播域是基於第二層(數據鏈路層,由協議封裝報文決定,不同協議封裝報文,其二層封裝也有所不同,比如以太網封裝二層就是封裝源mac地址和目標mac地址,而ppp協議封裝就不用mac地址) 。
交換機工作在數據鏈路層,對數據幀進行操作,在收到數據幀后,交換機會根據數據幀的頭部信息對數據幀進行轉發;
交換機的作用功能
1、終端設備的接入,因為交換機有很多接口可以供其他設備接入到網絡中來;
2、以太網數據幀的交換(數據包),根據目標mac地址轉發數據包;
3、學習mac地址,並維護mac地址表(交換機核心工作原理,轉發數據包就是根據這張表進行的)
4、防止二層環路(一般傻瓜交換機沒有這種功能,必須支持運行stp協議的交換機才有該功能)
交換機的核心工作原理:根據MAC地址表中的MAC地址記錄,做出智能轉發
提示:交換機的工作原理很簡單,它就是靠mac地址表來進行轉發數據包;當交換機從一個接口收到一個數據包以后,首先它會查看該數據包的目標mac地址,看看自己的mac地址表中是否有對應記錄,如果有,就根據對應的mac地址所綁定的接口,將數據包從該接口發送出去;如果沒有,它將會從其他接口發送出去(泛洪)
提示:如上圖所示,當交換機收到一個數據包是發送給目標mac為2222的主機,此時交換機會查看自己的mac地址表,一看有對應mac地址為2222的記錄,該mac地址對應的接口為f0/2;那么此時數據包會從f01轉發至f0/2,從而連接交換機的f0/2口的設備就會收到連接f0/1口的設備發送到數據包;此時f0/3和f0/4口是收不到f0/1口發送的數據包;
實驗:根據下面的拓撲圖抓包分析交換機的工作原理
配置pc1
提示:我們把pc1的ip地址配置為1.0.0.1/8,和交換機的g0/0/1口連接;
在查看交換機的mac地址表,看看對應是否能夠學習到pc的mac地址呢?
提示:可以看到交換機的mac地址表為空,沒有任何信息;其實在真機環境中,只要對應的主機配置好ip地址以后,它會發送免費arp(就是自己問自己,然后自己回答,其主要目的就是想讓局域網中的交換機學習自己的mac);
在pc1上抓包,然后使用pc1Ping任意一地址(不一定是pc2),看看交換機是否會學習pc11的mac地址?
提示:首先pc1ping1.1.1.1的時候,在pc1上會封裝1.1.1.1的mac地址,這個mac地址對應在pc1的mac地址表中沒有,此時pc1會發送arp請求,請求局域網中的ip地址為1.1.1.1的mac地址,如果有設備回復這個arp請求,那么對應pc1就能收到對應設備的mac地址;然后pc的icmp包就會在二層封裝自己的mac地址為源mac,對方設備的mac地址為目標mac地址,進行數據包發送;此時對於交換機來說,在收到pc1發送到arp請求時,它首先會查看收到的數據包目標mac地址,一看目標mac地址為全f,此時交換機就知道這是一個廣播,此時它會將該arp請求數據包中的源mac地址和收到該包的接口做綁定並記錄域mac地址表中,然后在把該arp請求從其他接口泛洪出去;此時交換機就通過pc1發送的arp請求包學習到pc的mac;
驗證:查看交換機mac地址表,看看是否學習到pc1的mac地址呢?
提示:可以看到此時交換機的mac地址表中就記錄了pc1的mac地址和對應的接口;
驗證:用pc1ping pc2,看看交換機是否會學習pc2的mac地址呢?
提示:首先我們可以看到pc1ping pc2 通了,在抓包中我們發現,首先抓到了是pc1發送的arp請求,在pc2收到pc1發送的arp請求,查看ip地址和自己一樣,此時pc2就回復pc1,然后pc1和pc2就可以正常發送icmp數據包了;其實在這一過程中交換機會從pc1發送的arp請求中學習到pc1的mac地址,從pc2發送的arp回復報文中學習到pc2的mac地址,在這同時pc1也會收到pc2的mac地址,pc2也會收到pc1的mac地址並記錄在自己的mac地址表中;
驗證:查看pc1、pc2的mac地址表,看看是否記錄了對方的mac地址呢?
驗證:查看交換機的mac地址表,看看是否學習到pc1和pc2的mac地址呢?
提示:交換機能夠學習到pc1和pc2的mac地址的前提是他倆都是同一vlan;交換機有了這個mac地址表,它就知道去往那個mac地址的數據包,該從那個接口發送出去;
交換機工作邏輯圖
提示:交換機和路由器不同,路由器的工作是依靠路由表,如果收到數據包沒有匹配的路由,則丟包,而交換機不會,交換機收到數據包查看mac地址表,如果mac地址表中有對應的記錄,那么就從對應的接口轉發出去,如果沒有對應的記錄則從其他接口防洪出去;
總結:交換機的工作過程
1、交換機在初始狀況下mac地址為空
2、學習mac地址:當從一個接口收到一個幀時,就會把幀內的源MAC與該接口進行綁定,放入MAC地址表;
3、轉發數據幀:當從一個接口收到廣播幀、組播幀、未知單播幀(目標MAC不存在於MAC地址表中),就會把該幀從所有其它接口轉發出去,除了接收接口;
4、當從一個接口收到已知單播幀,立即從相應的的接口轉發出去;
交換機的mac地址表更新規則
1、默認每條記錄保存300秒;
2、交換機重啟會清空所有接口學習到的mac記錄,接口關閉后會清空該接口學習到的記錄;
3、一個源mac出現在另外一個接口上,會刪除老的記錄,添加新的記錄;也就是說一個mac只能關聯在一個接口上;但對於接口來說,一個接口可以關聯多個mac地址;比如交換機和交換機相連接;
驗證:查看交換機mac地址表生存時間
提示:這個生存時間是指沒有對應接口沒有發送數據,如果300秒鍾都沒有發送數據,那么對應接口學習到的mac信息就會從mac地址表中清除,一旦有數據包發送,那么這個時間會刷新;如果一直有數據包發送,那么該接口學習到的mac地址就會一直存放在mac地址表中;
驗證:查看交換機的mac地址表,看看是否清空了記錄?
提示:可以看到現在交換機的mac地址表沒有了記錄,其原因是pc1和pc2超過300秒沒有發送數據,所以對應學習到的mac信息就會從該表中刪除;
以太網接口工作模式
1、半雙工(half-duplex):通信雙方都能發送和接收數據,但不能同時進行;
2、全雙工(full-duplex):通信雙方都能同時接收和發送數據;
提示:接口的雙工模式有兩種,一種是半雙工,一種是全雙工;半雙工我們可以理解為現實生活中的單行道路,同一時間只允許一台主機發送數據,另外一台主機只能接受,兩者不可同時發送數據;而全雙工就好比雙行道路,可以允許同一時間雙發收發數據;默認情況下接口都是全雙工模式;
3、速率(speed):接口連接時兩端進行協商,協商失敗則無法正常通信;
提示:默認情況下接口的速率都是自動協商,只有雙方的速率一樣,才可以實現通訊;
配置交換機接口為半雙工模式
提示:修改接口的雙工模式,首先要先關閉自動協商,其次1000M接口不支持半雙工;通常不建議修改雙工模式;
修改電腦的網卡雙工模式
提示:如果修改電腦的速率為10M,而連接的交換機速率為100M,兩者無法實現通訊,只有速率相同的情況下才可正常通行;其次全雙工和半雙工,是建立在兩者都能通信的前提下;所以通常情況下不建議修改交換機或終端設備的接口的速率和雙工模式;