MPLS 关于静态LSP的nexthop疑惑

[复制链接]
发表于 : 2019-10-31 09:38:51 最新回复:2019-11-03 10:16:13
196 6
  求助帖: (未解决)
小白一枚,最近学习到MPLS时遇到一些疑惑,望各位指点一下,谢谢!

static-lsp transit 2to1 incoming-interface GigabitEthernet 0/0/1 in-label 1021 nexthop 10.1.12.1 out-label 1011

中转及出站LSR从报文的二层头部的“类型”字段判断出载荷数据是MPLS标签报文,因此LSR将不会在FIB表中查询该报文的目的IP地址,而是根据报文所携带的标签获取转发信息

问题1:即然不依靠IP转发,那么设置nexthop的意义何在,如果说IP是控制选路,那么还是要遍历路由表,那MPLS的意义何在。nexthop的作用是什么呢?

问题2:ILM(入标签映射)表中的“标签操作”一项是不是仅在出站LSR上起作用,NHLFE(下一跳标签转发表项)中的”标签操作“是在入站及中转LSR上起作用?

(我总感觉自己钻牛角尖儿了)
希望各位网友能耽误一点儿自己的宝贵时间,指点一二,谢谢!

  • x
  • 常规:

点评 回复

跳转到指定楼层
z_walker
z_walker  新锐 发表于 2019-10-31 15:13:46 已赞(0) 赞(0)

我的理解,一条LSP要形成,对于设备来说,他起码要有明确的出口吧(至少一出口吧),他转发MPLS的数据时,用于指导他的具体操作,也就是你下面说到的NHLFE,所以你写的这条静态的LSP,标签只是告诉他应该封什么标签,而下一跳地址就是告诉他数据包往哪里出去(类似写路由,你可以写地址,也可以直接写接口,他会迭代最终找到出口)。
IML是给入站标签查映射TunnelID的,对中间LSR才是主要起作用的,反而对于出站LSR由于PHP特性,收到的报文根本就没有带标签,基本用不到这个表。
NHLEE表的动作有PUSH、swap、POP,也就是说对入站和中间LSR都有作用(前提是支持PHP特性的设备)
其实这些都能在产品文档得到MPLS 关于静态LSP的nexthop疑惑-3100354-1
  • x
  • 常规:

点评 回复

长江_2019
长江_2019   发表于 2019-11-1 10:45:42 已赞(0) 赞(0)

z_walker 发表于 2019-10-31 15:13 我的理解,一条LSP要形成,对于设备来说,他起码要有明确的出口吧(至少一出口吧),他转发MPLS的数据时, ...
首先,感谢你的回答!
MPLS在中转的时候从报文的二层头部的“类型”字段判断出载荷数据是MPLS标签报文,因此LSR将不会在FIB表中查询该报文的目的IP地址,而是根据报文所携带的标签获取转发信息。也就是说MPLS域中的LSR都是不会读取三层头部的,那么在MA网络里,同一个广播域中,其它LSR怎么知道这个MPLS报文中nexthop设置是自己的址址呢(是不是传给自己的)?也就是说不读取三层头部,如何确定自己是否接受该报文。

如果读取三层头部,那还是要查看路由表,那MPLS的意义在哪儿?(按我的想法MPLS转发应该是不依靠IP的,虽然我知道我的想法错的。那么MPLS是如何和IP协同工作的呢?)

另外这个NHLFE的表是怎么形成的,如何填充里面的内容?

以上只是一个初学者自己的想法,希望各位不要笑话!
  • x
  • 常规:

点评 回复

z_walker
z_walker  新锐 发表于 2019-11-1 15:10:20 已赞(0) 赞(0)

长江_2019 发表于 2019-11-01 10:45 首先,感谢你的回答!MPLS在中转的时候从报文的二层头部的“类型”字段判断出载荷数据是MPLS标签报文,因 ...
那就是控制平面和数据平面的问题了,你所说的判断MPLS标签,然后转发时对于数据平面来说的,但在转发数据之前,在MPLS网络需要先构筑控制平面,也就是用静态LSP或者动态的标签协议(如LDP)来生成标签转发信息(IML和NHLFE表等),在进入MPLS域的时候,数据到达在入站LSR时,会选择使用IP转发还是标签转发(查看FIB表,看对应的FIB表的目的地地址对应的Tunnel ID是否为空,不为空就标签转发,然后找到这个ID对应到NHLFE的出标签和出口,封装出标签往出口丢),域内后续就是标签交换了。
产品文档的链接你看看
https://support.huawei.com/hedex/hdx.do?lib=EDOC110003716331189945&docid=EDOC1100037163&lang=zh&v=05&tocLib=EDOC110003716331189945&tocV=05&id=dc_fd_mpls_1007&tocURL=resources%2fdc%2fdc%5ffd%5fmpls%5f1007%2ehtml&p=t&fe=1&ui=3&keyword=ILM
  • x
  • 常规:

点评 回复

长江_2019
长江_2019   发表于 2019-11-1 16:49:19 已赞(0) 赞(0)

z_walker 发表于 2019-11-01 15:10 那就是控制平面和数据平面的问题了,你所说的判断MPLS标签,然后转发时对于数据平面来说的,但在转发数据 ...
你给出的链接我之前就看过了,谢谢!估计是我没有表达清楚,MPLS的转发还是离不开IP的,关键是中转的LSR在接受到上游LSR发过来的数据包,它不读取IP包头怎么知道这是转发给自己的(MPLS不是只读取MPLS包头,不读取IP包头吗,不读取IP包头怎么知道上游LSR的nexthop指的是自己)。
  • x
  • 常规:

点评 回复

z_walker
z_walker  新锐 发表于 2019-11-1 16:53:57 已赞(0) 赞(0)

长江_2019 发表于 2019-11-01 16:49 你给出的链接我之前就看过了,谢谢!估计是我没有表达清楚,MPLS的转发还是离不开IP的,关键是中转的LSR ...
中转的LSR又不读IP的内容,他读到MPLS头里面的标签,然后一看ILM表,入标签是这个,找到对应的NHLFE看是怎么样的操作,然后发出去就行了啊
  • x
  • 常规:

点评 回复

长江_2019
长江_2019   发表于 2019-11-3 10:16:13 已赞(0) 赞(0)

z_walker 发表于 2019-11-01 16:53中转的LSR又不读IP的内容,他读到MPLS头里面的标签,然后一看ILM表,入标签是这个,找到对应的NHLFE看是 ...

非常非常感谢你的指点!我发现我的想法是哪里有问题了,就是之前没有区分控制平面和数据平面!
对于MPLS LDP而言
控制平面
1.基于UDP发现邻居
2.基于TCP建立会话
3.通告标签映射,我的疑惑就是这儿(建立LSP时,对于同一FEC,上游LSR只会接收nexthop指定的下游LSR分配的标签,在这里肯定是要读取IP头部的,要不怎么能读取到应用层的标签!话说如果是负载分担,那上游LSR该如何选择标签呢?)到此,一条LSP建立完成!
数据平面
1.入站数据发现FIB表TUNNELID非0,依据TunnelID找到NHLFE表项,依据表项压入标签转发
2.中转LSR读取标签,如果是自己为此FEC分配的标签则按照标签在ILM表找到对应TunnelID,依据TunnelID找到NHLFE表项,再根据NHLFE表项操作标签转发;如果接受到的数据不是自己为此FEC分配的标签,则丢弃。(这里不知道我的理解对不对)
3.出站LSR,如果次末跳LSR执行弹出标签,则依据IP转发,否则自己执行弹出操作,依据IP转发!
也就是数据平面在转发时,不会读三层包头!
之前就没有转控分离的概念,所以进入误区!不知道以上我的理解对不对,请各位指正!谢 谢 !
  • x
  • 常规:

点评 回复

发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录