前文我們了解了IS-IS路由聚合和認證相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/15306645.html;今天我們來聊一聊路由控制技術中的路由策略相關話題;
為什么要路由控制?
在企業網絡的設備通信中,經常面臨一些非法流量訪問的安全性及流量路徑不優等問題,為了保證數據訪問的安全性、提高鏈路帶寬利用率,我們就需要對網絡中的流量行為進行控制;比如控制網絡流量可達性、調整網絡流量路徑等;
路由控制應用場景
控制網絡流量可達性
提示:如上圖所示,我們可以對路由進行過濾,讓對端只能學習到我們想要它學習的路由,從而實現控制網絡流量的可達性;
更改路由屬性
提示:如上圖所示,我們可以通過修改路由屬性,來影響路由的選路;比如更改某條路由開銷、給某條路由打標簽等;
路由策略
路由策略(routeing policy)的作用是當路由器在發布、接收和引入路由信息時,可根據實際組網需求實施一些策略,以便對路由信息進行過濾或改變路由信息屬性;如控制路由的發布,我們可以只發布滿足條件的路由信息;控制路由接收也是同樣的邏輯,只接收必要、合法的路由信息,以控制路由表的容量,提高網絡的安全性;過濾和控制引入的路由,我們只需要在一種路由協議在引入其他路由協議時,只引入一部分滿足條件的路由信息,並對引入的路由信息的某些屬性進行修改,以使其滿足本協議的要求;
提示:如上如所示,我們想要控制交換機A到相同網絡的路徑都走左邊,我們可以在交換機A上設置不接收右邊的路由;如果我們需要讓交換機到達相同網絡的流量有主備鏈路,可以修改對應路由的開銷,從而實現對流量路徑的影響;
總結:路由策略是指通過一系列工具或方法對路由進行各種控制的“策略”,來影響路由的產生、發布、選擇,進而影響報文轉發路徑;比如對路由進行過濾,即對應路由要不要做一些策略;修改路由屬性,即將對應路由的某些屬性進行修改至特定的值;不管是對路由的過濾還是修改路由信息屬性,最終的目的是控制路由的接收、發布和引入,提高網絡安全性和網絡性能;
路由策略的實現機制
路由策略的核心內容是過濾器,通過使用過濾器,定義一組匹配規則,即通過過濾器定義的規則來對應路由信息分類;對滿足過濾器規則的路由信息通過策略工具做特定的處理,比如做允許、拒絕或修改屬性等操作;最后通過調用工具將對應的路由策略應用到某些具體的路由協議里面,使其生效;即只定義了過濾器和策略工具,如果不調用對應路由策略是不生效的,只有被調用到具體的路由協議里面,對應路由策略才會生效;
路由策略各工具之間的調用關系
提示:首先我們需要通過條件工具(過濾器)來定義一組規則;然后通過策略工具調用條件工具來實現路由策略的定義;最后通過調用工具調用路由策略來應用對應的路由策略;當然有些調用工具也可以直接調用條件工具,來實現對應規則生效;比如調用工具filter-policy和peer這兩個工具可以直接調用條件工具,使對應條件工具中定義的規則生效;策略工具route-policy它調用條件工具后,必須要調用工具的調用才能是對應規則生效,如果只是策略工具調用條件工具,對應條件工具中定義的規則不會生效;
條件工具IP-Prefix List
IP-Prefix List(IP前綴列表):它能同時精准匹配網絡號和前綴長度;性能和可控性比ACL更高;對於ACL來說,它無法匹配掩碼和前綴長度;但是ip前綴列表不能用於數據包過濾,只能用於路由信息過濾;
提示:對於ACL來講,我們無法實現將路由引入到OSPF中,只引入192.168.0.0/16的路由,而前綴列表可以;
實驗:如下拓撲,配置ospf,分別使用acl和IP-Prefix 過濾路由信息
R1的配置

sys sys R1 int g0/0/0 ip add 12.0.0.1 24 ospf 1 router-id 1.1.1.1 area 11 net 12.0.0.1 0.0.0.0
R2的配置

sys sys R2 int g0/0/0 ip add 12.0.0.2 24 ospf 1 router-id 2.2.2.2 area 11 net 12.0.0.2 0.0.0.0
在R1上配置靜態路由,出接口指向NULL 0口
提示:靜態路由存在於路由表的必要條件是對應路由能有對應的出接口,沒有出接口只有下一跳,對應靜態路由不會存在於路由表,且對應靜態路由的狀態也是非活動狀態(Inactive);
定義acl匹配192.168.0.0/16路由信息,然后將acl匹配到的路由信息導入ospf,看看對應ospfR2能夠學習到那些路由?
使用route-policy工具調用acl過濾路由信息
提示:上述命令表示創建一個名為test的路由策略,其中調用過濾器acl 2000中的條件,即滿足過濾器acl2000中定義的規則,則路由策略允許放行;
使用調用工具import-route 調用路由策略test
驗證:查看R2的路由表,看看對應R1導入的靜態路由,R2學習到了那些?
提示:可以看到對應在R2上還是能夠學習到192.168.0.0/24的路由;這意味着我們使用acl 不能精確匹配后面的掩碼長度;
在R1上使用ip prefix過濾路由
使用策略工具route-policy調用條件工具ip-prefix
驗證:再次在R2上查看路由表,看看現在R2通過ospf學習到那些路由?
提示:可以看到現在R2只能學習到192.168.0.0/16網絡的路由,對應掩碼為24的網絡路由學習不到,其原因是前綴列表中只允許了掩碼為16的路由通過;
通過上述實驗我們可以看出,ACL不能夠精確匹配掩碼長度,而前綴列表可以正常匹配對應掩碼長度;
IP-Prefix匹配流程
提示:前綴列表和acl匹配流程差不多,都是從上至下依次匹配,匹配到的路由信息后,不再匹配下一條;如果沒有匹配上,繼續下一條規則的匹配,直到所有規則都不匹配,此時就會走,默認規則;不同之處,acl在作為路由策略調用工具的條件時默認規則是拒絕通過,即所有規則都沒有匹配上,默認是拒絕操作;acl作為包過濾工具調用條件時,它的默認規則是允許;而前綴列表只能作為路由策略調用工具調用的條件,不能作為包過濾工具的條件,默認規則是拒絕,即所有規則沒有被匹配上,最后都會被默認規則匹配,做拒絕操作;
IP-Prefix語法規則
提示:ip地址后面的數字表示匹配前綴的長度;如果不配置greater-equal 24和 less-equal 28 ,則表示精確匹配前綴長度和掩碼長度為16;如果只配置了greater-equal 24,則表示匹配掩碼長度為24-32,前綴長度為16;如果只配置了less-equal 28,則表示匹配掩碼長度為16-28,前綴長度為16;如果同時配置了greater-equal 和less-equal,則表示匹配掩碼的長度為后面兩者指定的范圍,前綴長度為16;如上圖表示匹配掩碼長度為24-28,前綴長度為16;即前面的16為必須相同;后面的掩碼必須在指定的范圍之內的網絡才能被匹配上;
IP-Prefix特殊通配地址
提示:0.0.0.0 0表示任意地址,前綴長度為0,即任意地址,不需要任何一位相同;如果后面不跟大於等於或小於等於掩碼的范圍,則表示之匹配缺省路由;如果后面跟上小於等於,則表示匹配任意長度前綴和任意地址,對應掩碼必須是指定的范圍內的掩碼路由;如0.0.0.0 less-equal 32就表示匹配所有路由;任意路由都滿足上述條件;如果跟大於等於,則表示匹配任意長度前綴和任意地址,對應掩碼必須是大於等於指定的長度的掩碼網絡路由;即0.0.0.0 0 greater-equal 表示匹配所有主機路由(掩碼長度為32);