MPLS + BGP高级特性

Technorati 标签: MPLS,BGP,CCIE,标签,LDP网络

LDP是否会为BGP路由分配标签?为何?ide

clip_p_w_picpath002

---以前咱们说LDP都是为IGP分配标签,历来都没有说为BGP分配标签.oop

下面用一个实验来讲明一下LDP+BGP的工做方式.学习

纯IP网络的转发方式:spa

clip_p_w_picpath004

该拓扑图中,R1和R4创建EBGP邻居. R3和R5创建EBGP邻居.3d

R1和R3之间创建IBGP邻居.blog

R1-R2-R3之间的IGP协议是OSPF.接口

R4 bgp中network 44.1.1.1 mask 255.255.255.255ip

R5 bgp中network 55.1.1.1 mask 255.255.255.255路由

问题:

最终,R4和R5经过BGP都会学习到对端的BGP路由. 首先有一个问题,就是R4 ping 55.1.1.1 source loo0,或者是R5 ping 44.1.1.1 sou loo0,会通吗?

-------------答案是不通. 经过作实验就能证实. 缘由就在于R2上面.若是纯IP的话,R2就是一个路由黑洞.

在R2上面,既没有44.1.1.1的路由,也没有55.1.1.1的路由. 若是要想让R4和R5两个路由器通,除非,让R2也参与到BGP中来,方法不少。R2做为RR路由反射器。R1和R3都是R2的客户端.再或者用联盟.总之必定要让R2也能学习到相关44.1.1.1/55.1.1.1的路由,那么在纯IP环境中才能进行通信.

不然R2就是一个路由黑洞.

 

 

MPLS标签转发方式:

拓扑图依旧,只是中间AS 100区域,R1,R2和R3之间运行MPLS IP.

这个时候,R2依然没有运行BGP.

其余条件和上面纯IP转发一致.

clip_p_w_picpath006

在这种状况下,R4 network 44.1.1.1/32进入BGP. R5 network 55.1.1.1/32进入bgp.

是否R4pingR5为何

-------经过实验发现,能通.

clip_p_w_picpath008

结论:在ASBR上面,收到了一个IP数据包。

对于R1来讲,该报文源是44.1.1.1.目的是55.1.1.1, 从R1的e0/1进IP,从R1的e0/0 MPLS出.

目的地是去往一个bgp条目的.那么这个时候会打上一个标签,这个时候会给bgp路由的下一跳打上一个标签.

这就是为何R2没有去往55.1.1.1或者44.1.1.1的路由,依然会有标签,由于标签是针对于11.1.1.1或者33.1.1.1的。R2有路由前缀,而且有相关的标签映射.

因此,必定要保证ASBR上面有明细的路由。不然数据包到了ASBR会由于核心路由表没有条目而丢包.

下面来看看这个数据流如何走:

clip_p_w_picpath010

在R4上面, ping 55.1.1.1 source loo0.

1, 首先R4须要有55.1.1.1的前缀路由信息.

clip_p_w_picpath012

这里在R4的核心路由表中,对于该路由,下一跳是14.1.1.1.可达.那么数据包就送到了R1上面去.

2, 当该IP报文送到R1的时候,是IP--->MPLS,应该查看CEF表.

下面是R1全部的相关表项.

首先,R1有核心路由表的路由:

show ip route

B 55.1.1.1 [200/0] via 33.1.1.1, 02:40:13

这里,R1要到55.1.1.1,bgp路由下一跳是33.1.1.1.

其次,show ip cef表,发现55.1.1.1的前缀,被远端R2分配了一个label=17.

再次,在LFIB中,发现17这个标签,实际上是对33.1.1.1(恰好是bgp前缀下一跳)进行分配的标签.

最后该数据包会PUSH进一个17的标签经过R1的e0/0转发给R2.

clip_p_w_picpath014

3, 当MPLS报文,携带label=17,进入了R2的e0/0.

R2的标签转发表以下:

clip_p_w_picpath016

对于进来的17的MPLS报文,在R2上面会将该标签弹出,由于33.1.1.1/32是R3的直连,R3会分配一个隐式空标签给33.1.1.1前缀,而且分发给R2.当数据包到了R2之后,剥离标签,pop label(PHP倒数第二条弹出机制).而后IP报文转发给R3.

4, R3收到这个报文之后. 发现报文目是55.1.1.1.查找路由表:

R3上面的路由表:

clip_p_w_picpath018

在R3上面,到达55.1.1.1,下一跳是直连路由35.1.1.5. 是可达的。因此数据包转发到R5.

5, 数据包到R5上面,最后成功转发。

=============================================

思考:若是R1和R3不用loopback做为bgp的source, 而用物理接口,R4和R5还能通信吗?

以前的应用是R1和R3用环回口创建的IBGP.

clip_p_w_picpath020

思考,若是用直连创建IBGP邻居的话,是否R4和R5依然能够经过MPLS域进行通信,为何?

-----------答案是否认的。

缘由:数据包到了R1之后,R1上面的路由表会变成:

show ip route

B 55.1.1.1 [200/0] via 23.1.1.3,

R2会认为,23.1.1.0/24是本身的直连路由,那么R2会分配一个空标签给23.1.1.0/24.分发给R1和R3.

R1上面对于23.1.1.0是没有标签的.

等IP数据包到了R2之后,R2查询,无标签,那么查询路由表,由于R2根本就没有启用bgp,也没有44.1.1.1/55.1.1.1的路由,因此R2又变成了路由黑洞. 主要的目的是利用标签将数据包使用标签交换发送到R3上面,这样R3才能进行路由查询转发数据.

相关文章
相关标签/搜索