我自风情万种与世无争?
LDP协议就是其中最重要的一个标签分发协议。LDP协议在RFC3036中被定义,在MPLS网络中,路由器通过运行LDP协议为每条内部路
由映射一个标签,然后再将标签信息通告给所有邻居,路由器之间通过这种方式来建立标签转发表,最终形成LSP,当网络拓扑发生变化时,LDP还会实时地响应这种变化,动态建立LSP。
1、标签空间
LDP分配标签的空间有两种。
一种是基于接口的标签空间:每个接口通告的标签范围是唯一的,LER1为同一条FEC在不同接口通告的标签是不同的。
二是基于平台的标签空间:标签分配时并不是在每个接口下唯一,而是从整台LSR中来分配标签的,LER1 为同一条FEC通告一个标签。
2、上游 LSR/下游LSR
上游和下游是根据数据报文的流向来定义的,数据流总是由上游发往下游,对于网络45.1.1.0/24来说,AR5是最后一跳路由器, 其上游是AR4,而AR4同时又是AR3的下游。标签的通告方向可以是下游通告给上游,上游也可以将其标签通告给下游。
3、PHP(倒数第二跳弹出)
在MPLS网络的出站LER处,首先需要对接收的报文进行标签移除(通过查找标签转发表),然后再进行FIB表的查找并转发,由于进行了两次查表操作,所以过程比较耗时。如果到达出站LER的流量较大,会对设备性能造成一定的影响。为减轻出站LER的负担,标签在到达出LER之前就被弹出,这样在报文到达出站LER时已经是IP报文了,只需要查找IP转发表就转发出去,这样提高了出站LER的工作效率。
为使标签在到达出站LER之前就被弹出,使用了-一个特殊的标签一“3”, 这个标签也叫隐式空标签,
4、LDP报文简要
① Hello-----发现邻居,提供LSR-ID
② Initialization----初始化协议报文----协商的LDP标签分发方式,邻居超时时间,版本信息
③ Address----描述自身所运行MPLS+LDP的接口
④ Lable Mapping----描述自身对每个FEC标签的定义
⑤ keepalive----维持邻居
⑥ Notification----错误通告报文----描述或者中断邻居的原因
1、全网设备运行OSPF,开启MPLS和LDP,各设备的环回口0为各协议的R-ID并且宣告进OSPF协议
2、AR-1与AR-5建立基于各自的环回口0建立IBGP邻居,AR-5的5.5.5.2/32 宣告进BGP协议
AR1
[AR-1]ospf 1 router-id 1.1.1.1
[AR-1-ospf-1]a 0
[AR-1-ospf-1-area-0.0.0.0]net 12.1.1.1 0.0.0.0
[AR-1-ospf-1-area-0.0.0.0]net 1.1.1.1 0.0.0.0
[AR-1-ospf-1-area-0.0.0.0]quit
[AR-1-ospf-1]quit
[AR-1]mpls lsr-id 1.1.1.1
[AR-1]mpls
[AR-1-mpls]mpls ldp
[AR-1-mpls-ldp]quit
[AR-1]int g0/0/0
[AR-1-GigabitEthernet0/0/0]mpls
[AR-1-GigabitEthernet0/0/0]mpls ldp
[AR-1-GigabitEthernet0/0/0]quit
[AR-1]bgp 100
[AR-1-bgp]peer 5.5.5.5 as 100
[AR-1-bgp]peer 5.5.5.5 connect-interface LoopBack 0
AR5类似配置
AR3
[AR-3]mpls lsr-id 3.3.3.3
[AR-3]mpls
[AR-3-mpls]quit
[AR-3]mpls ldp
[AR-3-mpls-ldp]quit
[AR-3]int g0/0/0
[AR-3-GigabitEthernet0/0/0]mpls
[AR-3-GigabitEthernet0/0/0]mpls ldp
[AR-3-GigabitEthernet0/0/0]int g0/0/1
[AR-3-GigabitEthernet0/0/1]mpls
[AR-3-GigabitEthernet0/0/1]mpls ldp
[AR-3-GigabitEthernet0/0/1]quit
[AR-3]ospf 1 router-id 3.3.3.3
[AR-3-ospf-1]a 0
[AR-3-ospf-1-area-0.0.0.0]net 23.1.1.3 0.0.0.0
[AR-3-ospf-1-area-0.0.0.0]net 34.1.1.3 0.0.0.0
[AR-3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
AR2、AR4配置类似
dis mpls ldp interface
AR2的g0/0/0、g0/0/1接口启用了LDP,并且标签分发方式为DU方式;
AR2与AR1、AR3之间的LDP会话状态为Operational,表示会话已成功建立。
dis mpls ldp session
dis mpls lsp
在AR1上验证去往5.5.5.5/32的mpls报文所经过的路径。
tracert lsp ip 5.5.5.1 32
报文在AR1发出时被赋予了标签1027,经过AR4时,标签被代替为3。
测试连通性
1、通观察LDP邻居建立,请分别描述LDP协议常用数据包的内容与作用
LDP协议主要使用四类消息:
发现(Discovery)消息:用于通告和维护网络中邻居的存在,如Hello消息。
会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话,如Initialization消息、Keepalive消息。
通告(Advertisement)消息:用于创建、改变和删除FEC的标签映射,如Address消息、Label Mapping消息。
通知(Notification)消息:用于提供建议性的消息和差错通知。
LDP邻居建立过程(路由器A、B):
两个LSR之间互相发送Hello消息。
Hello消息中携带传输地址,双方使用传输地址建立LDP会话。
传输地址较大的一方作为主动方,发起TCP连接。
B作为主动方发起TCP连接,A作为被动方等待对方发起连接。
TCP连接建立成功后,由主动方B发送初始化消息,协商建立LDP会话的相关参数。
LDP会话的相关参数包括LDP协议版本、标签分发方式、Keepalive保持定时器的值、最大PDU长度和标签空间等。
2、MPLS标签----分发,传递,撤销(AR-5的环回口5.5.5.1宣告进ospf后再undo宣告)
5.5.5.1宣告进ospf
Label Mapping Message用于标签分发与更新;
Undo net 5.5.5.1 0.0.0.0
Label Withdrawal Message用于标签撤销;
Label Release Message用于标签撤销确认。
① MPLS域上游为IP数据进入方向,下游为基于MPLS转发的数据离开MPLS域,进入IP转发方向
② 路由始发地为下游,路由和Lable由下游向上游传递;数据由上游向下游传递
③ LSR向上游邻居通告自身对于FEC定义的标签,期望来自邻居上游数据携带此标签进入本设备。
④ Lable本地有效,不同LSR对同一FEC分配的标签不受邻居约束,lable可能一样,也可以不一样
⑤ 默认情况下:
Label Mapping Message用于标签分发与更新;
Label Withdrawal Message用于标签撤销;
Label Release Message用于标签撤销确认
基于以上特性,请描述和标识AR-5----5.5.5.1/32主机路由的更新与撤销过程中的报文和标签,并简要描述5.5.5.1/32
(1)基于IGP学习到此主机路由的LSR对于5.5.5.1/32此等价类分配的Lable为多少?又是如何通告邻居的?
IGP-----路由标签触发标签
LDP----标签撤销
IN-------------------OUT
本地------IGP------LDP
① 本地下发IN方向标签
Out方向----邻居通告获得
② 向所有邻居通告自身自身对于FEC下发的标签
a.是否存在此FEC
b.FEC在IP路由表的下一跳 是否匹配address报文的地址
(2)此主机路由的下游设备感知到此FEC撤销后,是如何通知上游邻居的?上游邻居收到通知后做出何种响应?
AR5下游设备感知5.5.5.1路由挂了之后,发起撤销报文(通告上游撤销报文),AR4上游设备收到报文之后,回AR5 Label Release Message报文。
(3)利用现行LSP隧道 解决AR-1访问5.5.5.2/32互通问题,不带源ping
请试分析AR-1去往5.5.5.2数据发送与回程分别给予何种方式转发,并解释在此次通信中BGP与MPLS的作用(路由控制与数据转发)
[AR-1]route recursive-lookup tunnel
[AR-1]ping 5.5.5.2
LDP--------BGP
① hello----发现邻居(UDP----646)
② Address----向邻居通告
1、Hello
作用:发现和维持LDP邻居
发送:默认时间为5S一发送
内容:保持时间(默认15S),传输地址(默认为LSP-ID)
2、Initialization
作用:协商LDP邻居会话参数,标签分发方式,防环机制和标签空间
发送:发送建立LDP邻居时发送
内容:版本,Keepalive保存时间(默认45S),标签分发方式,是否开启防环,PDU长度
3、Address
作用:向邻居通告本端所有的接口地址,邻居通过IP转发表的下一跳地址来决定出站标签
发送:初次建立LDP邻居时发送
内容:LSR的地址簇和接口地址
4、Lable Mapping
作用:向LDP 邻居发布FEC和标签绑定内容(一个标签通告报文可以发布多个标签信息)
发送:触发更新
内容:每一条FEC对应的标签(报文里以16进制体现)标签通告,标签请求,标签撤销,标签释放
5、keepalive
作用:TCP 会话的保活检测)
发送:默认15S周期发送,45S保持时间
内容:持时间(默认15S),传输地址(默认为LSR-ID)
6、Notification
作用:错误通知或者查询通知
发送:触发更新
内容:数据包格式错误,无法识别的ILV, 会话超时等具体差错类型
1、Non Existent
LDP的初始状态(类似BGP的Idle状态) ;发送hello, 选择主被动,建立TCP连接)
2、Initialized
完成TCP连接
(1)主动方先发送Initialized报文,发送后进入0pensent状态,等待对方回应Initialized
(2)被动方等待主动方的Init报文,收到后如果Int报文类参数协商一致回送主动方Int报文可以Keepalive报文进入0penrec状态
3、Opensent
主动方发送Init报文后等待被动方的Int与Keepalive报文
(1)与邻居的Int报文参数协商一致回送Keepalive报文并转至0penrec状态
(2)与邻居Int协商失败或者邻居回应int超时或者收到Notification则断开TCP会话转至Mon Existent
4、Openrec
主被方在收到协商一 致Int报文后己向对方发送Keepalive报文等待对方回应Keepalive
(1)收到对方回应的Keepalive报文,转至0perational
(2)回应超时或者收到Notif icat ion断开ICP会话转至Non Existent
5、Operational
LDP会话尽力成功,最终状态,周期发送Keepalive报文维持会话,超时或者收到Notification报文端口LDP会话转至Non Existent。
我是艺博东!不要干扰别人的自由,不要给别人添麻烦,逗号,然后做你自己。做真实的你,活出真实的你,率性一点,自然一点,从容一点,真实一点,你会更快乐。也欢迎你和我一起讨论,我们下期见。