ARP協(xié)議是網(wǎng)絡(luò)技術(shù)繞不開的一個(gè)協(xié)議,它是網(wǎng)絡(luò)通信的基礎(chǔ),但由于一般不需要額外配置,因此大家一般實(shí)際用的不多,
以下總結(jié)ARP的幾個(gè)關(guān)鍵點(diǎn):
ARP叫做地址解析協(xié)議,有些同學(xué)會(huì)將解析的IP地址還是MAC地址混淆了。
由于在網(wǎng)絡(luò)通信過程中源IP和目的IP是實(shí)現(xiàn)就知道的,且在行進(jìn)過程中是不會(huì)發(fā)生變化的(NAT場(chǎng)景除外)。所以IP地址不用再解析了,所以在這里解析的是目標(biāo)IP的MAC地址。
2、那為何要ARP解析目標(biāo)IP的MAC地址呢?
由于數(shù)據(jù)包在發(fā)送時(shí),需要對(duì)二、三層進(jìn)行數(shù)據(jù)包封裝,三層是IP地址,二層是MAC地址。如果不知道目標(biāo)IP的MAC地址,那么主機(jī)在發(fā)送數(shù)據(jù)時(shí),是沒辦法完成數(shù)據(jù)包發(fā)送的。所以要在組裝數(shù)據(jù)包之前,主機(jī)是要知道目標(biāo)IP的MAC地址的。
3、ARP協(xié)議報(bào)文除了解析到目標(biāo)IP的MAC地址外,還可以做什么呢?
1、對(duì)于終端(電腦、路由器)等三層接口來說,ARP協(xié)議報(bào)文主要是用來獲取目標(biāo)IP的MAC地址,用于封裝數(shù)據(jù)包;
2、對(duì)于交換機(jī)、透明模式的防火墻等二層作用的設(shè)備來說,ARP協(xié)議報(bào)文還可以用來做這些設(shè)備的MAC地址表的刷新。
比如在VRRP主備切換場(chǎng)景,當(dāng)備設(shè)備切換到主設(shè)備時(shí),會(huì)主動(dòng)發(fā)送一個(gè)免費(fèi)ARP。當(dāng)交換機(jī)收到這個(gè)免費(fèi)ARP時(shí),就會(huì)更新其MAC表項(xiàng),訪問vrrp虛ip時(shí),從就原來的A接口變化為B接口。此時(shí)交換機(jī)才能將報(bào)文從B接口發(fā)出去,在交換機(jī)這一環(huán)節(jié)完成“vrrp的路徑切換”
4、訪問任何IP地址之前,如果沒有其對(duì)應(yīng)MAC地址,設(shè)備都會(huì)發(fā)送ARP請(qǐng)求報(bào)文嗎?
答案是不一定的。
1)如果訪問的目標(biāo)ip和自己是同網(wǎng)段的,如果設(shè)備上沒有對(duì)應(yīng)ARP表的話,就會(huì)發(fā)送ARP請(qǐng)求報(bào)文;
2)如果訪問的目標(biāo)ip和自己且不是同網(wǎng)段的,在有配置下一跳ip的默認(rèn)路由的情況下,即有自己網(wǎng)關(guān)ip的arp時(shí),此時(shí)就不用再發(fā)送ARP請(qǐng)求報(bào)文了。因?yàn)槟J(rèn)就使用網(wǎng)關(guān)的mac地址作為目標(biāo)ip的mac地址了,一定程度上也避免了網(wǎng)絡(luò)中arp報(bào)文“泛濫成災(zāi)”。(如果默認(rèn)路由配置的是出接口而非下一跳ip,那么還是會(huì)請(qǐng)求arp報(bào)文的)
5、代理ARP是做什么用的?
代理指的是“中間人”的角色。當(dāng)請(qǐng)求一個(gè)非同網(wǎng)段ip的mac地址時(shí),由于arp報(bào)文是不能跨網(wǎng)段的,所以肯定是無法跨網(wǎng)段請(qǐng)求真正ip的mac地址。同時(shí)由于網(wǎng)絡(luò)是三層“逐跳”傳輸?shù)模灰軐?bào)文發(fā)送到我的下一跳路由器即可。基于此,三層接口只要收到非自己接口ip網(wǎng)段的arp請(qǐng)求,且自己有目標(biāo)地址的路由的情況下,此時(shí)就會(huì)把自己當(dāng)做這個(gè)中間人,行使了arp代答的職責(zé),代替目標(biāo)ip地址進(jìn)行arp應(yīng)答。所以代理ARP應(yīng)該用更完整的叫法:ARP應(yīng)答代理。默認(rèn)情況下,三層接口的arp代理應(yīng)答功能是打開的。如果要關(guān)閉,可通過在接口下配置以下命令:R1(config-if-GigabitEthernet 0/1)#no ip proxy-arp