03月03日 綜合消息:我一定讓很多瀏覽我blog關(guān)于描述 Arista’s VARP 和 Enterasys’ Fabric Routing 的讀者感到困惑—- 我得到了很多關(guān)于文章中“關(guān)于其如何在生產(chǎn)環(huán)境下工作”的問題。 接下來(lái)我們將就這個(gè)問題的細(xì)節(jié)進(jìn)行討論。
簡(jiǎn)單網(wǎng)絡(luò)拓?fù)?/strong>
我們以一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)拓?fù)錇槔?拓?fù)渲邪▋膳_(tái)邊界交換機(jī)(E1和E2),一個(gè)單獨(dú)的核心交換機(jī)(C1), 三臺(tái)主機(jī)(A,B1和B2)分別隸屬于兩個(gè)子網(wǎng)(A和B)。
我們假設(shè)我們已經(jīng)完成了一些針對(duì)于三層轉(zhuǎn)發(fā)的優(yōu)化配置, 所以E1和E2將負(fù)責(zé)子網(wǎng)A和B三層數(shù)據(jù)的轉(zhuǎn)發(fā)(通常這種轉(zhuǎn)發(fā)我們稱之為路由)。
當(dāng)A發(fā)送網(wǎng)絡(luò)流量給B1或者B2時(shí),E1將數(shù)據(jù)發(fā)送給子網(wǎng)B,相對(duì)應(yīng)如果B2想與A通信,E2將會(huì)轉(zhuǎn)發(fā)數(shù)據(jù)流給子網(wǎng)A。
拓?fù)渲姓l(shuí)做了些什么?
在上面拓?fù)洵h(huán)境中,真正我們應(yīng)該關(guān)心的問題是:在數(shù)據(jù)轉(zhuǎn)發(fā)路徑中(E1-C1-E2),哪個(gè)交換機(jī)負(fù)責(zé)二層轉(zhuǎn)發(fā)(通過查詢目的MAC地址進(jìn)行轉(zhuǎn)發(fā)),哪個(gè)負(fù)責(zé)三層路由(通過目的IP地址進(jìn)行路由)?
首先我們對(duì)子網(wǎng)內(nèi)部數(shù)據(jù)轉(zhuǎn)發(fā)進(jìn)行分析: B1發(fā)送IP數(shù)據(jù)包給B2。 要想完成數(shù)據(jù)通信, B1必須將IP數(shù)據(jù)包封裝進(jìn)MAC數(shù)據(jù)幀里, 這時(shí),目的MAC地址將會(huì)是什么呢?
B1封裝數(shù)據(jù)幀時(shí),目的MAC地址是B1通過向B2的IP發(fā)送ARP請(qǐng)求去獲取的—-通常來(lái)講, 也就是B2的MAC地址。數(shù)據(jù)幀在由B1到B2的路徑上一直以B2的MAC地址作為目的MAC地址,與此同時(shí),路徑上(E1,C1,E2)的交換機(jī)在進(jìn)行 二層轉(zhuǎn)發(fā)時(shí)也是根據(jù)B2的MAC地址進(jìn)行轉(zhuǎn)發(fā)的。 以上流程如果能夠工作,那么E1,C1,E2必須同時(shí)屬于VLAN-B。
現(xiàn)在我們來(lái)討論跨子網(wǎng)數(shù)據(jù)轉(zhuǎn)發(fā):A發(fā)送IP流量給B2, A知道B2在一個(gè)與自身不同的子網(wǎng)中, 這時(shí), A將查詢它自身的IP路由表去找到B2 IP的下一跳地址。 這里,主機(jī)通常有一條默認(rèn)路由,這條默認(rèn)路由指向默認(rèn)網(wǎng)關(guān)(GW-A – the VARP/VRRP IP,這個(gè)IP地址由E1與E2共同維護(hù))—-A將發(fā)送IP數(shù)據(jù)包給網(wǎng)關(guān)GW-A,并以GW-A的MAC地址進(jìn)行數(shù)據(jù)幀封裝。對(duì)于GW-A MAC地址, E1和E2是共享這個(gè)MAC地址的;在E1收到這個(gè)數(shù)據(jù)包后, 其將進(jìn)行三層轉(zhuǎn)發(fā)。
作為三層轉(zhuǎn)發(fā)流程的一部分,E1自身遞減了IP包的TTL并且重寫MAC數(shù)據(jù)幀幀頭。 重寫后,目的MAC地址將變?yōu)樾翴P的下一跳對(duì)應(yīng)的MAC地址—-在這個(gè)拓?fù)洵h(huán)境中, 這個(gè)下一跳為B2(這里注意:E1將會(huì)將IP包由子網(wǎng)A轉(zhuǎn)發(fā)至子網(wǎng)B)。在之后的轉(zhuǎn)發(fā)過程中,轉(zhuǎn)發(fā)路徑中的交換機(jī)(C1與E2)將遵循二層轉(zhuǎn)發(fā)原則進(jìn)行基 于目的MAC地址轉(zhuǎn)發(fā)數(shù)據(jù)。
總結(jié):E1 如果要與B2通信,其必須要有B2的ARP表項(xiàng)(否則E1將不知道B2的MAC地址),同時(shí),與B2二層網(wǎng)絡(luò)必須暢通(否則數(shù)據(jù)幀將無(wú)法到達(dá)B2)。
拓?fù)渲?,E1(作為入口交換機(jī))進(jìn)行三層(跨子網(wǎng))基于目的IP地址的數(shù)據(jù)轉(zhuǎn)發(fā),其他交換機(jī)進(jìn)行二層(子網(wǎng)內(nèi))基于目的MAC地址的數(shù)據(jù)轉(zhuǎn)發(fā)。每個(gè)VLAN必須將覆蓋所有邊界及核心交換機(jī)。
最優(yōu)化三層轉(zhuǎn)發(fā)的擴(kuò)展局限性
既然我們已經(jīng)知道了轉(zhuǎn)發(fā)流程的細(xì)節(jié), 這里可以很容易想到這種最優(yōu)化三層轉(zhuǎn)發(fā)的擴(kuò)展局限性:
每一個(gè)VLAN必須跨域所有在同一個(gè)路由域中的邊界及核心交換機(jī)。整個(gè)路由域?qū)⒊蔀橐粋€(gè)單點(diǎn)失效域(single failure domain),換句話說也是一個(gè)無(wú)法擴(kuò)展點(diǎn)。
每一個(gè)邊界交換機(jī)必須知道所有活躍IP主機(jī)的MAC地址。
每一個(gè)邊界交換機(jī)必須具有所有活躍IP主機(jī)的ARP表項(xiàng)。
此外,如果我們想用傳統(tǒng)的配置機(jī)制(每一個(gè)邊界交換機(jī)作為一個(gè)獨(dú)立的可配置設(shè)備),每一個(gè)邊界交換機(jī)需要在每一個(gè)子網(wǎng)中有一個(gè)網(wǎng)管IP地址。假設(shè)我 們網(wǎng)絡(luò)中有50臺(tái)交換機(jī),那么意味著我們將在每個(gè)/24 IPv4的子網(wǎng)中浪費(fèi)50個(gè)地址(當(dāng)然,這個(gè)問題在IPv6網(wǎng)絡(luò)中我們應(yīng)該不會(huì)那么擔(dān)心)。
更多的細(xì)節(jié):
從以上的討論中,我想讀者已經(jīng)得到ARP表項(xiàng)的相關(guān)細(xì)節(jié)了, 而在我們對(duì)一個(gè)最優(yōu)三層轉(zhuǎn)發(fā)拓?fù)浼軜?gòu)進(jìn)行評(píng)估時(shí),邊界交換機(jī)支持我們?nèi)z查ARP表項(xiàng)(也就是IPv4 主機(jī)路由)。 QFX3500( QFX3500 has 8000 ARP entries)擁有8000條ARP表項(xiàng)的存儲(chǔ),QFX3600也一樣。 Arista 7150較比QFX3500與3600而來(lái),下一跳表項(xiàng)的存儲(chǔ)空間達(dá)到了64K。如果需要更多數(shù)據(jù),讀者可以從Data Center Fabric Architectures webinar中得到前十名的設(shè)備提供商的大多數(shù)數(shù)據(jù)中心交換機(jī)的數(shù)據(jù)。