学习HCIP的day.10

十、对BGP一些情况的总结:

1、路由条目不优特殊情况:

在BGP协议中,存在一种无法优秀的路由条目;假设R4路由表中存在一条非BGP产生的到达5.5.5.5的路由条目,且该条目用于R4与R5建立BGP邻居关系;那么之后R5再将5.5.5.5的路由在BGP协议进行宣告,该条目到达R4后将无法优,不可用;通过BGP学习到的路由,和本地与对端建立BGP邻居的路由条目一致,条目将不优,不能传递不能加表;

2、BGP的宣告问题:

在一个真实的AS中将存在大量的未运行BGP协议的路由器,他们的直连路由无法在BGP协议中进行宣告;只能经由该AS中其他运行BGP协议的路由来进行宣告,传递给其他的AS;这些运行BGP协议的设备,是通过该AS中的IGP协议来获取这些路由的;BGP设备可以宣告本地路由表中任何来源的路由条目;

在BGP协议中,宣告本地路由表中路由条目时,将携带自己路由表中的度量值到BGP的属性中;这些携带度量属性的路由,在传递给本地EBGP邻居时,将继续携带,用于AS判断进入对端AS的最佳入口;   但是若本地宣告一条路由,携带度量值后,该路由通过IBGP邻居关系传递到BGP邻居处,邻居再将该路由传递到它的EBGP邻居时,将去除该属性,将有可能导致选路不佳;

注:故建议一个AS中所有运行BGP协议的路由,均宣告本AS的路由

3、BGP的summary automatic 问题

自动汇总问题:在BGP协议中自动汇总功能默认关闭;开启后,对BGP正常宣告的路由没有影响;

针对IGP协议重发布到BGP协议的路由,将产生影响;

[r2]bgp 2

[r2-bgp]import-route  ospf  1

在BGP协议中对宣告和重发布的理解:

宣告就是逐条的将本地路由表中IGP协议产生的路由重发布到BGP中;

重发布就是批量的将本地路由表中IGP协议产地的路由宣告到BGP协议中;

两种方式产生的路由,其属性中仅起源属性不同,逐条宣告的路由起源属性更优;

从IGP重发布BGP的路由条目,ASBR设备若开启了自动汇总,这种路由将不携带原有掩码,按主类掩码传递,不携带ASBR到达这些路由的度量值;关闭自动汇总后,将携带掩码和度量;故建议不要开启自动汇总,默认为关闭;同理,在关闭自动汇总的前提下,重发布IGP到BGP时,ASBR将携带这些路由掩码和ASBR到达它们的IGP路由度量;故在一个AS中,和宣告问题一样;所有运行BGP的均需进行重发布,或宣告;

4、BGP的手工汇总 --- 聚合

(1)不是BGP协议自带的汇总方案,而是利用了BGP的宣告的特点,即本地路由表中任何来源的路由,均可宣告到bgp协议中(只要本地路由表中拥有的,且本机上运行了BGP协议的路由均可宣告)

宣告空接口:不逐条宣告明细,而是在汇总路由器上先配置到达汇总网段的静态空接口路由;然后由于BGP可以宣告本地路由表中任意来源的路由条目,故汇总设备可以直接将本地路由表中的空接口路由网段进行宣告;

BGP工作环境中,AS间大多存在多个EBGP邻居关系,仅仅使用聚合条目来共享路由,将无法达到最佳的选路;故需要在发送聚合条目的同时,再由各台BGP设备将本地为最佳路径的明细路由继续传递;

若使用第一种聚合配置方案,需要在EBGP邻居间发送聚合条目的同时,再发送明细条目的话,直接宣告即可;因为宣告明细设备将携带到达目标的cost值,导致其他AS,选路错误,故需要管理员判断清楚后再行宣告;

(2)BGP自带的聚合配置方案:

先逐条宣告本地明细路由,然后再进行聚合配置;本地将由BGP协议自动生成空接口防环路由;

[r1]bgp 1

[r1-bgp]aggregate  100.1.0.0 22   
# 此时明细及聚合条目均同时共享到邻居

[r1-bgp]aggregate  100.1.0.0 22 detail-suppressed   
# 仅发送聚合条目,所有明细均被抑制传输

(3)基于第二种聚合方案后,路由传递的干涉方法,为发送聚合条目的同时,再发送部分的明细路由

①抑制列表:使用抑制列表,标记被抑制路由,被标记后,该路由将不能传递

[r1]ip ip-prefix s permit 100.1.1.0 24
# 先允许该网段流量通过(抓取流量)


# 编写抑制列表,匹配流量
[r1]route-policy ss permit node 10

[r1-route-policy]if-match ip-prefix s

[r1-route-policy]q

# 在路由协议上调用该抑制列表

[r1]bgp 1

[r1-bgp]aggregate 100.1.0.0 22 suppress-policy ss

以上配置完成后,100.1.1.0/24将被抑制传输,在bgp表中使用s标注

②路由策略

[r1]ip ip-prefix q permit 100.1.1.0 24
# 先允许该网段流量通过(抓取流量)


# 编写路由策略,决定流量拒绝还是允许
[r1]route-policy q deny node  10

[r1-route-policy]if-match  ip-prefix  q

[r1-route-policy]q

[r1]route-policy q permit node 20

[r1-route-policy]q

# 然后再路由协议里调用路由策略

[r1]bgp 1

[r1-bgp]peer  12.1.1.2 route-policy q export

(3)前缀列表:当分发列表和路由策略用

[r1]ip ip-prefix ww deny 100.1.0.0 24
# 匹配流量,拒绝(允许)该流量

[r1]ip ip-prefix ww permit 0.0.0.0 0 less-equal  32
# 匹配流量,允许(拒绝)该流量,但后边表示的是掩码小于32位

# 在路由协议上调用该前缀列表

[r1]bgp 1

[r1-bgp]peer  12.1.1.2 ip-prefix  ww export

5、有条件的打破IBGP水平分割;

为了避免IBGP环境下的环路,故使用IBGP水平分割;从一个IBGP邻居处学习到的路由不能传递给本地其他的IBGP邻居;导致在一个AS中为了实现路由的正常传递,需要所有运行BGP协议的设备均两两建立IBGP邻居关系;IBGP建邻配置量随BGP设备的增加成指数上升,打破后可以大大的减少建邻配置;

所谓有条件的打破是指,管理员在确定无环的情况下,且邻居关系存在备份的前提,来打破IBGP水平分割;

打破所用到的技术:

(1)路由反射器:

RR(反射器)可以将通过IBGP邻居传递过来的路由反射给本地其他的IBGP邻居; 被反射路由其属性不变;RR(反射器)收到的不优路由,失去了传递性,自然也不能被反射;在反射器协议中,存在三种角色 RR(反射器)、 客户端、非客户端

如果要设置反射器,就要要求RR(反射器)与本地的客户端或非客户端间为IBGP邻居关系;  一台RR(反射器)和它所有客户、非客户共同构建一个簇(组)  在一个簇中,至少存在一台RR(反射器)和一台客户端;

反射规则:

「1」RR从本地的EBGP邻居处学习到的路由,可以共享给本地的客户端、非客户端、其他EBGP邻居

「2」RR从本地的客户端学习到的路由,可以共享给本地其他的客户端、非客户端、EBGP邻居

「3」RR从本地的非客户端学习到的路由,可以共享给本地客户端、EBGP邻居,不能共享给本地的其他非客户端

[r3]bgp 2        

[r3-bgp]peer  2.2.2.2 reflect-client   

2.2.2.2成为本地的客户端,同时本地成为RR;

若在一个AS中,仅使用反射器技术,那么需要定义反射器数据较为庞大,所以需要有新的技术,即建立联邦

(2)联邦

 通过在一个真实的AS中,构建小as(联邦内AS) ;小AS的编号仅在联邦内有效;传不出该大AS; 小AS间为联邦内的EBGP邻居关系,这种关系可以像真实ebgp关系一样传递路由,但不能修改属性;联邦中所有设备均基于小AS号进行配置和管理

[r2]bgp 64512  

[r2-bgp]router-id 2.2.2.2

[r2-bgp]confederation id 2  协议启动后,声明自己所在的大AS号

对端路由器:

[r3]bgp 64512

[r3-bgp]confederation id  2

[r3-bgp]confederation peer-as  64513   若本地连接了联邦内ebgp邻居,需要提前告知对端的小AS号

[r3-bgp]peer  2.2.2.2 as-number 64512

[r3-bgp]peer  2.2.2.2 connect-interface LoopBack 0

[r3-bgp]peer  4.4.4.4 as-number 64513

[r3-bgp]peer  4.4.4.4 connect-interface LoopBack 0

# 联邦之间建立EBGP邻居时,用环回建邻要修改最大跳数,否则无法建邻
[r3-bgp]peer  4.4.4.4 ebgp-max-hop 2

总结:反射器与联邦单独使用时,均配置量较大;故在实际工程使用,两种方案是协同后同时配置的;

注:在相同EBGP邻居之间只有一条线路时,使用真实接口地址建立邻居;在相同EBGP邻居之间有多条线路时,使用环回地址建邻(前提为双方环回可以通信)这是为了负载均衡,合理利用资源,但是注意:因为有EBGP对等体之间一般使用直连建邻,所以,EBGP对等体之间发送的数据包中的TTL值我们将其设置为1,但是到达对端的环回要经历两跳,所以不修改最大跳数时,双方路由器无法使用环回建立邻居关系,需要修改最大跳数(默认为1,修改值(2,255))。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值