BGP - 3,BGP重要概念(EBGP,IBGP,防环/黑洞/全互连/同步)

1,防环/黑洞/同步/全互连(为出现大于号,现在通常都是要下一跳可达+关同步)

a)EBGP邻居传来的路由可以通过AS_PATH防环,所以收到的不会有问题,因此直接是优化的(>),也就是直接装表、再传给EBGP邻居或IBGP邻居。

b)IBGP邻居传来的路由由于是在同一个AS,所以没法通过AS_PATH防环,于是BGP规定IBGP只能传一跳。

c)BGP还有2个问题。 问题一:BGP规定从EBGP学到的路由,传给IBGP邻居,不改变下一跳。这样通常对AS内部路由器来说,这个下一跳地址是不可达的。 问题二:由于水平分割,IBGP邻居只能传一跳,所以设想就是把2个IBGP建立在网络边缘。但是中间的路由器成了黑洞。(简而言之,即IBGP下一跳可达性问题,以及路由黑洞问题,只有解决这2个问题后IBGP传来的路由才是优化的)

d)典型的组网变成下图所示。假设图中A宣告一条路由dest,传给B,B直接是优化的,正常装表并传给E。问题一就是E收到这条dest路由时,下一跳是A的地址,这地址是AS外的地址通常是不可达的。问题二就是中间的C和D并不知道这条dest路由。(再强调下,EBGP传来的直接就是优化的,能够直接装表并往下传)

e)这时路由器E怎么办呢?BGP规定只有解决了这2个问题,E收到B(IBGP邻居)传来的dest路由才是优化的(>),才能正常装表,并传给F。(否则不是坑了F么,不解决的话自己内部都还没法访问这条dest路由)
f)问题一的解决方法:B对E说next-hop-self,把下一跳改为自己;或者是,E写一条关于下一跳地址的静态路由,使得下一跳可达。问题二的解决方法:将BGP路由重发布到IGP中,使得AS65102内所有的路由器都知道dest这条路由。这个重发布只能在B上做,因为B关于这条dest是优化的,E上的这条dest是非优化的。
g)重发布让IGP内部的路由器不堪重负,因为可能C和D后面还接着很多路由器,但实际上假如这条dest路由只是想借道65102去往65103,65102内部的很多路由器无需知道这条路由。于是问题二可以不去解决,直接在E上把同步关掉即可,这样,E上的这条dest路由也能有>号,并且正常装表并传给F。(别忘了关同步只是解决问题二,要想出现大于号,问题一还是要照样解决的)
h)下一跳可达,关掉同步后,2个问题解决了,路由层都优化了,可以正常在传递了,但有什么问题呢?在传递数据时,C和D又变为黑洞了,怎么解决呢?需要依靠所有路由器运行IBGP并fullmesh或者MPLS。
i)总结IBGP路由层面打通方法:下一跳可达+开同步+BGP重发布进IGP;下一跳可达 + 关同步。(即IBGP邻居传来的路由优化的条件)
j)总结IBGP数据层面打通方法:下一跳可达+开同步+BGP重发布进IGP;下一跳可达 + 关同步 + All run and fullmesh/MPLS。
详见2-5。

1.1,防环

EBGP的水平分割:AS之间的防环,路由器不收带有自己AS号的路由更新。(控制层面)

IBGP的水平分割:从IBGP收到的路由不会通过给另一个IBGP。(控制层面)

RR的防环:RR打破了IBGP只传一跳的规则,所以需要通过cluster-id防环

1.2,黑洞

由于防环机制的存在,BGP中间途径的路由器不会获知外部的路由。

黑洞举例:假设(A)-EBGP-(B-C-E)-EBGP-(F),B和E建立IBGP,此时A ping F不会通,因为A查去往F得仍给B,B查去往F需要扔给E(假设E开了nexthopself),递归查找经过C/D去E,但包到了C/D后就丢弃了,因为C/D没有路由去往F。

1)AS65101中的路由条目传到AS65103              
     EBGP:AB,EF。  IBGP:BE         
     控制层面:ABEF         
     数据层面:FE,到D和C会被丢弃

2)解决方法

物理线路full mesh(关同步):不会用,代价贵,都直连了有路由

逻辑线路full mesh(关同步):全连接,所有路由器运行BGP并运行BGP,即BCDE全部建立BGP邻居关系(无需直连),可以用RR,联盟

重发布(开同步):将BGP重发布到IGP,只能实验环境做,实际中要想这么做只能通过ACL导一部分

MPLS(关同步):BGP内部通过标签走,不通过路由走,实际上就是利用了CEF解决递归查找的功能

3)BGP路由黑洞,C和D能传BE之间的路由,但是不能传数据,这是因为:

控制层面源目的在变,分为三段(源A到目的B,源B到目的E,源E到目的F,每一段都有路由),通过TCP传路由。

数据层面源目的不变,源F目的A,中间C和D没有路由

1.3,同步

BGP的同步:为了确保宣告出去的路由都不会有黑洞问题,开启同步后,BGP只会将IGP和BGP同步后(通过重发布)的路由宣告出去,即宣告的路由不可能有黑洞。

现在,思科路由器默认禁止同步。

1.4,全互连

要所有路由器都能更新路由,所有经过路由器运行BGP并且full mesh,full mesh只需路由可达,无需直连。

不是全互联,可能导致两个问题:1,更新发不过去,例如防环中的那个例子。2,更新发过去了,但数据包过不去,例如黑洞例子。

2,BGP建邻居配置命令

2.1,基本三步,邻居三步

基本三步:router-id,no au,no sy (高版本后2步默认已经有)

邻居三步:neighbor,update-source,multihop(EBGP)/next-hop-self(IBGP)

备注:

neighbor语句中,后面的地址是端口地址,不是路由器的Router-ID。

邻居三步,如果EBGP用直连建立,则只有neighbor;

邻居三步,如果EBGP邻居一边用环回口,一边用物理口,则用物理口的那边需配multihop,用环回口那边即使不声明updata-source l0也行,因为BGP的TCP连接只需要一边发起能通即可。

邻居三步,如果IBGP用连接骨干网的物理口建立,则只有neighbor和next-hop-self(不用update-source是因为物理口已经被宣告进IGP),甚至如果IGP中有到EBGP直连口的路由,则只有neighbor。

邻居三步,如果IBGP用环回口建邻居,则要包含三步,其实update-source只要一端声明也可建立连接。

2.2,命令说明

1)no auto-summary

把任何一种协议重分布的BGP中时,如果默认是auto-summary时会发生自动汇总

仅仅是发生在重分布的时候,其他情况与汇总无关

自动汇总:汇总成一个主类网络,现在一般都关,都无类了

下一跳0.0.0.0代表是自己发出的

把协议重分布到BGP:

auto-summary:不携带原有的下一跳和metric,自动汇总成主类

no auto-summary:携带原有IGP的下一跳和metric,不会自动汇总

2)update-source

BGP无法像IGP那样自动发现邻居,需要由BGPneighbor手工指定,该命令默认源IP(更新源)是出接口IP。

IBGP建立邻居用环回口时,需要更改update-source

EBGP建立邻居用环回口时,需要调整update-source、multihop

实际上建邻居连接只需要保证一方满足。

两边都是默认路由无法建立邻居(为了防环),一边静态一边默认可以建立邻居。

3)next-hop-self

当从EBGP对等体学到的路由,传给IBGP对等体时,不会改变原来的下一跳,而这个下一跳对于内部网络来说,很可能不可达。

解决方法:使外部EBGP更新源接口可达,或者用next-hop-self更改更新源。一般都用后者。

4)ebgp-multihop

用于EBGP,配合update-source命令,通过环回口建邻居。

EBGP默认只能1跳,所以如果EBGP用环回口建立邻居,需要更改为多条。(IBGP默认就是多跳,无需此命令)

3,MA网络中,BGP下一跳的特列

34之间EBGP邻居,4访问2的下一跳会更改为1

ICMP的重定向:3发现接口收到的报文又从该接口发出去了,就会发起ICMP重定向

4,BGP路由通告

a)当存在多条路径时,BGP路由器只选最优(没有负载均衡情况下)

b)BGP只把最优路由传递给BGP peer

c)从EBGP邻居学到的会向所有BGP邻居通告(直接是优化的,包括EBGP邻居和IBGP邻居)

d)从IBGP邻居学到的不会向IBGP邻居通告(为了防环,RR除外)

e)从IBGP邻居学到的只有优化了才能往EBGP邻居传(重发布,或者关同步,但关同步会产生的黑洞,解决方法见1)

假设R1从邻居学到路由,传递情况如下:


 

从R2(IBGP邻居)学到

从R4(EBGP邻居)学到

传给R3(IBGP邻居)

不传

开RR时能传,(但GNS实验发现传的时候下一跳不变,nexthopself也没用,只能依靠IGP到达R2了)


1)传,next-hop仍然R4。不优。

2)需静态或nexthopself,并关同步或重发布后变优。

3)如果关同步还需fullmesh/RR解决黑洞问题。


传给R5(EBGP邻居)

传,next-hop变成R1。

直接是优化>,装表往后传。


传,next-hop变成R1。

直接是优化>,装表往后传。

另外,如果把R4(EBGP邻居)学到路由重发布到IGP,只能在R1上做,R1是优化的,R2和R3都没有大于号。

凡是IBGP邻居传来的路由,即使IBGP邻居是相邻的,该路由也是不优的,必须关闭同步才优。

5,BGP的auto-summary与aggregate

BGP开启auto-summary时,可以network主类路由,路由表中一旦有该主类下的明细路由,主类路由就会被宣告给对方,否则BGP必须要路由表中有路由时才会被宣告给对方。

auto-summary命令作用的对象:(1)重分布进bgp的igp或(2)直连或(3)静态路由,应该还有(4)通过IGP学到的路由。如果这些路由是子网路由,在进bgp表时将被自动汇总成有类路由条目。

auto-summary命令不作用的对象:(1) network通告的路由,(2)ibgp或ebgp邻居通告的路由,如果是此类产生的路由,在show ip bgp表中将是子网路由,这些路由再通过ibgp或ebgp通告给邻居时,根据此原则,无论邻居是否启用auto-summary,接收到的都将是子网路由条目。

总结:

只要在show ip bgp表中存在的路由,都会不变地传给ibgp或ebgp的邻居,而不管邻居或自己是否启用auto-summary命令。

将BGP重发布进入IGP时,自动汇总后network的路由,不会被灌回去,但是aggregate汇总宣告的路由,会被灌回去,要用route-map防止灌回。

汇总范围:

auto-summary:只能主类,例如10.0.0.0/8

aggregate:随意,例如10.0.0.0/16

汇总方法:

auto-summary:

方法1:开启auto-summary,network 10.0.0.0,前提是需路由表有10.0.0.0/8下的任意一条明细路由。注意前提是路由表里有,并且要到BGP下network主类。

方法2:开启auto-summary,重发布IGP至BGP,所有IGP中的明细路由都会自动汇总变成主类路由。

aggregate:

手工汇总BGP表里有的路由,无论是自己network的,还是BGP邻居传过来的,都行!aggregate 10.0.0.0 255.0.0.0。注意前提是必须要BGP表里有,并且要到BGP下agg汇总!

抑制明细:

auto-summary:不会抑制明细

aggregate:不会抑制明细,想抑制需要aggregate后面加上no-summary

将BGP重发布回IGP时路由灌回:

auto-summary:不会灌回

aggregate:会灌回到IGP,本路由器sh ip route发现是一条指向null0的汇总路由,其他IGP域内的路由器也会收到该路由,如果不想收到需要做过滤

6,BGP的default-information originate

两种方法产生默认路由:详见BGP配置7

1)当本地有默认路由时并且重发布到BGP时,用default-information orignate可传递给所有邻居默认路由,注意这条必要BGP表里有默认才行,默认BGP不会将0.0.0.0传给对方,一定要有这条命令才会传,即想传默认路由给对方,一定要重发布含默认路由的+这条命令

2)或者单独的network 0.0.0.0 mask 0.0.0.0 也可产生,OSPF本地无默认路由时可以强行加上always指定,BGP没有always

3)或者本地nei 对端PE default-orignate,可强制产生默认路由,无论本地有没有默认路由,注意模拟器的版本中这条命令本地的BGP表中没有0.0.0.0,对端有,但本端会有一段说明给对方下放了默认路由

原文地址:https://www.cnblogs.com/guxh/p/8449347.html

时间: 2024-10-04 05:40:56

BGP - 3,BGP重要概念(EBGP,IBGP,防环/黑洞/全互连/同步)的相关文章

BGP防环机制

BGP环路防护机制:br/>-IBGP邻居防环机制@IBGP水平分割*从内部邻居学习过来的路由,不会发送给另外一个内部邻居: -所带来的问题: IBGP邻居之间无法正常学习路由. -解决方案: #在所有的 IBGP 邻居之间,互相建立 邻居: *弊端:网络中存在大量的 BGP 邻居关系, 不容易管理,扩展性不强, 消耗过多系统资源,提高管理成本. #BGP联盟/联邦 -大 AS (通过公有AS表示) -小 AS (通过私有AS表示) *每个路由器启用的BGP使用的是小 AS : -内部邻居之间发

BGP - 1,基本概念

1,BGP知识点 a)AS号:私有(64512-65535),公有(0-64511). b)什么时候使用BGP:有数据穿越本AS前往其他AS:本AS有多条到其他AS的连接:必须要做策略. c)BGP路径矢量特征:BGP自治系统路径是无环路的.BGP路由器不接受路径列表中包含其自治系统号的路由更新. d)BGP基于TCP(Port179),TCP是单播,使用滑动窗口确认,无需逐个确认后发更新分组,比OSPF,EIGRP效率高(它们使用1-to-1窗口). e)自治系统可能使用多种IGP,并采用多种

解决BGP中IBGP的路由黑洞的配置方法

? R1与R2间EBGP,R4与R5间EBGP,R2与R4间IBGP,但由于R3学不到相关的路由,造成路由黑洞.处理的方法主要以下几个: 以下是路由器配置: R1: interface Loopback0 ip address 1.1.1.1 255.255.255.255!interface FastEthernet0/0 ip address 192.168.1.1 255.255.255.252!router bgp 100 bgp log-neighbor-changes network

VRRP,BGP协议的基本概念

1.VRRP基本概念VRRP(虚拟路由冗余协议):通过把几台路由设备联合组成一台虚拟路由设备,将虚拟路由设备的ip地址作为用户的默认网关地址实现与外部的通讯.当网关设备发生故障时,VRRP协议能够快速选举新的网关设备承担数据流量,保障网络的可靠通信.VRRP使用ip报文作为传输协议报文,协议号为112,使用固定的组播地址224.0.0.18进行发送,通过协议报文选举处一台路由器作为master,其他设备作为backup,来实现网关备份功能.VRRP只使用到advertisement这一种报文.

组播学习笔记(四)组播分发树简述+组播防环

组播拓扑: 从第一跳路由器(FH)到最后一条路由器(LH)中间会形成一个组播分发树. 组播分发树有两种模型: 1.源树模型:从源到接受者计算出一条最短路径. 如source1到host1走的路径是:source1-->A-->C-->host1 source1到host2走的路径是:source1-->A-->C-->E-->host2 source2到host1走的路径是:source2-->F-->D-->C-->host1 sourc

假装网络工程师5——STP二层防环机制详解

[toc] 一.背景介绍 在网络架构设计中,防环是一个很重要的因素,环路的潜在隐患不再赘述,所以无论是三层还是二层都非常注意防环的机制,在三层中无论是ttl值还是ospf这种倒状树结构其目的都是为了避免环路,在二层中防环的机制则为生成树协议(spanning tree protocol),以及优化后的rstp和mstp,本章重点介绍stp生成树协议. 二.STP协议的端口状态 stp协议是通过计算后在实际产生环路的物理链路上逻辑的阻塞一个端口,只有当链路发生变化时被阻塞的端口才有可能从新参与计算

第三章--Win32程序的执行单元(部分概念及代码讲解)(中-线程同步

学习<Windows程序设计>记录 概念贴士: 1. 同步可以保证在一个时间内只有一个线程对其共享资源有控制权.PS:共享资源包括全局变量.公共数据成员或者句柄等. 2. 临界区内核对象和时间内核对象可以很好地用于多线程同步和它们之间的通信. 3. 线程同步必要性:当多个线程在同一个进程中执行时,可能有不止一个线程同时执行同一段代码,访问同一段内存中的数据.多个线程同时读取共享数据没有问题,但是如果同时读写,情况就不同,也许会产生极大的错误.(如:程序CountErr).解决同步问题,就是保证

同步异步的概念(ajax是异步,C#是同步)

进程同步用来实现程序并发执行时候的可再现性. 一.进程同步及异步的概念 1.进程同步:就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回.也就是必须一件一件事做,等前一件做完了才能做下一件事.就像早上起床后,先洗涮,然后才能吃饭,不能在洗涮没有完成时,就开始吃饭.按照这个定义,其实绝大多数函数都是同步调用(例如sin,isdigit等).但是一般而言,我们在说同步.异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务.最常见的例子就是 sendmessage.该函数发送一个消

PLSQL_Material View物化视图的基本概念和用法 (概念)(以物化视图的方式同步两个数据库间的表或实时备份重要表)

2014-06-08 BaoXinjian 1. 用法 物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表. 物化视图存储基于远程表的数据,也可以称为快照.对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的. 如果你想修改本地副本,必须用高级复制的功能.当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取. 对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图. 实现两个数据库之间的数据同步,可以存在时