BGP协议原理与配置ppt课件.ppt
BGP协议原理与配置,V1.1数据用服部,学习目标,了解 BGP 基本概念理解 BGP协议的建链过程理解 BGP 的常用属性掌握基本 BGP配置,学习内容,第一章 BGP基本原理第二章 BGP常用属性第三章 BGP典型配置,学习内容,第一章 BGP基本原理 第一节 BGP概念 第二节 BGP报文及连接状态 第三节 BGP通告原则,BGP: Border Gateway Protocol 边界网关协议,定义于RFC1771。该协议用于创自治系统(Autonomous Systems)之间无环路域间路由。,BGP,B,BGP,AS65500,AS65250,BGP,AS64500,AS65000,D,E,F,C,B,A,BGP概述,BGP概述,域内路由: RIP/OSPF/ISIS,在AS内发现路由域间路由协议,在AS之间传递路由信息通用标准协议,当前版本: BGPv4(RFC1771)自治系统的编号范围是165535,其中164511是注册的因特网编号,6451265535是专用网络编号,AS100ISIS,AS200OSPF,AS300RIP,BGP,BGP,BGP 是一种增强型距离矢量(Distance Vector)路由协议传输协议: TCP,端口号: 179支持CIDR(无类别域间选路) 路由更新只发送增量路由 具有丰富的路由过滤和路由策略配置,BGP的特征,两台路由器为交换 BGP 路由信息,建立 TCP 连接之后,它们之间的关系就是对等关系或邻居关系BGP邻居分为:IBGP和EBGP,AS 65000,Neighbors,AS 65500,Neighbors,B,C,A,对等体Peer,AS 65000,AS 65001,邻居处于不同的自治域AS邻居之间一般直接连接,EBGP Neighbors,IBGP Neighbors,EBGPExternal BGP,B,C,A,IBGP邻居处于同一个 AS 内部IBGP邻居之间可以不直连,IBGP Neighbors,AS 65000,AS 65500,Neighbors,IBGPInternal BGP(1),B,C,A,IBGPInternal BGP(2),在对等体之间可以通过多个非 BGP 路由器连接起来BGP的信息可以通过非BGP的拓扑进行传递,AS100,IBGP,OSPF,OSPF,OSPF,R1loopback201.7.108.2/32,R2loopback201.7.108.1/32,EBGP,EBGP,学习内容,第一章 BGP基本原理 第一节 BGP概念 第二节 BGP报文及连接状态 第三节 BGP通告原则,BGP消息类型,BGP 使用四种类型的消息:OPEN 用于建立 BGP 连接KEEPALIVE 用于保持BGP连接UPDATE 发送 BGP 路由更新或撤消NOTIFICATION BGP差错提示信息,OPEN Message,版本号:在对等体之间协商都双方支持的最高版本号AS号:本BGP路由器的AS号码,占2字节保持时间:双方协商后取2者的较小值BGP标识:表示发送者的ROUTER ID可选参数:如密码认证,能力协商等,OPEN 消息用于BGP 连接的建立,它包含以下内容:,AS100,AS200,OPEN,OPEN,ROUTER-ID 的选择和配置路由器会选择当前接口中接口地址最小的地址,环回接口优先。ROUTER-ID通过命令bgp router-id 进行配置,当两个路由器的ROUTER ID 相同时,邻居是无法建链。HOLD TIME保持时间的协商,KEEPALIVE保活时间的计算 HOLD TIME时间取双方的最小值, KEEPALIVE时间按照协商后的HOLD TIME时间乘以本地配置的KEEPALIVE /HOLD TIME的比率(最大1/3)。当OPEN报文中出现错误时会触发发送差错通告消息同时触发邻居断链。,OPEN Message 需要注意的问题,BGP KEEPALIVE Message,AS100,AS200,KEEPALIVES,发送周期:缺省为30秒(对等体之间发送)保持时间(Hold time),一般为90秒每次从邻居处接收到Keepalive 报文将重置hold time定时器;如果hold time定时器超时,peer就认为对等体down掉。在建立 BGP 连接时,双方协商保持时间的时候将会取最低值。,BGP,KEEPALIVE 消息用于保持BGP 连接,其长度是 19 个字节:,配置邻居的KEEPALIVE TIME 和 HOLD TIME后必须触发邻居重新建链,新的配置才会生效。通过命令show ip bgp neighour keepalive X.X.X.X 可以查看指定邻居KEEPALIVE消息的收发情况,包含收发keepalive的时间间隔统计信息,最大的时间间隔等;只有通过reset 重置邻居才会将邻居keepalive消息计数清空。,KEEPALIVE Message 需要注意的问题,UPDATE Message更新消息,相同属性的路由才能在一个Update消息中更新出去Update也用于撤消那些“不可达路由”(Unreachable Routes)如果路由稳定,将不会发送“更新消息”(Update)更新可以只是针对路由条目的属性更新更新包具有Keepalive报文的功效,使Holdtime定时器复位,AS100,AS200,12.0.0.0/813.0.0.0/8,14.0.0.0/815.0.0.0/8,Route updates12.0.0.0/813.0.0.0/8,Withdrawn routes15.0.0.0/8,当update报文中出现错误时会触发发送差错通告消息同时触发邻居断链。对于 从IBGP学习的路由,LOCAL_PREF属性是公认必遵的属性,如果路由没有携带该属性做无效路由处理。,UPDATE Message 需要注意的问题,NOTIFICATION Message差错通告消息,AS100,AS200,NOTIFICATIONAuthentication failure,当检测到有错误发生时,将会发送“通告消息” (Notification message)“通告消息” (Notification message)将会关闭 BGP 会话可能出现的错误信息包括:验证失败,路由回路,等等,BGP 差错通告消息中携带的错误码和错误子码是定位邻居断链原因的重要信息。邻居会将触发最后一次状态由ESTABLISH状态切换到IDLE状态的错误码和错误子码记录下来。可以通过命令show ip bgp neighbor X.X.X.X命令查看该信息。,NOTIFICATION Message需要注意的问题,Connections established 2 last error code is 4 Last reset 2w4d, reset due to Peer timeout Local host: 222.60.11.11, Local port: 179 Foreign host: 222.60.11.12, Foreign port: 1024,空闲(Idle)连接(Connect)行动(Active)OPEN发送(Open sent)OPEN证实(Open confirm)已建立(Established),BGP邻居的各个连接状态,BGP连接状态转换,Active,Open-sent,Open-confirm,Established,Idle,Connect,Connect-Retry定时器超时,TCP 连接失败,Connect-Retry定时器超时,Start,Others,TCP 连接失败,Error,Error,Error,KeepAlive定时器超时,收到KeepAlive报文,1. KeepAlive定时器超时2. 收到Update报文3. 收到KeepAlive报文,收到OPEN报文,TCP 连接建立,TCP 连接建立,Others,学习内容,第一章 BGP基本原理 第一节 BGP概念 第二节 BGP报文及连接状态 第三节 BGP通告原则,BGP路由通告原则,多条路径时,BGP Speaker只选最优的给自己使用(负载均衡和FRR除外)BGP Speaker只把自己使用的路由(最优路由)通告给相邻体;BGP Speaker从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP);BGP Speaker从IBGP获得的路由不向它的IBGP相邻体通告(反射器除外);BGP Speaker从IBGP获得的路由是否通告给它的EBGP相邻体要依IGP和BGP同步的情况来决定;当收到对端的refresh报文并且本端邻居支持refresh能力 BGP Speaker将把自己所有BGP路由通告给对等体;GR过程中主备倒换方在GR结束时BGP Speaker会将把自己所有BGP路由通告给对等体。,BGP同步,因为IBGP之间可能非直接连接,这样非BGP路由器参与对BGP路由条目的数据包转发,需要IGP路由器也有相关BGP路由。从IBGP邻居学习到的路由,必须在IGP中存在才能通告给EBGP邻居,这就是BGP与IGP的同步。该功能缺省生效,一般需手动关闭。,IBGP,EBGP,EBGP,AS100,AS200,AS300,A,B,C,E,F,10.1.1.1/24,D,BGP路由通告方式一 Network命令,18.0.0.1/8,RTB,AS200,OSPF,RTB(config)#router bgp 200RTB(config-router-bgp)#network 18.0.0.0 mask 255.0.0.0,OSPF发现路由18.0.0.1/8。如何把IGP(OSPF)发现的路由通告到RTB的BGP路由表中?,BGP路由通告方式二 路由聚合,18.0.0.1/8,RTB,AS200,OSPF,OSPF发现路由18.0.0.1/8。如何把IGP(OSPF)发现的路由通告到RTB的BGP路由表中?,RTB(config)#router bgp 200RTB(config-router-bgp)#aggregate-address 18.0.0.0 255.0.0.0 count summary-only,BGP路由通告方式三 路由重分布,RTB (config) # router bgp 200RTB (config-router-bgp) # redistribute ospf-int,OSPF发现路由18.0.0.1/8。如何把IGP(OSPF)发现的路由通告到RTB的BGP路由表中?,18.0.0.1/8,RTB,AS200,OSPF,学习内容,第二章 BGP常用属性 第一节 属性概述 第二节 常用属性,BGP路径属性(Path Attributes),BGP属性描述了BGP路由的特征BGP属性(BGP Attributes)是一系列的参数BGP属性是包括在BGP UPDATE消息中发送的BGP属性用于BGP路由过滤和路由决策过程BGP属性分“公认” (Well-known)与 “可选”(Optional),HQ,BGP公认属性:所有BGP路由器必须识别的属性BGP公认属性分“公认必遵”和“公认自决”两种类型“公认必遵” 属性:必须出现在所有的更新消息(Update message)里面“公认自决” 属性:可以出现在更新消息(Update message)中,也可以不出现,“公认” 属性Well-known Attributes,BGP 可选属性:BGP路由器可以支持或不支持的属性BGP 可选属性还分“可选过渡”(Transitive)与 “可选非过渡” (Nontransitive)两种类型“可选过渡” 属性:如果被认可,将被标志成 “全部的”,然后传送出去;如果不被认可,将被标志成 “局部的”,然后传送出去“可选非传递的” 属性:如果被认可,则自我处理不传递给邻居;如果不被认可,做丢弃处理,“可选” 属性Optional Attributes,学习内容,第二章 BGP常用属性 第一节 属性概述 第二节 常用属性,公认必遵属性:AS路径 AS-path 下一跳 Next-hop 路由起源 Origin 公认自决属性:本地优先级 Local preference可选过渡属性:团体串 Community可选非过渡属性:多出口识别 Multi-exit-discriminator (MED),BGP常用属性,AS路径属性 AS_Path Attribute,AS_Path 是一种强制性属性它跟踪记录了路由包所经过的AS每经过一个AS ,该AS号码被放置在AS_Path字段的最前面AS_Path 用来防止路由环路的出现AS 号码由 InterNIC 进行管理私有的 AS 号码范围为:64512 65535私有 AS 号码在 Internet 中必须被过滤掉,AS100130.1.0.0/16,AS200,AS300,130.1.0.0/16AS:100,130.1.0.0/16AS:200 100,AS_Path 由 BGP 自动更新AS_Path 用于 BGP 进行路由选择有着最短 AS_Path 的路径将被优先被选择AS_Path 可以被修改(增大),AS100130.1.0.0/16,AS200,AS300,130.1.0.0/16AS:100,130.1.0.0/16AS:200 100,AS400,130.1.0.0/16AS:400 100 100,130.1.0.0/16AS:100 100,R1,R2,R3,R4,R5,R6,示例: R4 将选择 AS200 作为穿越的路径,AS路径用于路由选择,“下一跳” 属性标明了该路由下一跳的 IP 地址,一般是BGP邻居的Loopback地址“下一跳” 属性由 EBGP 或 IBGP 产生EBGP路由在AS内传递时,缺省情况下,下一跳不变IBGP 对等体必须有到 EBGP 下一跳地址的路由,否则该路由无效BGP路由的下一跳地址一般需要通过递归查找,在IGP中找到邻近路由器的下一跳地址,下一跳属性 Next-Hop Attribute,下一跳属性 Next-Hop Attribute,Router A 以EBGP的方式将网络 172.16.0.0 通告给 Router B, 下一跳就是 10.10.10.3Router B以IBGP的方式将网络 172.16.0.0 通告给 Router C, 仍然保持着 10.10.10.3 作为下一跳地址,AS 64500,172.20.0.0,172.16.0.0,AS 65000,10.10.10.1,10.10.10.3,172.20.10.1,172.20.10.2,B,C,A,IBGP 对等体可能没有到EBGP 的下一跳地址的路由这种情况下,需要IBGP邻居修改 Next-hop 属性为本地地址。,AS100130.1.0.0/16,AS200,AS300,ip address 201.1.100.1 255.255.255.0,130.1.0.0/16Next-hop: 201.1.100.1,R1,R2,R4,R5,130.1.0.0/16Next-hop: 100.1.1.1,IBGP,R3,修改下一跳,本地优先权被用于BGP路由决策在BGP的路由决策过程中,本地优先权有着最高的级别本地优先权由IBGP在本地AS内进行传递本地优先权数值上越大,则优先级越高本地优先权默认值为100,本地优先权Local Preference Attribute,使用本地优先权(1),R2 and R3 都可以访问到 AS400从R2 and R3 的AS_Path的长度都是一样的这时,就可以利用本地参考值(Local Preference)来打破平局,使用本地优先权(2),路由起源属性Origin Attribute,IGP (i) 使用Network命令通告的路由,这些路由肯定存在于IGP中EGP (e) 从EGP分发(Redistribute)而来,目前EGP协议基本消失了Incomplete (?) 从IGP 或静态路由重分布(Redistribute)而来 在BGP选择最佳路由时,路由起源为i的优先;次子为EGP,最后是Incomplete。,BGP最佳路由选择,优选下一跳可达的路由,如下一跳无效,该路由忽略;优选本地优先级(Local-preference)最大的路由;优选本地产生的路由,聚合BGP路由优于其他的BGP路由;如果本地优先级相同,优选具有最短AS路径(AS-PATH)的路由;如果AS路径长度还相同,优选具有最低起源类型(Orign)的路由;起源类型相同优选最低MED 的路由;相同的MED值,外部优于内部(EBGPIBGP);如果以上都一样,优选可以通过最近相邻体到达的路由(IGP的Metric最小);内部路径相同优选具有最低路由器ID的路由,但如果存在ORIGINATOR_ID属性,用ORIGINATOR_ID属性的比较来代替ROUTER-ID的比较,同样属性值小的优先;比较CLUSTER_LIST 的长度,短的优先;优选使用最低的邻居接口地址的路由。,学习内容,第三章 BGP典型配置 第一节 基本命令 第二节 配置举例,BGP 配置基本步骤,设置自治系统号关闭同步功能(根据需要)指定BGP邻居和对方AS号通告路由,基础命令(1),启动BGP协议: ZXR10#config terminal ZXR10(configure)#router bgp 100上述语句表明路由器ZXR10运行了BGP协议,且属于AS100。 注意:一台路由器只能属于一个AS。,关闭同步: ZXR10(configure-router)#no synchronization 上述语句表明路由器ZXR10关闭了同步功能配置BGP邻居 ZXR10 (configure)# neighbor remote-as number:邻居属于的那个自治系统,范围165535,基础命令(2),宣告网络: ZXR10(configure)#network 给BGP路由选择进程指定网络表,可以从已连接的路由、动态路由选择以及静态路由源中获知这些类型的网络。缺省情况下,未指定网络。,基础命令(3),学习内容,第三章 BGP典型配置 第一节 基本命令 第二节 配置举例,案例一(1),如下图:RTA与RTB形成EBGP邻居,RTB与RTD形成IBGP邻居,RTD与RTE形成EBGP邻居。,案例一(2),RTA配置如下: router bgp 100 neighbor 129.213.1.1 remote-as 200RTB配置如下: router bgp 200 neighbor 129.213.1.2 remote-as 100 neighbor 2.2.2.2 remote-as 200,案例二(1),使用Loopback地址建立IBGP邻居:通常在配置BGP邻居时,推荐使用loopback地址。因为运行BGP的两路由器之间通常不是直连,使用loopback地址,可以避免BGP邻居受路由器接口物理特性影响。在下图中,RTA强迫使用其loopback地址,作为其TCP连接的源。这样,当RTB与RTA建立邻居使用就使用了RTA的loopback地址。必须保证2台路由器的Loopback地址能互通。,RTA配置如下: router bgp 200 neighbor 190.225.11.1 remote-as 200 neighbor 190.225.11.1 update-source loopback1 RTB配置如下: router bgp 200 neighbor 1.1.1.1 remote-as 200,案例二(2),案例三(1),EBGP中Multihop的使用:通常EBGP邻居需要在两台路由器直连接口上建立,当需要在非直连接口建立EBGP邻居时,我们需要使用Multihop命令。如下图,RTA 需要与RTB的非直连接口地址2.2.2.2建立连接。此时,就需要使用Multihop命令。,案例三(2),RTA配置如下: router bgp 100 neighbor 2.2.2.2 remote-as 200 neighbor 2.2.2.2 ebgp-multihopRTB配置如下: router bgp 300 neighbor 129.213.1.1 remote-as 100 neighbor 129.213.1.1 update-source loopback1,案例四(1),使用redistribute命令通告网络:通过使用redistribute命令可以将IGP协议路由(静态,RIP、OSPF、ISIS等)再分配到BGP中。使用redistribute命令时要应防止IGP从BGP学习到的路由再次重分布到BGP中。对于双向重分布,必须使用过滤命令防止路由环路的发生。如下页图所示,RTC与RTB之间运行了OSPF协议,RTC与RTD之间运行BGP,并在OSPF协议与BGP协议之间进行路由重分布。,案例四(2),图中,RTC路由器上运行了OSPF及BGP协议,并进行了路由重分布。,案例四(3),在下面配置中,OSPF协议学到的路由被重分布到BGP协议中。RTC配置如下: router ospf 1 network 175.220.0.0 area 0 router bgp 200 neighbor 1.1.1.1 remote-as 300 redistribute ospf-int,BGP显示命令查看BGP连接状态,首先需要观察BGP的连接状态ZXR10#show ip bgp summary Neighbor Ver As MsgRcvd MsgSend Up/Down(s) State222.34.128.68 4 100 4 0 00:00:30 20,BGP显示命令查看BGP邻居信息(1),显示BGP邻居的详细信息:ZXR10#show ip bgp neighbor BGP neighbor is 222.34.128.68, remote AS 100, internal link BGP version 4, remote router ID 222.34.129.12 BGP state = Established, up for 00:06:29 Last read update 00:05:59, hold time is 90 seconds, keepalive interval is 30 seconds Neighbor capabilities: Route refresh: advertised and received Address family IPv4 Unicast: advertised and received All received 18 messages 5 updates, 0 errs; 1 opens, 0 errs; 12 keepalives; 0 vpnv4 refreshs, 0 ipv4 refreshs, 0 errs; 0 notifications, 0 other errs,BGP显示命令查看BGP邻居信息(2),显示BGP邻居的详细信息:(续) After last established received 16 messages 5 updates, 0 errs; 0 opens, 0 errs; 11 keepalives; 0 vpnv4 refreshs, 0 ipv4 refreshs, 0 errs; 0 notifications, 0 other errs All sent 19 messages 5 updates, 1 opens, 13 keepalives; 0 vpnv4 refreshs, 0 ipv4 refreshs, 0 notifications After last established sent 17 messages 5 updates, 0 opens, 12 keepalives; 0 vpnv4 refreshs, 0 ipv4 refreshs, 0 notifications,BGP显示命令查看BGP邻居信息(3),显示BGP邻居的详细信息:(续)For address family: IPv4 UnicastAll received nlri 19, unnlri 0, 18 accepted prefixesAll sent nlri 19, unnlri 0, 19 advertised prefixes; maximum limit 4294967295 Minimum time between advertisement runs is 30 seconds Minimum time between origin runs is 15 seconds For address family: VPNv4 Unicast no activateAll received nlri 0, unnlri 0, 0 accepted prefixesAll sent nlri 0, unnlri 0, 0 advertised prefixes; maximum limit 4294967295 Connections established 1 Local host: 222.34.128.72, Local port: 1033 Foreign host: 222.34.128.68, Foreign port: 179,BGP显示命令查看BGP路由表信息,显示BGP路由表的详细信息:ZXR10#show ip bgp route Status codes: *valid, best, i-internalOrigin codes: i-IGP, e-EGP, ?-incomplete Dest NextHop Metric LocPrf RtPrf Path* 222.34.129.1/32 0.0.0.0 110 i *i 222.34.129.1/32 222.34.128.65 100 200 i* 222.34.129.2/32 0.0.0.0 110 i *i 222.34.129.2/32 222.34.128.65 100 200 i* 222.34.129.3/32 0.0.0.0 110 i *i 222.34.129.3/32 222.34.128.65 100 200 i,小结,BGP 的基本概念BGP的常用属性的含义BGP选择最佳路由的判断方法BGP基本功能的配置方法显示 BGP 运行状态的常用命令,谢 谢,