詳解路由策略與策略路由
在對路由的學(xué)習中,關(guān)于路由策略與策略路由的異同,很多學(xué)員不能把握兩者間的區別與聯(lián)系。本文擬對這兩個(gè)概念進(jìn)行介紹,希望能夠得到更深的理解。
一、路由策略
我們知道,路由器要完成數據報文的轉發(fā),其依據是路由表。而路由表大多情況下是通過(guò)各種動(dòng)態(tài)路由協(xié)議學(xué)習到的。不論何種路由協(xié)議,缺省情況下每臺路由器都會(huì )將其所有的路由信息發(fā)布給其他的路由器。但在很多場(chǎng)景下,可能需要對路由器發(fā)布的路由信息進(jìn)行人為干預,以控制路由信息的傳播或影響路由選路。要完成這樣的需求,就需要借助路由策略。
簡(jiǎn)單來(lái)說(shuō),我們可以根據某種需求,通過(guò)改變參數或者設置某種控制方式來(lái)改變路由的產(chǎn)生、發(fā)布、選擇的結果,注意,改變的是結果(即路由表)。也就是說(shuō),路由策略會(huì )影響路由表。路由器則依然根據路由表進(jìn)行數據報文轉發(fā)。
需要注意的是,路由策略并不能夠單獨使用。在IGP路由協(xié)議中,路由策略常見(jiàn)于在不同的路由協(xié)議間做路由引入時(shí)使用;而在BGP協(xié)議中,路由策略隨處可見(jiàn),大多數BGP指令均支持路由策略。
二、策略路由
與路由策略不同,策略路由可以單獨使用。其作用是人為干預數據報文的轉發(fā),而不是干預路由表的形成。
那么問(wèn)題來(lái)了,路由器到底是根據路由表轉發(fā)數據報文還是根據策略路由轉發(fā)呢?
當路由器某接口配置了策略路由,那么從該接口進(jìn)入的數據報文將會(huì )根據策略路由的if-match語(yǔ)句進(jìn)行匹配,若匹配上,則無(wú)視已存在的路由表,直接依據策略路由的指示從指定接口或下一跳轉發(fā)出去;若不匹配,則查路由表,根據路由表中的下一跳進(jìn)行轉發(fā)。
因此,策略路由影響的是數據報文的轉發(fā),與路由表沒(méi)有直接關(guān)系。當存在策略路由,則按策略路由進(jìn)行轉發(fā),否則按普通轉發(fā)流程進(jìn)行轉發(fā),即查找路由表。
三、聯(lián)系與區別
聯(lián)系:路由策略與策略路由都是為了轉發(fā)數據報文而進(jìn)行路徑選擇的策略,都是根據某種規則改變某些參數或控制手段來(lái)設置不同的轉發(fā)路徑。
區別:路由策略是根據一些規則,使用某種策略改變規則中影響路由發(fā)布、接收或路由選擇的參數而改變路由表的內容。是在路由發(fā)現的時(shí)候產(chǎn)生作用。策略路由是盡管存在當前最優(yōu)的路由,但是可以通過(guò)使用策略路由使數據報文不使用當前路由表中的轉發(fā)路徑而單獨使用策略路由指定的轉發(fā)路徑。策略路由在數據包轉發(fā)的時(shí)候發(fā)生作用、不會(huì )改變路由表中任何內容。策略路由的優(yōu)先級比路由策略高,當路由器接收到數據包,并進(jìn)行轉發(fā)的時(shí)候,會(huì )優(yōu)先根據策略路由的規則進(jìn)行匹配,如果能匹配上,則根據策略路由來(lái)轉發(fā),否則按照路由表中轉發(fā)路徑來(lái)進(jìn)行轉發(fā)。
簡(jiǎn)單來(lái)說(shuō),路由策略是路由發(fā)現規則,策略路由是數據包轉發(fā)規則。其實(shí)將“策略路由”理解為“轉發(fā)策略”,這樣更容易理解與區分。由于轉發(fā)在底層,路由在高層,所以轉發(fā)的優(yōu)先級比路由的優(yōu)先級高,這點(diǎn)也能理解的通。其實(shí)路由器中存在兩種類(lèi)型和層次的表,一個(gè)是路由表(routing-table),另一個(gè)是轉發(fā)表(forwording-table)。轉發(fā)表是由路由表映射過(guò)來(lái)的,策略路由直接作用于轉發(fā)表,路由策略直接作用于路由表。
四、總結
網(wǎng)絡(luò )通信的規則是先有路由,才有轉發(fā)。路由策略由于僅僅在路由發(fā)現的時(shí)候產(chǎn)生作用,在路由表產(chǎn)生且穩定之后,如果網(wǎng)絡(luò )拓撲不發(fā)生變化,路由表通常都不會(huì )變化,這時(shí)候,路由策略沒(méi)有應用就不會(huì )占用資源。而策略路由是在轉發(fā)的時(shí)候發(fā)生作用,路由器在初始產(chǎn)生路由表之后,基本工作量都在數據包轉發(fā)上,如果沒(méi)有策略路由,路由器只要分析每一個(gè)數據包的目的地址,再按路由表來(lái)匹配就可以決定下一跳;但是如果有策略路由,策略路由就一直處于應用狀態(tài),如果策略路由特別復雜,路由器要根據規則來(lái)判斷數據包的源地址、協(xié)議或應用等附加信息,這樣就會(huì )一直占用大量的資源,所以除非不得已,盡量使用路由策略,而不要使用策略路由。網(wǎng)絡(luò )優(yōu)化的時(shí)候需要考慮這一點(diǎn),如果策略路由特別復雜,能通過(guò)將網(wǎng)絡(luò )進(jìn)行簡(jiǎn)單分解而達到取消策略路由的盡量進(jìn)行分解,否則路由器負擔很重。