当前位置:文档之家› 《路由交换技术及应用(第3版)》HCNP拓展教学资料-教案(5)

《路由交换技术及应用(第3版)》HCNP拓展教学资料-教案(5)

《路由交换技术及应用(第3版)》HCNP拓展教学资料-教案(5)一、课前回顾1、BGP的概念4.3 BGP工作原理BGP是主要工作在AS与AS间的动态路由协议,为AS间提供无环路的路由信息交互,下面介绍一下BGP到底如何提供AS间无环的路由信息交换。

4.3.1 BGP邻居关系同OSPF、ISIS一样,在BGP中,路由学习的依然要首先建立邻居关系。

所不同的是,OSPF、ISIS的邻居关系是自动建立的,而BGP邻居的建立必须手动完成,从邻居的建立开始就体现出了BGP是基于策略进行路由的(物理上直接相连未必是邻居,反过来物理上没有直接相连可以建立邻居关系)。

BGP邻居关系是建立在TCP会话的基础之上的,而两个运行BGP的路由器要建立TCP的会话就必须要具备IP连通性。

IP连通性必须通过BGP之外的协议实现,具体来讲就是IP 连通性通过内部网关协议(IGP)或者静态路由来实现,为方便起见,我们把通过内部网关协议或者静态路由实现的IP连通性统称为IGP 连通性或者IGP可达性(IGP Reachability)。

如果两个交换BGP报文的对等体属于同一个自治系统,那么这两个对等体就是IBGP对等体(Internal BGP)。

如果两个交换BGP报文的对等体属于不同的自治系统,那么这两个对等体就是EBGP对等体(External BGP)。

4.3.2 BGP路由通告原则BGP路由通告原则1:连接一建立,BGP Speaker将把自己所有BGP路由通告给新对等体,多条路径时,BGP Speaker只选最优的给自己使用,BGP Speaker只把自己使用的最优路由通告给对等体。

一般情况下,如果BGP Speaker学到去往同一网段的路由多于一条时,只会选择一条最优的路由给自己使用,即用来发布给邻居,同时上送给IP路由表。

但是,由于路由器也会选择最优的路由给自己使用,所以BGP Speaker本身选择的最优的路由也不一定被路由器使用。

例如,一条去往相同网段的BGP优选路由与一条静态路由,这时,由于BGP路由优先级要低,所以路由器会把这条静态路由加到路由表中去,而不会选择BGP优选的路由。

如图4-12所示,当前RTA上存在两条去往192.168.3.0的路由,下一跳分别为10.1.1.2和10.2.2.2,BGP会根据选路原则选出最优路由(被打上“>”标记的路由),用来发布给邻居。

同时加入IP路由表,在IP路由表中会检查是否存在一条比BGP最佳路由更好的路由条目,比如有一条到达192.168.3.0的静态路由(静态路由的优先级为60,而BGP的优先级为255,数值越低越好),则使用更优的路由条目,反之则把BGP最佳路由作为IP路由表的优选路由。

BGP路由通告原则2:BGP Speaker从EBGP获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP)。

BGP Speaker从EBGP获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP)。

对于IGP,工作原理是路由器之间交换路由信息,所以任何一个路由的下一跳是宣告此路由的路由器连接接口的IP地址,这是很容易理解的。

而对于BGP,则主要是用于AS之间传递无环路的路由信息,BGP就是把AS抽象或者浓缩成一个路由器看待,所以RTB不会修改任何路由更新里的信息就更新给的RTA,即RTA要到达网络192.168.1.0/24,下一跳为20.0.0.2。

这里又引入一个问题,对于RTA来说,很有可能不知道20.0.0.2的路由,这样就会导致路由不可达。

BGP提供了命令,让某些组网环境中,为保证IBGP邻居能够找到正确的下一跳,可以配置在向IBGP对等体发布路由时,改变下一跳地址为自身地址。

缺省情况下,BGP在向EBGP对等体通告路由时,将下一跳属性设为自身的IP地址。

BGP 在向IBGP对等体通告路由时,不改变下一跳属性。

BGP路由通告原则3:BGP Speaker 从IBGP获得的路由不会通告给它的IBGP邻居。

如果没有这条路由通告规则,RTC从IBGP对等体RTA学到的路由就会通告给RTD,RTD 继而会通告给RTB,RTB再把这条路由通告回RTA。

这样就在AS内形成了路由环路。

所以,此原则是在AS内避免路由环路的重要手段。

但是,这条原则的引入,带来了新的问题:RTD无法收到来自AS 12的BGP路由。

一般我们采用IBGP的逻辑全连接来解决这个问题,即在RTA-RTD、RTB-RTC之间再建立两条IBGP连接。

IBGP全互连(FULL-MESH)关系是解决由于IBGP水平分割带来的路由传递的问题的方法之一。

这种方法的缺陷是路由器要付出更多的开销去维护网络里的IBGP会话。

除此以外,BGP还提供了如下两种解决IBGP水平分割的方案:路由反射器(Route-Reflector)-- RFC 2796联盟(Confederation)-- RFC 3065BGP路由通告原则4:BGP Speaker 从IBGP获得的路由是否通告给它的EBGP对等体要依IGP和BGP同步的情况来决定。

BGP与IGP同步的概念:BGP Speaker不将从IBGP对等体获得的路由信息通告给它的EBGP对等体,除非该路由信息也能通过IGP获得。

BGP的主要任务之一就是向其它自治系统发布该自治系统的网络可达信息。

如图4-17所示,RTB会把去往10.1.1.0/24 的路由信息封装在BGP报文中,通过由RTB、RTE建立的TCP连接通告给RTE,如果RTE不考虑同步问题,直接接受了这条路由信息并通告给RTF。

那么,如果RTF或RTE有去往10.1.1.0/24 的数据报文要发送,这个数据报文要想到达目的地必须经过RTD和RTC。

但是,由于先前没有考虑同步问题,RTD和RTC的路由表中没有去往10.1.1.0/24的路由信息,数据报文到了RTD就会被丢弃。

因此,BGP必须与IGP(如RIP、OSPF等)同步。

也就是说,当一个路由器从IBGP对等体收到一条路由更新信息,在把它通告给它的EBGP对等体之前,要试图验证该目的地能否通过自治系统内部到达(即验证该目的地是否存在于IGP发现的路由表内,非BGP路由器是否可以传递报文到该目的地)。

若能通过IGP知道这个目的地,才会把这样一条路由信息通告给EBGP对等体,否则认为BGP 与IGP不同步,不进行通告。

解决同步问题的方法有很多,最简单的办法是RTB把BGP路由信息引入到IGP中,这样就同步了。

但是一般不建议这样做,因为BGP路由表很大,引入到IGP中来会给系统带来很大负担,甚至导致中低端路由设备的瘫痪。

其它的解决办法如:可以在RTB上配置一条去往10.1.1.0/24的静态路由,再把该静态路由引入到IGP中,这样也可以达到同步。

但不论何种方法,都不适用于大规模网络。

实际上,VRP平台缺省情况下BGP与IGP是非同步的,并不可改变。

但取消同步是有条件的。

当AS中所有的BGP路由器能组成IBGP全闭合网时,才可以取消同步,即RTB-RTC、RTB-RTD、RTB-RTE、RTC-RTD、RTC-RTE、RTD-RTE都通过TCP连接建立IBGP邻居关系。

这时,我们来看,数据到RTD后,由于RTB-RTD建立了IBGP邻居,所以RTD上有去往10.1.1.0/24的从RTB学来的BGP路由,这时,通过路由迭代,RTD将数据发给RTC;同理,RTC也会把数据发给RTB。

这样,数据就不会在途中丢失了。

一、课前回顾1、BGP的路径通告4.4 BGP路径选择BGP作为一个策略工具,主要作用是实现AS间的路由信息传递。

BGP就是结合丰富的路径属性,很好的控制路由信息的传递,从而实现路径的选择。

4.4.1 BGP路径属性对于企业和服务供应商所关心的问题,如:如何过滤某些BGP路由?如何影响BGP的选路?通过使用BGP丰富的路由属性,就可以得到解决。

BGP路由属性是一套参数,它对特定的路由进行更详细的描述。

在配置路由策略时我们将广泛地使用各种路由属性。

BGP路径属性可以被分为四大类:➢公认必遵 (Well-known mandatory)➢公认任意 (Well-known discretionary)➢可选过渡 (Optional transitive)➢可选非过渡 (Optional non-transitive)BGP必须识别所有公认属性。

而一些强制属性必须包含在每一个UPDATE消息里,而其它任意属性则可能会被包含在某具体UPDATE消息中。

一旦BGP对等体更新带有公认属性的UPDATE消息时,BGP对等体必须转发这些公认属性给其它对等体。

公认属性是所有BGP路由器都必须识别的属性。

公认必遵 (Well-known mandatory):所有BGP路由器都可以识别,且必须存在于Update 消息中。

如果缺少这种属性,路由信息就会出错。

公认任意 (Well-known discretionary):所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来决定是否添加到Update消息中。

除公认属性外,每UPDATE消息里都可以包含一个或多个可选属性。

并且不是每个BGP Speaker都要求支持这些可选属性。

而一个新的可过渡属性可以被发起者或其它一些BGP Speaker添加到路径属性上。

可选属性不需要都被BGP路由器所识别。

可选过渡(Optional transitive):BGP路由器可以选择是否在Update消息中携带这种属性。

接收的路由器如果不识别这种属性,可以转发给邻居路由器,邻居路由器可能会识别并使用到这种属性。

可选非过渡(Optional non-transitive):BGP路由器可以选择是否在Update消息中携带这种属性。

在整个路由发布的路径上,如果部分路由器不能识别这种属性,可能会导致该属性无法发挥效用。

因此接收的路由器如果不识别这种属性,将丢弃这种属性,不必再转发给邻居路由器。

以下列出几种常用的属性:Origin:起点属性。

定义路由信息的来源,标记一条路由是怎样成为BGP路由的。

As_PATH:AS路径属性。

是路由经过的AS的序列,即列出此路由在传递过程中经过了哪些AS。

它可以防止路由循环,并用于路由的过滤和选择。

Next hop:下一跳属性。

包含到达更新消息所列网络的下一跳边界路由器的IP地址。

MED属性:当某个AS有多个入口时,可以用MED属性来帮助其外部的AS选择一个较好的入口路径。

一条路由的MED值越小,其优先级越高。

Local-Preference:本地优先级属性。

用于在AS内优选到达某一目的地的路由。

反映了BGP Speaker对每条BGP路由的偏好程度。

相关主题