我们知道了BGP分为EBGP和IBGP。这次再进一步看看EBGP和IBGP有什么区别。 应用场景 从应用场景看,EBGP和IBGP的区别还是很明显的。 这里运行IBGP的好处是: ☘ 路由不需要配置重分布,只需要建立好EBGP和IBGP连接,那么相应的路由会通过BGP协议传递。 EBGP和IBGP在技术实现上的第三个区别在路由转发的行为上。通过IBGP学习到的路由,不能传递给其他的IBGP。这么作是为了防止路由环路(loop)。 EBGP通过BGP协议里面的AS_PATH和其他元素过滤来自于自己的路由,但是IBGP运行在一个AS内部,没有AS_PATH,所以IBGP干脆不转发来自于其他IBGP的路由。 Route Reflector Route Reflector,路由反射器,这是一个特殊的IBGP router。一般的IBGP router不会传递来自其他IBGP router的路由。
R1和R3之间起EBGP协议,域内都起IBGP协议。 4台路由器loopback0地址可互通。 域间路由发布用户路由必须通过EBGP。 R1和R3分别向R2和R4发布默认路由。 实验配置步骤: 配置IP编址 配置AS内IGP连通性 配置IBGP 配置EBGP 配置路由聚合 配置路由引入策略,是的PC2只能域内互通 验证 一、配置IP编址: R1: # interface GigabitEthernet0 4.4.4.4 255.255.255.255 192.168.34.2 # R4: # ip route-static 3.3.3.3 255.255.255.255 192.168.34.1 # 三:配置IBGP
Vbdif10 172.19.162.255/32 Direct 0 0 D 127.0.0.1 Vbdif10 172.19.165.5/32 IBGP Destination/Mask Proto Pre Cost Flags NextHop Interface 172.19.162.100/32 IBGP
- IBGP:同一个AS内部的BGP邻居关系,IBGP邻居通常是指运行BGP协议的对等体两端均在同一个AS域内,属于同一个BGP AS内部。 但内部网络不一定都是IBGP,也可能是别的协议。 IBGP的优化 IBGP默认是节点间两两互联的full-mesh,为了避免full-mesh的连接方式,常见的IBGP优化有两种,一种是Route Reflector,一种是BGP Confederation Route Reflector Reflector类似路由中转节点,一般的IBGP router不会传递来自其他IBGP router的路由。 防环规则 AS内部防环 通过IBGP水平分割来实现的,IBGP水平分割的基本思想是不把从IBGP邻居学到的路由传递给其他IBGP邻居; AS间的防环 通过属性AS-PATH(通路向量信息)来实现,AS-PATH
BGP Speaker之间建立对等体的模式有两种:IBGP(Internal BGP)和EBGP(External BGP)。 IBGP 是指在相同 AS内建立的 BGP 连接,EBGP是指在不同 AS 之间建立的 BGP连接。 二者的作用简而言之就是:EBGP 是完成不同 AS 之间路由信息的交换,IBGP是完成路由信息在本 AS内的传递。 1.2 IBGP基本配置 拓扑如下 ? 的水平分割(从IBGP邻居学习到的路由不会再传递给自己其他的IBGP邻居)问题。 2)路由反射器要能够反射路由,必须本设备上有学习到相应的IBGP路由。
,无法使用该路由; 解决: 1、针对IBGP邻居使用next-hop-local命令,使收到的EBGP路由传 递指定IBGP邻居时将下一跳地址改变为本路由器更新源地址。 三、IBGP水平分割原则 从IBGP对等体获得的路由,只发布给EBGP对等体,不发送给IBGP邻居。称为IBGP水平分割原则,主要用于AS内环路防止。 IBGP水平分割会导致路由 传递问题,会使AS内的IBGP无法学习到路由; 解决: 1、全互联,让AS内使用BGP路由器都建立IBGP的邻居关系(会导致AS内BGP 的会话数过多,N(N-1)/2) 2 从EBGP对等体收到的最优路由,发布给所有EBGP和IBGP对等体,传给IBGP邻居 可能会出现不可达的问题;从IBGP对等体获得的路由,只发布给EBGP对等体,不发送给IBGP邻居,带来路由传递的问题 常规IBGP迁移的复杂性 路由反射的迁移复杂性非常低,因为总体网络配置几乎很少发生改变。然而,从IBGP到联盟的迁移需要对配置和网络架构做很大的改变。
今天给大家详细讲讲BGP通告路由的四大原则; BGP只发布最优且有效的路由; 从EBGP获取到的路由,会发布给所有对等体(IBGP和EBGP) 从IBGP学习到的路由,不会再发送给其它的IBGP对等体。 该原则称为“IBGP水平分割”。 从IBGP学习到的路由,如果要发送给EBGP对等体,依赖于从其它的IGP协议中学些到这条路由,该条规则称为BGP同步原则。 既会发布给IBGP对等体R4,也会发给IBGP对等体R3。 我们在R3、R4上查询下路由(如下图所示)。 (3)从IBGP学习到的路由,不会再发送给其它的IBGP对等体。 该原则称为“IBGP水平分割”。 在上述案例中,R3、R7、R8 互为IBGP对等体,R8发布的loopback99地址88.88.88.88/32,会发送给IBGP对等体R7、R8,但是R7不再会发送给R8,否则会造成环路。
1.4IBGP的水平分割机制 BGP规定:当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由信息通告给任何IBGP对等体------IBGP水平分割机制。 联邦 将原本的IBGP对等体关系替换为EBGP对等体关系----在同一个AS下 路由反射器 手工设定让某台路由器将从IBGP学习到的路由信息传递给某个IBGP对等体 路由反射器角色 引入路由反射器之后存在两种角色 : RR (Route Reflector) :路由反射器 Client: RR客户端 RR会将学习的路由反射出去,从而使得IBGP路由在AS内传播无需建立IBGP全互联。 构建全互联的IBGP对等体关系。 2.BGP的路由黑洞 2.1BGP同步更新规则 为了避免BGP路由黑洞问题 当一台路由器从自己的IBGP对等体学习到一条IBGP路由时,它将不能使用这条路由或者将这条路由通告给其他设备,除非他又从
(*代表有效,下一跳可达,>代表最优) 2、路由器从EBGP对等体获取的BGP路由,会发布给所有EBGP、IBGP对等体。(传递路由给IBGP对等体时,下一跳地址不变。) 3、IBGP水平分割:从IBGP对等体获取的路由,不会发送给IBGP对等体。防止环路(发送给EBGP邻居的下一跳地址转变为自己与其连接的源地址。) IBGP不做AS-PATH防环检测 3、IBGP之间不做AS-PATH防环检测。 4、选路:AS-PATH个数越小,路径越优。 3、peer 4.4.4.4 next-hop-local 仅针对IBGP邻居配置,仅对从EBGP邻居收到的路由传给IBGP邻居时生效 将EBGP路由传递给IBGP邻居时,将BGP路由的下一跳改为发送 RR在IBGP路由器之间只是用来打破水平分割,当做一个中转站,将IBGP路由没有任何变化的传递给其他的IBGP邻居,只是用于进行简单的路由转发。
主要是用/32的主机路由来建立LSP隧道的,注意隧道的起止为位置,LSP的话,就是2端LOOPBACK的起止,在用LOOPBACK建立BGP关系的时候需要注意指定源地址,否则关系起不来,这在EBGP和IBGP internal peer 22.22.22.22 group m-ibgp peer 22.22.22.22 connect-interface LoopBack1 # ipv4-family ** enable peer 22.22.22.22 group m-ibgp # ospf 1 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network internal peer 11.11.11.11 group m-ibgp peer 11.11.11.11 connect-interface LoopBack1 # ipv4-family ** enable peer 11.11.11.11 group m-ibgp # ospf 1 area 0.0.0.0 network 1.1.1.0 0.0.0.3 network
有这样一个东西来解决路由黑洞的问题,可以打破bgp水平分割所带来的黑洞问题) 首先要了解一下BGP联盟到底解决了一个什么问题,因为每一个技术后面都有他产生的背景: 路由黑洞解决方案: BGP水平分割带来的黑洞 (1)原因:IBGP 的水平分割(从一个IBGP邻居学来的路由不会再传递另外一个IBGP邻居.) (2)解决方法: ■IBGP全互联(FULL mesh结构,经过这些年的发展,做成全互联的模式基本是不可能的,对于运营商来说, BGP联盟的概念: 它将一个自治系统划分为若干个子AS,每个子AS系统内部的IBGP同伴全连接,并同联盟中其他的子AS建立连接。联盟能很容易的检测到自治系统内部的路由环路。 1、含义:大AS含小AS 2、联盟AS号:通常为私有AS号 3、角色:联盟IBGP、联盟EBGP 4、做法:将IBGP域用私有AS号划成几个小AS,对外以大AS宣告 5、问题: (1)一台路由器上只能起一个 auto-summary 配置总结: 在每台AS1内的设备中,bgp进程下面都需要配置大AS的ID,还有就是peers.peers是打通通往不同子AS路由器的bgp连接,一定需要配置,当然如果本端是末节,只有一个IBGP
BGP Speaker从EBGP获得的路由会向它所有BGP对等体发布(包括EBGP对等体和IBGP对等体)。 BGP Speaker从IBGP获得的路由不向它的IBGP对等体发布。 EBGP与IBGP的区别: 路由环路的避免措施不一样,IBGP强制规定ibgp speaker不允许把从一个ibgp邻居学习到的前缀传递给其它ibgp邻居,因此IBGP要求逻辑全连接。 使用的BGP属性不同,例如IBGP可以传递LOCAL_PREF(本地优先属性),而EBGP不行。 IBGP有同步的要求,而EBGP没有同步的要求 IBGP不需要IBGP邻居之间有物理连接,只需要逻辑连接即可,而EBGP下一般情况下都要求EBGP邻居之间存在物理连接。 而IBGP的Administrative Distance默认是200。 EBGP和IBGP在传递路由的时候,对next-hop的处理不同。
对等体之间的连通性,需要在 IBGP 对等体之间建立全连接关系。 在 IBGP 对等体间使用路由反射器可以解决以上问题。 IBGP 连接数量。 由于 RR 打破了从 IBGP 对等体收到的路由不能传递给其他 IBGP 对等体的限制,所以同一集群内的 RR 之间中可能存在环路。 路由衰减只对 EBGP 路由起作用,对 IBGP 路由不起作用。这是因为 IBGP 路由可能含有本 AS 的路由,而 IGP 网络要求 AS 内部路由表尽可能一致。
如果RR从自己的非客户端收到一条IBGP路由信息,则可以转发给自己的客户端 如果RR从自己的客户端收到一条IBGP路由信息,则可以转发给自己的所有非客户和除了路由发来的客户 如果RR从自己的 反射规则示例(1) 如果路由反射器从自己的非客户对等体学习到一条IBGP路由,则它会将该路由反射给所有客户。 ,打破了IBGP水平分割原理。 IBGP水平分割原理是为了防止BGP出现环路所设计的,打破会存在环路隐患。 路由器从IBGP对等体收到一条IBGP路由,并且该路由所携带的起源者ID属性与本地的BGP RID相同时,则会意识到该路由信息是从本地始发的信息,将忽略这条路由信息的更新。从而避免环路。
物理、逻辑拓扑全连:直接让AS内运行BGP协议的所有设备互相连接,使IBGP间通信不需要经过未运行BGP协议的设备,但由一个AS地理范围可能很大,IBGP间距离较远,所以使用真实链路连接IBGP也不现实 IBGP水平分割:当一个路由器从一个IBGP对等体出学习到某一条BGP路由时,他将不再把这条路由信息通告给其他的IBGP对等体。 IBGP水平分割可以有效的解决IBGP对等体之间路由回传造成的环路问题,但是,也会引发路由信息传递障碍问题。 想要避免IBGP水平分割带来的问题,可以让所有AS内部运行BGP的路由器均建立IBGP对等体关系, 这种建立全连的IBGP对等体的方案并不是最佳解决方案,因为,当一个AS内运行BGP协议的路由器数量较多时 1 [r1-bgp]peer 12.0.0.2 as-number 2 -- #邻居关系指定是双向的IBGP对等体环回建邻由于,IBGP邻居处于同一个AS中,正常一个AS中存在大量的备份路径,若使用物理接口建立邻居关系
• 为了防止BGP路由在AS内部传递时发生环路,BGP要求:“路由器不能将自己从IBGP对等体学习到的 路由再传递给其他IBGP对等体”,这就是IBGP水平分割规则。 • 由于IBGP水平分割原则的存在,BGP要求AS内须保证IBGP对等体关系的全互联,因为只有这样,才能够确保每一个路由器都能学习到路由。 • 考虑到IBGP水平分割规则的限制,为了使得AS内的路由器都能够正常学习到BGP路由,我们不得不建 立一个全互联的IBGP对等体关系(如图所示)。 • 路由器从EBGP对等体获得的路由会传递给它所有的BGP对等体(包括EBGP和IBGP对等体)。 • 路由器从IBGP对等体获得的路由不会传递给它的IBGP对等体(存在反射器RR的情况除外)。 • AS号码决定了与对等体建立的是EBGP会话还是IBGP会话。
来自公众号:IT人家 一、BGP路由反射反射器 在 AS 内部,由于存在 IBGP 水平分割原则,使得 BGP Router 之间不得不两两建立 IBGP 连接,以求获得完整的 BGP 路由更新,然而这是个扩展性非常低的做法,同时也给网络设备带来了负担,解决 IBGP 扩展性问题的两种有效的办法分别是联邦和路由反射器。 (1)如果路由学习自非客户端的 IBGP 对等体,则反射给所有客户端及 EBGP 邻居 (2)如果路由学习自客户端,则反射给所有非客户端的 IBGP 邻居和除了该客户端以外的所有客户端 (3)如果路由学习自 EBGP 邻居,则反射给所有客户端和非客户端的 IBGP 邻居 二、实验环境 BGP邻居关系如下: (1) R1与R2、R4与R5建立EBGP邻居关系; (2) R2与R3、R3与R4建立IBP邻居关系 ,R5使用network将lo0地址5.5.5.5/32注入BGP; (4) 将R3配置为RR,R2为R3的client,如此一来,R3作为RR将学习自client R2的路由反射给R4,也会将学习自IBGP
学到的路由不会转发给其他IBGP邻居(但可转发给EBGP邻居) AS间防环: 通过AS_Path属性检测(若收到包含本AS号的路由则丢弃) 路由反射器场景: 使用Cluster_List记录反射路径 import>对等体学习) 优选AS_PATH最短的路由(本题关键,M这条的更短) 优选起源类型(IGP>EGP>Incomplete) 对于同AS路由,优选MED最小的 优选EBGP路由(EBGP>IBGP 水平分割(IBGP路由不转发给其他IBGP邻居) AS间: AS_PATH属性 路由反射器场景: 使用ORIGINATOR_ID和CLUSTER_LIST 答案:D 4. 水平分割:从IBGP邻居收到的路由不会转发给其他IBGP邻居 AS_PATH属性:AS间防环 路由反射器场景:使用ORIGINATOR_ID和CLUSTER_LIST 错误选项: 最大跳数15是RIP AS内部:从IBGP学到的路由不转发给其他IBGP邻居; 2. AS间:通过AS_PATH属性检测环路(含自身AS号则丢弃); 3.
:运行在相同AS内的BGP路由器建立的邻居关系为IBGP邻居关系; EBGP只用于不同AS之间传递路由。 因此我们用IBGP来邻居关系来解决上述问题:如上图,因为BGP使用TCP作为其承载协议,所以可以跨设备建立邻居关系。 如图所示,RTB与RTC之间建立IBGP邻居关系,并各自将从其他AS学到的路由传递给对端,实现BGP路由在AS内的传递。 [RTD] [RTD]bgp 200 [RTD-bgp]peer 10.1.24.2 as-number 100 5.3.4 第四步 配置IBGP邻居关系:本例中RTB和RTC建立IBGP 邻居关系(本例使用逻辑接口建立IBGP邻居关系): [RTB] [RTB]bgp 100 [RTB-bgp]peer 33.33.33.33 as-number 100 //AS号相同则为IBGP邻居关系
5、R2和R4之间通过Loopback 0接口建立IBGP邻居关系。 6、将R1的Loopback 0和R5的Loopback 1通过network的方式通告进BGP中,保证能够互访。 5、R2和R4之间通过Loopback 0接口建立IBGP邻居关系。 注: 1、当BGP路由器始发一条路由更新给BGP邻居关系时会将该BGP路由的下一跳置为建立邻居关 系的接口IP地址 2、从EBGP邻居学到的路由更新给IBGP邻居时不修改下一跳,可以使用peer X.X.X.X next-hop local使得从EBGP邻居学到的路由更新给IBGP邻居时修改下一跳为自身和IBGP邻居建立邻居的 接口IP 3、从IBGP/EBGP邻居学到的路由更新给EBGP邻居时修改下一跳为自身和邻居建立邻居关系的 接口IP 4、从IBGP邻居学到的路由不会更新给IBGP邻居