“第三層交換的原理是,假設(shè)兩個(gè)使用IP的主機(jī)A、B通過(guò)第三層交換機(jī)進(jìn)行通信。發(fā)送站點(diǎn)A在開(kāi)始發(fā)送時(shí),把自己的IP地址與B站的IP地址比較,判斷B站是否與自己在同一子網(wǎng)內(nèi)。若目的站B與發(fā)送站A在同一子網(wǎng)內(nèi),則進(jìn)行二層的轉(zhuǎn)發(fā)。若兩個(gè)站點(diǎn)不在同一子網(wǎng)內(nèi),如發(fā)送站A要與目的站B通信,發(fā)送站A要向”缺省網(wǎng)關(guān)“發(fā)出ARP請(qǐng)求(地址解析)封包,而”缺省網(wǎng)關(guān)“的IP地址其實(shí)是三層交換機(jī)的三層交換模塊。當(dāng)發(fā)送站A對(duì)”缺省網(wǎng)關(guān)“的IP地址廣播出一個(gè)ARP請(qǐng)求時(shí),如果三層交換模塊在以前的通信過(guò)程中已經(jīng)知道B站的MAC地址,則向發(fā)送站A回復(fù)B的MAC地址。否則三層交換模塊根據(jù)路由信息向B站廣播一個(gè)ARP請(qǐng)求,B站得到此ARP請(qǐng)求后向三層交換模塊回復(fù)其MAC地址,三層交換模塊保存此地址并回復(fù)給發(fā)送站A,同時(shí)將B站的MAC地址發(fā)送到二層交換引擎的MAC地址表中。從這以后,A向B發(fā)送的數(shù)據(jù)包便全部交給二層交換處理,信息得以高速交換。由于僅僅在路由過(guò)程中才需要三層處理,絕大部分?jǐn)?shù)據(jù)都通過(guò)二層交換轉(zhuǎn)發(fā),因此第三層交換機(jī)的速度很快,接近第二層交換機(jī)的速度,同時(shí)比相同路由器的價(jià)格低很多”。
其中的這句話令我郁悶了半天“當(dāng)發(fā)送站A對(duì)”缺省網(wǎng)關(guān)“的IP地址廣播出一個(gè)ARP請(qǐng)求時(shí),如果三層交換模塊在以前的通信過(guò)程中已經(jīng)知道B站的MAC地址,則向發(fā)送站A回復(fù)B的MAC地址。否則三層交換模塊根據(jù)路由信息向B站廣播一個(gè)ARP求”。
分析:既然A和B不在同一個(gè)網(wǎng)段,A發(fā)送ARP請(qǐng)求網(wǎng)關(guān)的MAC地址,怎么三層交換機(jī)就返回了B的MAC地址呢?
分析上面這段文章,筆者認(rèn)為這種觀點(diǎn)違背了主機(jī)與缺省網(wǎng)關(guān)通信的基本原理。文章提到“當(dāng)發(fā)送站A對(duì)”缺省網(wǎng)關(guān)“的IP地址廣播出一個(gè)ARP請(qǐng)求時(shí),如果三層交換模塊在以前的通信過(guò)程中已經(jīng)知道B站的MAC地址,則向發(fā)送站A回復(fù)B的MAC地址。否則三層交換模塊根據(jù)路由信息向B站廣播一個(gè)ARP 請(qǐng)求”。實(shí)際上,A站向三層交換模塊發(fā)送網(wǎng)關(guān)IP地址的ARP請(qǐng)求時(shí),ARP請(qǐng)求報(bào)文并不包含B站IP地址,三層交換模塊只會(huì)把自己IP地址對(duì)應(yīng)的MAC 地址回復(fù)給A站,根本不會(huì)向發(fā)送站A回復(fù)B的MAC地址。這是錯(cuò)誤之一。
退一步說(shuō),即便三層交換模塊回復(fù)B站的MAC地址,由于B站和A站不在同一子網(wǎng),A站也不會(huì)把B站的目的MAC地址封裝在A站要發(fā)送的以太網(wǎng)幀中。這是錯(cuò)誤之二。
再者,三層交換模塊接收A站發(fā)送到B站的以太網(wǎng)幀,三層交換模塊從以太網(wǎng)幀的IP包中提取B站的IP地址,通過(guò)查找路由表,尋找到B站的下一跳,若B站與第三層交換機(jī)某一接口在同一網(wǎng)段,第三層交換機(jī)向B站IP地址廣播ARP請(qǐng)求,從B站的ARP應(yīng)答中可得知B站的MAC地址;若B站與三層交換機(jī)某一接口不在同一網(wǎng)段,中間相隔了好幾跳,三層交換模塊只會(huì)向下一跳IP地址廣播ARP請(qǐng)求,下一跳ARP應(yīng)答的應(yīng)是下一跳IP地址的MAC地址,三層交換模塊無(wú)從得知B站的MAC地址。這是錯(cuò)誤之三。
要達(dá)到“路由一次,處處交換”或“基于目的MAC地址的第二層交換”的目的,必須改變現(xiàn)存主機(jī)與缺省網(wǎng)關(guān)的通信機(jī)制或第三層交換機(jī)的路由規(guī)則,換句話說(shuō),以一種新的主機(jī)與缺省網(wǎng)關(guān)的通信機(jī)制替代現(xiàn)有的通信機(jī)制。就像前面描述的3Com公司的快速I(mǎi)P技術(shù)一樣。實(shí)際網(wǎng)絡(luò)中主機(jī)和第三層交換機(jī)都工作得很好,無(wú)需主機(jī)做任何改變,也無(wú)需改變?cè)械木W(wǎng)絡(luò)設(shè)施。在第三層交換機(jī)替代傳統(tǒng)路由器的場(chǎng)合,子網(wǎng)間的流量轉(zhuǎn)發(fā)性能卻得到了空前的提高。這并不是改變了交換機(jī)對(duì)三層報(bào)文轉(zhuǎn)發(fā)機(jī)制的結(jié)果,即“路由一次,處處交換”或“基于目的MAC地址的第二層交換”的結(jié)果,而是第三層交換機(jī)基于硬件快速轉(zhuǎn)發(fā)三層報(bào)文的結(jié)果。