交換機(jī):
再當(dāng)今局域網(wǎng)中,交換機(jī)作為是作為最常見(jiàn)的以太網(wǎng)交換設(shè)備。大到服務(wù)器級(jí)華為思科交換機(jī),小到十幾塊錢的塑料盒子。那么作為局域網(wǎng)中最常見(jiàn)的交換設(shè)備,它是如何進(jìn)行工作的。
交換機(jī)的工作環(huán)境:
交換機(jī)工作于數(shù)據(jù)鏈路層和物理層,所有被交換機(jī)連接的設(shè)備被稱為同一廣播域,交換機(jī)是通過(guò)廣播的方式與其他直連主機(jī)進(jìn)行通信的。交換機(jī)的出現(xiàn)幾乎屏蔽掉了沖突域的概念,在交換機(jī)發(fā)送廣播報(bào)文時(shí),所有主機(jī)都會(huì)收到該數(shù)據(jù)包,故被稱為很吵鬧的線路。
MAC地址和地址表:
每一個(gè)交換機(jī)中都會(huì)有一個(gè)MAC地址表,每一張網(wǎng)卡上都擁有MAC地址,每個(gè)MAC地址都是世界上獨(dú)一無(wú)二的,在交換機(jī)連接的網(wǎng)絡(luò),都是通過(guò)MAC地址來(lái)進(jìn)行通信的。MAC地址表中存放的是主機(jī)的MAC地址和需要對(duì)應(yīng)轉(zhuǎn)發(fā)的接口。
交換機(jī)工作原理:
交換機(jī)在某一個(gè)端口收到一個(gè)數(shù)據(jù)包之后,會(huì)先查看該數(shù)據(jù)包的源地址和目的地址,將目的地址和MAC表中的地址進(jìn)行匹配,如有匹配項(xiàng),則發(fā)送至對(duì)應(yīng)端口,如果不匹配,則向所有主機(jī)發(fā)送廣播報(bào)文進(jìn)行詢問(wèn),廣播報(bào)文中還會(huì)存放其發(fā)送方主機(jī)的源地址,收到廣播報(bào)文的主機(jī),會(huì)發(fā)送一個(gè)ARP包給發(fā)送方主機(jī),在經(jīng)過(guò)交換機(jī)的時(shí)候,會(huì)被交換機(jī)截獲,將其(目的主機(jī))MAC地址寫入MAC表中,然后再將數(shù)據(jù)包轉(zhuǎn)發(fā)給源主機(jī)。記錄目的主機(jī)MAC地址之后,源主機(jī)再發(fā)送數(shù)據(jù)時(shí),交換機(jī)就能在MAC表中發(fā)現(xiàn)對(duì)應(yīng)地址,實(shí)現(xiàn)兩主機(jī)之間的單播通信。
配置舉例:
配置環(huán)境:Cisco
本次實(shí)驗(yàn)使用思科模擬器中的仿真抓包功能來(lái)進(jìn)行實(shí)驗(yàn)。
二層直通比較簡(jiǎn)單,先配置好各個(gè)主機(jī)的IP地址。
主機(jī)0的IP地址
檢測(cè)主機(jī)的ARP廣播報(bào)文
在連接設(shè)備之后,主機(jī)會(huì)發(fā)送一條源地址和目的地址都是自己的ARP廣播報(bào)文,用來(lái)檢查在局域網(wǎng)內(nèi)有沒(méi)有其他設(shè)備與自己有相同IP地址。如果檢測(cè)到有其他相同地址設(shè)備,則清空自己的地址。
交換機(jī)交換過(guò)程
在主機(jī)2上使用ping命令對(duì)主機(jī)0進(jìn)行通信,主機(jī)2會(huì)生成兩個(gè)數(shù)據(jù)包,一個(gè)ARP數(shù)據(jù)包和一個(gè)ICMP數(shù)據(jù)包。
ARP報(bào)文:詢問(wèn)直連交換機(jī)主機(jī)0的MAC地址
ICMP報(bào)文:在詢問(wèn)到主機(jī)0地址之后發(fā)送(IP控制報(bào)文,但是交換機(jī)不具備路由功能交換機(jī)查看數(shù)據(jù)包,所以等待目的主機(jī)MAC地址后跟隨發(fā)送)
主機(jī)2生成了兩個(gè)數(shù)據(jù)包
1.主機(jī)2發(fā)送ARP廣播報(bào)文給交換機(jī)1詢問(wèn)主機(jī)IMAC地址
2.交換機(jī)查詢MAC地址表交換機(jī)查看數(shù)據(jù)包,發(fā)現(xiàn)無(wú)匹配項(xiàng),轉(zhuǎn)發(fā)ARP廣播報(bào)文,詢問(wèn)其他端口
3.交換機(jī)0收到ARP包后繼續(xù)轉(zhuǎn)發(fā)ARP廣播報(bào)文
4.單播ARP包經(jīng)過(guò)交換機(jī)時(shí),交換機(jī)記錄主機(jī)0的MAC地址進(jìn)MAC地址表
5.找到目的主機(jī)后,與其進(jìn)行單播通信
完成通信。
如果以太網(wǎng)內(nèi)沒(méi)有目的主機(jī)呢?
在主機(jī)2上去與一個(gè)不存在的地址進(jìn)行通信。
Ping 10.0.0.1(地址不存在該以太網(wǎng))
當(dāng)該IP不在本網(wǎng)段時(shí),此ICMP數(shù)據(jù)包會(huì)直接被端口丟棄。(判斷到目的IP不再該子網(wǎng)內(nèi)時(shí),一般會(huì)默認(rèn)發(fā)送給網(wǎng)關(guān)端口,讓路由器進(jìn)行交互,每配置網(wǎng)關(guān)則會(huì)直接丟棄)。
不進(jìn)行傳輸
對(duì)一個(gè)子網(wǎng)內(nèi)不存在的主機(jī)地址進(jìn)行通信。
.168.1.4(不存在該主機(jī))
主機(jī)發(fā)送ARP廣播報(bào)文,交換機(jī)中無(wú)匹配項(xiàng),無(wú)主機(jī)對(duì)應(yīng),所有沒(méi)有其他主機(jī)回應(yīng)主機(jī)2,主機(jī)2在等待一段時(shí)間后認(rèn)為超時(shí),再發(fā)送廣播報(bào)文,結(jié)果如上一致。在發(fā)送5次(默認(rèn)5次)之后,返回結(jié)果不可通。
總結(jié):
思科設(shè)備和華為設(shè)備在基礎(chǔ)通信上基本一致,會(huì)存在一些微小的差異。例如華為交換機(jī)在轉(zhuǎn)發(fā)ARP報(bào)文時(shí),會(huì)向源端口也發(fā)送廣播,相對(duì)可以節(jié)省交換機(jī)計(jì)算時(shí)間;在抓包過(guò)程中我發(fā)現(xiàn),思科設(shè)備獨(dú)有的DTP協(xié)議,用來(lái)讓交換機(jī)之間自動(dòng)協(xié)商他們的鏈路是否可以形成Trunk(發(fā)送給主機(jī)會(huì)被主機(jī)丟棄,發(fā)送給交換機(jī)會(huì)被交換機(jī)收取。),但是總的通信原理沒(méi)有太多的不同。
另外精心整理了一些【Cisco 實(shí)驗(yàn)相關(guān)文檔/技術(shù)案例分析/模擬器安裝包】,來(lái)進(jìn)一步鞏固你的基礎(chǔ);
如果大家想要上面的學(xué)習(xí)資料,私信“ 學(xué)習(xí) ”即可免費(fèi)領(lǐng)取哦!