20張圖深度詳解MAC地址表、ARP表、路由表
本文我們以兩個案例為例,深度來講解一下網(wǎng)絡(luò)中我們經(jīng)常要用到的mac地址表、ARP表、路由表,掌握了這3張表,基本上就能夠掌握了網(wǎng)絡(luò)中數(shù)據(jù)通信的原理,成為網(wǎng)絡(luò)中的武林高手!
數(shù)據(jù)網(wǎng)絡(luò)的本質(zhì)就是為了傳遞數(shù)據(jù),前面我們就講到過數(shù)據(jù)通信的基礎(chǔ)就是TCP/IP參考模型。15圖利用TCP/IP參考模型詳解PC訪問WEB服務(wù)器的數(shù)據(jù)通信過程
MAC地址表
MAC地址表:簡單的說,MAC地址表是交換機等網(wǎng)絡(luò)設(shè)備記錄MAC地址和端口的映射關(guān)系(見下圖),代表了交換機從哪個端口學(xué)習(xí)到了某個MAC地址,交換機把這個信息記錄下來,后續(xù)交換機需要轉(zhuǎn)發(fā)數(shù)據(jù)的時候就可以根據(jù)報文的目的MAC地址去根據(jù)MAC地址表轉(zhuǎn)發(fā)數(shù)據(jù)。
在華為網(wǎng)絡(luò)設(shè)備上可以通過dis mac-address 查看本地mac的地址表的信息,通過下圖的顯示我們可以知道m(xù)ac地址 5489-98b1-79f4 是從G0/0/2端口學(xué)習(xí)到的;
ARP表
ARP表:簡單的說,ARP表就是路由器等網(wǎng)絡(luò)設(shè)備記錄IP地址和MAC地址對應(yīng)關(guān)系的表項(如下圖)。
當(dāng)我們需要轉(zhuǎn)發(fā)數(shù)據(jù)的時候除了需要對方的目的IP地址,還需要知道對方的MAC地址,那么正常情況下我們優(yōu)先會在本地ARP表中查看是否有目的IP對應(yīng)的MAC地址。
在華為網(wǎng)絡(luò)設(shè)備上可以通過dis arp查看本地arp表的信息,通過下圖的顯示我們可以知道m(xù)ac地址 5489-98b1-79f4 是對應(yīng)的IP地址是192.168.1.2 ;
路由表
路由表:簡單點說路由表就是路由器用于指導(dǎo)數(shù)據(jù)包如何轉(zhuǎn)發(fā)的表項,記錄了去往目的IP的下一跳去哪里(如下圖)。
路由表的作用類似于我們生活中的地圖,指引我們?nèi)ネ粋€目的地該如何走?
在華為網(wǎng)絡(luò)設(shè)備上可以通過display ip routing-table 查看本地路由表的信息,通過下圖的顯示我們可以知道去往目的192.168.2.0/24 的下一跳是10.1.1.2 ;
案例一:PC1和PC2二層互訪通信過程詳解
如上圖的網(wǎng)絡(luò)拓撲,PC1和PC2通過交換機SW1互聯(lián),PC1 的IP地址為192.168.1.1/24 ,PC2的IP地址為192.168.1.2/24 ,那么PC1和PC2的通信就是簡單的二層通信(二層通信不涉及路由表),下面我們從ARP表和MAC地址表的角度詳細解析下這個通信過程。
下面我們來詳細分析下:
1. PC1要想訪問PC2,除了需要知道目的IP 192.168.1.2 以外,還需要知道PC2 的mac地址,因為所有的數(shù)據(jù)通信都是基于TCP/IP參考模型的,需要對進行數(shù)據(jù)封裝。
首先PC1會查找自己的ARP表項看是否有目的IP 192.168.1.2 對應(yīng)的MAC地址,查看發(fā)現(xiàn)是空的;
2、我們知道如果不知道對方的mac地址,PC1會發(fā)送ARP廣播報文,詢問誰知道目的IP 192.168.1.2 對應(yīng)的MAC地址(如下圖所示)。PC2收到ARP廣播報文會進行回應(yīng),告訴PC1他的MAC地址;
附:
在PC1發(fā)送ARP 廣播報文的時候,交換機SW1收到該報文,會在MAC地址表中根據(jù)報文的源mac地址記錄下PC1 的mac地址和GE0/0/1的映射關(guān)系;PC2發(fā)送回應(yīng)報文的時候 交換機SW1也會記錄下PC2 的mac地址和GE0/0/2的映射關(guān)系(如下圖);
3、可以看到PC1的本地ARP表項中學(xué)習(xí)到了PC2的mac地址;
4、這樣PC1就可以根據(jù)PC2的MAC地址封裝數(shù)據(jù)發(fā)送給交換機SW1,交換機SW1會查找自己的MAC地址表,發(fā)現(xiàn)去往PC2的MAC地址的出接口為GE0/0/2,從而PC2就可以收到報文,并進行解封裝;
案例二:PC3和PC4三層互訪通信過程詳解
如上圖的網(wǎng)絡(luò)拓撲,PC3和PC4通過路由器R1、R2互聯(lián),PC3 的IP地址為192.168.1.2/24 網(wǎng)關(guān)192.168.1.1 ,PC4 的IP地址為192.168.2.2/24 網(wǎng)關(guān)192.168.2.1,那么PC1和PC2的通信就是跨網(wǎng)段三層通信,下面我們從ARP表、MAC地址表、路由表的角度詳細解析下這個通信過程。
下面我們來詳細分析下:
1. PC3要想訪問PC4,由于是跨網(wǎng)段通信,PC3需要首先把數(shù)據(jù)包發(fā)送給PC3的網(wǎng)關(guān)。PC3會查找自己的ARP表項看是否有網(wǎng)關(guān)IP192.168.1.1對應(yīng)的MAC地址,查看發(fā)現(xiàn)是空的;
2、我們知道如果不知道對方的mac地址,PC3會發(fā)送ARP廣播報文,詢問誰知道目的IP 192.168.1.1 對應(yīng)的MAC地址(如下圖所示)。R1收到ARP廣播報文會進行回應(yīng),告訴PC3 他的網(wǎng)關(guān)的MAC地址;
3、可以看到PC3的本地ARP表項中學(xué)習(xí)到了網(wǎng)關(guān)的mac地址;
4、這樣PC3就可以根據(jù)網(wǎng)關(guān)MAC地址封裝數(shù)據(jù)發(fā)送給R1,R1收到數(shù)據(jù)包會進行解封裝,解封裝發(fā)現(xiàn)目的IP是PC4,不是發(fā)給自己的,從而會查找自己的路由表,發(fā)現(xiàn)去往PC4的下一跳是10.1.1.2;
5、R1需要把數(shù)據(jù)進行封裝發(fā)送給R2的10.1.1.2 ,因此需要請求10.1.1.2 對應(yīng)的MAC地址用于封裝(我們可以看到R1的ARP表中已經(jīng)有10.1.1.2 對應(yīng)的MAC地址,因此可以直接封裝);
6、R2收到R1的數(shù)據(jù)包,需要進行解封裝,解封裝發(fā)現(xiàn)目的IP是PC4,通過查找自己的路由表,發(fā)現(xiàn)去往PC4是自己的直連端口;
7、R2需要把數(shù)據(jù)進行封裝發(fā)送給PC4 ,因此需要請求PC4 192.168.2.2 對應(yīng)的MAC地址用于封裝(我們可以看到R2的ARP表中已經(jīng)有192.168.2.2對應(yīng)的MAC地址,因此可以直接封裝);
8、最后PC4收到報文進行解封裝發(fā)現(xiàn)就是發(fā)送給自己的,通信結(jié)束;