CCIE笔记——BGP协议篇

合集下载

HCIEBGP学习笔记

HCIEBGP学习笔记

BGP学习笔记目录1BGP概述 (3)1.1IGP与EGP的区别在于: (3)1.2BGP特征 (3)1.3BGP路由传递 (3)1.4BGP可靠的路由更新 (4)1.5BGP报文种类 (4)1.5.1BGP报文有五种类型: (4)1.5.2BGP报文头 (4)1.5.3Open报文 (5)1.5.4KeepAlive报文 (5)1.5.5Update报文 (6)1.5.6Notification报文 (7)1.5.7Route-refresh报文 (8)1.6BGP协议中消息的应用 (8)1.7BGP状态机 (9)1.8BGP数据库 (10)1.9BGP路由信息处理 (10)2BGP工作原理 (11)2.1基于TCP连接的邻居关系 (11)2.2I BGP两种邻居-IBGP和EBGP (11)2.3EBGP多跳和指定更新源 (11)2.4BGP路由通告原则 (11)2.4.1BGP路由通告原则(一) (11)2.4.2BGP路由通告原则(二) (12)2.4.3BGP路由通告原则(三) (12)2.4.4BGP路由通告原则(四) (12)2.5BGP属性 (12)2.5.1BGP的路径属性 (12)2.5.2BGP路径属性可以被分为四大类: (12)2.5.3BGP路由属性 (13)2.6BGP路径选择 (16)2.7BGP基本配置 (18)2.8BGP路由聚合 (18)2.9正则表达式 (24)3BGP高级特性 (25)3.1路由反射和联盟 (25)3.2路由反射(RFC2796) (25)3.3联盟(RFC3065) (26)3.4联盟与反射的比较 (29)3.5BGP中通告默认路由的方法: (29)3.6BGP认证 (30)3.7其它 (30)动态路由协议可以按照工作范围分为IGP以及EGP。

IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,在AS间提供无环路的路由信息交换,BGP则是EGP的一种。

bgp协议书的原理

bgp协议书的原理

bgp协议书的原理背景:BGP(Border Gateway Protocol)是用于在互联网中实现路由选择的一种网络协议。

它用于在自治系统(AS)之间交换网络前缀信息,以确定最佳的路由路径。

本文将探讨BGP协议的原理及其工作机制。

一、BGP协议的基本原理BGP协议是一种路径矢量协议,其主要原理如下:1. 邻居关系建立在BGP中,不同自治系统之间的路由器建立邻居关系。

这些邻居关系使用TCP连接进行建立,并通过BGP会话进行通信。

2. 路由传播通过建立的邻居关系,BGP路由器可以互相传递路由信息。

每个BGP路由器维护一个路由表,其中包含了AS-PATH(路径属性)、NEXT-HOP(下一跳)和其他相关信息。

3. 路径选择BGP路由器根据一系列的路由选择策略,选择最佳的路由。

这些策略可以包括AS路径长度、自治系统的经济成本和其他用户定义的因素。

4. 路由更新当路由发生变化时,BGP路由器会将更新的路由信息广播给其邻居。

这些广播消息可以是增量更新(只包含已更改的路由信息)或全量更新(包含所有路由信息)。

5. 故障检测与恢复BGP路由器通过周期性的保活消息来检测与邻居间的连接是否正常。

如果连接中断,BGP路由器将尝试重新建立邻居关系。

二、BGP协议的工作机制BGP协议是一种面向事件的协议,其工作流程如下:1. 邻居建立过程BGP路由器通过指定邻居的IP地址建立TCP连接。

双方进行三次握手后,建立邻居关系,并开始BGP会话。

2. 路由传播与更新BGP路由器通过BGP会话,交换路由信息。

路由信息以UPDATE消息的形式传播,涵盖了前缀、属性等信息。

收到路由更新后,路由器会更新本地的路由表。

3. 路由策略与选择BGP路由器使用预定义的路由策略,并根据这些策略选择最佳的路由。

策略可以根据AS路径、路由的特定属性等进行优化。

4. 路由维护与监测BGP路由器周期性地检查与邻居的连接状态,并根据需要发送保活消息。

路由器还会监测和记录网络拓扑信息,以便及时调整路由。

交换路由CCIE之路――BGP路由过滤剖析

交换路由CCIE之路――BGP路由过滤剖析

实验 BGP路由过滤一实验拓扑图二实验要求:(1)要求RT2只将自己的路由传到RT5(2)熟练掌握各种过滤方式(3)了解正则表达式三实验分析前提:在四个路由器分别注入10.1.0.0/16 10.2.0.0/16 10.3.0.0/16 10.5.0.0/16首先分析RT5中BGP表内路由,关于10.3.0.0/16有两条下一跳分别为10.0.15.1 10.0.25.1最佳下一跳是10.0.15.1 关于10.1.0.0/16有两条下一跳分别为10.0.15.1 10.0.25.1最佳下一跳是10.0.15.1 关于10.2.0.0有两条下一跳分别为10.0.15.1 10.0.25.1最佳下一跳是10.0.25.1关于10.5.0.0有一条下一跳0.0.0.0(1)利用分发列表过滤要是RT2只传自己的可以在出口方向只允许自己的路由出去就行了。

(2)利用前缀列表过滤只允许10.2.0.0/16从S0/1过就可以了(3)利用AS过滤:只需要用^$应该就能达到目的。

为了熟悉正则表达式中不同符号的运用后面还会通过实验具体分析举例(4)利用route-map的匹配动作匹配(1)中acl就行了。

这里还会要具体分析acl与prefix-list 分别为空时发布后的结果,以及分发列表,前缀列表,filter-list,route-map为空时动作后的结果。

四具体实验基本配置及连通性测试RT1r1(config#int lo 0r1(config-if#ip ad 10.1.0.1 255.255.255.255 r1(config-if#int s0/0r1(config-if#ip ad 10.0.13.1 255.255.255.252 r1(config-if#no shur1(config-if#int s0/2r1(config-if#ip ad 10.0.15.1 255.255.255.252 r1(config-if#no shur1(config-if#int f1/0r1(config-if#ip ad 10.0.12.1 255.255.255.252 r1(config-if#no shur1(config#int lo 1r1(config-if#ip ad 10.1.1.1 255.255.255.0r1(config-if#endRT2r2(config#int lo 0r2(config-if#ip ad 10.2.0.1 255.255.255.255 r2(config-if#int s0/1r2(config-if#ip ad 10.0.25.1 255.255.255.252 r2(config-if#no shur2(config-if#int f1/0r2(config-if#ip ad 10.0.12.2 255.255.255.252 r2(config-if#no shur2(config-if#endr2(config#int lo 1r2(config-if#ip ad 10.2.1.1 255.255.255.0r2(config-if#endRT3r3(config#int lo 0r3(config-if#ip ad 10.3.0.1 255.255.255.255 r3(config-if#int s0/0r3(config-if#ip ad 10.0.13.2 255.255.255.252 r3(config-if#no shur3(config-if#int e3/0r3(config-if#ip ad 10.3.1.1 255.255.255.0r3(config-if#no ker3(config-if#no shur3(config-if#endRT5r5(config#int lo 0r5(config-if#ip ad 10.5.0.1 255.255.255.255 r5(config-if#int s0/1r5(config-if#ip ad 10.0.25.2 255.255.255.252 r5(config-if#no shur5(config-if#int s0/0r5(config-if#ip ad 10.0.15.2 255.255.255.252 r5(config-if#no shur5(config-if#int e3/0r5(config-if#ip ad 10.5.1.1 255.255.255.0r5(config-if#no ker5(config-if#no shur5(config-if#end连通性测试r1#ping 10.0.12.2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 10.0.12.2, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5, round-trip min/avg/max = 12/42/92 ms r1#ping 10.0.13.2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 10.0.13.2, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5, round-trip min/avg/max = 4/36/96 ms r1#ping 10.0.15.2Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 10.0.15.2, timeout is 2 seconds:!!!!!r5#ping 10.0.25.1Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 10.0.25.1, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5, round-trip min/avg/max = 12/90/256 ms 邻居建立及路由注入r1(config#router bgp 65001r1(config-router#no synchronizationr1(config-router#no aur1(config-router#neighbor 10.0.12.2 remote-as 65002r1(config-router#neighbor 10.0.13.2 remote-as 65003r1(config-router#neighbor 10.0.15.2 remote-as 65005r1(config-router#endr2(config#router bgp 65002r2(config-router#no synchronizationr2(config-router#no aur2(config-router#neighbor 10.0.12.1 remote-as 65001r2(config-router#neighbor 10.0.25.2 remote-as 65005r2(config-router#endr3(config#router bgp 65003r3(config-router#no synchronizationr3(config-router#no aur3(config-router#nei 10.0.13.1 remote-as 65001r3(config-router#endr5(config#router bgp 65005r5(config-router#no synchronizationr5(config-router#no aur5(config-router#nei 10.0.15.1 remote-as 65001r5(config-router#nei 10.0.25.1 remote-as 65002r5(config-router#endr1#show ip bgp summaryBGP router identifier 10.1.1.1, local AS number 65001BGP table version is 1, main routing table version 1Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 10.0.12.2 4 65002 4 4 1 0 0 00:01:14 010.0.13.2 4 65003 3 3 1 0 0 00:00:39 010.0.15.2 4 65005 2 4 1 0 0 00:00:00 0r1(config#ip route 10.1.0.0 255.255.0.0 null0r1(config#router bgp 65001r1(config-router#network 10.1.0.0 mask 255.255.0.0r1(config-router#endr2(config#ip route 10.2.0.0 255.255.0.0 null0r2(config#router bgp 65002r2(config-router#net 10.2.0.0 mask 255.255.0.0r2(config-router#endr3(config#ip route 10.3.0.0 255.255.0.0 null0r3(config#router bgp 65003r3(config-router#net 10.3.0.0 mask 255.255.0.0r3(config-router#endr5(config#ip route 10.5.0.0 255.255.0.0 null0r5(config#router bgp 65005r5(config-router#net 10.5.0.0 mask 255.255.0.0r5(config-router#endr5#show ip bgpBGP table version is 5, local router ID is 10.5.0.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incompleteNetwork Next Hop Metric LocPrf Weight Path* 10.1.0.0/16 10.0.25.1 0 65002 65001 i*> 10.0.15.1 0 0 65001 i* 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.0.25.1 0 0 65002 i* 10.3.0.0/16 10.0.25.1 0 65002 65001 65003 i*> 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 i现在让RT2只传自己发出的r2(config#access-list 1 permit 10.2.0.0 0.0.255.255r2(config#router bgp 65002r2(config-router# nei 10.0.25.2 distribute-list 1 out //利用分发列表r2(config-router#exitr5#show ip bgpBGP table version is 5, local router ID is 10.5.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/16 10.0.15.1 0 0 65001 i* 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.0.25.1 0 0 65002 i //只有这一条从RT2过来*> 10.3.0.0/16 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 ir2(config-router#no nei 10.0.25.2 distribute-list 1 outr2(config#ip prefix-list 1 permit 10.2.0.0/16 //匹配10.2.0.0/16这条路由r2(config#router bgp 65002r2(config-router#nei 10.0.25.2 prefix-list 1 outr5#show ip bgpBGP table version is 5, local router ID is 10.5.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/16 10.0.15.1 0 0 65001 i* 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.0.25.1 0 0 65002 i*> 10.3.0.0/16 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 ir2(config-router#no nei 10.0.25.2 prefix-list 1 outr2(config#ip as-path access-list 1 permit ^$ //匹配由自己始发的路由r2(config#router bgp 65002r2(config-router#nei 10.0.25.2 filter-list 1 outr5#show ip bgpBGP table version is 5, local router ID is 10.5.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/16 10.0.15.1 0 0 65001 i* 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.0.25.1 0 0 65002 i*> 10.3.0.0/16 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 ir2(config-router#no nei 10.0.25.2 filter-list 1 outr2(config#route-map fuckjiuge permit 10r2(config-route-map#match as-path 1 //匹配as-path 1的动作r2(config-route-map#exitr2(config#router bgp 65002r2(config-router#nei 10.0.25.2 route-map fuckjiuge outr5#show ip bgpBGP table version is 5, local router ID is 10.5.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/16 10.0.15.1 0 0 65001 i* 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.0.25.1 0 0 65002 i*> 10.3.0.0/16 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 i现在通过发布各种空列表观察会出现的结果r2(config-router#no nei 10.0.25.2 route-map fuckjiuge outr2(config#route-map aaa permit 10r2(config-route-map#match ip ad 2 //这里的ACL2没有建立r2(config-route-map#endr2(config#router bgp 65002r2(config-router#nei 10.0.25.2 route-map aaa outr5#show ip bgpBGP table version is 5, local router ID is 10.5.0.1Network Next Hop Metric LocPrf Weight Path* 10.1.0.0/16 10.0.25.1 0 65002 65001 i*> 10.0.15.1 0 0 65001 i* 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.0.25.1 0 0 65002 i* 10.3.0.0/16 10.0.25.1 0 65002 65001 65003 i*> 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 i观察发现为允许所有r2(config-router#no nei 10.0.25.2 route-map aaa outr2(config#route-map bbb permit 10r2(config-route-map#match ip ad prefix-list 2 //这里的前缀列表也没有建立r2(config-route-map#exitr2(config#router bgp 65002r2(config-router#nei 10.0.25.2 route-map bbb outr5#show ip bgpBGP table version is 5, local router ID is 10.5.0.1Network Next Hop Metric LocPrf Weight Path* 10.1.0.0/16 10.0.25.1 0 65002 65001 i*> 10.0.15.1 0 0 65001 i* 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.0.25.1 0 0 65002 i* 10.3.0.0/16 10.0.25.1 0 65002 65001 65003 i*> 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 i发现仍然是允许所有r2(config#route-map ccc permit 10r2(config-route-map#match as-path 2 //没有as-path2r2(config-route-map#exitr2(config#router bgp 65002r2(config-router# nei 10.0.25.2 route-map ccc outr5#show ip bgpNetwork Next Hop Metric LocPrf Weight Path*> 10.1.0.0/16 10.0.15.1 0 0 65001 i*> 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.3.0.0/16 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 i发现为拒绝所有r2(config#router bgp 65002r2(config-router#nei 10.0.25.2 distribute-list 2 out //分发列表2没有r5#show ip bgpBGP table version is 5, local router ID is 10.5.0.1Network Next Hop Metric LocPrf Weight Path* 10.1.0.0/16 10.0.25.1 0 65002 65001 i*> 10.0.15.1 0 0 65001 i* 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.0.25.1 0 0 65002 i* 10.3.0.0/16 10.0.25.1 0 65002 65001 65003 i*> 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 i发现为允许所有r2(config#router bgp 65002r2(config-router#no nei 10.0.25.2 distribute-list 2 outr2(config-router#nei 10.0.25.2 prefix-list 2 out //前缀列表也没有r5#show ip bgpBGP table version is 5, local router ID is 10.5.0.1Network Next Hop Metric LocPrf Weight Path* 10.1.0.0/16 10.0.25.1 0 65002 65001 i*> 10.0.15.1 0 0 65001 i* 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.0.25.1 0 0 65002 i* 10.3.0.0/16 10.0.25.1 0 65002 65001 65003 i*> 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 i允许所有r2(config#router bgp 65002r2(config-router#no nei 10.0.25.2 prefix-list 2 outr2(config-router#nei 10.0.25.2 filter-list 2 out //as路径没有r5#show ip bgpBGP table version is 6, local router ID is 10.5.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/16 10.0.15.1 0 0 65001 i*> 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.3.0.0/16 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 i拒绝所有r2(config#router bgp 65002r2(config-router#no nei 10.0.25.2 filter-list 2 outr2(config-router#nei 10.0.25.2 route-map abc out //没有关于abc的route-mapr2(config-router#endr5#show ip bgpNetwork Next Hop Metric LocPrf Weight Path*> 10.1.0.0/16 10.0.15.1 0 0 65001 i*> 10.2.0.0/16 10.0.15.1 0 65001 65002 i*> 10.3.0.0/16 10.0.15.1 0 65001 65003 i*> 10.5.0.0/16 0.0.0.0 0 32768 i拒绝所有总结:对于分布列表和前缀列表,允许所有对于过滤列表和路由映射,拒绝所有接下来具体研究前缀列表r1(config#ip route 10.1.0.0 255.255.255.0 null0r1(config#router bgp 65001r1(config-router#net 10.1.1.0 mask 255.255.255.0r1(config-router#net 10.1.0.0 mask 255.255.255.0 //发布10.1.0.0/24及10.1.1.0/24 r1(config-router#exitr3#show ip bgpNetwork Next Hop Metric LocPrf Weight Path*> 10.1.0.0/24 10.0.13.1 0 0 65001 i*> 10.1.0.0/16 10.0.13.1 0 0 65001 i*> 10.1.1.0/24 10.0.13.1 0 0 65001 i*> 10.2.0.0/16 10.0.13.1 0 65001 65002 i*> 10.3.0.0/16 0.0.0.0 0 32768 i*> 10.5.0.0/16 10.0.13.1 0 65001 65005 ir1(config#ip prefix-list 1 permit 10.1.0.0/16 ge 24 允许10.1.0.0/16 掩码为24到32的路由r1(config#router bgp 65001r1(config-router#nei 10.0.13.2 prefix-list 1 outr3#show ip bgpBGP table version is 10, local router ID is 10.3.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/24 10.0.13.1 0 0 65001 i*> 10.1.1.0/24 10.0.13.1 0 0 65001 i*> 10.3.0.0/16 0.0.0.0 0 32768 i可以看到10.1.0.0/16的没有了,因为掩码要在24与32之间r1(config-router#no nei 10.0.13.2 prefix-list 1 outr1(config#ip prefix-list 2 permit 10.1.0.0/16 le 24 // 允许掩码在16到24位的路由r1(config#router bgp 65001r1(config-router#nei 10.0.13.2 prefix-list 2 outr3#show ip bgpBGP table version is 15, local router ID is 10.3.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/24 10.0.13.1 0 0 65001 i*> 10.1.0.0/16 10.0.13.1 0 0 65001 i*> 10.1.1.0/24 10.0.13.1 0 0 65001 i*> 10.3.0.0/16 0.0.0.0 0 32768 i这里都符合要求r1(config-router#no nei 10.0.13.2 prefix-list 2 outr1(config#ip prefix-list 3 permit 10.1.0.0/24r1(config#router bgp 65001r1(config-router#nei 10.0.13.2 prefix-list 3 outr3#show ip bgpBGP table version is 21, local router ID is 10.3.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/24 10.0.13.1 0 0 65001 i*> 10.3.0.0/16 0.0.0.0 0 32768 ir1(config-router#no nei 10.0.13.2 prefix-list 3 outr1(config#ip prefix-list 4 permit 10.1.1.0/24 //只允许10.1.1.0/24的路由r1(config#router bgp 65001r1(config-router#nei 10.0.13.2 prefix-list 4 outr3#show ip bgpBGP table version is 23, local router ID is 10.3.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.1.0/24 10.0.13.1 0 0 65001 i*> 10.3.0.0/16 0.0.0.0 0 32768 i另外两条都不符合r1(config#ip route 10.1.3.0 255.255.255.0 null0r1(config#router bgp 65001r1(config-router#net 10.1.3.0 mask 255.255.255.0 //再发布一条10.1.3.0/24的路由r3#show ip bgpNetwork Next Hop Metric LocPrf Weight Path*> 10.1.0.0/24 10.0.13.1 0 0 65001 i*> 10.1.0.0/16 10.0.13.1 0 0 65001 i*> 10.1.1.0/24 10.0.13.1 0 0 65001 i*> 10.1.3.0/24 10.0.13.1 0 0 65001 i*> 10.2.0.0/16 10.0.13.1 0 65001 65002 i*> 10.3.0.0/16 0.0.0.0 0 32768 i*> 10.5.0.0/16 10.0.13.1 0 65001 65005 ir1(config#ip prefix-list 7 permit 10.1.0.0/23 le 24 //允许10.1.0.0/23掩码在23与24之间的r1(config#router bgp 65001r1(config-router#nei 10.0.13.2 prefix-list 7 outr3#show ip bgpBGP table version is 38, local router ID is 10.3.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/24 10.0.13.1 0 0 65001 i*> 10.1.1.0/24 10.0.13.1 0 0 65001 i*> 10.3.0.0/16 0.0.0.0 0 32768 i这时候发现没有10.1.3.0/24的,那是因为本来路由10.1.0.0/23就不包括10.1.3.0,所以即使后面满足24位的要求也不可能通过r1(config-router#no nei 10.0.13.2 prefix-list 7 outr1(config-router#nei 10.0.13.2 prefix-list 2 out //再次用10.1.0.0/16 掩码在16到24的r3#show ip bgpBGP table version is 90, local router ID is 10.3.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/24 10.0.13.1 0 0 65001 i*> 10.1.0.0/16 10.0.13.1 0 0 65001 i*> 10.1.1.0/24 10.0.13.1 0 0 65001 i*> 10.1.3.0/24 10.0.13.1 0 0 65001 i*> 10.3.0.0/16 0.0.0.0 0 32768 i发现10.1.3.0/24能通过了,那是因为10.1.0.0/16包括了这一条r1(config#ip prefix-list 5 permit 0.0.0.0/0 //匹配缺省路由r1(config#ip prefix-list 6 permit 0.0.0.0/0 le 32 //匹配所有路由r1(config-router#nei 10.0.13.2 prefix-list 5 outr3#show ip bgpBGP table version is 50, local router ID is 10.3.0.1Network Next Hop Metric LocPrf Weight Path*> 10.3.0.0/16 0.0.0.0 0 32768 i所有的都过不来r1(config-router#nei 10.0.13.2 prefix-list 6 outr3#show ip bgpBGP table version is 57, local router ID is 10.3.0.1Network Next Hop Metric LocPrf Weight Path*> 10.1.0.0/24 10.0.13.1 0 0 65001 i*> 10.1.0.0/16 10.0.13.1 0 0 65001 i*> 10.1.1.0/25 10.0.13.1 0 0 65001 i*> 10.1.1.0/24 10.0.13.1 0 0 65001 i*> 10.1.3.0/24 10.0.13.1 0 0 65001 i*> 10.2.0.0/16 10.0.13.1 0 65001 65002 i*> 10.3.0.0/16 0.0.0.0 0 32768 i*> 10.5.0.0/16 10.0.13.1 0 65001 65005 i全部都能通过总结:前缀列表的匹配,首先不管后面动作的掩码,必须要求每一条通过的路由在你要动作的那条路由内,然后才去匹配动作,就像上面的10.1.3.0/24的那条路由,首先它不再10.1.0.0/23内,所以后面根本就不用匹配了。

ccie知识点总结大全

ccie知识点总结大全

ccie知识点总结大全一、网络基础知识1. OSI七层模型2. TCP/IP协议族3. IP地址和子网划分4. VLAN和Trunk技术5. STP及其变种RSTP/MSTP6. VTP及VLAN pruning7. EtherChannel和PortChannel二、路由和交换1. 静态路由及其配置2. 动态路由协议:RIP、EIGRP、OSPF、BGP3. QoS基本概念及配置4. 交换技术:ARP、MAC地址表、交换机帧转发5. SpanningTree Protocol(STP)相关知识6. 综合交换技术解决方案7. WAN连接方式和配置:HDLC、PPP、FrameRelay、ATM、MPLS8. HSRP/VRRP/GLBP三、网络设计1. 企业网络设计:三层设计、核心层/汇聚层/接入层2. 数据中心网络设计:数据中心网络架构、SAN、NAS3. WAN设计:各种WAN连接技术的选择4. IP地址规划5. 网络设备的冗余和负载均衡设计6. 网络安全设计四、网络安全1. 防火墙技术:ACL、NAT、PAT、Zone-Based Firewall、ASA Firewall2. VPN技术:IPSec VPN、SSL VPN3. IDS/IPS4. AAA认证:RADIUS、TACACS+5. 网络安全策略设计及实施五、网络管理1. 网络设备的远程管理:Telnet、SSH2. SNMP协议及其相关概念3. 网络设备的配置备份和恢复4. 网络监控和故障排除六、IP电话及视频1. VoIP基本概念:H.323、SIP、MGCP2. VoIP协议与传输3. QoS在VoIP中的应用4. IP电话网关的配置七、IPv61. IPv6基本概念2. IPv6地址分配和路由3. IPv6网络基础设施的部署4. IPv6过渡技术八、思科设备配置1. 路由器和交换机基本配置2. IOS路由器和交换机高级特性配置3. Catalyst交换机常见配置4. ISR路由器配置5. ASA防火墙配置6. Nexus交换机配置7. Catalyst 6500交换机配置8. 无线控制器配置以上就是CCIE知识点总结大全,涵盖了网络基础知识、路由和交换、网络设计、网络安全、网络管理、IP电话及视频、IPv6、思科设备配置等方面的内容。

BGP协议的课堂笔记

BGP协议的课堂笔记
包含单一的850,851,852,853,854,855或859的as-path,注意是或
ip as-path access-list 23 permit ^850[0-5]$
匹配上一个过滤器中除了859以外的其他AS号
ip as-path access-list 24 permit ^85[^0-5]$
bgp bestpath as-path ignore
让BGP进行选路的时候,忽略AS-PATh,这条是隐藏命令
==============================================
weight控制路由
================================= =============
当在括号中使用字符时,将否定括号中指定的范围,结果是正则表达式讲匹配范围之外的任何内容
指定了不是0-5,而是将匹配856-859范围内的单个AS号
ip as-path access-list 24 permit ^85.
匹配一个由AS号850-859开始的AS-PATH, “.”可以匹配一个空格,AS号85也能匹配成功
ip as-path access-list 20 permit ^850$
^表示一个行的开始,$表示一个行的结束,这样就只能匹配唯一的AS号850的as-path了
ip as-path access-list 21 permit ^$
匹配一个空的AS-path
ip as-path access-list 22 permit ^85[0123459]$
========================================================

ccie理论bgp

ccie理论bgp

BGP路由选择协议BGP是一种路径矢量路由协议,用于传输自治系统间的路由信息,BGP在启动的时候传播整张路由表,以后只传播网络变化的部分触发更新,它采用TCP连接传送信息,端口号为179,在Internet上,BGP需要通告的路由数目极大,由于TCP提供了可靠的传送机制,同时TCP使用滑动窗口机制,使得BGP可以不断地发送分组,而无需像OSPF或EIGRP那样停止发送并等待确认使用BGP一般有如下情况:1. 一个AS允许包穿越它,到达其他的AS2. 一个AS连接多个AS3. 必须对数据流进入和离开AS进行控制不使用BGP一般有如下情况:1. AS只有一个出口2. AS的所有出口均为1个ASP3. 路由性能不高,内存较小,CPU较慢,带宽不大对于如右图的多ISP连接,需要注意:1.必须劝说最初供应商通告将他的CIDR块打一个洞,通告一条更精细的路由2.必须劝说第二个供应商公布属于不同供应商的地址空间3.两个供应商必须在用户公布这块地址上愿意紧密合作4.如果用户地址空间小于/19一些骨干ISP不会接受此路由注:一般前缀小于/19的地址称为全球路由可达地址,因为骨干ISP通常为了控制骨干级路由表大小,仅接受/19或更小的前缀。

但由于用户的抱怨,此限制逐渐放松BGP简介BGP是路径矢量协议,它使用一个AS号列表,数据包必须通过这些AS才能到达目的,同时对产生的AS-path 做一定的策略。

AS-Path对于路由环路非常容易检测到,如果路由器接受到一条含有本地AS号的AS-path,说明出现环路。

BGP没有给出每个AS域内的拓扑结构,因此BGP只能看到AS树,而IGP只能看到AS域内拓扑结构.当某个特殊目的网络有并列的,等开销的路径时,Cisco缺省执行EBGP只选择一条路径,但可以使用maximum-paths改变并行路径缺省的最大数目,但仅对EBGP有效。

BGP消息类型BGP具有4种消息类型1. Open2. Keepalive3. Update4. NotificationOpen MessageTCP对话建立以后,两个邻居都要发送一个Open消息,每个邻居都用该消息来标示自己,并规定自己的BGP 运行参数BGP version它明确了发起者正在运行的BGP版本号(2,3,4),可以通过neighbor version修改,缺省版本号为4。

BGP

BGP

[CCNP笔记] BGP(1) 概述计算机2009-08-16 10:49:01 阅读18 评论0 字号:大中小订阅一、相关概念关于BGP(Border Gateway Protocol)那是一本书可能都写不完的东西,都不知道应该记点什么。

IGP:内部网关协议。

也可以说AS内部路由协议吧,之前学的都是。

EGP:外部网关协议。

也就是在AS之间用的路由的协议。

AS:自主系统,运行同一IGP的一组路由器组成的系统。

//我的解释BGP:边界网关协议,是一种遇见路由选择协议。

EBGP/IBGP:在不同的AS之间运行的BGP叫做EBGP;在AS内部运行的BGP是IBGP。

何时使用BGP:1、AS允许数据包通过自已到达其它AS(ISP,传输网)。

2、AS有多条到其它自治系统的连接。

3、需要对数据流进入和离开AS的方式进行(策略)控制。

何时不使用BGP:1、连接到互联网或其它AS 只有一个出口;2、路由器内存、CPU、网络带宽比较低;3、对BGP了解有限;废话二、BGP特征1、路径矢量协议。

2、TCP作为传输层,面向连接、可靠的。

TCP端口号179。

3、增量更新。

4、支持VLSM、CIDR、路由聚合。

5、用于巨型网络——Internet。

6、丰富的度量值——属性(attribute)。

三、BGP 的路由通告原则1、多条路径时,BGP Speaker只选最优的给自己使用;2、BGP Speaker只把自己使用的路由通告给相邻体;3、BGP Speaker从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP);4、连接一建立,BGP Speaker将把自己所有BGP路由通告给新相邻体。

四、BGP的几张表1、邻居表(show ip bgp summary)包含所有邻居列表及邻接建立状态2、BGP表(show ip bgp)包括从邻居学来的所有的路由条目和一些属性。

每一个路由条目可能有多个路径到达(只有一个最优,BGP默认不负载均衡)3、BGP的路由表(show ip route bgp)在BGP的转发表里最优的路径条目与IGP相比较AD后,优的放进路由表.默认情况下BGP的AD:EBGP——20;IBGP——200;本地宣告200;BGP表和路由表是独立的,同样遵循AD小的进入路由表。

BGP重点难点

BGP重点难点

批注 [Y5]: 在没有联盟的情况下,对 于特定的 AS 起到的作用是相同的。
CCIE 理论笔记----BGP 干净净类似于自己 network 的路由。 #aggregate-address addxxx maskxxx [as-set][summary-only][suppress-map][advertise-map][attribute-list] [as-set]如果丌加 as-set,后面就是一个 i。如果加了 as-set,会把被汇总的路由的所有 as 号乱序加入汇 总的路由,丌重复。一般在边界汇总都要加上去。 [summary-only]叧収汇总,丌収详细的路由信息。 [suppress-map]抑制一些路由,汇总里一些可以抑制掉,发成 S,没有星 做 BGP 过滤的时候推荐用 prefix #ip prefix-list supp permit 30.30.0.0/16 被干掉的,丌収送 #route-map #ma ip addr prefix supp -router#aggre 30.0.0.0 255.0.0.0 suppress-list -------------------------------------------------------------BGP 的路由过滤 1. 2. Distribute-list 可加 access-list Neighbor 1.1.1.1 distribute-list 10 in|out Filter-list 加 ip as-path access-list 20 Neighbor 1.1.1.1 filter-list 20 in|out #ip as-path access-list 1 per 3. 4. Prefix-list 加 ip prefix-list ABC 准确 Neighbor 1.1.1.1 prefix-list ABC in|out Route-map 可以修改属性 Neighbor 1.1.1.1 route-map 名字 in|out 实验室一般用 34,实际的网络中一般用 2。 -------------------------------------------------------------BGP 的路由反射器 Route-Reflector 为了解决 IBGP 的全互联结构所带来的扩展性丌强的问题。 用在 IBGP 邻居当中,EBGP 没有意义。 破坏了 IBGP 的水平分割结构,需要其它手段防环。 在反射时,丌会修改 next-hop,as-path,local-pref,MED 会引入 2 个新属性 Originator-id 和 Cluster-list Origin-ID,由第一个 RR 创建,并且丌会被后续的路由器所修改,用于防止环路。 RR 使用 R1 的 router-id 作为 originator-id,丌能修改,以标记这条路由由谁収出。 Cluster-id,记录一个路由条目所经过的 RR 的列表,同样用于防止环路。 第一次执行収射动作时加入此字段,类似 as-path。 cluster-id 可以手动配置,如果丌配置就是 router-id。 --------------------------------------------------------------路由反射器的规则: 1.RR 叧反射最佳路径 2.RR 会向 EBGP 邻居通告路由 3.Client 在通告路由条目时,会遵循通用的 IBGP 防环规则。因为它根本丌知道谁是 RR,它叧是个普通的 IBGP 路由器。 4.如果 RR 向普通 IBGP 邻居,客户,或非客户通告路由,那么需要遵循 567. 5.如果 RR 从 EBGP 邻居学来的一条路由,会通告给所有的客户不非客户。相当于一个普通 IBGP 路由器, 5/6 VanYoung 整理 我的技术博客:/ 批注 [Y11]: 参见 BGP 设计不实现第 7章

BGP路由协议

BGP路由协议

BGP路由协议BGP是一种自治系统间的动态路由协议,它的基本功能是在自治系统之间提供自动交换无环路由信息,通过交换带有自治区域号(AS)序列属性的路径可达信息,来构造自治区域的拓朴图,从设计上消除了路由环。

BGP基本概念:BGP特点:●BGP是一种外部路由协议,与OSPF、RIP不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最好的路由。

●BGP通过携带AS路径信息,可以彻底的解决路由循环问题。

●为了控制路由的传播和路由的选择,为路由附带属性信息。

●使用TCP作为其传输层协议,提高了协议的可靠性。

端口号179。

●BGP-4支持CIDR(无类别域间选路),CIDR的引入简化了路由聚合,减化了路由表。

●BGP更新时只发送增量路由,减少了BGP传播路由占用的带宽。

●提供了丰富的路由策略。

1、自治系统定义:由同一技术管理机构管理,使用统一选路策略的一些路由器的集合。

每一个自治系统都有唯一的自治系统编号,这个编号是由因特网授权管理机构分配的。

引用自治系统的思想是:通过不同的编号来区分不同的自治系统。

自治系统的编号范围是1到65535,其中1到65411是注册的因特网编号,65412到65535是专用网络编号。

2、BGP工作机制BGP作为一个应用层协议运用在一台特定的路由器上,系统启动时通过发送整个BGP 路由表交换路由信息,之后为了更新路由表,只交换更新信息,在系统运行过程中,通过接收和发送keep-alive消息来检测相互之间连接是否正常。

自治系统分为过渡自治系统和SUTB自治系统。

BGP发送优选的BGP路由和引入的IGP路由给对等体(peer)。

3、BGP的两种邻居IBGP:对等体之间不一定是物理直连的,但必须保证逻辑上的全连接。

(TCP连接)EBGP:对等体之间有物理上的直接链路。

4、BGP的路由通造原则多条路径时,BGP speaker 只选择最优的路径给自己使用。

BGP speaker只将自己使用的路由通告给相邻体。

BGP路由协议详解(完整篇)

BGP路由协议详解(完整篇)

BGP路由协议详解制作人:张选波二〇〇九年六月二十二日一、BGP的概况BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定义的;一个路由器只能属于一个AS。

AS的范围从1-65535(64512-65535是私有AS号),RFC1930提供了AS 号使用指南。

BGP的主旨是提供一种域间路由选择系统,确保自主系统只能够无环地交换路由选择信息,BGP路由器交换有关前往目标网络的路径信息。

BGP是一种基于策略的路由选择协议,BGP在确定最佳路径时考虑的不是速度,而是让AS能够根据多种BGP属性来控制数据流的传输。

1、BGP的特性BGP将传输控制协议(TCP)用作其传输协议。

是可靠传输,运行在TCP的179端口上(目的端口)由于传输是可靠的,所以BGP0使用增量更新,在可靠的链路上不需要使用定期更新,所以BGP使用触发更新。

类似于OSPF和ISIS路由协议的Hello报文,BGP使用keepalive周期性地发送存活消息(60s)(维持邻居关系)。

BGP在接收更新分组的时候,TCP使用滑动窗口,接收方在发送方窗口达到一半的时候进行确定,不同于OSPF等路由协议使用1-to-1窗口。

丰富的属性值可以组建可扩展的巨大的网络2、BGP的三张表邻居关系表⏹所有BGP邻居转发数据库⏹记录每个邻居的网络⏹包含多条路径去往同一目的地,通过不同属性判断最好路径⏹数据库包括BGP属性路由表⏹最佳路径放入路由表中⏹EBGP路由(从外部AS获悉的BGP路由)的管理距离为20⏹IBGP路由(从AS系统获悉的路由)管理距离为200如下图所示。

邻居表,包含与之建立BGP连接的邻居⏹使用命令show ip bgp summary可以查看到Router#sh ip bgp summaryBGP router identifier 11.1.1.1, local AS number 100BGP table version is 8, main routing table version 85 network entries using 585 bytes of memory6 path entries using 312 bytes of memory4/3 BGP path/bestpath attribute entries using 496 bytes of memory1 BGP AS-PATH entries using 24 bytes of memory0 BGP route-map cache entries using 0 bytes of memory0 BGP filter-list cache entries using 0 bytes of memoryBGP using 1417 total bytes of memoryBGP activity 5/0 prefixes, 6/0 paths, scan interval 60 secsNeighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd10.1.1.1 4 100 14 18 8 0 0 00:09:32 211.1.1.2 4 200 12 16 8 0 0 00:07:03 1转发表,从邻居那里获悉的的所有路由都被加入到BGP转发表中。

CCIE理论---BGP

CCIE理论---BGP

BGP,路径矢量路由协议特点:稳定——反应速度慢属性丰富——很少使用负载均衡,会选出一条路支持大量路由条目TCP 179AS自治系统,1-6553565535B,1500B,TCP窗口最大大小,性能优化。

IBGP邻居:位于同一个AS的不同BGP设置形成的邻居关系EBGP邻居:位于不同ASIBGP,属性传递。

OSPF需算最短路径,都使用OSPF最短路径负载大在默认情况下:1.IBGP邻居不需要直连,可跨越多台路由器形成并且通过loopback口建立必须保证TCP连接位于相同AS默认不需要直连IBGP邻居之间互相宣告BGP路由AD=200IBGP邻居之间受水平分割规则的影响2.EBGP邻居需要直连,并且建立通过物理口必须保证TCP连接位于不同AS默认必须直连EBGP邻居之间互相宣告BGP路由AD=20建立IBGP邻居:1.通过直连网段上的物理口Router bgp xxx(AS号)Neighbor x.x.x.x router-as xxxAS号指本地BGP位于那个BGP AS:1-65535,最后1024个为私有AS建立IBGP邻居本地AS与邻居AS一致2.通过loopback口建立,前提是事先保证loopback口之间的TCP连接Router bgp xxxNeighbor x.x.x.x router-as xxxNeighbor x.x.x.x update-source loopback x(不允许缺失)建立EBGP邻居:1.通过直连网段上的物理口配置命令和建立IBGP邻居类似,注意本地AS号和邻居AS号2.通过loopback口建立EBGP邻居Router bgp xxxNeighbor x.x.x.x router-as xxxNeighbor x.x.x.x update-source loopback xNeighbor x.x.x.x ebgp-multihop x(不允许缺失,因为建立EBGP邻居需直连,用环回口建立时非直连,所以需此命令。

最详细BGP的学习笔记

最详细BGP的学习笔记

BGP第一节:IBGP邻居(所用的版本是4)IBGP邻居:通常运行在同一个AS内。

AS :就是一组被统一管理的路由器。

这组路由器的特点:使用相同的内部网关协议,统一的度量值。

特点:可以直连,也可以不直连,但是底层必须能够访问。

AS号在eigrp的作用就是用于邻居的建立。

在BGP中可以理解为是不同的运营商。

bgp的AS号是需要申请的。

具体的配置:neighbor 邻居Ip remote-as AS号show controllers serial 0/0查看某接口是DCE还是DTE。

配置时钟速率:clock rate 64000一定要在DCE端配置时钟速率。

R1与R2 建立邻居BGP的三张表:邻居表:BGP的邻居关系不会自动建立,需要单播进行指邻居。

(保留对端的AS 号码)BGP表:收集所有的路由信息,并且保留BGP 的所有属性--------更好的做人为控制。

BGP的管理距离值:20和200;20是从EBGP学过来的路由,200是从IBGP学过来的路由。

路由表:BGP的报文:Open:Keepalive:激活(hold时间不一样,邻居可以建立,它会进行协商选择时间小的,并且它的keepalive的时间自动调整为Hold时间的1/3。

如果hello时间为0则BGP的邻居不down)(需要注注意的是:hello时间不一样,ospf的邻居将不会建立)修改命令;timesbgp 10 30Update:包括路由器的属性,还有我BGP的路由信息。

Notification:如果两端的AS号不一致,则会出现NOTIFICATION这个报文。

-------BGP建立出错的时候也会出现这个报文。

(2):清除了BGP的邻居关系时,也会出现这种报文。

BGP的经典案例(IBGP)解决方法:如果有多条链路,就要建立多个邻居关系。

用物理接口建立邻居;不太可行(不太稳定),但是所出现的问题能解决。

用这种方法所出现的问题:设备的消耗(内存,CPU)第二中的解决方法:就是邻居地址起环回口。

思科内部资料BGP-基础理论

思科内部资料BGP-基础理论

BGP目录概述 (1)BGP AS (3)BGP 邻居 (4)BGP 更新源 (6)BGP TTL (8)BGP AS_Path (8)BGP 路由表 (11)BGP Synchronization (12)Path Attributes (14)BGP RIB-Failure (20)BGP最优路径选择 (21)BGP基础实验................................................................................................. 错误!未定义书签。

BGP 路由聚合................................................................................................ 错误!未定义书签。

BGP 默认路由................................................................................................ 错误!未定义书签。

BGP 路由过滤................................................................................................ 错误!未定义书签。

BGP条件路由................................................................................................. 错误!未定义书签。

BGP Peer Group .............................................................................................. 错误!未定义书签。

BGP路由协议原理

BGP路由协议原理

BGP联盟
联盟 (Confederation)
AS 101
AS 100
AS 1001
EBGP IBGP EBGP_Confed
AS 1003
AS 1002
第32页/共54页
第1章 BGP协议概述 第2章 BGP工作原理 第3章 BGP路由属性
入到RTB的
BGP路由表
成为BGP路由的途径之三:静态 注入
18.0.0.1/8
AS200
RTB 人为配置静 态路由把人 为配置的静 态路由注入
到RTB的 第22页/共54页 BGP路由表
BGP路由通告原则
存在多条路径时,BGP Speaker只选取最优 的使用(非负载分担)
BGP Speaker只把自己使用的路由通告给相 邻体
成为BGP路由的途径 之一:纯动态注入
AS200
18.0.0.1/8
OSPF
RTB
OSPF发现 路由把
IGP(OSPF)
发现的路
由纯动态 第20页/共54页
地注入到
成为BGP路由的途径 之二:半动态注入
AS200OSPF源自RTBOSPF发现路 由把
IGP(OSPF)
发现的路由
半动态地注
第21页/共54页
路由属性
更新的路由
Network Layer Reachability Information
第14页/共54页
Keepalive报文类型
Keepalive Message用于保持BGP邻 居之间的会话
缺省60秒发一次给Peer Keepalive(Martkyerp(1e6=byt4e))报文只有
BGP Packet
Marker(16 byte) Length(2 byte) Type(1 byte)

BGP路由协议详解(完整篇)

BGP路由协议详解(完整篇)

BGP路由协议详解(完整篇)原⽂链接:2010-12-27 12:02:45上个⽉我写⼀篇关于BGP协议的博⽂,曾许诺过要完善这个⽂档,但因最近的⼯作和授课很忙,所以没有时间进⾏完善。

为了实现这个承诺,我在去外地出差期间对BGP协议详解博⽂进⾏⼀些修改,其中内容包括了⼀些实验,以及⼀些内容的补充和深⼊阐述,更宜于⽹友们学习BGP路由协议。

因为这个⽂档出来的很晚,也希望⽹友们见谅!此BGP协议的内容也不算太难,⼀些关于BGP的⾼级应⽤,会在以后MPLS 协议和MPLS流量⼯程中的内容中会更深⼊的讲解!希望通过本⽂档能帮助那些爱好⽹络知识和那些参加CCIE考试的⽹友们提供⼀些帮助。

⼀、BGP的概况BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定义的;⼀个路由器只能属于⼀个AS。

AS的范围从1-65535(64512-65535是私有AS号),RFC1930提供了AS号使⽤指南。

BGP的主旨是提供⼀种域间路由选择系统,确保⾃主系统只能够⽆环地交换路由选择信息,BGP路由器交换有关前往⽬标⽹络的路径信息。

BGP是⼀种基于策略的路由选择协议,BGP在确定最佳路径时考虑的不是速度,⽽是让AS能够根据多种BGP属性来控制数据流的传输。

1、BGP的特性? BGP将传输控制协议(TCP)⽤作其传输协议。

是可靠传输,运⾏在TCP的179端⼝上(⽬的端⼝)? 由于传输是可靠的,所以BGP0使⽤增量更新,在可靠的链路上不需要使⽤定期更新,所以BGP使⽤触发更新。

? 类似于OSPF和ISIS路由协议的Hello报⽂,BGP使⽤keepalive周期性地发送存活消息(60s)(维持邻居关系)。

? BGP在接收更新分组的时候,TCP使⽤滑动窗⼝,接收⽅在发送⽅窗⼝达到⼀半的时候进⾏确定,不同于OSPF等路由协议使⽤1-to-1窗⼝。

? 丰富的属性值? 可以组建可扩展的巨⼤的⽹络2、BGP的三张表? 邻居关系表n 所有BGP邻居? 转发数据库n 记录每个邻居的⽹络n 包含多条路径去往同⼀⽬的地,通过不同属性判断最好路径n 数据库包括BGP属性? 路由表n 最佳路径放⼊路由表中n EBGP路由(从外部AS获悉的BGP路由)的管理距离为20n IBGP路由(从AS系统获悉的路由)管理距离为200如下图所⽰。

【CCNP 4-3】BGP属性

【CCNP 4-3】BGP属性

•BGP属性公认属性Well-Known•公认强制属性Well-known mandatory•公认自由属性Well-known discretionary可选属性Optional•可选传递的Optional transitive•可选非传递的Optional non-transitive报文•Origin —公认强制属性•指出了路径信息的源头,有下列3种可能:•IGP:用network通告路由时,用i表示•EGP:路由通过EGP获悉,用e表示•Incomplete:路由的源头未知或是通过其他方法获悉的,用?表示。

例如重发布•路由优选顺序:IGP > EGP > Incomplete•NEXT_HOP —公认强制属性•指出了用于前往目的地的下一跳IP地址。

•对EBGP会话来说,NEXT-HOP就是通告该路径的EBGP邻居的接口IP。

•对IBGP,起源AS内部的路由的NEXT-HOP就是通告该路径的邻居的IP。

(如果有设定更新源,则为更新源地址),而从EBGP学到的路由的NEXT-HOP,在IBGP内传递时不变,始终指向的是下一个AS(本AS对端的EBGP邻居接口IP)。

•COMMUNITY —可选传递属性•用于简化路由策略的执行•可以将某些路由分配一个特定的COMMUNITY属性,之后就可以基于COMMUNITY值而不是每条路由进行BGP属性的设置了route-map bgp permit 10set community ?<1-4294967295> community numberaa:nn community number in aa:nn format // 路由所属as:nn标识additive Add to the existing communityinternet Internet (well-known community) // 默认所有路由都属于该团体local-AS Do not send outside local AS (well-known community)不把这条路由传出本AS(联邦as中的小联邦)。

CCIE BGP学习笔记

CCIE BGP学习笔记

AS号:16bit1-65535 (64512 – 65535私有)BGP特点Bgp基于策略基于属性来控制流量DV型As-by-asTCP (port 179)增量触发更新周期性保活,确保tcp的连通性丰富的metric为一个超大规模的网络而设计BGP databasesNeighbor tableBgp tableIp routing tableBGP message typeOpen:Version/AS/holdtime/BGP router-id/任选参数域长度/任选参数KeepaliveKeep alive time: 60s hold-time: 180Update路由信息,路径,属性Notification出错或bgp关闭链接时statesIdle: 路由查找是否有去往邻居的路由Connect: 路由器与邻居完成了TCP的三次握手Open sent: 开始发送open包Open confirm: 接收到了一致的参数如果没有收到open包的应答,那么会进入active状态Established: 邻居关系建立.BGP基本配置邻居:Neighbor x.x.x.x remote-as xxxxx(x.x)Neighbor x.x.x.x update-source inter_IDNeighbor x.x.x.x next-hop-selfNeighbor x.x.x.x ebgp-multihop通告:Network x.x.x.x mask x.x.x.x条件通告R1(config-router)#neighbor 1.1.1.2 advertise-map ADV exist-map EXISTR1(config-router)#neighbor 1.1.1.2 advertise-map ADV non-exist-map NONEXIST Show ip bgp neighbor 192.168.1.1 | include Condition-mapHard resetClear ip bgp *Clear ip bgp 10.1.1.2Soft resetClear ip bgp 10.1.1.2 soft [out|in]Route refreshClear ip bgp *softClear ip bgp 10.1.1.2 softMonitoring & TSShow ip bgp summaryShow ip bgp neighbor x.x.x.xDebug ip tcp transactionDebug ip bgp eventsDebug ip bgp keepaliveDebug ip bgp updatesDebug ip bgp updates acl //display all BGP updates for routes matching an ACL Debug ip bgp x.x.x.x updates (acl)BGP同步Synchronization /S02L0113条选路原则:BGP属性周知强制属性ORIGINAS_PATHAS内部不可以修改NEXT_HOP//反射器只能通过route-map更改下一跳周知自选LOCAL_PREF//AS间只能在入方向进行设置ATOMIC_AGGREGATE//聚合可选传递AGGREGATOR//聚合者//R1(config)#ip bgp-community new-format //标准格式// internet //正常//no-advertise //不向任何peer通告//no-export //不向任何真正的EBGP peer通告//local-as //不向任何EBGP peer通告(包含联盟EBGP)可选非传递MULTI_EXIT_DISC (MED)1.从IBGP学到的路由,在传给EBGP之前清除MED. 如果要强制通告,对EBGP邻居设置set metric-type internal2.边界路由器注入的路由通告给EBGP邻居时会携带MED.a)Network或redistribute的IGP路由,MED来源于IGP的metricb)Network或redistribute的直连路由MED为0c)Aggregate-address路由不设置MEDORIGINATOR_IDCLUSTER_LISTBGP aggregate聚合前缀默认属性:Next-hop: 0.0.0.0As-path : i (默认空AS)MED : 空Local-preference :100Weight :32768Aggregator: 本地Atomic-aggregate : 标记配置:Aggregate-address address mask[as-set] [summary-only] [suppress-map map1] [advertise-map map2] [attribute-map map3]As-set:聚合明细路由的一些属性如:as-path community 即使这些属性是冲突的(100:200和no-export)suppress-map : 抑制一部分路由Neighbor 1.1.1.1 unsuppress-map map4 //反抑制Advertise-map: 定义用一部分明细路由的属性设置聚合路由的属性(必须和as-set一起用) Attribute-map: 修改聚合路由属性聚合拆分(条件注入):Bgp inject-map map1 exist-map map2 [copy-attribute]exist-map至少两个match1.Match ip address prefix-list //精确指定聚合路由2.Match ip route-source prefix-list //精确指定聚合路由的源(更新源)Inject-map:1. set ip address prefix-list //指定注入的路由条目2. Set community no-export //建议设置防止环路Local-asNeighbor 1.1.1..1 local-as XXX [no-prepend] [replace-as] [dual-as]AS:200AS:1AS:2AS:2Peer GroupR1(config-router)#neighbor IBGP peer-groupR1(config-router)#neighbor IBGP remote-as 200R1(config-router)#neighbor IBGP next-hop-selfR1(config-router)#neighbor IBGP update-source loopback0R1(config-router)#neighbor 2.2.2.2 peer-group IBGPR1(config-router)#neighbor 3.3.3.3 peer-group IBGP对等体模板:对等体会话模板Description/disable-connected-check/ebgp-multihop/local-as/password/remote-as/Shutdown/timers/translate-update/update-source/version对等体策略模板Advertisement-interval/allowas-in/as-override/capability/filter-list/next-hop-self template peer-session base-sessionpassword ciscoversion 4exit-peer-session!template peer-session internal-sessionremote-as 100update-source Loopback0inherit peer-session base-sessionexit-peer-session!template peer-session external-sessionremote-as 65001password nodeinherit peer-session base-sessionexit-peer-sessionneighbor 10.1.1.1 inherit peer-session internal-sessionneighbor 20.1.1.1 inherit peer-session internal-sessionBGP过滤Filter-list正则表达式: S03L02Ip as-path access-list 10 permit Regular_ExpressionsNeighbor 1.1.1.1. filter-list 10 in/outPrefix-listNeighbor 1.1.1.1 prefix-list 23 in/outORF(outbound route filter)Neighbor 1.1.1.1 prefix-list 23 inneighbor 12.1.1.2 capability orf prefix-list bothclear ip bgp 192.168.25.7 in prefix-filter //向邻居推送prefix-listsh ip bgp nei 192.168.25.5 advertised-routes //查看给邻居的路由show ip bgp neighbors 1.1.1.1 received-routes //查看从邻居收到的路由show ip bgp neighbors 1.1.1.1 received prefix-filter //查看邻居推给我的prefix-listdistribute-listdistribute-list prefix-list prefix-list out routing-processcommunity-listR1(config)#ip bgp-community new-format //标准格式ip community-list 1 permit 100:1 100:11 (and)ip community-list 2 permit 200:2 (or)ip community-list 2 permit 200:22route-mapR1(config)#route-map test permit 10R1(config-route-map)#set community 100:1 200:2 additive //设置communityR1(config-route-map)#set comm-list 23 delete //删除community-list中存在的community R1(config-router)#neighbor 12.1.1.2 send-community both //允许向邻居发送communityR1(config-router)#neighbor 12.1.1.2 route-map test out //通过route-map 设置communityRouter reflector反射器客户非客户反射器不更改: next-hop as_path local_pref medRR修改下一跳:1.Neighbor X.X.X.X next-hop-self2.Route-map: set ip next-hop x.x.x.x反射簇Cluster-id (router-id)属性Cluster-list (默认是RR的router-id)RR反射时把cluster-id加入cluster-list里面Originator-id第一个RR创建,用发起该路由的router-id作为Originator-idNeighbor 1.1.1.1 router-reflector-client实验:1.cluster-ID2.层次化反射3.RR在转发路径上设置下一跳联盟:联盟外部路由的NEXT HOP属性在整个联盟中都被保留。

BGP协议分析互联网路由的关键协议解密

BGP协议分析互联网路由的关键协议解密

BGP协议分析互联网路由的关键协议解密互联网的发展与运行离不开一系列关键的协议,其中BGP(Border Gateway Protocol)协议被视为互联网路由的关键协议之一。

本文将对BGP协议进行深入解析,探讨其在互联网中的重要作用和关键机制。

一、BGP协议概述BGP协议是一种用于互联网中自治系统(AS)之间的路由选择协议。

它负责在不同的自治系统之间传递路由信息,以帮助互联网实现全球范围内的路由表交换和路由选择。

BGP协议的设计目标是保证网络的可扩展性和稳定性,同时提供灵活和高效的路由选择机制。

二、BGP协议工作原理BGP协议的工作原理可以概括为以下几个关键步骤:1. 邻居建立:BGP协议通过建立邻居关系来实现路由信息的交换。

邻居关系的建立需要两个自治系统之间的互信关系,并通过可靠的TCP连接进行数据传输。

2. 路由更新:邻居之间建立好连接后,BGP会向对端发送路由更新信息。

该信息包括路径属性和可达性等信息,用于描述路由选择的路径和目标网络的可达性。

3. 路由选择:BGP协议根据一系列的路由策略,包括自治系统内部的策略和自治系统之间的策略,来选择最佳的路由。

这些策略可以基于路径长度、自治系统间关系、路由政策等因素进行选择。

4. 路由传播:选定最佳路由后,BGP会将该路由信息传播给其他邻居节点。

这样逐步形成一个大规模的路由信息传播网络,实现全局的路由选择。

三、BGP协议的作用和意义BGP协议作为互联网路由的关键协议,具有以下重要作用和意义:1. 实现自治系统之间的路由交换:BGP协议使不同的自治系统能够通过交换路由信息来建立连接,实现全球范围内的互联互通。

2. 提供高可靠性和可扩展性:BGP协议利用自治系统之间的路由选择来保证互联网的可靠性和可扩展性。

通过灵活的路由策略和动态的路由更新,BGP能够适应互联网拓扑结构的变化,确保网络的稳定运行。

3. 支持多路径和负载均衡:BGP协议支持多路径路由选择和负载均衡,使数据包能够选择最佳的路径进行传输,提高网络的性能和效率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Border Gateway ProtocolWho needs BGPBGP是一种路径矢量路由协议,用于传输自治系统间的路由信息,BGP在启动的时候传播整张路由表,以后只传播网络变化的部分,触发更它采用TCP连接传送信息,端口号为179在Internet上,BGP需要通告的路由数目极大,由于TCP提供了可靠的传送机制,同时TCP使用滑动窗口机制,使得BGP可以不断地 发送分组,而无需像OSPF或EIGRP那样停止发送并等待确认。

使用BGP一般有如下情况:1.一个AS允许包穿越它,到达其他的AS2.一个AS连接多个AS3.必须对数据流进入和离开AS进行控制不使用BGP一般有如下情况:1.AS只有一个出口2.AS的所有出口均为1个ASP3.路由性能不高,内存较小,CPU较慢,带宽不大对于如右图的多ISP连接,需要注意:1.必须劝说最初供应商通告将他的CIDR块打一个洞,通告一条更精细的路由2.必须劝说第二个供应商公布属于不同供应商的地址空间3.两个供应商必须在用户公布这块地址上愿意紧密合作4.如果用户地址空间小于/19一些骨干ISP不会接受此路由注:一般前缀小于/19的地址称为全球路由可达地址,因为骨干ISP通常为了控制骨干级路由表大小,仅接受/19或更小的前缀。

但由于用户的抱怨,此限制逐渐放松BGP BasicBGP是路径矢量协议,它使用一个AS号列表,数据包必须通过这些AS才能到达目的,同时对产生的AS-path做一定的策略。

AS-Path对于路由环路非常容易检测到,如果路由器接受到一条含有本地AS号的AS-path,说明出现环路。

BGP没有给出每个AS域内的拓扑结构,因此BGP只能看到AS树,而IGP只能看到AS域内拓扑结构,下图是一个典型的BGP路由表route-server>show ip bgpBGP table version is 4639209, local router ID is 12.0.1.28Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incompleteNetwork Next Hop Metric LocPrf Weight Path* 3.0.0.0 192.205.31.225 0 7018 701 80 i* 192.205.31.161 0 7018 701 80 i*> 192.205.31.33 0 7018 701 80 i* 192.205.31.97 0 7018 701 80 i* 4.0.0.0 192.205.31.225 0 7018 1 i* 192.205.31.161 0 7018 1 i*> 192.205.31.33 0 7018 1 i* 192.205.31.97 0 7018 1 i* 6.0.0.0 192.205.31.226 0 7018 568 721 1455 i* 192.205.31.225 0 7018 568 721 1455 i* 192.205.31.161 0 7018 701 6113 568 721 1455 i*> 192.205.31.34 0 7018 568 721 1455 i* 192.205.31.33 0 7018 568 721 1455 i* 192.205.31.97 0 7018 1239 568 721 1455 i* 9.2.0.0/16 192.205.31.225 0 7018 1 1673 1675 i* 192.205.31.161 0 7018 701 1673 1675 i--More--当某个特殊目的网络有并列的,等开销的路径时,Cisco缺省执行EBGP只选择一条路径,但可以使用maximum-paths改变并行路径缺省的最大数目,但仅对EBGP有效。

BGP Message TypesBGP具有4种消息类型1.Open2.Keepalive3.Update4.NotificationOpen MessageTCP对话建立以后,两个邻居都要发送一个Open消息,每个邻居都用该消息来标示自己,并规定自己的BGP运行参数 BGP version它明确了发起者正在运行的BGP版本号(2,3,4),可以通过neighbor version修改,缺省版本号为4。

如果版本号不相同,路由器将自动降低版本号重发Open消息,直到版本一致AS number发起会话路由器的AS号,用于确认EBGP或者IBGP会话Hold time路由器必须收到一个keepalive或者更新消息之前允许经过的最大秒数。

Holdtime必须是0(在这种情况下,必须是没有发送Keepalive)或者至少3sCisco默认的holdtime为180s,如果两个邻居间holdtime不一致,选较短的那个做为两者可接受的时间 BGP router-ID选取方式和OSPF相同,使用数值最大的loopback口地址,没有loopback则使用物理接口上数值最大的地址 Optional parameters用于一些可选功能的支持.例如鉴别,多协议支持及路由刷新等Keepalive Message如果路由器接受了他在邻居的Open消息中的参数,它就会发送一个应答的Keepalive消息。

默认情况Keepalive间隔 60s,或者是达成一致的保持时间的1/3Update MessageUpdate message用来公布可用的路由,撤销的路由或者两者兼顾Network Layer Reachability Information (NLRI)用来公布IP地址前缀和前缀长度的字节组,例如<19,198.24.160.0>Path Attributes该属性为BGP提供了选择最短路径,检查到路由环路以及决定路由策略的信息Withdrawn Routes用来描述已经变成不可达并正从业务中撤销的目的地址字节组(长度和前缀)注:虽然NLRI字段可以包含多个前缀,但每一个更新消息只描述一条BGP路由(因为路径属性只描述一条路径,但该路径可能会到达多个目的地)Notification Message当检测到差错的时候就会发送Notification消息,通常会导致BGP连接终止例如使用Notification消息进行BGP版本的协商The BGP Finite State MachineIE 描述1 BGP开始2 BGP结束3 BGP传输连接打开4 BGP传输连接终止5 BGP传输连接打开失败6 BGP传输致命差错7 重试连接计时器超时8 持续时间终止9 Keepalive计时器终止10 收到Open消息11 收到Keepalive消息12 收到Update消息13 收到Notification消息Idle Statea)BGP通常以Idle State开始(此时拒绝接收所有入连接)。

当一个开始事件出现,BGP过程初始化所有BGP资源打开重试连接(ConnectRetry)计时器,初始化到邻居的TCP连接,接听来自邻居的TCP初始化消息并将它的状态转到Connect状态.b)开始事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起c)一个差错的出现会将BGP过程的状态转为Idle.路由器可能会试图发起另外一个开始事件.为了防止在持续差错条件下导致的摆动,在第一次转回到空闲状态后,路由器会自动开启重试连接计时器,当计时器终止后,路由器就会放弃重新开始BGP.重试计时器第一次的时间为60s,下一次为前一次的2倍120s,成指数形式增加Connect State 此状态下BGP 过程会等到TCP 连接完成以后再决定后续的动作.1. 如果TCP 连接建立成功,BGP 连接将ConnectRetry 清零,完成初始化并给邻居发送一个Open 消息,转移到Open状态2. 如果TCP 连接建立失败,BGP 继续监听由邻居发起的连接,重置ConnectRetry 计时器并转移到Active 状态3. 如果在连接状态下,ConnectRetry 超时,计时器将重新开始,并再一次试图与邻居建立TCP 连接,BGP 保持Connect 状态,此时如果有任何其他输入事件,转入Idle 状态Active State 在此状态,BGP 过程试图与邻居建立一个TCP 连接1. 如果连接成功,BGP 过程将ConnectRetry 计时器清零,完成初始化,给邻居发送一个Open 消息并转移到发送Open消息状态,Hold 计时器设置为4mins2. 如果在激活状态,ConnectRelay 计时器超时,将回到ConnectState 并且重置ConnectRelay 计时器.也发起一个到对等的TCP 连接并继续监听来自对等体的连接.3. 如果邻居试图与一个未知IP 建立TCP 会话,同时ConnectRelay 计时器重置,连接被拒绝并保持在Active 状态4. 任何一个事件(除开始事件)都回导致状态转向idleOpen send State在此状态下,已经发送了Open 消息,BGP 等待邻居发来的Open 消息,1. 当收到一个Open 消息,如果发现差错,将给邻居发一个Notification 消息并转入Idle 状态2. 如果收到的Open 消息没有差错,将给邻居发送一个Keepalive 消息并将Keepalive 计时器清零,此时协商一个较短的holdtime,如果为0,则没有启动Hold 和keepalive 计时器,根据AS 号选择IBGP 或者EBGP,同时将状态转移到OpenConfirm 状态3. 如果收到一个TCP 断开消息,本地断开BGP 连接,重置ConnectRetry 计时器,并转入Active 状态Open Confirm State此状态下BGP 会等待一个Keepalive 消息或者Notification 消息1. 如果收到一个Keepalive 消息,转移到Establish 状态2. 如果收到一个Notification 消息,转入Idle 状态,并断开TCP 连接3. 如果Hold 计时器超时,检测到一个差错或出现stop 事件,BGP 将给邻居发送一个Notification 并断开连接转入Idle 状态Establish State此状态下,BGP 对等体间的连接已经完全建立,可以交换Update Keepalive 和Notification 消息,如果收到Notification 自动转入Idle,并中断连接Path-AttributersBGP 路径属性分为4类1. Well-known mandatory公认必遵 – 所有的BGP 路由器必须识别(Update 消息必须包含该属性)2. Well-known discretionary 公认可遵 – 所有的BGP 路由器都能识别,但是不是一定需要(Update 消息可以不包含该属性或者该属性任选)3. Optional transitive 可选传递 – 不是所有的BGP 路由器都能识别,但所有BGP 路由器都能传递它(此属性即使BGP 路由器不接受也可以传递)4. Optional nontransitive 可选非传递– 不是所有的BGP 路由器都能识别,不能识别BGP 路由器丢弃它(此属性如果BGP 路由器不接受则立即丢弃此消息,不再传递)ORIGIN属于公认必选属性,明确了路由更新的来源,用于判断路由可信 度,当BGP 有多条路由来源时,路由器会将ORIGIN 做为路由决 策的参考来源有如下几类:IGP---从AS 内部学到,ORIGIN 为0 EGP---NLRI 从EGP 学到,ORIGIN 为1Incomplete---NLRI 通过其他手段获得,ORIGIN 为3 一般来说具有较低ORIGIN 值得前缀被优先选取, IGP>BGP>重分布例如通过重分布进入BGP,ORIGIN 属性为3,通过Network 命令注入其ORIGIN 为0TYPEAttributeClass1 ORIGINWell-known mandatory 2 AS_PATH Well-known mandatory 3 NEXT_HOP Well-known mandatory 4LOCAL_PREFWell-known discretionary5 ATOMIC_AGGREGATE Well-known discretionary6 AGGREGATOR Optional transitive7 COMMUNITY Optional transitive8 MULTI_EXIT_DISC (MED) Optional nontransitive 9 ORIGINATOR_ID Optional nontransitive 10 CLUSTER_LIST Optional nontransitiveAS_PATH描述一个路由传递过程中经过那一些AS(不算自己,从离自己最近的AS开始,以目的网段的AS结束),为了避免 AS环路,如果从外部收到一条包含自己AS的路由,就说明有环路,此时BGP将丢弃该路由通常一条AS_PATH含有多个同一AS号,用于加长AS_PATH,提供策略选路,如下图AS500为主要流量提供商,通过修改AS100到AS300通告的AS_PATh,让流量走AS500,此方法亦保证AS300做为备份可用Next_Hop该属性描述了到公布目的地址的路径的下一跳路由器的IP地址1.如果正在进行路由通告的路由器和接收的路由器在不同的AS中,Next_Hop为正在宣告的路由器接口的ip2.如果正在宣告的路由器和接收的路由器在同一个AS内,并且更新消息中NLRI目的地也在同一个AS中,则next_hop为一宣告的路由的邻居的ip3.如果正在宣告的路由器和接收的路由器是内部对等体,并且更新消息的NLRI指向不同AS,则Next_hop 为学习到路由的外部对等实体的ipLocal_Pref仅用在本地AS,不会传到其他AS,具有较高Local_pref的路由将被优先考虑,默认值100如右图,优先考虑ISP1的路由Multi_Exit_Disc(MED)Local_Pref仅影响离开AS的业务量,而MED用于影响流入AS的业务量,它允许一个AS将其首选入口通知给另一个 AS,具有最低MED值的路由作为首选Atomic_Aggregate and AggregatorBGP支持向另一个BGP路由器传递重叠的路由,BGP有如下重叠处理选项1.同时公布精细和初略的路由2.只公布精细路由3.之公布路由中没有重叠的部分4.聚合两条路由并公布聚合后的路由5.两者都不公布如右图即为在进行聚合时导致了路由信息丢失Atomic_Aggregate属性即是用来警告下游路由器聚合时产生路径信息丢失,可设置附加属性Aggregate来通告汇聚点,Cisco采用BGP-RID来作为Aggregator地址,如下图WeightCisco专有,对于离开AS的报文,从多条路径中选择哪一条。

相关文档
最新文档