计算机网络-4-8-外部网关协议BGP
1989年,公布了新的外部网关协议BGP(边界网关协议),我们目前使用最多的版本是BGP-4(但仍然是起草方案[RFC 4271]),简写为BGP。在不同的自治系统AS中之间的路由选择为什么不选择前面讨论的内部网关协议,如RIP或者OSPF?我们知道,内部网关协议(如RIP或RSPF)主要是设法使数据报在一个AS当中尽可能从源站发送到目的站。然而BGP使用的环境却不同,这主要有以下两种原因:由于上述情况,边界网关协议BGP只能时力求寻找一条能够到达目的网络且比较好的的路由(不能兜圈子),而并非要找一条最佳路由,BGP采用了路径向量(path vector)路由选择协议,它与距离向量协议(如RIP)和链路状态协议(如OSPF)都有很大的区别。在配置BGP的时候,每一个自治系统的管理员要选择至少一个路由器作为该自治系统的BGP发言人。一般来说,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器,但也可以不是BGP边界路由器。一个BGP发言人与其他AS的BGP发言人要交换路由信息,就要先建立起TCP连接(端口号为179),然后在此连接上交换BGP报文以建立BGP会话(session),利用BGP会话交换路由信息,如增加了新的路由,或撤销过时的路由,以及报告出差错情况等等。使用TCP连接能提供可靠的服务,也简化了路由选择协议。使用TCP连接路由信息的两个BGP发言人,彼此成为对方的邻站(neighbor)或对等站(peer)。图4-38表示BGP发言人和自治系统AS之间的关系示意图。在图中画出了三个自治系统中的5个BGP发言人,每个BGP发言人除了必须运行BGP协议模块外,还必须要运行该自治系统内部的内部网关协议,例如OSPF协议或者RIP协议。边界网关协议BGP所交换的网络可达性的信息就是要到达某个网络(用网络前缀表达式)所要经过的一系列自治系统。当BGP发言人互相交换了网络可达的信息后,各BGP发言人就根据所采用的策略从收到的路由器信息找到到达各自治系统较好的路由,图4-39表示了从图4-38的AS1上的一个BGP发言人构造出的自治系统连通图,它是树形结构,不存在回路。在如下图4-40中,给出了一个BGP发言人交换路径向量的例子。自治系统AS2的BGP发言人通过主干网的BGP发言人:”要到达网络N1,N2,N3,N4和N5可以经过AS2“。主干网在收到这个通知后,就发出通知:”要到达网络N1,N2,N3和N4可经过AS2可沿着路经(AS1和AS2)“。同理,主干网还可以发出通知:”要经过网络N5,N6,N7可沿路径(AS1和AS3)“。从上面可以看出:BGP协议交换路由信息的结点数量级是自治系统个数,这要比这些自治系统中的网络个数少很多,每一个自治系统中BGP发言人(路由器)的数目是很少的,这样就使得自治系统之间的路由选择并不过分复杂。BGP支无分类持域间路由选择协议CIDR,因此BGP的路由表也就包括目的网络前缀信息,下一跳路由器,以及要到达目的网络所要经过的自治系统序列,由于使用了路径向量信息,就可以很容易的避免”兜圈子”。在BGP协议刚刚运行的时候,BGP的邻站是交换整个BGP路由表,但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。在RFC 4271中规定了BGP-4种报文:若两个邻站属于不同AS,而其中一个邻站打算要定期和另一个邻站交换路由信息,一开始就应该发送一个OPEN报文,如果邻站接受邻站的关系,就用KEEPALIVE报文(一般每隔30s)。KEEPALIVE报文只有19字节长(只用BGP报文的通用首部),因此不会造成网络上太大的开销。UPDATE报文是BGP协议的核心,BGP发言人可以使用UPDATE报文撤销它以前通知过的路由,也可以宣布增加新的路由,撤销路由可以一次性撤销许多条,但是新增路由,每个UPDATE报文只能添加一条。BGP可以很容易地解决距离向量路由选择算法中的“坏消息传播得慢“这一问题。当某个路由器或者链路出现故障的时候,由于BGP发言人可以从不止一个邻站获取路由信息。因此很容易地选择出新的路由。距离向量算法往往不能给出正确的选择,因为这些算法往往不能给出正确的选择,是因为这些算法不能指出哪些邻站的目的站的路由时独立的。图4-41给出了BGP报文的格式。四种类型的BGP报文具有同样的通用首部,其长度为19字节,通用首部分为三个字段:OPEN报文共有6个字段:UPDATE报文共有5个字段:KEEPALIVE报文只有BGP的19字节长度的通用首部。NOTIFICATION报文只有三个字段:

BGP对等体之间建立连接所使用的端口号?路由属性分为哪几类。常用的有哪几种?(至少四种)
BGP对等体(neighbor)之间通过TCP建立连接,端口号为TCP179。 路由属性是指什么,PA(path attribute)吗?CCNP里提到比较重要的有next hop,local preference,AS_Path,Origin,MED(multiple exit discriminator),即CCNP书中讲的N WLLA OMNI中的第一个N,第一个L,A和O 常用的,是指最经常用来影响BGP路由选择的三个,即local preference,AS_Path,MED。你问4种是不是把weight也包含进去。Weight不是标准PA,是cisco私有的,在路由器本地影响出口路由的选择,但不能通过BGP update在BGP对等体之间传播。

【网络工程师配置篇】——BGP路由基础配置(eNSP)
1、BGP(Border Gateway Protocol)是一种不同自治系统的路由设备之间进行通信的外部网关协议(Exterior Gateway Protocol,EGP),其主要功能是在不同的自治系统(Autonomous Systems,AS)之间交换网络可达信息,并通过协议自身机制来消除路由环路。BGP 使用TCP协议作为传输协议,通过 TCP 协议的可靠传输机制保证 BGP 的传输可靠性。运行 BGP 协议的 Router称为 BGP Speaker,建立了 BGP 会话连接(BGP Session)的 BGP Speakers 之间被称作对等体(BGP Peers)。 2、BGP Speaker之间建立对等体的模式有两种:IBGP(Internal BGP)和EBGP(External BGP)。IBGP 是指在相同 AS内建立的 BGP 连接,EBGP是指在不同 AS 之间建立的 BGP连接。二者的作用简而言之就是:EBGP 是完成不同 AS 之间路由信息的交换,IBGP是完成路由信息在本 AS内的传递。组建BGP网络是为了实现网络中不同AS之间的通信。配置BGP的基本功能是组建BGP网络最基本的配置过程,主要包括三部分:1、创建BGP进程:只有先创建BGP进程,才能开始配置BGP的所有特性。2、建立BGP对等体关系:只有成功建立了BGP对等体关系,设备之间才能交换BGP消息。3、引入路由:BGP协议本身不发现路由,只有引入其他协议的路由才能产生BGP路由。1.拓扑图注意:缺省情况下,BGP会自动选取系统视图下的Router ID作为BGP协议的Router ID。如果选中的Router ID是物理接口的IP地址,当IP地址发生变化时,会引起路由的振荡。为了提高网络的稳定性,可以将Router ID手动配置为Loopback接口地址。2.实验目的:要使AS100网络(R1:1.1.1.1)和AS200(R4:4.4.4.4)网络路由可达。需要在所有router间运行BGP协议,R1和R2、R3之间建立EBGP连接,R2、R3和R4之间建立IBGP全连接。在AS200内,使用IGP协议来计算路由(该例使用OSPF作为IGP协议)。3.配置思路:1)搭建好拓扑图环境,标出规划好的IP地址2)修改网络设备默认名称、配置好IP地址3)配置基本OSPF(在AR2、AR3、AR4内做IBGP)4)配置EBGP4.配置过程:步骤一:修改网络设备默认名称、配置好IP地址1)配置各PC信息 (略)2)配置路由器AR1默认名称及接口IPsys //进入系统视图模式Enter system view, return user view with Ctrl+Z.[Huawei]sysname AR1 //修改设备名称[AR1]int g0/0/0 //进入接口[AR1-GigabitEthernet0/0/0]ip add 192.168.12.1 24 //给接口配IP[AR1-GigabitEthernet0/0/0]int g0/0/1[AR1-GigabitEthernet0/0/1]ip add 192.168.13.1 24[AR1-GigabitEthernet0/0/1]int loopback 0[AR1-LoopBack0]ip add 192.168.1.1 322)配置路由器AR2默认名称及接口IPsysEnter system view, return user view with Ctrl+Z.[Huawei]sysname AR2[AR2]int g0/0/0[AR2-GigabitEthernet0/0/0]ip add 192.168.12.2 24[AR2-GigabitEthernet0/0/0]int g0/0/1[AR2-GigabitEthernet0/0/1]ip add 192.168.24.2 24[AR2-GigabitEthernet0/0/1]int loopback 0[AR2-LoopBack0]ip add 192.168.2.2 323)配置路由器AR3默认名称及接口IPsysEnter system view, return user view with Ctrl+Z.[Huawei]sysname AR3[AR3]int g0/0/0[AR3-GigabitEthernet0/0/0]ip add 192.168.13.3 24[AR3-GigabitEthernet0/0/0]int g0/0/1[AR3-GigabitEthernet0/0/1]ip add 192.168.34.3 24[AR3-GigabitEthernet0/0/1]int loopback 0[AR3-LoopBack0]ip add 192.168.3.3 324)配置路由器AR4默认名称及接口IPsysEnter system view, return user view with Ctrl+Z.[Huawei]sysname AR4[AR4]int g0/0/0[AR4-GigabitEthernet0/0/0]ip add 192.168.34.4 24[AR4-GigabitEthernet0/0/0]int g0/0/1[AR4-GigabitEthernet0/0/1]ip add 192.168.24.4 24[AR4-GigabitEthernet0/0/1]int loopback 0[AR4-LoopBack0]ip add 192.168.4.4 32步骤二、配置基本OSPF(在AR2、AR3、AR4内做IBGP):[if !supportLists]1) [endif]R2[AR2]ospf router-id 2.2.2.2 //使能OSPF,并配置router-id[AR2-ospf-1]area 0 //配置area区域[AR2-ospf-1-area-0.0.0.0]network 192.168.24.0 0.0.0.255 //发布AS内网段[AR2-ospf-1-area-0.0.0.0]network 192.168.2.2 0.0.0.0[if !supportLists]2) [endif]R3[AR3]ospf router-id 3.3.3.3[AR3-ospf-1]area 0[AR3-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255[AR3-ospf-1-area-0.0.0.0]network 192.168.3.3 0.0.0.03)R4[AR4]ospf router-id 4.4.4.4[AR4-ospf-1]area 0[AR4-ospf-1-area-0.0.0.0]network 192.168.24.0 0.0.0.255[AR4-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255[AR4-ospf-1-area-0.0.0.0]network 192.168.4.4 0.0.0.04)配置验证,配置IBGP后,同一个AS内的网段可以互通,不同AS的网段不能互通步骤三、配置EBGP[if !supportLists]1) [endif]R1:[AR1]bgp 100[AR1-bgp]router-id 1.1.1.1[AR1-bgp]peer 192.168.12.2 as-number 200[AR1-bgp]peer 192.168.13.3 as-number 200[AR1-bgp]network 192.168.1.1 32[if !supportLists]2) [endif]R2:[AR2]bgp 200 //创建bgp编号200 (AS200)[AR2-bgp]router-id 2.2.2.2 //指定router-id[AR2-bgp]peer 192.168.12.1 as-number 100 //和邻居网络建立邻接关系[AR2-bgp]peer 192.168.24.4 as-number 200 //和邻居网络建立邻接关系[AR2-bgp]peer 192.168.24.4 next-hop-local //要将BGP路由发送给192.168.24.4这个邻居时,将路由的下一跳设置成自己的地址,这个地址是与192.168.24.4建立邻居所使用的源地址该提示信息说明BGP邻居建立成功[if !supportLists]3) [endif]R3:[AR3]bgp 200[AR3-bgp]router-id 3.3.3.3[AR3-bgp]peer 192.168.13.1 as-number 100[AR3-bgp]peer 192.168.34.4 as-number 200[AR3-bgp]peer 192.168.34.4 next-hop-local4)R4:[AR4]bgp 200[AR4-bgp]router-id 4.4.4.4[AR4-bgp]peer 192.168.24.2 as-number 200[AR4-bgp]peer 192.168.34.3 as-number 200[AR4-bgp]network 192.168.4.4 32配置EBGP后,我们发现由BGP控制选路后,从AR4到AR1的报文走的是AR2这条路径1)查看不同AS之间的连通性:通过Ping命令结果,我们发现在配置EBGP后,相同AS与不同AS之间都可以互相通信2)在AR1查看路由表:在路由表可以发现,EBGP目标地址是192.168.4.4,下一跳是192.168.12.2,说明192.168.1.1与192.168.4.4之间的通信是经过的路由器AR2。3)查看抓包信息:在AR1与AR2相连的接口开启抓包,可以抓到AR4与AR1通信的TCMP报文,同时我们发现BGP的传输协议是TCP,端口号为179在AR1与AR3相连的接口上开启抓包,发现,在这里没有AR4与AR1通信的信息,说明,通过BGP选路之后,AR4要到AR1的数据会通过AR2发送。至此,BGP实验完成,我们在实验中讲到,BGP自动完成了选路,那么要怎么手动控制选路呢?加入交流群696283186获取更多实验详细配置总结:BGP具有以下几个特性:1) 传输协议:TCP,端口号179;2) BGP是外部路由协议,用来在AS之间传递路由信息;3) 是一种增强的路径矢量路由协议;4) 拥有可靠的路由更新机制;5) 具备丰富的Metric度量方法;6) 无环路协议设计;7) 为路由条目附带多种属性信息;8) 支持CIDR(无类别域间选路);9) 丰富的路由过滤和路由策略;10) 无须周期性更新;11) 路由更新时只发送增量路由; 12) 周期性发送KeepAlive报文,以保持TCP连通性;

当bgp的邻居状态机处于什么状态是,标志着与邻居的tcp连接已经正常建立
BGP 是一种基于路径矢量的 EGP,主要用于 AS 之间的路由传递与控制,而 IGP 主要负责 AS 内部的路由发现和计算。 BGP 是基于 TCP 端口号 179 的路由协议,基于 TCP 的优点体现在:三次握手建立邻居的可靠机制;可以跨链路建立邻居关系; TCP 有确认重传机制,无需在 BGP 中完成; BGP 的认证由 TCP 完成的,认证字段在 TCP 头部的 option 中。 BGP的状态机Idle 状态是 BGP 初始状态。在 Idle 状态下, BGP 拒绝邻居发送的连接请求。只有在收到本设备的 Start 事件后, BGP 才开始尝试和其它 BGP 对等体进行 TCP 连接,并转至 Connect 状态。在 Connect 状态下, BGP 启动连接重传定时器(Connect Retry),等待 TCP 完成连接。如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,并转至 OpenSent状态。如果 TCP 连接失败,那么 BGP 转至 Active 状态。如果连接重传定时器超时, BGP 仍没有收到 BGP 对等体的响应,那么 BGP继续尝试和其它 BGP 对等体进行 TCP 连接,停留在 Connect 状态。在 Active 状态下, BGP 总是在试图建立 TCP 连接。如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,关闭连接重传定时器,并转至 OpenSent 状态。如果 TCP 连接失败,那么 BGP 停留在 Active 状态。如果连接重传定时器超时, BGP 仍没有收到 BGP 对等体的响应,那么 BGP转至 Connect 状态。在 OpenSent 状态下, BGP 等待对等体的 Open 报文,并对收到的 Open 报文中的 AS 号、版本号、认证码等进行检查如果收到的 Open 报文正确,那么 BGP 发送 Keepalive 报文,并转至OpenConfirm 状态。如果发现收到的 Open 报文有错误,那么 BGP 发送 Notification 报文给对等体,并转至 Idle 状态。在 OpenConfirm 状态下, BGP 等待 Keepalive 或 Notification 报文。如果收到Keepalive 报文,则转至 Established 状态,如果收到 Notification 报文,则转至Idle 状态。在 Established 状态下, BGP 可以和对等体交换 Update、 Keepalive、 Routerefresh 报文和 Notification 报文。如果收到正确的 Update 或 Keepalive 报文,那么 BGP 就认为对端处于正常运行状态,将保持 BGP 连接。如果收到错误的 Update 或 Keepalive 报文,那么 BGP 发送 Notification 报文通知对端,并转至 Idle 状态。Route-refresh 报文不会改变 BGP 状态。如果收到 Notification 报文,那么 BGP 转至 Idle 状态。 如果收到 TCP 拆链通知,那么 BGP 断开连接,转至 Idle 状态。
① Idle(空闲): Idle 是BGP连接的第一个状态,在空闲状态,BGP在等待一个启动事件,启动事件出现以后,BGP初始化资源,复位连接重试计时器(Connect-Retry),发起一条TCP连接,同时转入Connect(连接)状态。② Connect(连接):在Connect 状态,BGP发起第一个TCP连接,如果 连接重试计时器(Connect-Retry)超时,就重新发起TCP连接,并继续保持在Connect 状态,如果TCP 连接成功,就转入OpenSent 状态,如果TCP 连接失败,就转入Active 状态。③ Active(活跃):在Active状态,BGP总是在试图建立TCP 连接,如果连接重试计时器(Connect-Retry)超时,就退回到Connect 状态,如果TCP 连接成功,就转入OpenSent 状态,如果TCP 连接失败,就继续保持在Active状态,并继续发起TCP连接。④ OpenSent(打开消息已发送):在OpenSent 状态,TCP连接已经建立,BGP也已经发送了第一个Open报文,剩下的工作,BGP就在等待其对等体发送Open 报文。并对收到的Open报文进行正确性检查,如果有错误,系统就会发送一条出错通知消息并退回到Idle状态,如果没有错误,BGP就开始发送Keepalive 报文,并复位Keepalive 计时器,开始计时。同时转入OpenConfirm状态。⑤ OpenConfirm(打开消息确认)状态:在OpenConfirm状态,BGP发送一个Keepalive 报文,同时复位保持计时器,如果收到了一个Keepalive 报文,就转入Established 阶段,BGP邻居关系就建立起来了。如果TCP连接中断,就退回到Idle 状态。⑥ Established(连接已建立): 在Established 状态,BGP 邻居关系已经建立,这时,BGP将和它的邻居们交换Update 报文,同时复位保持计时器。

BGP是什么?
BGP(Border Gateway Protocol)基本功能在自治系统间自动交换无环路的路由信息,通过交换带有自治区域号(AS)序列属性的路由可达信息,来构造自治区域的拓扑图,从而消除路由环路并实施用户配置的策略。 BGP特点 1、距离矢量协议 2、传输协议:TCP,端口号:179,(重要) 3、支持CIDR(无类别域间选路)(重要) 4、路由更新只发送增量路由;(重要) 5、丰富的路由过滤和路由策略。 BGP经历了4个版本 RFC1105(BGP-1),RFC1163(BGP-2),RFC1267(BGP-3),RFC1771(BGP-4) 自治系统的编号范围 自治系统的编号范围为1~65535,其中1~65411注册的因特网编号,65412~65535专用网络编号。(重要)(重要)(重要) BGP两种邻居IBGP和EBGP,如果EBGP没有物理直连,使用neighbor x.x.x.x ebgp-multihop TTL补救 ,TTL缺省为64,取值范围:1-255 BGP的通告原则 1、多条路径时,BGP SPEAKER只选最优的给自己使用; 2、BGP SPEAKER只把自己使用的路由通告给相邻体; 3、BGP SPEAKER从EBGP获得的路由会向所有BGP相邻体通告(包括IBGP和EBGP) 4、BGP SPEAKER从IBGP获得的路由不向它的IBGP相邻体通告; 5、BGP SPEAKER从IBGP获得的路由是否通告给它的EBGP相邻体要依IGP和BGP的同步情况来决定; 6、连接一建立,BGP SPEAKER将把自己所有BGP路由通告给新相邻体。 成为BGP路由的途径 1、纯动态注入 2、半动态注入 3、静态注入 BGP报文有四种类型1、OPEN(版本、自治系统号、保持时间、BGP标识符) 2、KEEPALIVE(长度:19BIT,间隔60秒) 3、UPDATE(撤销路由信息、可达路由信息) 4、NOTIFICATION UPDATE报文构成 1、不可达路由; 2、 路径属性; 3、 网络可达性信息。 注意:一个UPDATE信息一次通告一个路由(携带多个路径属性),如果一次通告多个路由(必须路径属性相同),同时可以列出多个被撤销的路由。 BGP协议的6个状态 1、IDLE 2、CONNECT 3、ACTIVE 4、OPENSENT 5、OPENCONFIRM 6、ESTABLISHED BGP的路由属性共有16种,可以扩展到256种,常见为以下6种,并从属于4个范畴: 类型代码属性名必遵/可选过渡/非过渡 1Origin必遵过渡 2As-path必遵过渡 3Next-hop必遵过渡 4MED可选非过渡 5Local-preference可选非过渡 8Community可选过渡起点(Origin)属性 1、IGP,通过network命令注入BGP路由表的,值为0,; 2、EGP,通过其他EGP得到的路由的起点类型,值为1; 3、Incomplete,通过纯动态注入BGP路由表的,值为2。通常其他因素相同时,按照以上顺序选择路由。 团体(Community)属性 1、no-export 2、no-advertise 3、local-as 4、internet BGP路由选择过程 1、如果此路由下一跳不可达,则忽略该路由; 2、选择本地优先级大的路由; 3、如果本地优先级相同,选择本地路由器始发的路由; 4、选择AS路径短的路由; 5、一次选择起点类型为IGP,EGP,INCOMPLETE类型路由; 6、选择MED 小的路由; 7、选择ROUTER ID小的路由。 取自" http://wiki.ccw.com.cn/BGP "

本文由 在线网速测试 整理编辑,转载请注明出处。