BGP 路由黑洞 论述题
AR1 与 AR4 建立 IBGP 邻居,现在管理员在 AR1 和 AR4 上把 siteA 和 siteB 通告进了 BGP 当中。
问题1:现在 Site A 访问Site B 会出现什么问题?
解答:
由于 AR2 和 AR3 出现路由黑洞,SiteA 与 SiteB 之间无法互访。
原因如下:
控制平面路由传递情况:
BGP 协议工作在 TCP 之上可以跨越三层设备进行路由传递,所以AR1和AR4可以基于IBGP邻居互相 学习到对端站点的路由信息,但由于 AR2 和 AR3 没有运行 BGP 协议,所以 IP 路由表中将不存在SiteA 和 SiteB 的路由。
数据层面报文转发情况:
当 SiteA 与 SiteB 互访的时候,AR1 或者 AR4 根据 IBGP 路由进行迭代将数据发送给 AR2 或AR3,但由于 AR2 和 AR3 没有业务网段的路由,会出现路由黑洞,将会把报文丢弃,导致的问题就是业务无法互通。
问题2:在不增加IGP协议和静态路由的情况下,给出三种方案解决此问题,并说明给出的方案的优缺点在哪儿?(6分)
解答:
方案一:通过 GRE 隧道解决,具体方案描述如下:
①控制/数据平面
控制平面:在 AR1 和 AR4 设备上建立 GRE 隧道,然后通过 GRE 隧道的 IP地址建立 IBGP 邻居关系传递业务路由。
数据层面:当 SiteA 与 SiteB 互访的时候,通过 IBGP 路由进行迭代下一跳是Tunnel 接口,然后根据 Tunnel 接口的源/目封装新的 IP 报头,从而将数据从本端传递到对端,对端解封装之后将数据传递给自身站点。
②方案优点/缺点
优点:在于 AS 内部核心路由器不需要运行 BGP 协议,只需 OSPF 路由转发即可,节省了大量的储存空间
缺点:增加新的 PE 站点扩展性差,需要部署大量的 GRE 隧道。
③配置命令:
AR1:
interface Tunnel0/0/0
ip address 10.0.14.1 255.255.255.0 //配置 Tunnel 接口 IP 地址。
tunnel-protocol gre //配置隧道协议为 GRE
source X.X.X.X //AR1 隧道接口源地址与 AR4 隧道接口的目的地址相同,并路由可达
destination Y.Y.Y.Y //AR1 隧道接口的目的地址与 AR4 隧道接口的源地址相同,并路由可达
bgp 100
peer 10.0.14.4 as-number 100 //配置 BGP 邻居
peer 10.0.14.4 connect-interface Tunnel0/0/0 //修改更新源为 Tunnel0/0/0
AR4:
interface Tunnel0/0/0
ip address 10.0.14.4 255.255.255.0 //配置 Tunnel 接口 IP 地址。
tunnel-protocol gre //配置隧道协议为 GRE
source Y.Y.Y.Y //AR4 隧道接口源地址与 AR1 隧道接口的目的地址相同,并路由可达
destination X.X.X.X //AR4 隧道接口的目的地址与 AR1 隧道接口的源地址相同,并路由可达
bgp 100
peer 10.0.14.1 as-number 100 //配置 BGP 邻居
peer 10.0.14.1 connect-interface Tunnel0/0/0 //修改更新源为 Tunnel0/0/0
方案二:通过 MPLS LSP 隧道解决,具体方案描述如下:
①控制/数据平面
控制平面:在四台设备上发布各自的 looback 接口,并使用 Loopback 接口作为 BGP 的下一跳。同时在四台设备上部署 MPLS 和 LDP 协议,使 PE 设备为自己的 loopback 接口作为 Egress 创建LSP,P 设备作为 Transit 为 PE 的 loopback 接口创建 LSP。根据标签控制方式的有序性,创建一条天然的 LDP LSP。
数据平面:在 PE 设备上开启非标签公网 BGP 路由迭代进隧道功能。当 SiteA 与 SiteB 互访的时候,根据 BGP 路由的下一跳迭代到 LSP 隧道中,中间设备根据标签进行转发,最终将数据传递到对端 PE,对端 PE 将 IP 报文发送到自身连接的站点内。
②方案优点/缺点
优点:扩展性好,增加站点只需配置相应的 IGP 路由和 MPLS 以及 LDP 协议即可,同时核心路由器无需运行 BGP 协议。
缺点:所有设备都需要运行 MPLS 和 LDP 协议才行,运维人员也需要懂得 MPLS 以及 LDP 的知识才行。
③配置命令:
在 AR1/AR2/AR3/AR4 上:
Interface looback 0 //创建 looback 接口
Ip address A.A.A.A 32 //配置 IP 地址以及掩码长度为 32
Mpls lsr-id X.X.X.X //全局下配置 LSR-id。
Mpls //启用 MPLS
Mpls ldp //启用 MPLS LDP
Interface {互联接口 ID} //进入接口视图
Mpls //启用 MPLS
Mpls ldp //启用 MPLS LDP
在 AR1 和 AR4 上:
route recursive-lookup tunnel //开启非标签公网 BGP 路由迭代到隧道功能。
方案三:通过 IBGP 全互联解决,具体方案描述如下:
①控制/数据平面:
控制平面:在所有路由器上运行 BGP 协议,并且两两之间建立 IBGP 邻居,此时所有设备都可以学习到所有业务网段路由,将不会存在 BGP 路由黑洞现象。考虑到全互联造成每台设备都需要维护大量 BGP 会话消耗设备性能,所以建议使用 RR 加 IBGP 的部署方式,这样部署首先可以减少 IBGP 会话数量,其次传递路由比较清晰,便于管理,并且扩展性比 IBGP 全互联方式要更好。
数据平面:因为每台路由器都部署了 IBGP,那么每台设备都学习到了业务网段的 IBGP 路由,只需根据 IBGP 路由执行转发即可。
②方案优点/缺点:
优点:因为所有设备都运行了 IBGP,那么可以通过 IBGP 丰富的属性对路由执行选路控制和管理。
缺点:因为所有设备都需要运行 IBGP,可能需要消耗大量储存空间保存庞大的 BGP 路由条目。
③配置命令:
在 AR1/AR2/AR3/AR4 上:
Bgp 100
Peer x.x.x.x as-number 100 //需要与另外三台设备都建立 BGP 邻居
请先 后发表评论~