BGP路由协议路由协议类型内部路由协议:重点在于发现路由和计算路由OSPF、ISIS、RIP、EIGRP等外部路由协议:重点在于控制路由的传播和选择最好的路由BGP(外部网关协议)BGP协议概述BGP是EGP路由协议,主要用来在AS之间传递路由信息在AS之间是一种距离矢量的路由协议,应用特定的属性(AS-Path)避免环路的发生路由信息携带丰富的属性传送协议:TCP,端口号179支持CIDR(无类别域间选路)路由更新:只发送增量路由丰富的路由过滤和路由策略BGP协议基本概念(一)什么是自治系统(AS)?自治系统指由同一个技术管理机构管理、使用内部路由策略的一些路由器的集合。每个自治系统都有唯一的自治系统编号。自治系统的编号范围是1到65535,其中1到65411是注册的因特网编号,65412到65535是专用网络编号。电信通的AS号是17964BGP协议基本概念(二)为什么引入自治系统这一概念?引入自治系统的基本思想就是通过不同的编号来区分不同的自治系统。自治系统内部的路由协议——IGP如OSPF、IS-IS、RIP、EIGRP(cisco专有)自治系统之间的路由协议——BGP如:EGP、BGPBGP工作机制(一)AS1AS7AS6AS5AS4AS3AS2BGP工作机制(二)BGP邻居刚建立时,发送整个BGP路由表交换路由信息,之后为了更新路由表只交换更新消息(updatemessage)。系统在运行过程中,通过接收和发送keep-alive消息来检测相互之间的连接是否正常的。一般情况下一条路由由自治系统内部的某种内部路由协议发现和计算产生,由自治系统边界路由器(ASBR)通过EBGP连接传播到其它自治系统中。路由在传播过程中可能会经过若干个自治系统,这些自治系统称为过渡自治系统(如:AS5)。若这个自治系统有多个边界路由器,这些路由器之间运行IBGP来交换路由信息。另外一种自治系统称为StubAS(如:AS1),其内部只有一个ASBR通过EBGP连接外部,同外部其他AS的通信要靠过渡自治系统来转接。BGP两种邻居-IBGP和EBGPEBGPEBGPRTBRTCIBGPRTARTDRTEBGP路由通告原则存在多条路径时,BGPSpeaker(发送BGP消息的路由器)只选取最优的使用(非负载分担)BGPSpeaker只把自己使用的路由通告给相邻体BGPSpeaker从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP)BGPSpeaker从IBGP获得的路由不向它的IBGP相邻体通告BGPSpeaker从IBGP获得的路由是否通告给它的EBGP相邻体要依IGP和BGP同步的情况来决定连接一建立,BGPSpeaker按照以上原则,把自己所有BGP路由通告给新相邻体BGPSpeaker只把自己使用的最优的路由加入到路由表中BGP报文种类BGP报文有四种类型:Open:打招呼“你好,跟我交个朋友吧!”KeepAlive:我还活着呢,别不理我Update:有新闻......Notification:我不跟你玩了!BGP协议中消息的应用通过TCP建立BGP连接时,发送open消息连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端路由信息稳定后此时要定时发送KEEPALIVE消息以保持BGP连接的有效性当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对端常见BGP路由属性1、Origin2、AS-Path3、Nexthop4、MED5、Local-Preference6、Community起点(Origin)属性一般的,具体的实现按如下方式决定一条路由的Origin属性(路由优先级属性)某条路由是直接而具体的注入到BGP路由表中的,则origin属性为IGP路由是通过EGP得到的,则origin属性为EGP其他情形下,Origin属性都为IncompleteAS路径(AS-Path)属性D(18.0.0.0/8)AS200AS300AS400AS100AS500RTARTB30.0.0.130.0.0.2D,dl400300200D,d2500200D,d1400300200D,d2500200下一跳(NextHop)属性18.0.0.0/820.0.0.0/8RTARTCRTBRTD19.0.0.0/821.0.0.221.0.0.110.0.0.210.0.0.310.0.0.1AS100AS200IBGPIBGPEBGPRTB可经下一跳10.0.0.2到达18.0.0.0/8可经下一跳10.0.0.3到达20.0.0.0/8RTA可经下一跳10.0.0.2到达18.0.0.0/8可经下一跳10.0.0.3到达20.0.0.0/8可经下一跳21.0.0.1到达19.0.0.0/8RTC可经下一跳10.0.0.1到达19.0.0.0/8可经下一跳10.0.0.3到达20.0.0.0/8本地优先属性(Local-Preference)AS400AS100AS300AS200RTARTBRTCRTDRTERTFD(18.0.0.0/8)30.0.0.130.0.0.220.0.0.120.0.0.2D,local-pref1100D,local-pref2200D,local-pref1100D,local-pref2200RTA就会优先选择本地优先级高的local-pref2它在AS区域内传播,用来帮助一个本AS区域内BGP伙伴选择进入其它AS区域的出口。MED(Multi-Exit-DISC)属性D(18.0.0.0/8)RTARTBRTC30.0.0.130.0.0.220.0.0.120.0.0.2AS100AS200D,metric110D,metric220D,metric110D,metric220RTA会选择metric值较小的metric1IBGP它在AS区域间传播,用来帮助一个其它AS区域的BGP伙伴选择进入本AS区域的人口。团体(Community)属性团体是一组有相同性质的目的地的路由,一个团体不限于一个网络或一个自治系统,它没有物理边界。公认的团体:no-export带有该属性的路由信息不通告给AS外的BGP相邻体no-advertise带有该属性的路由信息不通告给任何BGP相邻体local-AS带有该属性的路由信息只通告给联盟EBGP相邻体Internet通告给所有其他路由器BGP路由选优过程综合起来,本地BGP路由选优的过程为:如果此路由的下一跳不可达,忽略此路由;选择本地优先级较大的路由(Local-Preference);选择本地路由器始发的路由(network/aggregate);选择AS路径较短的路由(AS-Path);依次选择起点类型为IGP,EGP,Incomplete类型的路由(Origin);选择MED较小的路由;优选从EBGP学来的路由;优选AS内部IGP的Metric最低的路由;选择RouterID较小的路由;谢谢!