筆記 BGP

在路由器之間動態的學習路由條目,造成路由表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 ;
相關文章
相關標籤/搜索