Featured image of post BUAA CN Week5 BGP

BUAA CN Week5 BGP

比较简单的一集?

说在前面

久违的线下上机是怎样的体验呢?

  1. 接触不良还在追我,,

    请一定使用能卡紧的线!

  2. 除此之外呢,请你一定要提前阅读共享文档。

    链接我都懒得贴了。

    我们的设备比课本上更先进一点,因此指令常常有不一致的地方。

  3. 最后,请你一定记得在每次重启后,

    完成上机必做任务(尤其是路由器vlan1)

理论知识

我们简单回顾一下理论课中对BGP的认识:

和RIP、OSPF一样,BGP是在网络层章节学习到的一种路由选择协议。

其中RIP和OSPF都是IGP,在同一AS内进行。(前者为DV后者为LS)

而BGP是EGP范畴内的,主要实现的是跨AS的路由选择。(算法为:Path-Vector)


算法逻辑与DV类似,不过实际考量时会有多种依据。

常用的是 AS_PATH长度,即基于经过的AS个数来判断。

此外还有两条人为添加的属性偏好:

local preference 优先级最高。数值越高越优先去。

MED优先级低于AS_PATH。数值越低越优先去。

(MED可以视为对方的推荐度,只有AS_PATH一致才会考虑MED)


跨AS的路由选择需要看两个表:

BGP表(AS间)和Routing表(AS内),两者合一可以视为Forwarding表。

实验部分

本次实验操作相对简单,

主要是因为许多实验的组网完全不变,仅仅是增加了几个LoopBack。

但是实验背后的原理依旧有大量理论课未能涉及的内容。

路由聚合

路由聚合机制本身可能会触发黑洞

黑洞不难想象为一个

报文经过此处就会沦陷的地方。

啥?黑洞

因为它将多个网段聚合为一个大网段,

如果小网段崩溃,由于聚合路由存在,

报文依然可以被正确路由到该网段

然后丢失。 也就是黑洞。

聚合可以视为路由器在宣称自己拥有很可能比实际更大的地址空间。

一旦流量想去往聚合范围内、但实际不存在的地址,就会导致数据包在传输后被丢弃。

关BGP啥事

在AS内部,全域的可见性通常能快速修复这种不精确带来的黑洞。

但在BGP这种跨AS背景下,黑洞问题就尤为突出。

AS间的信息隔离使得聚合的发起者无法将内部明细网络的失效信息及时传递给外部,

只要聚合范围内仍有一条有效路由,聚合路由便会被维持,

从而导致一个AS内部的故障变成了影响整个互联网的持续性黑洞。

同步机制

我们直接来看课本定义:

BGP 规定:一个 BGP 路由器不把从 内部 BGP 对等体 得知的路由信息通告给 外部对等体 ,除非该路由信息 也能通过 IGP 得知,这就是 BGP 的同步机制。

啥是BGP对等体

可以理解为建立了BGP对话的两台路由器。

分为IBGP对等体与EBGP对等体。


设想这样一个场景:

AS1 RA ——- AS2 R1 —- AS2 R0 —– AS2 R2 ——- AS3 RB

其中RA和R1、RB和R2是EBGP对等体。

R1和R2是IBGP对等体。

R0是纯IGP路由器,没有BGP表。


那么就会有:

R2通过EBGP得知到RB的路由,并通过IGP传递给R1。

那R1能不能直接告诉RA怎么去RB呢?

如果告诉你

那同理 RB 也知道怎么去RA了。

可以ping通了

吗?


同步机制,本质上是不懂BGP路由器的需要被同步那些它不懂的BGP路由。


IGP的链路包含R0,

R0也确实传递了BGP信息没错,

但是R0在此过程中没能学习到BGP,也不认识其他AS。

因此,如果RA ping RB,

报文在传递到R0之后,就被R0销毁了。

又是黑洞?

没错,这也是黑洞

总之就是发送的时候,路由表欺骗了我能到,有路由,结果发到路上,被销毁了。

这种情况最好是不能发送,

也就是路由表团结一致,早点告诉我此路不通。

怎么样才能告诉你

如果早知道这个R0啥也不懂,

R1肯定不会去告诉RA,

不会让RA以为自己能去RB。


这也就是同步机制:

一个 BGP 路由器不把从 内部 BGP 对等体 得知的路由信息通告给 外部对等体 ,除非该路由信息 也能通过 IGP 得知。


因此,只需要给R0配好静态路由,

并通过IGP传递给R1和R2,

让R1和R2知道R0已经学会了,

就满足了同步机制,

也就能在规避黑洞的基础上让PCA ping 通 PCB了。

后记

好累好累好累。。。。

先睡了待会再写。

comments powered by Disqus
Easy Life and Easy Learning
使用 Hugo 构建
主题 StackJimmy 设计