MSR系列路由器
MPLS LDP Over GRE无法分配标签的经验案例
一、组网和配置:
PE1和PE2之间的IP Networks并不支持MPLS,因此PE1和PE2要搭建MPLS类VPN必须先建立GRE隧道,在GRE隧道中运行MPLS和MPLS LDP,由于网络较为简单,所以决定使用静态路由作为IGP:
PE1配置
#
//设置LSR ID
mpls lsr-id 1.1.1.1
#
// 全局使能MPLS
mpls
#
// 全局使能LDP
mpls ldp
#
// GRE Tunnel配置
interface Tunnel0
ip address 12.0.0.1 255.255.255.252
source 1.2.0.1
destination 1.2.0.2
// 使能MPLS
mpls
// 使能LDP
mpls ldp
#
// 作为MPLS LSR ID的环回接口
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
// 指定对端LSR ID 2.2.2.2的出接口为GRE Tunnel接口
ip route-static 2.2.2.2 255.255.255.255 Tunnel 0 preference 60
#
PE2配置
#
//设置LSR ID
mpls lsr-id 2.2.2.2
#
// 全局使能MPLS
mpls
#
// 全局使能LDP
mpls ldp
#
// GRE Tunnel配置
interface Tunnel0
ip address 12.0.0.2 255.255.255.252
source 1.2.0.2
destination 1.2.0.1
// 使能MPLS
mpls
// 使能LDP
mpls ldp
#
// 作为MPLS LSR ID的环回接口
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
// 指定对端LSR ID 1.1.1.1的出接口为GRE Tunnel接口
ip route-static 1.1.1.1 255.255.255.255 Tunnel 0 preference 60
#
二、问题描述:
配置结束后,发现VPN并没有像通常的情况那样通起来,私网标签不生效,查PE2公网标签则如下:
PE2检查公网标签
<PE2>dis mpls lsp
-----------------------------------------------------------------------
LSP Information: Ldp Lsp
-----------------------------------------------------------------------
TOTAL: 1 Record(s) Found.
NO FEC NEXTHOP I/O-LABEL OUT-INTERFACE
1 2.2.2.2/32 127.0.0.1 3/----- -------
<PE2>
可以发现只有入标签,并没有出标签,所以导致私网标签不生效。
三、过程分析:
首先我们要了解LDP分发标签的原理,PE1和PE2会根据自身路由表中32位掩码的路由按照[目的网段、标签]和[使能LDP接口地址列表]在使能LDP的接口发送标签,顺序如下
1、PE1会在Tunnel 0接口发送[1.1.1.1/32 3]和[2.2.2.2/32 1024]标签,以及地址列表[12.0.0.1];
2、那么PE2收到这个标签映射后会根据自身路由表下一跳情况是否接收该标签,PE2中1.1.1.1/32下一跳12.0.0.2(PE2 Tunnel 0地址),出接口Tunnel 0
<PE2>display ip routing-table
Routing Table: public net
Destination/Mask Protocol Pre Cost Nexthop Interface
1.1.1.1/32 STATIC 60 0 12.0.0.2 Tunnel0
2.2.2.2/32 DIRECT 0 0 127.0.0.1 InLoopBack0
<PE2>display ip interface brief
*down: administratively down
(l): loopback
(s): spoofing
Interface IP Address Physical Protocol Description
LoopBack0 2.2.2.2 up up(s) LoopBack0...
Tunnel0 12.0.0.2 up up Tunnel0 I...
<PE2>
1.1.1.1/32下一跳地址为12.0.0.2,2.2.2.2/32下一跳地址为127.0.0.1,无法匹配PE1发送的地址列表,因此这2个标签映射被丢弃,因此PE2就只有一条自身的入标签。
四、解决方案
GRE Tunnel虽然在数据转发中是一种点对点接口,但是在实现过程中,它并不像PPP需要协商两端IP地址,本质上是一种点到多点接口,因此配置静态路由只配置出接口为GRE Tunnel并不会自动计算对端下一跳地址,而是自身GRE Tunnel接口地址,或者使用动态路由协议替代静态路由,因为动态路由协议会自动计算下一跳地址。
1、若坚持使用静态路由,那么必须要指定下一跳地址
#
// 指定对端LSR ID 1.1.1.1的下一跳地址为对端GRE Tunnel接口地址
ip route-static 1.1.1.1 255.255.255.255 12.0.0.1 preference 60
#
[PE2]display mpls lsp
-----------------------------------------------------------------------
LSP Information: Ldp Lsp
-----------------------------------------------------------------------
TOTAL: 2 Record(s) Found.
NO FEC NEXTHOP I/O-LABEL OUT-INTERFACE
1 1.1.1.1/32 12.0.0.1 -----/3 Tun0
2 2.2.2.2/32 127.0.0.1 3/----- -------
两端修改配置后VPN通信正常。
2、使用动态路由协议如OSPF、IS-IS或者使能主机路由(32位掩码路由)发送学习能力的RIP。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作