目录
前言
R1的配置如下:
R2的配置如下:
R3的配置如下:
R4的配置如下:
前言
在图中,R1,R2,R3和R4将构成一个简单的MPLS网络,这些路由器将部署MPLS及LDP。首先为了保证MPLS网络内实现路由互通,我们选择在四台路由器上部署OSPF。所有的路由器都创建Loopback0接口,Loopback0接口的地址将作为设备的OSPF Router-ID及MPLS LSR-ID。由于该网络将部署LDP,而LDP的会话又是基于传输地址建立的额,传输地址缺省为该设备的LSR-ID,因此为了确保直连设备之间的LDP会话能够正常建立,Loopback0接口的路由需被发布到OSPF中,也就是说,路由器需要通过OSPF获知到达其他设备的Loopback0接口的路由。拓扑图如下:
R1的配置如下:
#配置Loopback0:
[huawei]sysname R1
[R1]interface loopback0
[R1-Loopback0]ip address 1.1.1.1 32
#配置OSPF:
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.1.12.0.0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
#配置MPLS:
[R1]mpls lsr-id 1.1.1.1 #配置MPLS LSR ID
[R1]mpls #全局MPLS
[R1-mpls]quit
[R1]mpls ldp #全局激活LDP
#在接口上激活MPLS及LDP:
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet 0/0/0]mpls #在接口上激活MPLS
[R1-GigabitEthernet 0/0/0]mpls ldp #在接口上激活LDP
在上述配置中,系统视图中执行的mpls ldp命令用于全局激活LDP,完成该配置后,还需在接口上执行mpls及mpls ldp命令,从而在接口上激活MPLS及LDP。
R2的配置如下:
#配置Loopback0:
[huawei]sysname R2
[R2]interface loopback0
[R2-Loopback0]ip address 2.2.2.2 32
#配置OSPF:
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.1.12.0.0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.1.23.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
#配置MPLS:
[R2]mpls lsr-id 2.2.2.2 #配置MPLS LSR ID
[R2]mpls #全局MPLS
[R2-mpls]quit
[R2]mpls ldp #全局激活LDP
#在接口上激活MPLS及LDP:
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet 0/0/0]mpls #在接口上激活MPLS
[R2-GigabitEthernet 0/0/0]mpls ldp #在接口上激活LDP
[R2]interface GigabitEthernet 0/0/1
[R2-GigabitEthernet 0/0/1]mpls #在接口上激活MPLS
[R2-GigabitEthernet 0/0/1]mpls ldp #在接口上激活LDP
R3的配置如下:
#配置Loopback0:
[huawei]sysname R3
[R3]interface loopback0
[R3-Loopback0]ip address 3.3.3.3 32
#配置OSPF:
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.1.23.0.0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.1.34.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
#配置MPLS:
[R3]mpls lsr-id 3.3.3.3 #配置MPLS LSR ID
[R3]mpls #全局MPLS
[R3-mpls]quit
[R3]mpls ldp #全局激活LDP
#在接口上激活MPLS及LDP:
[R3]interface GigabitEthernet 0/0/0
[R3-GigabitEthernet 0/0/0]mpls #在接口上激活MPLS
[R3-GigabitEthernet 0/0/0]mpls ldp #在接口上激活LDP
[R3]interface GigabitEthernet 0/0/1
[R3-GigabitEthernet 0/0/1]mpls #在接口上激活MPLS
[R3-GigabitEthernet 0/0/1]mpls ldp #在接口上激活LDP
R4的配置如下:
#配置Loopback0:
[huawei]sysname R4
[R4]interface loopback0
[R4-Loopback0]ip address 4.4.4.4 32
#配置OSPF:
[R4]ospf 1 router-id 3.3.3.3
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 10.1.34.0.0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
#配置MPLS:
[R4]mpls lsr-id 4.4.4.4 #配置MPLS LSR ID
[R4]mpls #全局MPLS
[R4-mpls]quit
[R4]mpls ldp #全局激活LDP
#在接口上激活MPLS及LDP:
[R4]interface GigabitEthernet 0/0/0
[R4-GigabitEthernet 0/0/0]mpls #在接口上激活MPLS
[R4-GigabitEthernet 0/0/0]mpls ldp #在接口上激活LDP
[R4]interface GigabitEthernet 0/0/1
[R4-GigabitEthernet 0/0/1]mpls #在接口上激活MPLS
[R4-GigabitEthernet 0/0/1]mpls ldp #在接口上激活LDP
在完成上述配置后,首先应该查看各台设备的LDP对等体关系的建立情况。使用display mpls ldp peer命令可以查看设备的LDP邻居表,以R1为例:
从上述输出可以看出,R1在自己的GE0/0/0接口上发现了一个LDP对等体,其LSR ID为2.2.2.2,传输地址也是2.2.2.2.在display mpls ldp peer命令后增加verbose关键字,即display mpls ldp peer verbose,可以查看LDP对等体的详细信息:
另外,在设备上使用display mpls ldp session命令,可以查看LDP对等体的会话信息。例如在R1上执行该命令,可以看到如下的输出:
从上述输出可以看出,R1的LDP对等体2.2.2.2(R2)当前状态为Operational,这表示R1与该邻居的LDP已经建立成功。在display mpls ldp session命令中增加verbose关键字,即display mpls ldp session verbose,能够看到关于LDP会话的更多信息:
接下来看看LSP的建立情况。当R1,R2,R3及R4运行OSPF后,MPLS网络内已经实现了路由互通,也就是每台路由器都拥有到达网络内各个网段的路由,其中包括到达各互联链路及各设备Loopback0接口的路由。OSPF在网络中的运行除了使得LDP邻居关系的建立能够顺利进行,也为后续的LDP标签分配提供了重要的依据。
当这四台路由器激活了MPLS和LDP后,每台设备基于自己路由表中的路由前缀进行标签分配,并且将自己为路由前缀(FEC)所分配的标签通告给LDP邻居。
接下来重点观察R4的直连接口路由4.4.4.4/32.在R4上使用display mpls ldp lsp命令,可以查看使用LDP所创建的LSP的相关信息。(表中的5.5.5.5地址不用管它,这个是我做测试使用的)。
我们应该可以能从上述输出中看到一个规律——这些表现都对应着32位的掩码长度的主机路由,而网络中互联网段的路由却并没有在此出现,这是因为在华为路由器上,LDP缺省只为设备路由表中的主机路由分配标签(可以通过在MPLS配置视图下使用lsp-trigger命令修改该缺省行为),这是为了防止当路由条目过多时,导致LSP的数量太大,设备负担过重。
观察以上输出可以发现,路由4.4.4.4/32(R4的Loopback0接口的直连路由)的入站标签(InLabel)为3,出站标签(OutLable)为NULL。值得强调的是,在一台LSR上,某个FEC的入站标签实际上就是LSR自己为该FEC所分配的标签,LSR将自己为FEC所分配的标签,LSR将自己为FEC所分配的标签通告给其他邻居LSR,而后者向该LSR转发标签报文时,所使用的出战标签正是该标签。因此,从该表项可以看出,R4为本地直连路由4.4.4.4/32分配了标签值为3,显然,这是PHP机制的作用——R4希望上游LSR邻居到达4.4.4.4的表情报文时,将标签头部弹出。
R4将把4.4.4.4/32路由与标签值3的映射通告给了R3.在R3上执行display mpls ldp lsp可以看到如下的输出:
从上述输出可以看出,R3在本地为路由4.4.4.4/32分配了标签1027,当然,它会将自己为该路由所分配的标签通告给其他LSR邻居。
在LSR上执行display mpls lsp命令可以查看LSP信息,该命令中输出的LSP信息不仅仅是创建于LDP的,其他标签分发协议创建的LSP信息也能通过该命令查看。在现实中,该命令会经常被我们使用,但是在本例而言,由于仅仅使用了LDP这个标签分发协议,因此执行该命令后显示出来的女人也就只会有LDP所创建的LSP信息。
以R3为例,执行该命令可以看到如下输出:
在R2上执行diaplay mpls lsp命令可以看到如下输出:
在上述输出可以看出,R2在本地为路由4.4.4.4/32分配了标签1034,它会将自己为该路由所分配的标签通告给R1.因此在R1上能看到如下输出:
此时,在LSR上执行display mpls lsp verbose命令可以看到LSP的详细信息。例如在R2上执行该命令,可以看到如下输出:
从以上信息可以看出,当R2收到携带了标签值1034的标签报文时,会将报文的标签进行置换,将标签值置换为1027,然后将报文从GE0/0/1接口转发出去。
现在来测试一下,从R1 tracert 4.4.4.4;(tracert lsp ip 4.4.4.4 32 或者 tracert -v 4.4.4.4)
从tracert的结果可以看出数据包的转发路径,以及标签的变化过程,如图所示: