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 邻居

举报
评论 0