BPG笔记(四)
1,BGP的路由過濾
1,通過路由策略來進行過濾
1,抓取流量 [r1]ip ip-prefix aa permit 172.16.1.0 24 2,配置路由策略 [r1]route-policy aa deny node 10 Info: New Sequence of this List. [r1-route-policy]if-match ip-prefix aa [[r1]route-policy aa permit node 20 Info: New Sequence of this List. [r1-route-policy] [r1-route-policy]q 3,在BGP進程中進行調用 [r1-bgp]peer 12.0.0.2 route-policy aa export2,通過前綴列表進行過濾
1,配置前綴列表 [r1]ip ip-prefix bb deny 172.16.2.0 24 [r1]ip ip-prefix bb permit 0.0.0.0 0 less-equal 32 2,在BGP進程中進行調用 [r1-bgp]peer 12.0.0.2 ip-prefix bb export 3,通過filter-policy來進行過濾 1,配置ACL列表 --- 在BGP中調用過濾策略時,他只能調用ACL列表,所以我們必須使用ACL列表來抓取流量 [r2-acl-basic-2000]rule deny source 172.16.3.0 0 --- ACL列表在抓取流量時,因為過濾策略本身沒有拒絕動作,所以,動作必須選擇拒絕 [r2-acl-basic-2000]rule permit source any 2,在BGP進程中調用 [r2-bgp]peer 12.0.0.1 filter-policy 2000 import2,BGP的社團屬性
BGP的社團屬性就類似于路由的一個標記,本質上由32位二進制構成 --- 1,直接使用十進制 來標志;2,十六位二進制:十六位二進制 ---- 一條BGP路由當中不一定只打一個社團屬性, 可以打多個。 在BGP當中,定義了幾個公有的社團屬性。 1,0X00000000 --- “Internet” --- 默認情況下,所有的BGP路由缺省屬于這個社團當中,即抓取社團屬性為0的路由將會抓到所有的BGP路由。 2,0XFFFFFF02 --- “no - advertise” --- 如果將某條BGP路由打上這個社團屬性,則這條路由將不會被通告給自己的任何BGP對等體。 3,0XFFFFFF01 --- “no - export” --- 如果將某條BGP路由打上這個社團屬性,則這條路由將不會被通告給自己的任何EBGP對等體。(這個不通告不包括聯邦的EBGP對等體) 4,0XFFFFFF03 --- “no - export - subconfed” --- 如果將某條BGP路由打上這個社團屬性,則這條路由將不會被通告給自己的任何EBGP對等體,包含聯邦的EBGP對等體配置社團屬性的策略: [r1]route-policy com permit node 10 [r1-route-policy]apply community ? INTEGER<0-4294967295> Specify community number STRING<3-11> Specify aa<0-65535>:nn<0-65535> internet Internet(well-known community attributes) no-advertise Do not advertise to any peer (well-known community attributes) no-export Do not export to external peers(well-known community attributes) no-export-subconfed Do not send outside a sub-confederation(well-known community attributes) none No community attribute [r1-route-policy]apply community no-advertise [r1-bgp]peer 12.0.0.2 route-policy com export --- 在BGP進程中調用? [r1-bgp]peer 12.0.0.2 advertise-community ---- 在進程中開啟社團屬性的傳遞性,華為默認關閉了其傳遞性。 自定義社團屬性: 1,做路由策略 [r1]route-policy com1 permit node 10 Info: New Sequence of this List. [r1-route-policy]apply community ? INTEGER<0-4294967295> Specify community number STRING<3-11> Specify aa<0-65535>:nn<0-65535> internet Internet(well-known community attributes) no-advertise Do not advertise to any peer (well-known community attributes) no-export Do not export to external peers(well-known community attributes) no-export-subconfed Do not send outside a sub-confederation(well-known community attributes) none No community attribute [r1-route-policy]apply community 1:11 2,在發布路由時調用路由策略 [r1-bgp]network 172.16.4.0 24 route-policy com2 3,根據社團屬性抓取流量 使用社團屬性過濾器來抓取 --- community-filter [r1]ip community-filter 1 permit 1:11 4,根據抓取到的流量配置策略 [r1]route-policy aaa deny node 10 Info: New Sequence of this List. [r1-route-policy]if-match community-filter 1 [r1-route-policy]q [r1]route-policy aaa permit node 20 Info: New Sequence of this List. [r1-route-policy]if-match community-filter 2 [r1-route-policy]ap [r1-route-policy]apply community no-export ? INTEGER<0-4294967295> Specify community number STRING<3-11> Specify aa<0-65535>:nn<0-65535> additive Add to the existing community internet Internet(well-known community attributes) no-advertise Do not advertise to any peer (well-known community attributes) no-export Do not export to external peers(well-known community attributes) no-export-subconfed Do not send outside a sub-confederation(well-known community attributes) <cr> Please press ENTER to execute command [r1-route-policy]apply community no-export additive --- 在原有社團屬性的基礎上增加社團屬性 [r1-route-policy]q [r1]route-policy aaa permit node 30 [r1]route-policy aaa permit node 30 Info: New Sequence of this List. [r1-route-policy]q 5,在BGP進程中調用路由策略 [r1-bgp]peer 12.0.0.2 route-policy aaa export MPLS --- 多協議標簽交換技術 包交換 --- 數據組成數據包,之后,在各個網絡節點中不斷傳遞,最終到達目標。 包交換轉發效率不高的問題所在: 1,在整個包交換的過程中,需要先查詢路由表之后在查看ARP緩存表兩張表來完成轉發過程,導致效率較低; 2,路由表的匹配原則 --- 最長匹配原則導致路由表的查詢效率不會太高 3,路由表存在遞歸查找的過程 4,IP頭部是可變長頭部,導致我們對IP頭部進行讀取時需要使用軟件進行處理,無法基于硬件進行快速的查找。 標簽交換 標簽交換在二層和三層封裝之間,添加一個和路由條目存在映射關系的標簽,之后維護一張記錄對應關系及轉發接口的表,攜帶標簽的數據來到設備上,先看標簽,之后基于維護的標簽轉發表進行轉發,而不再需要查看三層的內容。因為標簽本身短小且定長,所以,其轉發效率將高于包交換。 但是標簽交換需要先給數據包中打上標簽,之后在到達目標之前還需要將標簽彈出,因此,標簽交換只是在轉發過程中提高了效率,整體上相交包交換提升并不明顯 包交換的變更 1,進程交換 --- process switching --- 最早期的包交換 --- 每一個數據包都需要先查看路由表,之后再看ARP緩存表來確定二層封裝內容。 2,快速包交換(fast switching) --- 基于流的包交換 --- 一次路由,多次交換 --- 當一股數據流來到設備上,我們只針對第一個數據包執行路由過程,將路由的結果和數據包特征(五元組)記錄在緩存當中。之后,數據流中的其他數據來到設備將直接對比緩存中的五元組,相同,則直接按照轉發方式進行轉發二不在進行路由過程。 3,思科的特快交換技術 --- Cisco Express Forwading --- 簡稱CEF技術。主要是將路由表和ARP緩存表中的內容進行預讀取(就是將該遞歸的進行遞歸運算,該查ARP緩存表的提前查好),之后將結果記錄在CEF表中,而CEF表是支持硬件轉發的,所以,可以 極大的提升路由的轉發效率。 雖然CEF技術是思科的私有技術,但是各大廠商也基于其思路設計出了屬于自己特快交換技術。華為設備在進行路由轉發時就基于FIB(轉發信息表),這個表是支持硬件轉發的。 雖然標簽交換無法替代包交換成為主流的轉發技術,但是,依然和包交換在共同的發展,MPLS就是包交換和標簽交換共同發展的產物,主要因為在一些領域下,標簽交換可以做到更好: 1,用于解決BGP的路由黑洞 2,MPLS VPN 3,MPLS TE --- 流量工程 --- 簡單理解流量工程就是控制流量轉發的路徑。 所有運行標簽交換的路由器組成的轉發網絡,我們可以看作是一個MPLS網絡,我們將他稱為 MPLS域 。我們將這些運行了MPLS的設備稱為 LSR --- 標簽交換路由器 基于標簽交換前提首先得有標簽,標簽是每臺LSR基于本地的路由表中的路由條目來生成的。我們將所有具有相同特征(所有匹配到同一條路由條目的數據包)的數據包稱為 FEC --- 等價轉發類 。同一個FEC需要配置同一個標簽。每臺LSR將自己的標簽和FEC的映射信息記錄在本地的一張表中,這張表被稱為 --- LIB(標簽信息表) 。之后,將和FIB表進行結合,生成 LFIB表 --- 標簽轉發信息表 。 在整個過程中,LSR設備除了需要自己分配標簽以外還需要知道其他LSR設備針對同一個FEC分配的標簽,所以,標簽交換和包交換一樣也分為兩個層面 --- 控制層面,數據層面包交換 控制層面 --- 路由協議的數據流方向,目的是為了獲取未知網段的路由信息,生成路由表。 數據層面 --- 設備基于已經完善的路由表(FIB)來轉發具體的數據信息,其方向正好和控制層流量相反。 標簽交換 控制層面 --- 基于FEC分配標簽,并獲取其他LSR對同一個FEC分配的標簽,之后,記錄生成LIB表,之后結合FIB生成LFIB表。 --- 這個過程可以基于靜態來完成,也可以基于動態協議來完成 --- LDP協議 --- 標簽分發協議 數據層面 --- 設備基于LFIB表,根據標簽進行轉發。 入站LSR --- (ingress)MPLS域的邊界,當沒有標簽的數據包來到入站LSR上,他需要在數據包中壓入標簽。 中轉LSR --- (transit) 完成標簽置換動作的LSR設備。 出站LSR --- (egress)--- 也是MPLS域的邊界,完成標簽的彈出動作。整個過程中,數據層流量流動的路徑為R1-R2-R3-R4,這條路徑我們稱為 LSP --- 標簽交換 路徑 。需要注意的是,LSP是單向的,如果想讓數據雙向來回,則還需要構建一條R4-R3-R2-R1的路徑 Label --- 20位 --- 0 - 2的20次方 --- 我們將標簽號的取值范圍稱為標簽空間,每臺LSR設備的標簽空間都是獨立的。 其中: 0 - 15 ---- 特殊標簽值 --- 我們分配的時候不能直接分配,因為每個特殊標簽都擁有其特殊的含義 16 - 1023 ---- 一般應用于靜態LSP搭建 1024 - 2的20次方 ---- 應用于LDP等動態標簽交換協議來分配時使用 EXP --- 占3位 --- 做策略使用的 --- 一般000,可以理解為優先級,優先級高則可以優先轉發。 S --- 占1位 --- 棧底位 --- 標簽不止可以打一個,可以打多個,我們將多個標簽的有序集合稱為 標簽棧 。如果存在多個標簽,需要使用這個標記位進行標識。如果是最后一個標簽,則該位置1,如果不是,則置0。 TTL --- 生存時間 --- 和三層的TTL值一樣,主要目的是為了防止數據包在環路中無限循環下去。數據來到入站LSR時,將把三層的TTL值復制到標簽中,在MPLS域中沒經過一次轉發,TTL減1,之后,在出站LSR上彈出標簽,再將標簽中的TTL值復制到三層包頭中。 構建靜態LSP: 1,保證路由條件 --- 靜態只需要邊界設備擁有來回路由信息即可 2,配置LSR 入站LSR 1,給LSR配置LSR-ID --- 32位二進制構成,都是按照IP地址格式來寫,但是,只能手動配置 [r1]mpls lsr-id 1.1.1.1 --- LSR-ID建議使用環回接口的IP地址 2,激活MPLS 1,全局激活MPLS [r1]mpls 2,接口激活MPLS --- 所有需要參與MPLS數據收發的接口都需要激活 [r1-GigabitEthernet0/0/0]mpls 3,構建靜態的LSP [r1]static-lsp ingress 1to4 destination 4.4.4.0 24 nexthop 12.0.0.2 out-label 1000 1,下一跳 --- 必須和路由表中的下一跳相同 2,out-label --- 出站標簽 --- 下一跳設備接受后需要根據這個標簽判斷數據到達那個網段。 配置中轉LSR: [r2]static-lsp transit 1to4 incoming-interface GigabitEthernet 0/0/0 in-label 1000 nexthop 23.0.0.2 out-label 1001 1,in-label --- 入站標簽 --- 入站標簽必須和上一跳配置的出戰標簽相同 配置出戰LSR: [r4]static-lsp egress 1to4 incoming-interface GigabitEthernet 0/0/0 in-label 1002 [r1]display mpls static-lsp --- 查看靜態LSP?
?
?
總結
- 上一篇: 2022年前三季度全国自然灾害情况公布
- 下一篇: p4779 单源最短路径(标准版)-ja