经典BGP学习笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

[Ka\(^oo^)/Ka]第1页共32页BorderGatewayProtocolWhoneedsBGPBGP是一种路径矢量路由协议,用于传输自治系统间的路由信息,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或更小的前缀。但由于用户的抱怨,此限制逐渐放松BGPBasicBGP是路径矢量协议,它使用一个AS号列表,数据包必须通过这些AS才能到达目的,同时对产生的AS-path做一定的策略。AS-Path对于路由环路非常容易检测到,如果路由器接受到一条含有本地AS号的AS-path,说明出现环路。BGP没有给出每个AS域内的拓扑结构,因此BGP只能看到AS树,而IGP只能看到AS域内拓扑结构,下图是一个典型的BGP路由表route-servershowipbgpBGPtableversionis4639209,localrouterIDis12.0.1.28Statuscodes:ssuppressed,ddamped,hhistory,*valid,best,i-internalOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfWeightPath*3.0.0.0192.205.31.2250701870180i*192.205.31.1610701870180i*192.205.31.330701870180i*192.205.31.970701870180i*4.0.0.0192.205.31.225070181i*192.205.31.161070181i*192.205.31.33070181i*192.205.31.97070181i*6.0.0.0192.205.31.226070185687211455i*192.205.31.225070185687211455i*192.205.31.1610701870161135687211455i*192.205.31.34070185687211455i*192.205.31.33070185687211455i*192.205.31.970701812395687211455i*9.2.0.0/16192.205.31.22507018116731675i*192.205.31.1610701870116731675i--More--当某个特殊目的网络有并列的,等开销的路径时,Cisco缺省执行EBGP只选择一条路径,但可以使用maximum-paths改变并行路径缺省的昀大数目,但仅对EBGP有效。BGPMessageTypesBGP具有4种消息类型1.Open2.Keepalive3.Update4.Notification华中315安全网[Ka\(^oo^)/Ka]第2页共32页OpenMessageTCP对话建立以后,两个邻居都要发送一个Open消息,每个邻居都用该消息来标示自己,并规定自己的BGP运行参数BGPversion它明确了发起者正在运行的BGP版本号(2,3,4),可以通过neighborversion修改,缺省版本号为4。如果版本号不相同,路由器将自动降低版本号重发Open消息,直到版本一致ASnumber发起会话路由器的AS号,用于确认EBGP或者IBGP会话Holdtime路由器必须收到一个keepalive或者更新消息之前允许经过的昀大秒数。Holdtime必须是0(在这种情况下,必须是没有发送Keepalive)或者至少3sCisco默认的holdtime为180s,如果两个邻居间holdtime不一致,选较短的那个做为两者可接受的时间BGProuter-ID选取方式和OSPF相同,使用数值昀大的loopback口地址,没有loopback则使用物理接口上数值昀大的地址Optionalparameters用于一些可选功能的支持.例如鉴别,多协议支持及路由刷新等KeepaliveMessage如果路由器接受了他在邻居的Open消息中的参数,它就会发送一个应答的Keepalive消息。默认情况Keepalive间隔60s,或者是达成一致的保持时间的1/3UpdateMessageUpdatemessage用来公布可用的路由,撤销的路由或者两者兼顾NetworkLayerReachabilityInformation(NLRI)用来公布IP地址前缀和前缀长度的字节组,例如19,198.24.160.0PathAttributes该属性为BGP提供了选择昀短路径,检查到路由环路以及决定路由策略的信息WithdrawnRoutes用来描述已经变成不可达并正从业务中撤销的目的地址字节组(长度和前缀)注:虽然NLRI字段可以包含多个前缀,但每一个更新消息只描述一条BGP路由(因为路径属性只描述一条路径,但该路径可能会到达多个目的地)NotificationMessage当检测到差错的时候就会发送Notification消息,通常会导致BGP连接终止例如使用Notification消息进行BGP版本的协商TheBGPFiniteStateMachineIE描述1BGP开始2BGP结束3BGP传输连接打开4BGP传输连接终止5BGP传输连接打开失败6BGP传输致命差错7重试连接计时器超时8持续时间终止9Keepalive计时器终止10收到Open消息11收到Keepalive消息12收到Update消息13收到Notification消息IdleStatea)BGP通常以IdleState开始(此时拒绝接收所有入连接)。当一个开始事件出现,BGP过程初始化所有BGP资源打开重试连接(ConnectRetry)计时器,初始化到邻居的TCP连接,接听来自邻居的TCP初始化消息并将它的状态转到Connect状态.b)开始事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起c)一个差错的出现会将BGP过程的状态转为Idle.路由器可能会试图发起另外一个开始事件.为了防止在持续差错条件下导致的摆动,在第一次转回到空闲状态后,路由器会自动开启重试连接计时器,当计时器终止后,路由器就会放弃重新开始BGP.重试计时器第一次的时间为60s,下一次为前一次的2倍120s,成指数形式增加华中315安全网[Ka\(^oo^)/Ka]第3页共32页ConnectState此状态下BGP过程会等到TCP连接完成以后再决定后续的动作.1.如果TCP连接建立成功,BGP连接将ConnectRetry清零,完成初始化并给邻居发送一个Open消息,转移到Open状态2.如果TCP连接建立失败,BGP继续监听由邻居发起的连接,重置ConnectRetry计时器并转移到Active状态3.如果在连接状态下,ConnectRetry超时,计时器将重新开始,并再一次试图与邻居建立TCP连接,BGP保持Connect状态,此时如果有任何其他输入事件,转入Idle状态ActiveState在此状态,BGP过程试图与邻居建立一个TCP连接1.如果连接成功,BGP过程将ConnectRetry计时器清零,完成初始化,给邻居发送一个Open消息并转移到发送Open消息状态,Hold计时器设置为4mins2.如果在激活状态,ConnectRelay计时器超时,将回到ConnectState并且重置ConnectRelay计时器.也发起一个到对等的TCP连接并继续监听来自对等体的连接.3.如果邻居试图与一个未知IP建立TCP会话,同时ConnectRelay计时器重置,连接被拒绝并保持在Active状态4.任何一个事件(除开始事件)都回导致状态转向idleOpensendState在此状态下,已经发送了Open消息,BGP等待邻居发来的Open消息,1.当收到一个Open消息,如果发现差错,将给邻居发一个Notification消息并转入Idle状态2.如果收到的Open消息没有差错,将给邻居发送一个Keepalive消息并将Keepalive计时器清零,此时协商一个较短的holdtime,如果为0,则没有启动Hold和keepalive计时器,根据AS号选择IBGP或者EBGP,同时将状态转移到OpenConfirm状态3.如果收到一个TCP断开消息,本地断开BGP连接,重置ConnectRetry计时器,并转入Active状态OpenConfirmState此状态下BGP会等待一个Keepalive消息或者Notification消息1.如果收到一个Keepalive消息,转移到Establish状态2.如果收到一个Notification消息,转入Idle状态,并断开TCP连接3.如果Hold计时器超时,检测到一个差错或出现stop事件,BGP将给邻居发送一个Notification并断开连接转入Idle状态EstablishState此状态下,BGP对等体间的连接已经完全建立,可以交换UpdateKeepalive和Notification消息,如果收到Notification自动转入Idle,并中断连接Path-AttributersBGP路径属性分为4类1.Well-knownmandatory公认必遵–所有的BGP路由器必须识别(Update消息必须包含该属性)2.Well-knowndiscretionary公认可遵–所有的BGP路由器都能识别,但是不是一定需要(Update消息可以不包含该属性或者该属性任选)3.Optionaltransitive可选传递–不是所有的BGP路由器都能识别,但所有BGP路由器都能传递它(此属性即使BGP路由器不接受也可以传递)4.Optionalnontransitive可选非传递–不是所有的BGP路由器都能识别,不能识别BGP路由器丢弃它(此属性如果BGP路由器不接受则立即丢弃此消息,不再传递)ORIGIN属于公认必选属性,明确了路由更新的来源,用于判断路由可信度,当BGP有多条路由来源时,路由器会将ORIGIN做为路由决策的参考来源有如下几类:IGP---从AS内部学到,ORIGIN为0EGP---NLRI从EGP学到,ORIGIN为1Incomplete---NLRI通过其他手段获得,ORIGIN为3一般来说具有较低ORIGIN值得前缀被优先选取,IGPBGP重分布例如通过重分布进入BGP,ORIGIN属性为3,通过Network命令注入其ORIGIN为0TYPEAttributeClass1ORIGINWell-knownmandatory2AS_PATHWell-knownmandatory3NEXT_HOPWell-know

1 / 32
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功