如何通俗易懂解釋網(wǎng)絡(luò)工程中的技術(shù),如STP,HSRP等?
在面試時(shí),比如被問到HSRP的主備切換時(shí)間時(shí)多久,STP幾個(gè)狀態(tài)的停留時(shí)間,自己知道有這些東西,但在工作中不會(huì)經(jīng)常用到,就老是記不住,覺得可能還是自己基礎(chǔ)不夠牢固,知識(shí)掌握不夠全面。想請(qǐng)教,對(duì)于此類技術(shù)細(xì)節(jié),工作中不常用,但如何才能牢記?
正文
充分而徹底地了解一個(gè)協(xié)議,是記住它的關(guān)鍵!
Spanning tree(802.1d)收斂過程
天下群雄紛起(switch power on),個(gè)個(gè)都默認(rèn)是老大(root bridge),但都還比較謙虛,保持靜默15秒(listening,unable forwarding end user traffic),用于收集情報(bào)(other switch BPDU),最早進(jìn)入靜默狀態(tài)的山大王(最先啟動(dòng)的交換機(jī))等的不耐煩了(listening timeout),因?yàn)樗麤]有收集到任何消息,開始散發(fā)傳單(it's own BPDU),2秒一次(BPDU interval ),大言不慚稱帝(root bridge)。
各地土匪由于武力不敵(BPDU priority 低),只好俯首稱臣(non root bridge),只敢乖乖地接收皇帝的圣旨(BPDU configuration ),然后再 relay 一下皇帝的圣旨到下游郡王…
大梟雄(BPDU priority 最高)醒來的晚(power on),看到如此情形不愿意了,一個(gè)小蝦米竟然充大尾巴狼,于是發(fā)出了自己的挑戰(zhàn)書(BPDU),從自己的各個(gè)城門散發(fā)出去,意思是:小崽子,快快滾下臺(tái)去!
收到挑戰(zhàn)書的郡王們(switch ) 意識(shí)到新的皇帝登場(chǎng)了,于是改玄易轍紛紛以新皇帝為中心,重新選擇自己的rootport ;收到挑戰(zhàn)書,舊皇帝倒也遵守游戲規(guī)則,很配合地俯首稱臣,至此,天下大勢(shì)已定,大梟雄稱帝(root bridge ),于是皇城所有城門選為designated port。
各個(gè)郡國(guó)選擇離皇城最近的城門做自己的朝圣門(root port) ,如果有相同距離(path cost)的兩個(gè)城門,則哪個(gè)城門上游的城門(port priority ) 優(yōu)先級(jí)高則選為朝圣門(root port ) 。
各個(gè)郡國(guó)之間的城門則根據(jù)距離皇城的遠(yuǎn)近(path cost ) ,誰近則誰的城門選做 designated 城門(designated port),輸者則為 ( non designated port)。
于是一個(gè)以皇帝為中心的權(quán)利樹(Spanning Tree)生成了…
各個(gè)城門角色選好,先登記(learning,unable forwarding end user traffic) 一下平民(host/end user)住址信息( MAC Address — Port Number),周期15秒,完成這個(gè)過程,天下太平( 網(wǎng)絡(luò)收斂)。
所有非 non-designated城門可以允許平民自由雙向流動(dòng)(bi-directional end user traffic )。
皇城,所有城門可以發(fā)圣旨(BPDU),也可以接收來自下手郡國(guó)的奏折( BPDU Topolology Change Notification)。
皇上的圣旨包含有:
皇帝的國(guó)號(hào) ( Root Bridge ID) (Priority + MAC) 皇帝駕崩觀望等待周期 20 秒( max-age) 皇帝頒布圣旨的時(shí)間間隔 2 秒 ( BPDU Hello)城門靜默時(shí)間 15 秒 ( forward -delay )登記平民住址時(shí)間 15 秒 (forward-delay)
皇帝駕崩觀望周期超時(shí)(Root Bridge 崩潰重啟,死機(jī),通往root bridge uplinkdown) ,即郡王如果20 秒沒有收到圣旨(RootBridge BPDU),下屬郡王可以自行選擇新的皇帝(root bridge)。
其它郡國(guó)的所有城門都可以接收圣旨,但只會(huì)把從朝圣門(root port)收到的圣旨relay 到下游郡國(guó)。
如果郡國(guó)有什么風(fēng)吹草動(dòng)(topology change,Link down ,凡是在這個(gè)link下游的MAC Address Entry 要快速超時(shí),否則會(huì)造成長(zhǎng)時(shí)間的流量黑洞),需要及時(shí)上奏皇上(BPDU Notification),也是通過朝圣門( root port) 一級(jí)級(jí)上報(bào)給皇上(TC,Topology Change),上游郡國(guó)可自行發(fā)確認(rèn)信號(hào)(TCA,Topology Change Acknowledge),然后皇上會(huì)發(fā)一個(gè)國(guó)家進(jìn)入緊急狀態(tài)圣旨(BPDU configure with TC bit set ) ,接收到此圣旨的郡王紛紛將缺省的平民(host ) 的地址數(shù)據(jù)庫 ( MAC Address Table ) 超時(shí)時(shí)間由 5 分鐘縮短為20 秒(max-age)。
記住一點(diǎn):圣旨(BPDU Configure)只能由皇帝(root bridge) 一個(gè)人向下發(fā),即單向流動(dòng),用于管理國(guó)家,告訴郡王(non root bridge)如何保持同步??梢苑Q之為 上游 —> 下游控制流量。
奏折(BPDU notification )由各個(gè)郡王向上發(fā),通知皇上地方有暴亂(topology change)??梢苑Q之為下游 —> 上游 報(bào)告流量。
數(shù)據(jù)傳輸過程
1 屬于同一個(gè)郡國(guó)(same accessswitch)平民交流
平民(host )之間走親串友(end user traffic ) ,如果屬于同一個(gè)郡國(guó)(access switch),則他們之間的走動(dòng)(bi-directionaltraffic)只局限于郡國(guó)之內(nèi),這種流量最節(jié)省資源。不會(huì)干擾上游郡國(guó)(aggregate switch),以及皇帝(core switch) 。
2 不同郡國(guó)(different accessswitch)的平民之間的交流,則有二種情況:
2.1 相同的上游郡國(guó)(same aggregate switch )
流量需要經(jīng)過3個(gè)郡國(guó),源郡國(guó)(access switch)、上游郡國(guó)(aggregate switch)、目的郡國(guó)(access switch),需要耗費(fèi)更多的帶寬資源。
2.2 不同的上游郡國(guó)(different aggregate switch )
流量需要經(jīng)過5個(gè)郡國(guó),源郡國(guó)(access switch)、上游郡國(guó)(aggregate switch)、皇城(core switch),另一個(gè)分支的上游郡國(guó)(aggregate switch)、目的郡國(guó)(access switch),需要耗費(fèi)更多的帶寬資源、以及5臺(tái)switch硬件處理資源。
由于皇帝都是坐北朝南的,我們稱凡是途徑皇城的流量為南北流量(South-North Traffic),而不途徑皇城的流量為 東西流量(West-EastTraffic )。
過去的10年,公司的流量大多為訪問公司服務(wù)器、互聯(lián)網(wǎng)的流量,它們需要途徑皇城,途徑皇城(RootBridge/Core Switch)南北流量占大多數(shù),采用三層架構(gòu)(access/aggregate/core)更利于網(wǎng)絡(luò)擴(kuò)展。
而隨著虛擬(Virtual Host)計(jì)算的不斷普及,更多的是東西流量,不需要途徑皇城,則流量由aggregate switch 使用 大二層技術(shù)(big layer 2 ) , 如 VxLAN 進(jìn)行擴(kuò)展,途徑 core switch 的南北流量越來越少,現(xiàn)在的網(wǎng)絡(luò)架構(gòu)慢慢演變成大二層的扁平架構(gòu)。
上圖中最下方為Access switch, 新的名稱:Leaf,用于連接 host , server 。
上方為Aggregate switch ( VTEP, MP-BGP EVPN),新的名稱:Spine,用于本地二層(locallayer 2)的交換,大二層的交換 ( remote layer 2 ),同時(shí)還負(fù)責(zé)三層的路由。
讀者一定發(fā)現(xiàn)一個(gè)規(guī)律,我總是把Root Bridge / Core Switch 合二為一,為什么CoreSwitch 一定要做Root Bridge? 或者反過來說,為何 Root Bridge一定要做 Core Switch?
古代大多選長(zhǎng)安作為首都皇城,可以更好管理國(guó)家,距離上也適中,而如果選擇一個(gè)邊緣地區(qū)(edge switch)如海南島、黑龍江,則不利于經(jīng)濟(jì)、交通的往來。
Core Switch 一般位于網(wǎng)絡(luò)的中心,距離誰也不會(huì)太遠(yuǎn)(2hop),而且數(shù)據(jù)吞吐能力超強(qiáng),一般不會(huì)是流量的瓶頸,所以選擇它做Root Bridge 是最合理不過。
作為網(wǎng)絡(luò)設(shè)計(jì)者,需要防止任何 非core switch 的 閑雜人員自說自話做Root Bridge,一般需要將 core switch 的值設(shè)為最小 4096 (值越小越優(yōu)先),那4095 不是更小嗎?為何不設(shè)成4095?
那是因?yàn)?Priority 占據(jù)16位中的高4位,最小值即為0001 0000 0000 0000 ,4096 為最小值。
此外需要 access switch 配置 Port Fast ,BPDU Guard,Port Fast可以讓端口不需要經(jīng)過 listening 、learning 痛苦而漫長(zhǎng)的過程,可以直接進(jìn)入 end user traffic forwarding 狀態(tài)。后者可以防范非法軟件發(fā)送高優(yōu)先級(jí)的BPDU,一方面由于Enable Port Fast ,disable spanning tree functionality on this port,造成環(huán)路;另一方面 如果搶占了 Root Bridge 這個(gè)皇帝角色,那將是一個(gè)災(zāi)難,因?yàn)橥緩交食?RootBridge )的流量全部被吸引了過來,用戶電腦將流量全被默默地扔了,造成流量黑洞…
HSRP/VRRP
HSRP:Hot Standby Redudant Protocol
VRRP:Viritual Routing Redudant Protocol
稱它們二者為FHRP,即第一跳冗余協(xié)議。 HSRP是cisco公司私有協(xié)議,后來IETF覺得它挺不錯(cuò),就依葫蘆畫瓢打造一個(gè)業(yè)界標(biāo)準(zhǔn)協(xié)議,VRRP,用于不同公司的產(chǎn)品之間的消息交換。
對(duì)于用戶電腦/服務(wù)器來說,缺省網(wǎng)關(guān)就是第一跳路由器,換句話說,所有非本地的流量都需要缺省網(wǎng)關(guān)來轉(zhuǎn)發(fā),如果缺省網(wǎng)關(guān)掛了,那是不是本網(wǎng)段的所有主機(jī)、服務(wù)器都和互聯(lián)網(wǎng)隔絕了?既然缺省網(wǎng)關(guān)如此重要,那就需要提供備份路由器來進(jìn)行備份。主缺省網(wǎng)關(guān)(primary)和 備份路由器(secondary )之間需要一種消息機(jī)制(keepalive 3秒一次)來發(fā)現(xiàn)對(duì)方,還需要依靠priority大小來選出誰是 primary,誰是secondary? 同時(shí)最好有身份驗(yàn)證(authentication)機(jī)制認(rèn)證彼此。
Primary RouterCrash / LAN Link Down
Primary無法發(fā)送keepalive 消息,keepalive 3秒一次,備份路由器連續(xù)3次沒有接收到keepalive,則認(rèn)為自己可以擔(dān)當(dāng)主路由器。
這里有兩個(gè)關(guān)鍵詞:
VIP: Virtual IP
VMAC: Virtual MAC
誰擔(dān)任primary router, 誰的網(wǎng)絡(luò)接口就綁定VMAC/VIP,假設(shè) VIP=10.1.1.1 /24,VMAC= xxxxxx.000001,那么VIP就是10.1.1.0/24網(wǎng)段的缺省網(wǎng)關(guān)。如果有host ARP request 10.1.1.1 的MAC地址是多少?則擔(dān)任primary router 路由器用VMAC=xxxxxx.000001來 ARP reply。
如果主路由器crash、接口down,就無法發(fā)送keepalive消息,keepalive 3秒一次,如果備份路由器連續(xù)三次沒有接收到keepalive,則認(rèn)為自己可以擔(dān)當(dāng)主路由器。
Primary Router WANLink Down
Primary失去了Internet access ,主動(dòng)降低自己的priority,使自己的priority < 備份路由器 Priority,則備份路由器認(rèn)為自己可以擔(dān)當(dāng)主路由器。
如果原來的primary router WAN 又UP了,并且穩(wěn)定了一段時(shí)間,可以將自己的priority恢復(fù)正常,可以恢復(fù)自己primary 的地位。