发布网友
共4个回答
热心网友
这要看该路由器在MPLS域中所处的位置
如果是Ingress节点,它会查路由表和对应的标签表,给报文打上标签,并发送出去;
如果是普通的中间节点,它会查标签表,进行相关的操作,如swap,也就是取出标签,打上新的标签,再发送出去。整个过程中不会查路由表;
如果是Egress节点,(不考虑倒数第二跳弹出的话),它会剥除标签,然后查路由表,再把报文转发出去。
-----A--------B---------C----
比如ABC运行了OSPF和MPLS,路由器C引入了一条外部路由,1.1.1.1/32
我觉得大致的情况是这样的:
ABC通过OSPF,相互交换路由信息,这样A和B都学习到了这条外部路由1.1.1.1/32
ABC也会建立LDP的邻居关系,为路由分配标签,分配标签的原则是下游给上游分配标签,对于1.1.1.1/32,B要到达这个网络,必须经过C,所以C是B的下游,同理B是A的下游;于是针对1.1.1.1/32这条路由,C会给B分一个标签,比如100,B给A分一个标签,比如200。
这时,如果A收到一个ip报文,目的ip是1.1.1.1/32,作为Ingress节点,A就会给这个报文打上标签200,然后发送给给B。B收到带有标签100的报文,会把标签弹出,并重新打上标签100,再发给C。最终C把标签剥除,把ip报文发送到目的地。
也就是说,在MPLS域的边缘上,路由器是要考虑路由表的,而域中的路由器,则只考虑标签。
希望能帮到你!
热心网友
报文到达路由器后,看所带的标签,如果是标准的IP报文就按照ospf进行寻址转发;如果带有mpls标签的话,就根据mpls路由表进行转发。
热心网友
mpls的标签可以认为是2.5层的,也就是说,在拆到3层ip之前就会看到标签,然后根据标签转发。抓包可以更深的理解。
不是标签和ospf,是标签和路由的先后问题。标签先于路由。
热心网友
以cisco为例。cisco的转发,默认情况下只有一种,就是根据cef转发。所以,楼主的问题可以归纳为:如何构建cef转发表。因此,这里就要看数据包的目的地址是通过哪类端口转发出去的。若该端口启用了MPLS,并且MPLS已经为该路由分配了标签,则路由器为该数据包添加标签并进行标签交换;若该路由所指端口没有启用MPLS,或者MPLS没有为该目的地址分配标签,则直接转发。