在路由器之間動態的學習路由條目,造成路由表node
IGP:以最快的速度,計算一個去往目標網絡的最短的、無環的轉發路徑
-DV
RIP
IGRP
EIGRP
-LS
ISIS
OSPF
EGP:在不一樣的企業之間,實現大量路由的穩定可靠的傳輸,而且能夠實現路由
的靈活控制,而且保證無環;
-BGP:border gateway protocol ,邊界網關協議
用於鏈接不一樣的企業或者組織結構;數據庫
prefix/mask type priority cost next-hop , interface 網絡
數據庫中 ---(priority/cost)---> 路由表中 -match packet : 最長匹配原則
money money home app
優先級:表示的路由的穩定性,值越小越好;0-255 ;負載均衡
Metric(度量值):表示的是去往一個目標網絡的距離的遠近,越小越好; tcp
OSPF:
一、鄰居表
二、數據庫
三、路由表
-hello:是非可靠傳輸方式;
-DBD:隱式確認,經過DBD報文中的序列號字段進行確認;
-LSU:顯式確認,每發送一個LSU,都會返回一個LSAck;
-LSR:顯式確認,每發送一個LSR,都會返回一個LSAck;
-LSAck:僅僅對其餘報文實現確認做用,可是自己的傳輸是不可靠的;ide
L2+L3+OSPF
BGP:
L2+L3+TCP+BGP - tcp 179
L2+L3+UDP+RIP - udp 520
L2+L3+OSFP - protocol-id : 89 , TCP/IP 路由技術卷1,2 | OSPF設計與實現 | OSPF命令手冊
L2+L3+EIGRP - protocol-id:88
L2+ISIS oop
關於交換: BCMSN chm/pdf
BGP工做原理:
一、鄰居表:display bgp peer
二、數據庫:display bgp routing-table
三、路由表學習
bgp {as} # as 分爲公有和私有,[64512--65535]測試
peer {ip-address} as-number {對方設備的}
BGP鄰居創建:
-內部鄰居
R1;
bgp 64512 # 設備本地運行的 BGP AS 號;
router-id 1.1.1.1
peer 192.168.12.2 as-number 64512 #鄰居路由器屬於的 AS 號;
R2; bgp 64512 router-id 2.2.2.2 peer 192.168.12.1 as-number 64512 display bgp peer # 查看設備上的 BGP 鄰居表; local-as local-router-id number of peers
peer v as msgrcvd msgsent outq up/down state prefrvcd
R1: bgp 64512 peer 10.10.2.2 as-number 64512 # R1 主動向 10.10.2.2 發起一個 TCP 179 的連接; # 10.10.2.2 必須位於 AS 64512 or 10.10.2.2 的回覆報文,必須是屬於as 64512 的; # 對方回包時,所使用的源IP地址必須是 10.10.2.2 , 不然不接受(這就是「更新源檢測機制」) 爲了解決「非直連端口創建鄰居時」所面臨的「更新源檢測機制」, 因此咱們在發送 BGP 連接請求時候,更改報文的源IP地址: 例如: bgp 64512 peer 10.10.2.2 connect-interface loopback 0 強烈建議: 非直連端口創建BGP鄰居關係時,兩邊的Peer命令,都使用 該參數;
非直連IBGP鄰居關係創建:
一、配置IP
二、配置IGP
三、配置BGP
外部BGP鄰居創建時候須要考慮的機制:
一、更新源檢測機制 -- 與IBGP鄰居是相同的;
二、直連檢測機制
#在何時纔會檢查該機制
在創建EBGP時,而且發送的BGP報文的 TTL 爲 1 時,纔會檢查;
#該機制的定義是什麼
&去往鄰居地址時,使用的必須是「直連路由」,
若是不是,則表示不知足「直連檢測機制」,從而沒法創建EBGP鄰居
面對爲了鏈路穩定爲創建的「非直連的 EBGP 鄰居關係」,咱們須要修改 EBGP 報文的 TTL 值不是「1」便可。由於,一旦不是1,就不會關心該機制了。 bgp 64513 peere 10.10.2.2 ebgp-max-hop [255]
============================================================
IBGP鄰居防環機制:
-IBGP水平分割
指的是從內部鄰居路由器收到的路由,不會再次發送給其餘的內部鄰居;
解決方案: -IBGP全互連 -BGP聯盟 大AS:在外部鄰居關係之間發送的報文中,使用的是大AS; 小AS: 在聯盟內部的「內部鄰居」之間確定是用; 在聯盟內部的「聯盟成員AS」之間的特殊的外部鄰居之間也使用;
R1:
bgp 64512 confederation id 200 # BGP聯盟的號碼,表示的是 大AS peer 10.10.2.2 as-number 64512 peer 10.10.2.2 connect-interface loopback 10
R2:
bgp 64512 confederation id 200 confederation peer-as 64513 peer 10.10.1.1 as-number 64512 #與R1爲內部鄰居,因此使用小AS peer 10.10.1.1 connect-interface loopback 0 peer 10.10.3.3 as-number 64513 #聯盟內部的特殊的外部鄰居,使用小AS peer 10.10.3.3 connect-interface loopback 0 peer 10.10.3.3 ebgp-max-hop peer 192.168.24.4 as-number 400 # 此時與R4創建鄰居使用的是大AS
R3:
bgp 64513 confederation id 200 confederation peer-as 64512 peer 10.10.2.2 as-number 64512 peer 10.10.2.2 connect-interface loopback 10 peer 10.10.2.2 ebgp-max-hop
BGP (二)
IGP
EGP
BGP
IBGP -IBGP的水平分割 #IBGP全互聯 #聯盟(大AS和小AS) #路由反射器(route-reflector) -當咱們將一個路由器配置爲BGP的「路由反射器」以後, 該路由器就會不關心「IBGP水平分割」機制。 -路由反射器 + 路由反射器客戶端 = 路由反射 簇 (cluster) R5; bgp 64512 peer 10.10.4.4 reflect-client #將R4做爲本身的客戶端; 從而本身成爲了反射器; EBGP
BGP路由在傳遞過程下一跳的變化:
一、在內部鄰居之間傳遞的時候,下一跳是不變化的; 二、在外部鄰居之間傳遞的時候,下一跳是會變化的;
在AS的邊界路由器上,對本身的內部鄰居配置「下一跳自我」:
R7: bgp 64513 peer 10.10.6.6 next-hop-local # R7發送給 R6 的全部的路由的下一跳爲 10.10.7.7 ;
BGP在什麼狀況下使用:
一、運營商之間使用 BGP ; 二、當企業具備多出口網絡設計的時候,可使用 BGP ; 三、當想對路由選路進行靈活控制的時候,可使用BGP;
BGP 13 條選路原則:
一、權重(prefered value | weight ) ,私有屬性,值越大越好; 二、local preference ,本地優先級,越大越好; 三、是否爲本地起源 所謂本地起源,表示的是本地產生的BGP路由。 對於BGP路由器而言,BGP路由分爲兩種: 本身本地產生的 從其餘路由器學習的 本地產生的,要優於 「從其餘路由器」學習的路由 四、as-path長度 ,越短越好(屬性as-path能夠實現不一樣AS之間的路由轉發環路的防禦) as-path 表示的是 BGP 路由在傳遞過程當中,先後依次經歷過的 AS 號的組成; 當BGP路由器發現收到的BGP路由的 AS-path 屬性中包含了本身的 AS號, 則代表該路由在傳遞過程當中,曾經穿越過本身的 AS , 那麼,就不接收該路由條目,以防止路由環路的發生; as-path 的造成過程是:從右向左; 默認狀況下,as-path在 外部鄰居之間發送路由的時候,纔會變化; 五、origin code ,本地起源屬性( i > e > ? ) 六、MED,值越小越好(只有當鄰居AS相同時,纔會進行比較) 七、EBGP優先於IBGP 八、去往BGP路由的下一跳的 IGP Metric ,越小越好; 九、負載均衡 若是開啓的話,則將多個路由條目都放入到路由表中; 而且將 best 路由,發送給鄰居; 十、越老越好(僅僅對於EBGP) 十一、RID(router-id),越小越好; 十二、Cluster list 長度,越短越好; 1三、peer address ,越小越好;
====================================================================
R1:更改 BGP 屬性 - local preference
一、匹配感興趣的路由; acl 2000 rule 5 permit source 80.80.80.0 0.0.0.255 二、建立路由策略 route-policy CCNA permit node 10 if-match acl 2000 apply local-preference 333 三、調用路由策略 bgp 100 peer 10.10.3.3 route-policy CCNA import # 調用入向路由策略 四、驗證 display bgp routing-table #去往80 的路由,下一跳變成 R3; display bgp routing-table peer 10.10.3.3 received-route 存在的問題:R1從R3收路由時,少了40和70的相關路由。
注意:
基本ACL在匹配路由條目時,只能匹配路由的前綴,不能匹配掩碼; 擴展ACL是能夠的;
=================================================================
R2:更改 BGP 屬性 - as-path 屬性
一、建立ACL,匹配感興趣的路由(40.40.40.0/24) acl 2004 rule 5 permit source 40.40.40.0 0.0.0.0 二、建立 route-plicy , 修改 as-path:添加一個 210,將as-path長度變爲2; route-policy R2-R4-IN permit node 10 if-match acl 2004 apply as-path 210 additive route-policy R2-R4-IN permit node 100 三、調用路由策略 bgp 100 peer 192.168.24.4 route-policy R2-R4-IN import 四、驗證、測試、保存 R2: display bgp routing-table as-path *> 40.40.40.0/24 10.10.3.3 200 10.10.2.2 100 200
==================================================================
acl 2000 rule 5 permit source 80.80.80.0 0.0.0.0 # 此時ACL匹配的是 prefix rule max deny source any 40.40.40.0 70.70.70.0 Route-policy : CCNA 【route-map】 permit : 10 (matched counts: 7) Match clauses : if-match acl 2000 Apply clauses : apply local-preference 333
[注意:]
route-plicy 最後有一個隱含的 deny any ; 若是想表示 permit any ; route-policy {name} permit {node-id} if-match #不寫任何的匹配條件,則表示匹配全部; apply {路由屬性} # 在不寫 if-math 的狀況下,能夠寫 apply ; R1: bgp 100 peer 10.10.3.3 route-policy CCNA import display bgp routing-table 少了 40 , 70 ;