华为HCIE-RS3.0论述题--BGP路由黑洞

3.3BGP路由黑洞

题干:R1/R2/R3/R4运行ospf协议,R1和R4建立IBGP,并且BGP进程下宣告站点路由。
在这里插入图片描述

1,根据以上描述,当站点1的用户访问站点2的用户时会发生什么问题?请描述产生问题的设备和原因。(4分)
答:当站点1的用户访问站点2的用户时,会产生路由黑洞的现象,会导致站点1无法访问到站点2
原因如下:
AR2设备产生路由黑洞,由于AR1和AR4之间建立的是IBGP邻居关系,所以AR1和AR4之间通过IBGP协议来互相传递站点1和站点2的路由条目信息。由于AR2和AR3之间没有运行BGP协议,所以导致了AR2和AR3没有站点1和站点2的路由条目信息。当站点1访问站点2的时候,AR1收到了去往目标网络为站点2的数据报文,查询FIB表项,发现了下一跳路由为AR2设备,转发数据报文给AR2。AR2收到了目标网络为去往站点2的数据报文,查询FIB表项,发现不存在去往目标网络的路由条目,产生了路由黑洞,将去往目的站点2的报文丢弃,导致了站点1和站点2无法互相通讯。
需要注意的是,当站点1访问站点2的时候,数据流量是从站点1流向站点2的,此时产生路由黑洞的设备为AR2,如果站点2访问站点1的时候,数据流向是站点2流向站点1的,那么产生路由黑洞的设备为AR3,总之,以上两种数据流向都会导致站点1和站点2设备之间无法互访。
2.结合实际情况,在不使用静态路由和IGP协议的情况下,作为管理员,为解决第一问的问题,请给出3种合理的解决方案并阐述各方案的优劣(6分)
答:方案一:在IBGP对等体之间建立全互联的关系。
在当前环境下,通过AR1,AR2,AR3,AR4四台设备建立IBGP全连接,利用IBGP协议使得访问站点1和站点2的路由消息传递各个设备上,防止AR2和AR3产生路由黑洞,使得站点1和站点2能够互相访问。
步骤1:在AR1,AR2,AR3,AR4之间建立IBGP全连接关系
在AR1,AR2,AR3,AR4上启用IBGP协议,并建立IBGP全互联,使得AR1和AR2,AR3,AR4建立邻居;AR2和AR1,AR3建立邻居;AR3和AR2,AR4建立邻居;AR4和AR1,AR2,AR3建立邻居,具体操作如下:
AR1:
BGP 100
peer xxxx(AR2)as-number 100 //与AR2建立邻居关系
peer xxxx (AR2)connect-interface loopback0//指定发送BGP报文的更新源地址
peer xxxx(AR3)as-number 100 //与AR3建立邻居关系
peer xxxx (AR3)connect-interface loopback0//指定发送BGP报文的更新源地址
peer xxxx(AR3)as-number 100 //与AR4建立邻居关系
peer xxxx (AR)connect-interface loopback0//指定发送BGP报文的更新源地址
network 192.168.1.0 24 //在bgp进程下发布站点1的路由信息
AR2:
BGP 100
peer xxxx(AR1)as-number 100 //与AR1建立邻居关系
peer xxxx (AR1)connect-interface loopback0//指定发送BGP报文的更新源地址
peer xxxx(AR3)as-number 100 //与AR3建立邻居关系
peer xxxx (AR3)connect-interface loopback0//指定发送BGP报文的更新源地址
AR3:
BGP 100
peer xxxx(AR2)as-number 100 //与AR2建立邻居关系
peer xxxx (AR2)connect-interface loopback0//指定发送BGP报文的更新源地址
peer xxxx(AR4)as-number 100 //与AR4建立邻居关系
peer xxxx (AR4)connect-interface loopback0//指定发送BGP报文的更新源地址
AR4:
BGP 100
peer xxxx(AR1)as-number 100 //与AR1建立邻居关系
peer xxxx (AR1)connect-interface loopback0//指定发送BGP报文的更新源地址
peer xxxx(AR2)as-number 100 //与AR2建立邻居关系
peer xxxx (AR2)connect-interface loopback0//指定发送BGP报文的更新源地址
peer xxxx(AR3)as-number 100 //与AR3建立邻居关系
peer xxxx (AR3)connect-interface loopback0//指定发送BGP报文的更新源地址
network 192.168.2.0 24 //在bgp进程下发布站点2的路由信息
完成以上配置后,请等待一段时间,查看是否所有AR设备之间BGP邻居和路由全部正常,若没有问题,则执行下一步。

步骤2:在AR1,AR2,AR3,AR4设备上查看路由表条目是否正常。
在AR1,AR2,AR3,AR4上执行命令display ip routing-table 查看全局路由表中是否存在站点1和站点2的BGP路由条目,如果存在站点1和站点2的BGP路由条目
说明AR2和AR3的路由黑洞的问题不存在,此步骤主要查看AR2和AR3是否存在站点1和站点2的路由条目,AR1和AR4只是顺带看一下。
上述操作完成后,执行下一步。

步骤3:验证方案
站点1用户访问站点2用户的时候,AR1收到去往目的站点2的数据报文,查看FIB表,下一跳为AR2,于是向AR2转发数据报文,AR2收到此数据报文,查看FIB表,下一跳为AR3,于是向AR3转发数据报文,AR3收到此数据报文后,查看FIB表项,下一跳为AR4,于是向AR4转发数据报文,AR4收到此数据报文后,查看FIB表项,收到报文后最终转发至站点2,最终实现了站点1和站点2 的互访。

此方案的优点:在小型的网络环境中,配置简单,可以很好的解决bgp路由黑洞的问题,同时可以根据bgp的丰富的选路规则进行选路。
此方案的缺点:AS内BGP的网络可扩展性交差,运行BGP路由器需要维护大量的TCP连接,尤其在路由器数量较多的时候,假设在一个AS内部有n台设备,那么建立的IBGP连接数量就为n*(n-1)/2,当设备数目很多,设备配置将十分繁琐,而且消耗了CPU和系统资源。

方案一可选化:IBGP全互联并在IBGP对等体之间部署路由反射器
在在AR1,AR2,AR3,AR4上启用IBGP协议,将AR2指定为路由反射器,同时将AR1、AR3、AR4指定为客户机,并且AR1、AR3、AR4设备都与AR2之间建立IBGP邻居关系。
站点1和站点2的路由信息通过路由反射器AR2反射给所有的客户机,防止AR2和AR3产生路由黑洞,使得站点1和站点2能够互相访问。

步骤1:AR2为反射器,指定AR1、AR3、AR4为客户机,建立IBGP邻居关系。
命令如下:
AR2:
peer xxxx(AR1)as-number 100 //与AR1建立邻居关系
peer xxxx (AR1)connect-interface loopback0//指定发送BGP报文的更新源地址
peer xxxx(AR1)reflect-client //将AR1指定为路由反射器的客户机
peer xxxx(AR3)as-number 100 //与AR3建立邻居关系
peer xxxx (AR3)connect-interface loopback0//指定发送BGP报文的更新源地址
peer xxxx(AR3)reflect-client //将AR3指定为路由反射器的客户机
peer xxxx(AR4)as-number 100 //与AR4建立邻居关系
peer xxxx (AR4)connect-interface loopback0//指定发送BGP报文的更新源地址
peer xxxx(AR4)reflect-client //将AR4指定为路由反射器的客户机
AR1:
peer xxxx(AR2)as-number 100 //与AR2建立邻居关系
peer xxxx (AR2)connect-interface loopback0//指定发送BGP报文的更新源地址
network 192.168.1.0 24 //在bgp进程下发布站点1的路由信息
AR3:
peer xxxx(AR2)as-number 100 //与AR2建立邻居关系
peer xxxx (AR2)connect-interface loopback0//指定发送BGP报文的更新源地址
AR4:
peer xxxx(AR2)as-number 100 //与AR2建立邻居关系
peer xxxx (AR2)connect-interface loopback0//指定发送BGP报文的更新源地址
network 192.168.2.0 24 //在bgp进程下发布站点2的路由信息

步骤2:在AR1,AR2,AR3,AR4设备上查看路由表条目是否正常。
在AR1,AR2,AR3,AR4上执行命令display ip routing-table 查看全局路由表中是否存在站点1和站点2的BGP路由条目,如果存在站点1和站点2的BGP路由条目说明AR2和AR3的路由黑洞的问题不存在,此步骤主要查看AR2和AR3是否存在站点1和站点2的路由条目,AR1和AR4只是顺带看一下。
上述操作完成后,执行下一步。

步骤3:验证方案
站点1用户访问站点2用户的时候,AR1收到去往目的站点2的数据报文,查看FIB表,下一跳为AR2,于是向AR2转发数据报文,AR2收到此数据报文,查看FIB表,下一跳为AR3,于是向AR3转发数据报文,AR3收到此数据报文后,查看FIB表项,下一跳为AR4,于是向AR4转发数据报文,AR4收到此数据报文后,查看FIB表项,收到报文后最终转发至站点2,最终实现了站点1和站点2 的互访。

此方案的优点:AS内BGP网络的可扩展性好,组网灵活,可以有效的解决在大型网络中IBGP全互联的不足,同时可以有效的解决路由黑洞的问题此方案的缺点:路由反射器原理以及组网略显复杂,对实施人员的技术水平要求较高,同时在大型网络中路由反射器需要维护大量的TCP连接所以对路由表的承载能力和CPU的处理能力都要有一定的要求,如果路由反射器承担转发数据的任务,那么对接口板的规格也有一定的要求,导致部署成本提升。

方案二:在AR1和AR4之间建立GRE隧道
在AR1和AR4设备之间部署GRE隧道,当GRE隧道建立成功的时候,AR1和AR4之间建立IBGP,指定发送BGP报文的源接口为GRE tunnel 接口,并可指定发起连接时使用的源地址为GRE tunnel接口的IP地址。AR1和AR4之间IBGP邻居关系建立成功后,相互传递站点1和站点2的路由信息,并且路由信息的出接口为GRE tunnel 接口,下一跳为GRE tuneel接口的IP地址,当站点1和站点2访问的时候,AR1作为边界设备,收到数据报文后,进行GRE封装(封装了两个IP头部,第一个IP头为骨干网可达IP地址,第二个IP头部为目的IP地址),当数据报文被转发至AR2时,AR2和AR3虽然没有站点1和站点2的路由,但是骨干网络是可达的,所以可以转发报文,报文最终被转发至AR4,AR4解封装获得第二个IP的头部的目的地址,查询FIB表项并转发,所以站点1和站点2可以互访

步骤1:在AR1和AR4上创建GRE隧道。
已知题目说明AR1、AR2、AR3、AR4都运行了ospf协议,那么可以理解底层路由可达(包括loopback接口的路由),在AR1和AR4设备上创建GRE隧道,具体操作如下:
AR1:
interface Tunnel 0/0/1//创建tunnel接口
ip address 10.1.14.1 255.255.255.0 //配置IP地址
tunnel-protocol gre//配置隧道协议GRE
source 10.1.1.1//指定发送报文的实际接口的IP地址为AR1的loopback0接口
destination 10.4.4.4 //指定发送报文的实际接口的IP地址为AR4的loopback0接口
AR4:
interface Tunnel 0/0/1//创建tunnel接口
ip address 10.1.14.4 255.255.255.0 //配置IP地址
tunnel-protocol gre//配置隧道协议GRE
source Loopback0//指定发送报文的实际接口的IP地址为AR1的loopback0接口
destination 10.4.4.4 //指定发送报文的实际接口的IP地址为AR4的loopback0接口
上述操作执行完成后,查看GRE tunnel是否成功建立,可以通过ping测试两端的tunnel接口的IP,如果ping成功,则表示GRE隧道成功建立,执行下一步。

步骤2:在AR1和AR4设备之间建立IBGP邻居关系。
在AR1和AR4设备之间建立IBGP邻居关系,指定发送BGP报文的源接口为GRE tunnel接口,并可指定发起连接时候使用的源地址为GRE tunnel 接口的IP地址,具体操作如下:
AR1:
BGP 100
peer xxxx(AR4)as-number 100 //与AR4建立邻居关系
peer xxxx (AR4)connect-interface loopback0//指定发送BGP报文的更新源地址
network 192.168.1.0 24 //在bgp进程下发布站点1的路由信息
AR4:
peer xxxx(AR1)as-number 100 //与AR1建立邻居关系
peer xxxx (AR1)connect-interface loopback0//指定发送BGP报文的更新源地址
network 192.168.2.0 24 //在bgp进程下发布站点2的路由信息
上述操作执行完成后,查看BGP邻居是否建立成功,并查看BGP路由表中是否存在对端站点路由条目,确认无误,执行下一步。

步骤3:在AR1、AR4设备上查看路由表路由条目是否正常
在AR1、AR4执行命令display ip routing-table查看全局路由表中是否存在站点 1和站点2的BGP路由条目,并且下一跳指向对端隧道接口IP地址,出接口为GRE tunnel接口,如果存在,则可以表明站点1访问站点2的数据报文是使用GRE隧道封装转发额。
上述操作完成后,执行下一步。
步骤4:验证方案
站点1用户访问站点2用户时,AR1 收到去往目的站点2的数据报文,查FIB表,发现目的网段的下一跳为AR4隧道接口IP地址,出接口为GRE tunnel接口,于是进行GRE封装,在收到源IP报文头部之前添加GRE的头,在GRE的头部之前再添加新的IP头部≥新的IP头部源地址为AR1的 loopback接口IP地址目的地址为AR4的loopback接口ip地址,GER封装完成后,将数据包转发至AR2,AR2收到报文后,查FIB表,存在去往AR4的loopback接口路由,并转发至AR3,最后将数据包转发至AR4,AR4剥离GRE头部,查FIB,最终将数据包转发至站点2,实现了站点1和站点2的互访。
该方案的优点:
GRE是一种隧道技术,相比于其他隧道技术,GRE 实现机制简单,对隧道两端的设备负担小。在当前网络环境中,有效利用了原有的网络架构降低了部署成本。
该方案的缺点
GRE隧道技术是一种手工隧道,扩展性差,如果需要建立的GRE隧道很多,相对而言配置量也会增大,同时RE不支持加密和认证,相比其他隧道技术(IPsec VPN),数据的安全传输得不到很好的保障。

方案三:MPLS LSP隧道技术
在四台设备上部署MPLS和LDP协议,创建天然隧道。通过在四台设备上发布各自的环回口路由,并将PE的环回口作为BGP的下一跳。PE设备为自己的环回口路由作为Egress 创建LSP,P设备作为transit为PE的环回口路由创建LSP。根据标签控制方式的有序性,创建了一条天然LDP LSP。

步骤1:在AR1,2,3,4上创建LSR-ID并在全局和接口下开启MPLS和MPLS LDP功能。
具体操作如下:配置命令:
在R1/R2/R3/R4设备上执行以下命令:
mpls Isr-id x.x.x.x//为设备创建MPLS的LSR-ID
mpls//开启MPLS功能
mpls ldp //开启MPLS LDP功能
lnt G0/0/x //进入MPLS域的接口
mpls//开启接口MPLS功能
mpls ldp//开启接口MPLS LDP功能

上述操作完成后,查看MPLS LDP邻居及LSP隧道是否成功建立,可以通过 display mpls ldp peer在设备上查看LDP邻居状态是否为operational。可以通过在ingress设备上 display mpls lsp查看FEC标签隧道是否正常(如图中R1和R4的 loop 口),如果状态及隧道建立正常,请执行下一步

步骤2:在R1和R4上配置route recursive-lookup tunnel使能迭代隧道功能。

在R1和R4上配置route recursive-lookup tunnel使能迭代隧道功能。因为缺省情况下,非标签公网BGP路由、静态路由只能迭代到出接口和下一跳,不会迭代到隧道。配置了该特性后,上述路由将优先迭代到LSP隧道,如果没有LSP隧道,上述路由也可以迭代到出接口和下一跳。具体操作如下;
在R1和R4设备上执行如下命令:
route recursive-lookup tunnel//使能迭代隧道功能

上述操作完成后执行下一步

步骤3:验证方案
站点1用户访问站点2用户时, AR1收到去往目的站点2的数据报文,查看FIB表,发现TUNNEL字段非0,于是按照tunnel索引压入标签转发给AR2。AR2收到带标签报文后,查看LFIB表进行标签交换转发给AR3,AR3收到带标签报文后同样查看LFIB表,发现出标签为3,于是次末跳弹出标签后转发给AR4。AR4收到报文后已经不带标签,查看FIB表后最终转发至站点2╱最终实现了站点1和站点2的互访。

该方案的优点:
扩展性好,增加站点,只需要配置相应的IGP路由和MPLS以及 LDP协议即可。核心路由器无需运行BGP,节约了了大量的储存空间。
该方案的缺点:
所有设备都必须支持MPLS以及 LDP,IGP与LDP的联动较为复杂,运维人员需要懂得MPLS以及LDP的知识。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值