亚洲 日韩 激情 无码 中出,无码人妻久久一区二区三区蜜桃,亚无码乱人伦一区二区,四虎影视永久免费观看,四虎成人精品一区二区免费网站

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

小編:餓狼 更新時(shí)間:2022-04-27 08:41

二層封裝

為什么需要了解二層封裝呢? 因?yàn)樵谝粋€(gè)路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的時(shí)候,除了知道目的地怎么去(有路由),還需要二層的正確封裝,否則就算有路由的話,也無(wú)法進(jìn)行通信。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

這是卷一提到過(guò)的,雖然沒(méi)有像協(xié)議卷一說(shuō)得那么細(xì),但是,它也說(shuō)明了,必須獲取數(shù)據(jù)鏈路層的信息才能正常進(jìn)行封裝,而這個(gè)二層的信息通常就是目的mac地址,而提供這個(gè)IP對(duì)應(yīng)MAC的機(jī)制,就通過(guò)ARP來(lái)完成,并且通過(guò)緩存保存下來(lái)。而網(wǎng)絡(luò)層,則是通過(guò)靜態(tài)或者動(dòng)態(tài)路由協(xié)議獲取相關(guān)的信息,保存在路由表中,也叫路由選擇信息庫(kù) RIB。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

這個(gè)拓?fù)渲饕榻BARP和代理ARP在以太網(wǎng)類(lèi)型中起一個(gè)什么作用。IP地址信息如圖上所示

證明一

第一個(gè)證明,二層如果沒(méi)有獲取到封裝的信息,則數(shù)據(jù)包都不會(huì)發(fā)送出去。

根據(jù)這個(gè)圖就配置了IP地址,右邊路由有一跳缺省路由,這時(shí)候隨便測(cè)試一個(gè)不存在的地址,查看數(shù)據(jù)包發(fā)送的情況。

在R2上telnet 12.1.1.3,一個(gè)不存在的地址 。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

沒(méi)有響應(yīng)是正常的,但是這個(gè)沒(méi)響應(yīng),到低是因?yàn)檎也坏蕉拥姆庋b,還是應(yīng)用層沒(méi)有響應(yīng)呢。 三層信息路由是沒(méi)有問(wèn)題的,因?yàn)槭侵边B網(wǎng)段,,那么以太網(wǎng)通信,必須知道對(duì)方的MAC地址,而默認(rèn)情況下,是不知道的,那么就需要一個(gè)機(jī)制來(lái)進(jìn)行查詢(xún),就是ARP了。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

發(fā)送了三個(gè)ARP查詢(xún),而網(wǎng)絡(luò)中沒(méi)有人進(jìn)行響應(yīng),所以,二層無(wú)法得到封裝(沒(méi)有獲取12.1.1.3的MAC地址)則通信失敗。

這時(shí)候,我們做一個(gè)靜態(tài)ARP綁定,然后在進(jìn)行telnet,MAC地址可以隨意定義。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

其中1.1.1就是表示MAC 0001.0001.0001 可以省略寫(xiě)的。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

發(fā)現(xiàn)了什么? 因?yàn)镸AC地址有了封裝(就是手工綁定的),它直接發(fā)送TCP連接給12.1.1.3了,發(fā)送了4個(gè)SYN的包,因?yàn)閷?duì)方?jīng)]有響應(yīng)SYN+ACK,所以這個(gè)TCP會(huì)話沒(méi)有繼續(xù)進(jìn)行下去。

結(jié)論: 無(wú)論在一個(gè)相同網(wǎng)段,還是不同網(wǎng)段的情況下,如果二層的介質(zhì)是以太網(wǎng),那么就必須獲取對(duì)方的MAC地址信息,相同網(wǎng)段則是目的地址的MAC地址,不同網(wǎng)段則是路由表中的下一跳 ,一種特殊情況下,就是啟用了代理arp的話,那么也是目的地址,但是MAC則是下一跳。 這也是在當(dāng)前IPV4的網(wǎng)絡(luò)中,ARP是一個(gè)非常不安全的協(xié)議,因?yàn)楹苋菀拙蛯?shí)現(xiàn)攻擊了,只要網(wǎng)關(guān)的MAC被攻擊者以錯(cuò)誤的MAC告訴當(dāng)前網(wǎng)絡(luò)的設(shè)備,那么整個(gè)網(wǎng)絡(luò)就通信不正常了。

證明二

第二個(gè)證明:路由器在路由模式和主機(jī)模式下,數(shù)據(jù)包是怎么通信的。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

還是這個(gè)拓?fù)洌谟疫吢酚善魃详P(guān)閉路由功能,no ip routing,那么能與 1.1.1.1通信么?

答案是:可以的。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

通了是通了,那么它是怎么通的呢

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

在show arp后,發(fā)現(xiàn)除了有12.1.1.1的MAC地址信息(之前ping過(guò)了),還有1.1.1.1對(duì)應(yīng)的MAC信息,另外一個(gè)重要的信息就是12.1.1.1和1.1.1.1的MAC地址信息都是關(guān)于12.1.1.1的,這是為什么? 這就是所謂的代理ARP和主機(jī)模式工作的工程。

主機(jī)模式工作:

1、無(wú)網(wǎng)關(guān)情況下:當(dāng)沒(méi)有網(wǎng)關(guān)的情況下,它會(huì)對(duì)當(dāng)前網(wǎng)絡(luò)進(jìn)行ARP查詢(xún),詢(xún)問(wèn)訪問(wèn)的目的地址的MAC地址信息,如果這個(gè)時(shí)候,網(wǎng)關(guān)知道怎么去這個(gè)目的地址,并且開(kāi)啟了代理ARP的功能,那么就會(huì)回應(yīng)這個(gè)ARP響應(yīng),那么回應(yīng)的內(nèi)容就是這個(gè)目的地址的MAC地址是自己,這對(duì)于PC或者主機(jī)路由器來(lái)說(shuō)是不知道的,它就認(rèn)為這個(gè)MAC是對(duì)應(yīng)目的主機(jī),每次發(fā)送去往這個(gè)目的地址的時(shí)候,二層就封裝這個(gè)目的MAC,然后發(fā)送出去。

2、有網(wǎng)關(guān)的情況下:當(dāng)有網(wǎng)關(guān)的情況下,它只會(huì)詢(xún)問(wèn)網(wǎng)關(guān)的MAC是多少,如果網(wǎng)關(guān)響應(yīng)了后,那么PC或主機(jī)路由器,就會(huì)把這個(gè)數(shù)據(jù)包發(fā)送出去,它不管網(wǎng)關(guān)是否知道怎么去往這個(gè)目的地址不。

可以進(jìn)行證明:1、在沒(méi)有網(wǎng)關(guān)的情況下,把R1的代理ARP給關(guān)閉了,默認(rèn)是打開(kāi)的,并且把ARP 緩存清掉 shutdown接口,clear arp

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

不通,因?yàn)镽1的接口已經(jīng)關(guān)閉了代理ARP了,所以不不會(huì)去響應(yīng)這個(gè)ARP的Request。

2、設(shè)置網(wǎng)關(guān)為R1的接口,并且發(fā)送一個(gè)去往2.2.2.2的telnet的會(huì)話,看TCP會(huì)話是否會(huì)發(fā)出去,如果出去了,就證明之前說(shuō)的是對(duì)的,不管網(wǎng)關(guān)是否知道目的地可達(dá),PC或主機(jī)路由器都會(huì)發(fā)送。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

這時(shí)候開(kāi)始telnet 2.2.2.2

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

telnet2.2.2.2 ,提示目的不可達(dá),或者網(wǎng)關(guān)和主機(jī)是downde

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

首選,路由器發(fā)送ARP的Request選為12.1.1.1(GW)的MAC地址是多少。R1響應(yīng)這個(gè)ARP的請(qǐng)求。緊接著一個(gè)TCP會(huì)話發(fā)送出去,R1直接回復(fù)一個(gè)ICMP的差錯(cuò)報(bào)文,主機(jī)不可達(dá)。

路由模式下的路由器:

路由模式的數(shù)據(jù)包轉(zhuǎn)發(fā),不跟主機(jī)模式一樣,主機(jī)模式是只要設(shè)置了網(wǎng)關(guān)或者沒(méi)設(shè)置都會(huì)發(fā)送arp請(qǐng)求,但是,路由模式的話,先查看路由表,如果路由表中沒(méi)有該路由,則不做任何動(dòng)作。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

可以看出,因?yàn)槁酚杀頉](méi)有去往2.2.2.2的路由信息,所以不采取任何動(dòng)作,連ARP都沒(méi)有發(fā)送。

證明三

第三個(gè)證明:兩個(gè)不同網(wǎng)段的主機(jī),能否進(jìn)行通信?

在設(shè)置有GW的情況下,肯定是不可能的,但是,在某種情況下,它卻成為可能,那就是兩個(gè)主機(jī)都不設(shè)置IP,并且有代理ARP功能。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

說(shuō)明:R1和R2都是關(guān)閉了路由功能的路由器,并且接口開(kāi)啟了代理ARP功能。IP地址與圖

從R1開(kāi)始ping 2.2.2.2,并且抓取R1的數(shù)據(jù)包進(jìn)行分析。

二層封裝與路由器轉(zhuǎn)發(fā)數(shù)據(jù)過(guò)程(路由器轉(zhuǎn)發(fā)數(shù)據(jù)包的封裝過(guò)程)

沒(méi)看錯(cuò),R1與R2可以通信了,仔細(xì)看抓包的內(nèi)容,首先R1發(fā)送一個(gè)arp的查詢(xún),{how has 2.2.2.2? tell 1.1.1.1}一個(gè)詢(xún)問(wèn)2.2.2.2的MAC Request包就發(fā)送出去了,因?yàn)镽2與R1是直連(鏈路),所以,R2收到了這個(gè)ARP 的Request,而且R2是開(kāi)啟了代理ARP功能的,也就是說(shuō)只要R2知道2.2.2.2怎么去,就會(huì)響應(yīng)這個(gè)ARP的請(qǐng)求(這里明顯就是自己),所以第二個(gè)訴舉報(bào)就是arp的reply{2.2.2.2 is at c0:01:05:04:00:00},那么這時(shí)候R1就有R2的mac地址映射了,所以就發(fā)送了數(shù)據(jù)包出去,也就是icmp的echo,這時(shí)候R2收到,需要回應(yīng)這個(gè)數(shù)據(jù)包,但是,它并不知道對(duì)方的MAC是什么,緊接著也發(fā)送了一個(gè)ARP的請(qǐng)求過(guò)去,詢(xún)問(wèn)1.1.1.1的MAC,R1回復(fù)這個(gè)ARP請(qǐng)求。后續(xù),通信就正常了。

注意:如果是正常的ARP詢(xún)問(wèn),那么只要一方放送ARP請(qǐng)求,另外一份響應(yīng)的時(shí)候,還會(huì)把請(qǐng)求方的ARP的信息緩存起來(lái)。并且在主機(jī)模式下的路由器是不能關(guān)閉代理ARP的,就算接口下關(guān)閉了,也一樣會(huì)響應(yīng)請(qǐng)求。

其實(shí),不只有代理ARP能實(shí)現(xiàn)這個(gè)需求,比如在PC的情況下,因?yàn)镻C沒(méi)有代理ARP機(jī)制,所以,可以直接把1.1.1.1的網(wǎng)關(guān)設(shè)置為2.2.2.2,2.2.2.2的網(wǎng)關(guān)為1.1.1.1,它一樣能通信,因?yàn)樗鼤?huì)發(fā)送ARP信息來(lái)請(qǐng)求網(wǎng)關(guān)。

注意:并不是所有的操作系統(tǒng)都是能執(zhí)行的,有些是禁止的,之所有說(shuō)明這個(gè)案例,主要是說(shuō)明ARP在MAC和IP對(duì)應(yīng)時(shí)候的作用,已經(jīng)二層封裝。