更新时间:2024-01-10
1 MPLS配置
1.1 MPLS概述
MPLS(Multiprotocol Label Switching)是多协议标签交换的简称,它用短而定长的标签来封装网络层分组。MPLS把路由选择和数据转发分开,由标签来规定一个分组通过网络的路径。MPLS网络由核心部分的标签交换路由器(Label Switching Router, LSR)以及边缘部分的标签边缘路由器(Label Edge Router)组成。标签交换路由器的作用可以看作是ATM交换机与传统路由器的结合,由控制单元和交换单元组成;边缘标签路由器的作用是分析IP包头,用于决定相应的传送级别和标签交换路径。
在MPLS网络中,支持标签交换的设备被称为标签交换路由器,这些标签交换路由器相连接组成标签交换路经(Label Switching Path, LSP)。LSR之间通过标签分发协议(LDP),扩展的路由协议以及其他方式交换标签信息。LSP的入口LSR根据分组的网络层信息(比如IP头部)为其加上标签,出口LSR将标签去除,其它LSR对报文的转发仅依据标签来完成。
为报文加上标签,使MPLS网络更似一种面向连接的数据转发,尽管其控制层面是基于现有的IP技术实现的。LSR的角色可以由支持MPLS的多种类型的设备充当,比如路由器或三层交换机。
MPLS最初是用来提高路由器的转发速度而提出的一个协议,但是由于其固有的优点,其用途已不仅仅局限于此,MPLS还在流量工程(Traffic Engineering)、VPN等方面得到广泛的应用,从而日益成为大规模IP网络的重要标准。
1.2 MPLS相关概念
1.2.1 转发等价类
FEC(Forwarding Equivalence Classes,转发等价类)是MPLS中的一个重要概念。它表示一组转发方式相同的分组,比如,具有相同的地址前缀和转发路径。
在无连接的网络层协议的作用下,一个数据包在网络中传播时,经过的每个路由器都需要独立的对其进行路径选择。选择下一跳的过程可以被理解为是按照如下两步完成的:(a) 将报文划分到不同的转发等价类中;(b) 为每个FEC决定下一跳。如果仅考虑转发报文这一项功能,被划分到通过一个FEC中的报文是没有区别的,它们都会在同样的路径中传播。
在传统的IP报文转发中,路由器之所以会认为两个报文在同一个FEC中,是因为这两个报文的目的地址都可以与路由表中的某项条目“最长匹配”。在报文的每一跳上,路由器都需要重新对这个报文进行检查来决定它所在的FEC。
而在MPLS中,将报文指派到FEC的操作仅需要在报文进入网络时执行一次。在网络的入口路由器上,报文所在的FEC被表示为一个固定长度的值,也就是标签,并且该标签会被放置到报文中。在下一跳处,路由器就不再需要检查报文的网络层头部,而是直接根据标签决定报文新的下一跳,然后用新的标签替换旧的标签,并将报文转发出去。
1.2.2 标签
1.2.2.1标签的定义
标签(Label)是一个短的、定长的且仅在两台邻接LSR之间有意义的标识符,用来表示一个转发等价类。通常情况下,报文所在的FEC是根据其网络层目的地址决定的。
标签仅在两台邻接LSR之间有意义。比如,路由器Ru和Rd都支持标签交换,并且它们商定:如果一个报文属于转发等价类F,Ru将该报文发往Rd时会加上标签L,这样就可以说Label L和FEC F之间形成一种绑定的关系,这种绑定对从Ru到Rd的报文有效。需要注意的是,此时L仅仅是Ru和Rd之间使用的一个随机值。
1.2.2.2标签的结构
MPLS实现了通过栈式操作向报文中加入多个标签,从而在报文中形成一个标签栈(Label Stack)。RFC3032定义了标签栈的一种结构,该结构适用于PPP链路或者以太网链路。标签栈中每个条目的结构如图1.1所示。
图1.1 标签栈条目结构
Label:实际的标签值,长度20bit。
Exp:保留,通常作COS,长度3bit。
S:如果条目是标签栈的最后一项,则S被设置为1,表示栈底。其他条目的S都为0,长度1bit。
TTL:与IP头部的TTL含义相同,长度8bit。
1.2.2.3标签的操作
(1)NHLFE
The Next Hop Label Forwarding Entry(下一跳标签转发条目)被用来转发带有标签的报文,它可能包含以下信息:(a) 报文的下一跳;(b) 对报文的标签栈执行的操作;(c)其它信息。
(2)标签映射
标签映射是指将报文(带或不带标签)映射到一个或一组NHLFE条目,从而确定对报文的操作方式。标签映射包括入口路由器处的标签映射和标签交换路径(Label Switching Path,LSP)中的映射。
入口路由器处的标签映射也称作:FEC-to-NHLFE Map(FTN),标签交换路由器在确定报文的FEC之后,将每个FEC影射到一组NHLFE。用来处理进入时未带标签的报文。
LSP中的映射也成为:Incoming Label Map(ILM),将每个进入的带有标签的报文映射到一个或一组NHLFE。
(3)标签分发方式
标签分发是为某个FEC建立标签交换路径(LSP)的过程。
MPLS支持的标签分发方式有两种:下游自主标签分发(DU,Downstream Unsolicited)和下游按需标签分发(DoD,Downstream On Demand)。
在下游自主标签分发中,标签交换路由器(Label Switching Router,LSR)在没有收到请求时主动分发标签与FEC的绑定信息;
在下游按需标签分发中,LSR只有在获得请求消息之后才进行标签的分发。
说明:
高端交换机4.1.1B及之前版本支持的是自主标签分发方式。
(4)标签分配控制方式
MPLS使用的标签分配控制方式有两种:独立(Independent)标签分配控制和有序(Ordered)标签分配控制。
在独立方式中,如果LSR收到了其他LSR的标签请求,则该LSR可以立刻对其进行回应,而不需要下游分发的标签绑定。独立控制模式允许LSR在任何时候都可以向其他LSR分发标签绑定信息。
在有序方式中,LSR只有从下一跳了解了标签绑定信息,或者LSR自身就是LSP的出口路由器,此时它才可以向其他LSR分发绑定信息。
说明:
高端交换机4.1.1B及之前版本支持的是有序标签分配控制方式。
(5)标签保持方式
MPLS使用的标签保持方式也有两种:保守(Conservation)标签保持和自由(Liberal)标签保持。
在保守方式中,LSR仅保存自己需要使用到的标签绑定信息,而不是所有接收到的信息;
在自由方式中,LSR保存所有接收到的标签绑定信息。
说明:
高端交换机4.1.1B及之前版本支持的是自由标签保持方式。
1.2.2.4标签分发协议(LDP)
LDP(Label Distribution Protocol),标签分发协议,运用逐跳或者动态标签分配的算法,通过把标签分配给IGP学习到的路由,在标签交换路由器之间建立尽力而为的LSP。
LDP主要运行在可靠的TCP连接上(除非使用UDP)。LDP主要执行4个操作:
发现(Discovery):发布并维护网络中的LSR。
会话(Session):建立和保持两个对等LDP之间的会晤。
广告(Advertisement):执行标签的分配和传播。
通知(Notification):通告差错信息。
1.2.3标签转发信息库
以太网交换机系列产品通过标签转发信息库来维护MPLS报文转发使用的FTN和ILM条目,标签转发信息库包括三部分内容:软件转发信息库、邻接信息和硬件转发信息库。
1.2.3.1软件转发信息库(MLIB)
MPLS软件转发信息库又称为MLIB(MPLS Label Information Base)。MLIB中保存着所有的转发信息:包括动态标签分发协议生成的转发信息以及用户手动配置的转发信息,并且这些信息随着LDP的状态变化和用户配置的变化而被动态更新。
MPLS的软件转发模块(MPLS Forwarding Module)通过查询MLIB实现MPLS报文和IP报文的CPU转发。
在S8500系列高端交换机系统中,主控板(MSU)和每一块线卡(Line-Card)都有自己的MLIB。所有的转发信息都首先在MSU的MLIB中生成,然后由MSU同步给所有MPLS线卡。MSU和MPLS线卡的MLIB始终是一致的。
1.2.3.2邻接信息
MPLS转发条目的邻接信息包括:
普通转发条目的下一跳ARP,或者
转发条目下一跳非直连时,实际所需的下一跳信息。(由MPBGP生成的MPLS转发条目)
在S8500系统中,MSU和MPLS线卡维护各自独立的邻接信息表。只有在邻接信息完整时,交换机才可以转发MPLS报文。
邻接信息不完整的情况也被称为“未解析(Unresolved)”,比如,下一跳地址的ARP不存在。此时,交换机将按照用户配置的策略把报文送到CPU然后等待ARP,或者直接将报文丢弃。
说明:
高端交换机4.1.1B及之前版本中,邻接未解析时交换机将默认丢弃报文,以避免消耗CPU资源。
1.2.3.3硬件转发信息库(LFIB)
MPLS硬件转发信息库又称为(MPLS Label Forwarding Information Base)。LFIB通常是MLIB的一个子集,表示的是已经被加入交换机硬件转发表中的转发条目。
LFIB与MLIB的不同点主要在于:
(1)MLIB中的转发条目只有下一跳的IP地址,而LFIB中还包含下一跳路由器的物理(MAC)地址和VLAN信息。这些信息从邻接表中得到;
(2)MLIB中的转发条目只有出口逻辑接口(VLAN接口),而LFIB中还包含出口物理接口。
在S8500系统中,MSU和MPLS线卡维护各自独立的LFIB。
1.3 MPLS配置须知
在开始配置交换机的MPLS功能之前,请先阅读并了解下面的内容:
• 以太网交换机需要依靠硬件实现MPLS报文或者IP报文的线速转发,MPLS功能与IP硬件子网路由功能“ip exf”不冲突,建议在使用交换机MPLS功能的同时使能ip exf。
• 以太网交换机仅在Vlan接口支持MPLS的配置,SuperVlan接口不支持MPLS。
• SuperVlan接口同时也不支持MPLS L2VPN的VFI绑定以及L3VPN的VRF绑定。请避免在SuperVlan接口进行相关的配置。
• 高端交换机软件4.1.1B及之前版本支持最多128个L2VPN实例的配置,在L2VPN中,最多可以创建128个VFI。
• 高端交换机软件4.1.1B及之前版本,在动态标签分配(LDP)和静态LSP配置混用时存在如下限制:对于一条地址前缀(路由),若同时存在LDP生成的动态标签绑定以及命令配置的静态绑定(通过mpls static全局配置命令),这两条绑定之间会产生冲突。在实际使用中,请尽量避免在开启LDP的同时配置静态标签绑定。若需使用静态绑定,请在进行配置之前先关闭LDP。
• 高端交换机LS12GE-MPLS线卡仅支持点到点模式的L2VPN。
• 以太网交换机不支持L2VPN与L3VPN的同时配置,请避免同时创建VFI和VRF实例。
以下注意事项适用于S8500和S6800系列以太网交换机。
• 高端交换机软件4.1.1B及之前版本中,MPLS功能须要被限制在MPLS线卡。请确保用于建立标签转发路径(LSP)的VLAN接口中,包含属于MPLS线卡的物理端口;在L2VPN和L3VPN配置中,请确保连接客户网络边缘设备(CE)的物理接口位于MPLS线卡。
• 对于LS12GEMP线卡:在L2VPN中,若一个绑定了VFI的VLAN接口中包含多个物理接口,这些物理接口之间将无法互通。使用该线卡构建L2VPN时,请确保每个VFI VLAN中只包含一个物理端口。
1.4 MPLS配置
1.4.1MPLS配置任务列表
• 启动MPLS
• 配置静态LSP
• 配置标签范围
• 清除MPLS计数器
• 查看MPLS信息
1.4.2 启动MPLS
启动MPLS以允许交换机转发MPLS报文。MPLS的启动包括全局启动和端口启动两步,只有在两步都完成以后,交换机端口才可以对MPLS报文进行处理。
使用下面的命令在全局配置模式下启动MPLS:
命令
|
目的
|
mpls ip
|
全局启动MPLS
|
no mpls ip
|
全局关闭MPLS
|
使用下面的命令在端口配置模式下启动MPLS:
命令
|
目的
|
mpls ip
|
VLAN端口启动MPLS
|
no mpls ip
|
VLAN端口关闭MPLS
|
注释:
1.只有VLAN端口支持MPLS启动操作;
2.端口MPLS配置只有在全局MPLS启动后才生效。
1.4.3 配置静态LSP
请注意:
高端交换机软件4.1.1B及之前版本,在动态标签分配(LDP)和静态LSP配置混用时存在如下限制:对于一条地址前缀(路由),若同时存在LDP生成的动态标签绑定以及命令配置的静态绑定(通过mpls static全局配置命令),这两条绑定之间会产生冲突。在实际使用中,请尽量避免在开启LDP的同时配置静态标签绑定。若需使用静态绑定,请在执行mpls static配置之前先关闭LDP。
通过在VLAN端口上禁止LDP协议运行可以很好的实现动态与静态绑定共存,通过no mpls ldp enable命令关闭VLAN端口的LDP。如有疑问,请联系我们的技术服务人员。
MPLS支持静态的转发信息配置,这些信息包括静态的FTN和静态的ILM。在网络规模较小的情况下,可以使用静态的LSP配置来替代复杂的动态标签分发协议。
在全局配置模式下,使用下面的命令配置静态的MPLS转发信息:
命令
|
目的
|
mpls static binding ipv4 dest mask
output nexthop outgoing-label
|
配置静态FTN条目
dest:FTN条目地址前缀;
mask:地址前缀掩码
nexthop:下一跳IP地址
outgoing-label:出标签,范围 16 - 1023
|
mpls static crossconnect incoming-label
outgoing-intf nexthop outgoing-label
|
配置静态ILM条目
incoming-label:入标签,范围为配置的静态标签范围
outgoing-intf:下一跳的出端口
nexthop:下一跳IP地址
outgoing-label:出标签,范围 16 - 1023
|
上述命令的no形式用来取消相应的静态LSP配置。
静态FTN条目通常配置在LSP的边缘路由器上。条目的下一跳IP地址可以是一个直连地址,也可以是非直连地址。非直连下一跳FTN一般用于MPLS L3VPN功能,在这种情况下,交换机会自动为非直连地址查找有效的下一跳FTN,并将查找到的FTN与非直连FTN绑定成多层的标签栈。
需要注意的是,每配置一条静态的FTN条目,用户还需要为该FTN添加静态的路由配置,或者确保FTN对应的FEC(目的子网)的路由已经由动态路由协议学习到。对于一个目的子网,若用户只配置了FTN条目而对应的路由不存在,作为LER的交换机将无法把分组封装为标签的形式发送到期望的LSP。
1.4.4 配置标签范围
MPLS允许配置标签的动态申请范围以及静态标签的范围。
在全局配置模式下,使用下面的命令配置标签范围:
命令
|
目的
|
mpls label range min max
[ static min max ]
|
配置标签范围
min:标签范围的最小值,默认为1024;
max:标签范围的最大值,默认为1048544;
static:配置静态标签的范围
|
缺省情况下静态标签范围为16 ~ 1023,动态标签的范围如下1024 ~ 1048544。
为了加快查找速度,目前标签配置范围会自动调整到32的整数倍。实际支持64K个标签。其中标签0到15为IETF保留值,在配置时不能使用。
若配置了标签范围,但在还没有认为标签被分配给其它模块使用的前提下,若改变了标签的分配范围,则新的标签范围立即生效;否则,需要下次启动以后才能生效。
16 ~ 1023是静态标签的范围,若需要改变静态标签范围,改变后的值不得超出此范围。
1.4.5 清除MPLS计数器
MPLS会自动对转发的报文进行数目统计,在特权模式下,使用下面的命令清除MPLS计数器:
命令
|
目的
|
clear mpls counters
|
清除MPLS计数器
|
1.4.6 查看MPLS信息
在全局或端口配置模式下,使用下面的命令查看MPLS的相关信息:
命令
|
目的
|
show mpls forwarding-table
[ { network mask } | interface name |
labels value | nexthop address ]
|
查看MPLS标签转发信息库的内容
network:目标网络号
mask:目标网络掩码
interface name:显示标签转发信息库中具有指定出端口的条目
labels value:显示标签转发信息库中具有指定本地分发的具有指定标签的条目
nexthop address:显示标签转发信息库中以指定邻居作为下一跳的条目
|
show mpls ftn-table
[ { network mask } | neighbor address |
remote-label value ]
|
显示FEC-to-NHLFE表中的内容
network:转发等价类前缀
mask:目标掩码
neighbor address:转发等价类的下一跳地址
remote-label value:配置的出标签
|
show mpls lfib [ ftn | ilm | summary ]
|
显示MPLS LFIB内容。
|
show mpls interface
[ interface-name [ all [ detail ] ] ]
|
显示MPLS端口信息
interface-name:端口类型和名称
all:显示所有的端口,包括没有配置mpls ip的端口
detail:显示端口的mtu以及输入输出mpls报文的统计值
|
show mpls label range
|
显示可用的标签分配范围
|
show mpls static { binding ipv4 | crossconnect }
|
显示静态配置的FTN或ILM条目
|
show mpls traffic
|
显示MPLS报文统计信息
|
1.5 LDP配置
1.5.1LDP配置任务列表
• 配置LSR标识
• 启动LDP
• 配置传输地址
• 配置分发标签的地址列表
• 配置本地发现机制参数
• 配置LDP MD5认证
• 配置远端LDP邻居
• 配置指定邻居发现机制参数
• 配置会话保持时间
• 强制Explicit-Null标签
• 配置LDP日志记录
• 查看LDP信息
1.5.2 配置LSR标识
在启动标签分发协议之前,需要为交换机指定Router ID,该ID在标签交换路径上标识该LSR。
在全局配置模式下,使用下面的命令配置交换机的LSR标识:
命令
|
目的
|
mpls ldp router-id A.B.C.D
|
配置LSR标识
A.B.C.D:指定IP地址作为标识
|
只有配置了router-id,才能在端口启动LDP。
若配置了mpls ldp router-id,则新的router id立即生效,重新建立LDP邻居关系。
建议本Router-ID配置成回环端口地址,因为由LDP Targeted Hello触发的TCP连接使用LDP邻居的Router-ID作为Socket的两端地址,否则邻居建立失败。
1.5.3 启动LDP
可以在配置了mpls ip的端口启动LDP标签分发协议。协议启动后,会自动向该端口直连的网段发送LDP Hello报文,并尝试建立LDP会话以分发标签信息。
在端口配置模式下,使用下面的命令启动LDP协议:
命令
|
目的
|
mpls ldp enable
|
启动LDP协议
|
no mpls ldp enable
|
关闭LDP协议
|
要在端口启动LDP,必须首先启动全局MPLS以及端口MPLS。
端口启动了LDP之后,交换机会自动与其它支持LDP协议的LSR建立会话,并分发标签信息。可以通过show mpls ldp neighbor命令查看LDP邻居以及会话状态。初始情况下,启动了LDP的端口不会响应Targeted Hello报文的请求。
1.5.4 配置传输地址
在默认情况下,交换机会使用端口的IP地址与其它LSR建立连接,通过配置传输地址,可以强制交换机使用指定的IP来与LSR建立TCP会话。
在端口配置模式下,使用下面的命令配置LDP的传输地址:
命令
|
目的
|
mpls ldp discovery transport-address
ip-addr | interface
|
配置该端口上建立的LDP会话使用的传输地址
ip-addr:指定IP地址;
interface:指定使用该端口的IP作为传输地址
|
LDP会话建立以前,必须在两台路由器之间先行建立了TCP连接,通过此连接来进行标签通告。为了建立TCP连接,路由器必须知道对方的传入地址(IP地址)。
若用指定的建立连接成功,即使再改动IP地址,也不再重新建立连接。
1.5.5 配置分发标签的地址列表
在默认情况下,启动了LDP的交换机会自动分发所有已经建立的标签与FEC绑定关系,通过配置分发标签的地址列表,可以控制本地与指定地址前缀关联的标签如何分发。
在全局配置模式下,使用下面的命令配置分发标签地址列表:
命令
|
目的
|
mpls ldp advertise-labels for prefix-access-list
|
配置LDP的标签分发需遵循prefix-access-list中的规则
prefix-access-list:包含地址前缀的访问控制列表,一系列deny与permit条目用来控制标签分发的策略
|
关于访问控制列表的配置,请参见相关配置说明书。
1.5.6 配置本地发现机制参数
在端口启动LDP功能之后,交换机会自动与直连的LSR建立会话并交换标签信息,本地会话的建立是受本地发现机制相关参数的控制的。这些参数包括:holdtime与interval。
holdtime表示LSR保持一个已发现的邻居的时间,interval表示LSR发送本地Hello报文的时间间隔。通常情况下,interval的值小于holdtime,在holdtime超时之前,即使没有受到该邻居发送的Hello报文,本地LSR仍然认为该邻居存在,如果Holdtime超时,本地LSR就会将该邻居删除,并结束与该邻居之间已经建立的会话。
holdtime时间过大,会导致LDP过慢的检查出连接超时;若时间过短,则会因为链路上突发的流量导致hello报文丢失时,引起LDP中止会话。
在全局配置模式下,使用下面的命令配置本地发现机制参数:
命令
|
目的
|
mpls ldp discovery hello holdtime value
|
配置保持邻居的时间
value:范围 1 – 65535秒,默认15秒
|
mpls ldp discovery hello interval value
|
配置发送Hello报文的间隔
value:范围 1 – 65535秒,默认3秒
|
interval默认为holdtime的五分之一,以维持本地邻居的稳定状态。在邻居会话已经建立的情况下,如果修改本地交换机的holdtime值,交换机会与邻居LSR之前重新商定holdtime的较小值作为有效值。同时,修改holdtime会导致本地会话的重新建立。
1.5.7 配置LDP MD5认证
请注意:
高端交换机IOS软件4.1.0B.4082之前版本不支持MD5认证功能。
可以为邻居的TCP连接配置MD5认证,来增强LDP会话的安全性。
在全局配置模式下,使用下面的命令配置MD5认证:
命令
|
目的
|
mpls ldp neighbor ip-addr password word
|
指定LDP邻居
ip-addr:指定邻居的IP地址
word:邻居会话使用的MD5密钥
|
no mpls ldp neighbor ip-addr password
|
删除LDP邻居的MD5密钥,并取消对该邻居的认证功能。
|
mpls ldp neighbor password encrypt
|
使用密文显示已经配置的邻居密钥
|
请注意,在相邻两台设备上配置同样的MD5认证密钥,才能确保LDP会话的建立。
如果需要确保认证密钥的安全,请配置mpls ldp neighbor password encrypt命令,然后执行write。前者在配置信息中以密文的形式显示密钥,后者确保将已加密的密钥写入设备的配置文件。
1.5.8 配置远端LDP邻居
对于本地直连的邻居,LDP可以通过本地发现机制自动与其建立连接。LDP同样支持与远端非直连的LSR建立会话,此时,需要手动指定LDP邻居。
在全局配置模式下,使用下面的命令指定非直连LDP邻居:
命令
|
目的
|
mpls ldp neighbor ip-addr targeted
|
指定LDP邻居
ip-addr:指定邻居的IP地址
|
no mpls ldp neighbor ip-addr targeted
|
删除LDP邻居
|
需要注意的是,配置非直连邻居之后,需要通过配置允许交换机接收Targeted Hello报文,使之可以与远端邻居建立会话。
可以使用show mpls ldp neighbor命令查看交换机与非直连LDP邻居之间的会话状态。
注释:
在没有全局启动mpls l2vpn的情况下,交换机可以与远端LSR建立并维持指定目标会话,但不会与其交互标签信息。
1.5.9 配置指定邻居发现机制参数
与本地邻居类似,LDP同样支持一组参数对非直连会话的参数进行设置。
在全局配置模式下,使用下面的命令设置这些参数:
命令
|
目的
|
mpls ldp discovery targeted-hello accept
|
允许本地LSR处理Targeted-hello报文
|
mpls ldp discovery targeted-hello holdtime value
|
配置远端会话的holdtime
value:范围 1 – 65535秒,默认45秒
|
mpls ldp discovery targeted-hello interval value
|
配置远端会话targeted-hello报文发送周期
value:范围 1 – 65535秒,默认15秒
|
端口上发现的target邻居后,若在target holdtime超时前,仍然没有收到该邻居的target hello消息,则会将该邻居删除,并且中止和该邻居的target LDP会话。
target holdtime时间过大,会导致target LDP过慢的检查出连接超时;若时间过短,则会因为链路上突发的流量导致target hello报文丢失时,引起target LDP中止会话。
1.5.10 配置会话保持时间
交换机与其它LSR建立会话之后,需要定时发送Keepalive报文以维持会话。在会话保持时间超时之前,即使没有收到Keepalive报文,LSR仍然认为该会话有效。
在全局配置模式下,使用下面的命令配置会话保持时间:
命令
|
目的
|
mpls ldp holdtime value
|
配置LDP会话保持时间
value:1 – 65535,默认60秒。
|
在建立会话时,LSR之间会商定使用holdtime的较小值作为有效值。
1.5.11 强制Explicit-Null标签
在默认情况下,对于本地直连路由,交换机会向上游LSR通告Implicit-Null标签以便于上游邻居在转发mpls报文时采用倒数第二跳弹出外层标签。若为了阻止进行倒数第二跳弹出外层标签,而采用explicit null标签交换外层标签,需要配置本命令。
注意:
如果希望启动交换机的MPLS L2VPN或L3VPN功能,请确保没有配置强制分发Explicit-Null标签功能。
在全局配置模式下,使用下面的命令强制交换机通告Explicit-Null标签:
命令
|
目的
|
mpls ldp explicit-null
[ for prefix-acl [ to peer-acl ] ]
|
prefix-acl:对于符合指定的前缀地址列表,将用explicit null标签取代implicit null标签通知LDP上游邻居
peer-acl:将用explicit null标签取代implicit null标签通知指定的LDP上游邻居
|
若配置了mpls ldp explicit-null,满足prefix-acl的直连路由将用Explicit-Null标签替代Implicit-Null标签,通告给满足peer-acl的上游邻居;若没有配置prefix-acl,则所有的直连路由都将用Explicit-Null标签替代Implicit-Null标签。
1.5.12 配置LDP日志记录
LDP支持通过日志的形式记录邻居的变动情况。
在全局配置模式下,使用下面的命令启动LDP日志记录:
命令
|
目的
|
logging ip-addr
|
启动系统日志功能
ip-addr:日志服务器地址
|
mpls ldp logging neighbor-changes
|
启动LDP日志记录功能
|
1.5.13 查看LDP信息
在全局或端口配置模式下,使用下面的命令查看LDP信息:
命令
|
目的
|
show mpls ldp bindings
|
显示标签信息库中的内容
|
show mpls ldp discovery
|
显示运行了邻居发现机制的端口列表
|
show mpls ldp neighbor
|
显示LDP邻居的会话状态
|
show mpls ldp parameters
|
显示LDP当前参数
|
2 MPLS L2VPN配置
2.1 MPLS L2VPN概述
MPLS L2VPN提供基于MPLS网络的二层虚拟专用网服务。
以太网交换机系列产品提供的L2VPN功能是以标签分发协议(LDP)作为信令协议的。
启动了L2VPN服务之后的交换机通常作为服务商边缘(PE)设备运行,一端连接到客户边缘设备(CE),另一端连接到服务商的MPLS核心,与其它服务商路由器(P)建立标签交换路径。在交换机中,标签交换路径的建立由软件控制层面完成,而报文的转发由数据层面实现。对于来自客户设备的报文,交换机首先对其进行本地二层交换,如果需要将报文转发到MPLS网络,则自动为其添加MPLS标签栈,并将报文封装到新的以太网头部中,发往LSP的下一跳;对于来自MPLS网络的报文,交换机首先去掉其MPLS头部,然后根据原始报文的以太网信息进行转发。
2.2 MPLS L2VPN相关概念
2.2.1VFI
VFI(Virtual Forwarding Instance),即虚拟转发实例,在启动了L2VPN服务的交换机中起着桥接的作用,用来完成二层报文的转发。VFI不仅连接着普通的以太网端口,同样也连接着通往远端VFI的伪线路(PW)。
VFI在交换机中起着划分广播域的作用,一个广播报文可以被发送到VFI中的所有端口。因此VFI通常与交换机的VLAN相对应。
2.2.2Pseudo-Wire
伪线路表示两个远程VFI之间的连接,它由一对单向的MPLS标签交换路径构成,因此,一条伪线路总是对应着两个虚电路标签:本地PE生成的VC标签和对端PE生成的VC标签。本地VC标签总是由接收到的MPLS报文携带,可以用来表示相应的ILM条目,对端VC标签总是在本地发送MPLS报文时使用,可以用来表示相应的FTN条目。
一条伪线路建立起来的另一个必备条件是LSP的下一跳必须被确定。与下一跳对应的标签被称为隧道标签(Tunnel Label),在发送MPLS报文时,Tunnel Label在VC Label之后被压入报文的标签栈,在到达PW倒数第二跳之前决定报文的走向。
2.2.3无环路的L2VPN网络
L2VPN在多点模式下(也称为Virtual Private LAN Service),要求所有的PE之间建立全网状(Full-Mesh)的连接,任意两个PE之间都存在一条PW。在报文转发时,使用了水平分割(Split-Horizon)限制从PW上收到的广播报文不再向PW转发。同时PE也无需启动生成树协议来防止环路。
请注意:
高端交换机软件4.0.2C及之前版本仅支持点到点模式的L2VPN。
2.3 MPLS L2VPN配置
2.3.1MPLS L2VPN配置任务列表
• 启动MPLS L2VPN
• 创建VFI
• VFI与VLAN接口绑定
• 配置VFI接入端口
• 配置静态VC标签
• 查看L2VPN信息
2.3.2 启动MPLS L2VPN
在全局配置模式下,使用下面的命令启动L2VPN功能:
命令
|
目的
|
mpls l2vpn
|
启动L2VPN
|
no mpls l2vpn
|
关闭L2VPN
|
2.3.3 创建VFI
启动L2VPN功能之后,需要创建VFI并将其绑定到VLAN端口。
在全局配置模式下,使用下面的命令创建一个VFI:
命令
|
目的
|
mpls vfi vfi-name
[ ptop | vpls ]
|
创建VFI并进入该VFI的配置模式
vfi-name:VFI名称
ptop:表示该VFI是点到点模式,只有一个远端邻居
vpls:表示该VFI是点到多点模式
|
进入VFI配置模式之后,可以使用下面的命令配置相关的参数:
命令
|
目的
|
pwid value
|
配置该VFI使用的虚电路号
|
neighbor peer-addr encapsulation mpls
|
指定VFI邻居
peer-addr:邻居IP地址
|
PW ID是建立伪线路时使用的标识,每个VFI的PW ID不同,VFI邻居之间必须使用相同的ID来标识,否则PW无法建立。VFI的PW ID是不可以修改的,如果希望修改PW ID,请将VFI删除之后重新创建。
需要注意的是,仅仅指定VFI的邻居并不能在两个LSR之间建立指定目标会话,还需要通过命令mpls ldp neighbor命令将VFI邻居指定为LDP邻居。
说明:
1.对于点到点模式的VFI,只能为其指定一个邻居;
2.在VPLS多点模式下,需要为每个PE设备指定完整的VFI邻居列表,以形成全网状的连接。
2.3.4 VFI与VLAN接口绑定
请注意:
绑定了VFI的VLAN接口上无需配置IP地址。
创建VFI之后,需要将其绑定到VLAN端口,表示该VLAN下的物理端口用来连接客户设备。
在VLAN端口配置模式下,使用下面的命令绑定一个VFI:
命令
|
目的
|
mpls l2vpn vfi vfi-name
|
将VFI绑定到端口
vfi-name:绑定的VFI名称
|
说明:
VFI与VLAN接口之间是一对一的关系,一个VFI只能绑定到一个VLAN接口。
2.3.5 配置VFI接入端口
配置VFI与VLAN接口绑定之后,还需要配置该VLAN中的物理端口作为VFI的接入端口(CE侧端口)。
在物理端口配置模式下,使用下面的命令将端口加入VFI:
命令
|
目的
|
switchport mpls l2vpn vfi vfi-name
|
配置端口为指定VFI的接入端口。
vfi-name:绑定的VFI名称
|
请注意:
配置VFI接入端口并不会改变物理端口的VLAN属性,请确保端口已经加入VFI对应的VLAN。
物理端口的VLAN模式决定该端口如何处理来自CE的报文:
• Access模式:端口只能绑定到一个VFI,忽略来自CE报文的VLAN Tag,无论是否带有VLAN Tag,报文始终在VFI中转发。
• Trunk模式:端口可以绑定到多个VFI,根据CE报文的VLAN Tag决定在哪一个VFI中转发,不带VLAN Tag的报文不属于任何一个VFI。如果将绑定到多个VFI的Trunk端口修改为Access模式,该端口在所有VFI中都将不能工作。
欲取消VFI接入端口配置,请在物理端口配置模式下执行no switchport mpls l2vpn vfi命令。注意,如果不输入VFI名称,将会从所有VFI中删除该物理端口。
2.3.6 配置静态VC标签
MPLS L2VPN支持静态的转发信息设置。
在全局配置态下,使用下面的命令为VFI配置静态转发信息:
命令
|
目的
|
mpls static vfi vfi-name incoming-label
output peer-addr outgoing-label
|
配置静态VFI ILM条目
vfi-name:VFI名称
incoming-label:入标签,配置范围为静态标签范围
peer-addr:VFI邻居地址
outgoing-label:出标签,范围 16 - 1023
|
注释:
一条静态VFI条目用来表示一条PW连接,incoming-label与outgoing-label分别表示本地与对端使用的VC标签。静态VFI条目只有在PW的下一跳有效时才生效。
2.3.7 查看L2VPN信息
在全局配置模式和端口配置模式下,使用下面的命令查看MPLS L2VPN的信息:
命令
|
目的
|
show mpls forwarding-table pwid value
|
显示标签转发信息库中符合指定伪线路号的ILM信息, value的取值范围为1~ 4294967295
|
show mpls ftn-table vfi vfi-name
|
查看指定VFI中的转发条目
vfi-name:VFI名称
|
show mpls ldp bindings vfi vfi-name
|
查看与指定VFI关联的标签绑定信息
|
show mpls l2vpn vfi
|
查看所有vfi的状态信息
|
show mpls l2vpn pw
[ pwid | neighbor peer-addr |
interface interface-name | detail ]
|
查看PW信息
pwid:指定PW ID;
neighbor peer-addr:指定邻居;
interface interface-name:端口类型和名称
detail:PW详细信息
|
2.4 MPLS L2VPN配置示例
2.4.1点到点L2VPN配置示例
一个典型的点到点MPLS L2VPN网络如下图所示:
图2.1 点到点MPLS L2VPN
其中PE1的配置如下:
(1)端口VLAN配置
Switch_config# interface g1/1
Switch_config_g1/1# switchport pvid 200(此处VLAN200连接到服务商MPLS网络)
Switch_config_g1/1# exit
Switch_config# interface vlan 200
Switch_config_v200# ip address 91.0.0.1 255.0.0.0
Switch_config_v200# exit
(2)创建回环端口作为LSR ID
Switch_config# interface loopback 1
Switch_config_l1# ip addr 101.0.0.1 255.0.0.0
(3)MPLS配置
Switch_config# mpls ip
Switch_config# interface vlan 200
Switch_config_v200# mpls ip
(4)LDP配置
Switch_config# mpls ldp router-id 101.0.0.1
Switch_config# mpls ldp discovery targeted-hello accept
Switch_config# mpls ldp neighbor 102.0.0.1 targeted
Switch_config# interface vlan 200
Switch_config_v200# mpls ldp enable
(5)MPLS L2VPN配置
Switch_config# mpls l2vpn
Switch_config# mpls vfi vpn-red ptop
Switch_config_vfi_vpn-red# pwid 200
Switch_config_vfi_vpn-red# neighbor 102.0.0.1 encapsulation mpls
Switch_config_vfi_vpn-red# exit
Switch_config# interface vlan 100(此处VLAN100表示客户VLAN)
Switch_config_v100# mpls l2vpn vfi vpn-red
Switch_config_v100#exit
Switch_config#interface g1/5(配置接入端口)
Switch_config_g1/5# switchport pvid 100
Switch_config_g1/5# switchport mpls l2vpn vfi vpn-red
Switch_config_g1/5# exit
(6)路由协议配置
Switch_config# router rip
Switch_config_rip# version 2
Switch_config_rip# network 101.0.0.0
Switch_config_rip# network 91.0.0.0
Switch_config_rip# exit
PE2的配置清单如下(PE2 show running-config):
mpls ip
mpls ldp discovery targeted-hello accept
mpls ldp neighbor 101.0.0.1 targeted
mpls ldp router-id 102.0.0.1
!
mpls l2vpn
mpls vfi vpn-red ptop
pwid 200
neighbor 101.0.0.1 encapsulation mpls
!
interface loopback 1
ip address 102.0.0.1 255.0.0.0
!
interface gigaethernet 1/1
switchport pvid 200
!
interface gigaethernet 1/5
switchport pvid 100
switchport mpls l2vpn vfi vpn-red
!
interface vlan 200
ip address 92.0.0.1 255.0.0.0
mpls ip
mpls ldp enable
!
interface vlan 100
no ip address
mpls l2vpn vfi vpn-red
!
router rip
version 2
network 102.0.0.0
network 92.0.0.0
2.4.2VPLS配置示例
如下图所示的简单VPLS网络,其中VPLS客户接入VLAN为VLAN100。
图2.2 VPLS网络示例
PE1的配置:
(1)配置回环接口
Switch_config# interface loopback0
Switch_config_l0# ip address 1.1.1.1 255.255.255.255
Switch_config_l0# exit
(2)全局配置MPLS、LDP和L2VPN
Switch_config# mpls ip
Switch_config# mpls ldp router-id 1.1.1.1
Switch_config# mpls l2vpn
Switch_config# mpls vfi vpn-red vpls
Switch_config_vfi_vpn-red# pwid 100
Switch_config_vfi_vpn-red# neighbor 2.2.2.2 encapsulation mpls
Switch_config_vfi_vpn-red# neighbor 3.3.3.3 encapsulation mpls
Switch_config_vfi_vpn-red# exit
Switch_config# mpls ldp discovery targeted-hello accept
Switch_config# mpls ldp neighbor 2.2.2.2 targeted
Switch_config# mpls ldp neighbor 3.3.3.3 targeted
(3)配置VFI绑定和接入端口
Switch_config# interface vlan 100
Switch_config_v100# mpls l2vpn vfi vpn-red
Switch_config_v100# exit
Switch_config# interface g3/5
Switch_config_g3/5# switchport pvid 100
Switch_config_g3/5# switchport mpls l2vpn vfi vpn-red
Switch_config_g3/5# exit
(4)配置连接P设备的端口
Switch_config# interface vlan 10
Switch_config_v10# ip address 10.0.0.1 255.255.255.0
Switch_config_v10# mpls ip
Switch_config_v10# mpls ldp enable
Switch_config_v10# exit
Switch_config# interface tg1/1
Switch_config_tg1/1# switchport pvid 10
Switch_config_tg1/1# exit
(5)配置IGP路由协议
Switch_config# router ospf 1
Switch_config_ospf1# network 1.1.1.1 255.255.255.255 area 0
Switch_config_ospf1# network 10.0.0.0 255.255.255.0 area 0
Switch_config_ospf1# exit
PE2的配置:
(1)配置回环接口
Switch_config# interface loopback0
Switch_config_l0# ip address 2.2.2.2 255.255.255.255
Switch_config_l0# exit
(2)全局配置MPLS、LDP和L2VPN
Switch_config# mpls ip
Switch_config# mpls ldp router-id 2.2.2.2
Switch_config# mpls l2vpn
Switch_config# mpls vfi vpn-red vpls
Switch_config_vfi_vpn-red# pwid 100
Switch_config_vfi_vpn-red# neighbor1.1.1.1 encapsulation mpls
Switch_config_vfi_vpn-red# neighbor 3.3.3.3 encapsulation mpls
Switch_config_vfi_vpn-red# exit
Switch_config# mpls ldp discovery targeted-hello accept
Switch_config# mpls ldp neighbor 1.1.1.1 targeted
Switch_config# mpls ldp neighbor 3.3.3.3 targeted
(3)配置VFI绑定和接入端口
Switch_config# interface vlan 100
Switch_config_v100# mpls l2vpn vfi vpn-red
Switch_config_v100# exit
Switch_config# interface g1/1
Switch_config_g1/1# switchport pvid 100
Switch_config_g1/1# switchport mpls l2vpn vfi vpn-red
Switch_config_g1/1# exit
(4)配置连接P设备的端口
Switch_config# interface vlan 20
Switch_config_v20# ip address 20.0.0.1 255.255.255.0
Switch_config_v20# mpls ip
Switch_config_v20# mpls ldp enable
Switch_config_v20# exit
Switch_config# interface tg3/1
Switch_config_tg3/1# switchport pvid 20
Switch_config_tg3/1# exit
(5)配置IGP路由协议
Switch_config# router ospf 1
Switch_config_ospf1# network 2.2.2.2 255.255.255.255 area 0
Switch_config_ospf1# network 20.0.0.0 255.255.255.0 area 0
Switch_config_ospf1# exit
PE3的配置:
(1)配置回环接口
Switch_config# interface loopback0
Switch_config_l0# ip address 3.3.3.3 255.255.255.255
Switch_config_l0# exit
(2)全局配置MPLS、LDP和L2VPN
Switch_config# mpls ip
Switch_config# mpls ldp router-id 3.3.3.3
Switch_config# mpls l2vpn
Switch_config# mpls vfi vpn-red vpls
Switch_config_vfi_vpn-red# pwid 100
Switch_config_vfi_vpn-red# neighbor 1.1.1.1 encapsulation mpls
Switch_config_vfi_vpn-red# neighbor 2.2.2.2 encapsulation mpls
Switch_config_vfi_vpn-red# exit
Switch_config# mpls ldp discovery targeted-hello accept
Switch_config# mpls ldp neighbor 1.1.1.1 targeted
Switch_config# mpls ldp neighbor 2.2.2.2 targeted
(3)配置VFI绑定和接入端口
Switch_config# interface vlan 100
Switch_config_v100# mpls l2vpn vfi vpn-red
Switch_config_v100# exit
Switch_config# interface g1/2
Switch_config_g1/2# switchport pvid 100
Switch_config_g1/2# switchport mpls l2vpn vfi vpn-red
Switch_config_g1/2# exit
(4)配置连接P设备的端口
Switch_config# interface vlan 30
Switch_config_v30# ip address 30.0.0.1 255.255.255.0
Switch_config_v30# mpls ip
Switch_config_v30# mpls ldp enable
Switch_config_v30# exit
Switch_config# interface tg2/2
Switch_config_tg2/2# switchport pvid 30
Switch_config_tg2/2# exit
(5)配置IGP路由协议
Switch_config# router ospf 1
Switch_config_ospf1# network 3.3.3.3 255.255.255.255 area 0
Switch_config_ospf1# network 30.0.0.0 255.255.255.0 area 0
Switch_config_ospf1# exit
3 MPLS L3VPN配置
3.1 MPLS L3VPN概述
MPLS L3VPN也可称为MPLS VRF VPN或MPLS BGP VPN,它是MPLS与VRF技术的一种结合运用。
通常,一个VPN包含一组客户网络,它们在服务商路由器上共享一个公共的路由表。每个客户网络都与服务商网络设备的接口连接,服务商设备则将每个接口关联到一个VPN路由表。一个VPN路由表也被称为一个VRF(VPN Routing/Forwarding table)。
MPLS L3VPN网络主要由三种类型的设备组成:客户边缘路由器CE,服务商边缘路由器PE以及服务商路由器P。
CE设备在客户网络的边缘连接着PE,CE与PE之间通过动态协议或静态配置建立路由,CE设备不需要支持VRF。
PE设备可以同时连接着不同客户网络的CE设备,并通过配置VRF,将不同客户网络的路由分配到不同的VPN路由表,PE设备之间通过MP-BGP协议互相学习VRF路由,同时MP-BGP协议为每条VRF路由分配一个VPN标签。
服务商网络的内部不需要部署VRF,因而P设备并不了解客户网络的路由状况。P与PE设备之间通过运行标签分发协议(LDP)建立动态的LSP,客户网络的报文在服务商网络中被封装为MPLS形式转发。
图3.1 MPLS VRF VPN
在转发过程中,客户网络的报文首先从CE设备到达PE设备的一个接口,PE设备根据该接口的VRF配置找到相应的VRF路由表,然后根据客户报文的目的IP地址查找路由。在PE间MP-BGP会话已经建立的情况下,PE查找到客户报文需要被转发到远端的PE,则首先将MP-BGP生成的VPN标签添加到客户报文的IP头部之前,然后,PE查找对端PE在LSP的真实下一跳路由器(P),并将下一跳标签添加到VPN标签之外。从PE到倒数第二跳P设备的过程中,客户报文IP头部之前始终存在VPN标签和隧道标签。到达倒数第二跳P设备后,P设备去掉报文的外层标签,然后将带有VPN标签的报文转发给目标PE;最后,目标PE设备根据VPN标签,将客户报文转发给CE。
注释:
支持VRF功能的以太网交换机可以作为MCE设备部署在PE设备与客户网络之间,以节省PE设备的端口资源。请参见以太网交换机《Multi-VRF CE配置》。
注意:
在一台PE设备上,不可同时配置MPLS L2VPN和MPLS L3VPN。
3.2 MPLS L3VPN配置
3.2.1MPLS L3VPN配置任务列表
• 配置MPLS
• 配置LDP
• 配置VRF
• 配置VPN路由
• 配置PE与P设备之间路由
• 配置PE间BGP路由
3.2.2 配置MPLS
参见下面的步骤,首先启动交换机的MPLS功能:
命令
|
目的
|
Switch# configure
|
进入交换机全局配置模式。
|
Switch_config# mpls ip
|
全局启动MPLS。
|
Switch_config# interface vlan id
|
创建VLAN接口并进入VLAN接口配置模式。
|
Switch_config_intf# mpls ip
|
启动VLAN接口的MPLS功能。
|
Switch_config_intf# exit
|
退出VLAN接口配置模式。
|
Switch_config# show mpls interface
|
查看MPLS接口状态。
|
3.2.3 配置LDP
参见下面的步骤,启动交换机的LDP功能:
命令
|
目的
|
Switch# configure
|
进入交换机全局配置模式。
|
Switch_config# mpls ldp router-id A.B.C.D
|
配置LDP的路由器标识。
|
Switch_config# interface vlan id
|
进入VLAN接口配置模式。
|
Switch_config_intf# mpls ldp enable
|
在VLAN接口启动LDP。
|
Switch_config_intf# exit
|
退出接口配置模式。
|
3.2.4 配置VRF
配置一个或多个VRF,并将三层接口绑定到VRF。
命令
|
目的
|
Switch# configure
|
进入交换机配置模式。
|
Switch_config# ip vrf vrf-name
|
创建VRF,并进入VRF配置模式。
vrf-name:VRF名称,最多16个字符。
|
Switch_config_vrf# rd route-distinguisher
|
制定VRF的路由区分符。
route-distinguisher:路由区分符,由自治域号与任意数字组成,或IP地址与任意数字组成。
|
Switch_config_vrf# route-target
{ export | import | both }
route-target-extened-community
|
创建VRF的输入和输出目标VPN扩展属性。
route-target-extended-community:由自治域号与任意数字组成,或IP地址与任意数字组成。
|
Switch_config_vrf# interface intf-name
|
进入端口配置模式。
intf-name:端口名称。
|
Switch_config_intf# ip vrf forwarding vrf-name
|
将三层接口与VRF关联。
vrf-name:VRF名称。
|
Switch_config_intf# exit
|
退出端口配置模式。
|
Switch_config# ip exf
|
启动IP硬件路由功能。
|
Switch_config# show ip vrf
[ brief | detail | interface ] [ vrf-name ]
|
查看VRF信息。
|
Switch_config# no ip vrf vrf-name
|
删除已配置的VRF以及该VRF与三层接口的关联。
vrf-name:VRF名称。
|
Switch_config_intf# no ip vrf forwarding
[ vrf-name ]
|
删除三层接口与VRF的关联。
|
3.2.5 配置VPN路由
VPN路由是指PE与CE设备之间的路由,本文中以OSPF协议的配置为例,其它路由协议,如RIP,BEIGRP等与之类似。
注释:
PE设备与MCE设备之间也可以通过EBGP协议建立VPN路由。请参见以太网交换机《Multi-VRF CE配置》。
参见下面的步骤,在PE与CE之间建立VPN路由:
命令
|
目的
|
Switch# configure
|
进入交换机配置模式。
|
Switch_config# router ospf
process-id vrf vrf-name
|
启动OSPF-VRF路由,并进入配置模式。
|
Switch_config_ospf# network network-number
network-mask area area-id
|
定义OSPF网络,掩码以及区域ID
|
Switch_config_ospf# redistribute bgp ASN
|
将指定BGP网络信息转入OSPF网络。
|
Switch_config_ospf# exit
|
退出OSPF配置模式。
|
Switch_config# show ip ospf
|
查看OSPF协议信息。
|
Switch_config# no router ospf process-id
|
删除OSPF-VRF路由配置。
|
3.2.6 配置PE与P设备之间路由
PE与P设备之间可以通过OSPF,RIP,BEIGRP等动态路由协议建立路由,也可配置静态路由。此处以OSPF协议为例。
命令
|
目的
|
Switch# configure
|
进入交换机配置模式。
|
Switch_config# router ospf
process-id
|
启动OSPF-VRF路由,并进入配置模式。
|
Switch_config_ospf# network network-number
network-mask area area-id
|
定义OSPF网络,掩码以及区域ID
|
Switch_config_ospf# exit
|
退出OSPF配置模式。
|
Switch_config# show ip ospf
|
查看OSPF协议信息。
|
Switch_config# no router ospf process-id
|
删除OSPF-VRF路由配置。
|
3.2.7 配置PE间BGP路由
参见下面的步骤,在PE之间建立MP-BGP:
命令
|
目的
|
Switch# configure
|
进入交换机配置模式。
|
Switch_config# router bgp autonomous-system-number
|
通过指定自治域号启动BGP路由协议,并进入BGP协议配置模式。
|
Switch_config_bgp# bgp log-neighbor-changes
|
启动BGP邻居变化日志记录。
|
Switch_config_bgp# neighbor address remote-as ASN
|
配置BGP邻居以及邻居的自治域号。
|
Switch_config_bgp# neighbor address update-source intf-name
|
配置连接BGP邻居使用的接口。
|
Switch_config_bgp# address-family vpnv4
|
进入BGP VPN配置模式。
|
Switch_config_bgp_vpnv4# neighbor address activate
|
在VPNV4中激活邻居。
|
Switch_config_bgp_vpnv4# bgp redistribute-internal
|
将VPNV4路由转入内部网关路由协议。
|
Switch_config_bgp_vpnv4# exit-address-family
|
退出VPNV4配置模式。
|
Switch_config_bgp# address-family ipv4 vrf vrf-name
|
进入VRF address-family配置模式。
|
Switch_config_bgp_af# bgp redistribute-internal
|
将VRF路由转入内部网关路由协议。
|
Switch_config_bgp_af# redistribute ospf ospf-process-id
|
将OSPF路由信息转入BGP网络。
|
Switch_config_bgp_af# network network-number / prefix-len
|
配置BGP发布的网络号和掩码长度。
|
Switch_config_bgp_af# exit-address-family
|
退出VRF address-family配置模式。
|
Switch_config_bgp# exit
|
退出BGP配置模式。
|
Switch_config# show ip bgp vpnv4 [ * | all | rd | vrf ]
|
查看BGP-VRF路由信息以及标签状态。
|
3.3 MPLS L3VPN配置示例
如下图所示是一个简单的MPLS L3VPN网络,其中各设备的配置列举如下。
图3.2 MPLS L3VPN示例网络
3.3.1配置S1(CE)
3.3.1.1配置回环端口
S1_config# interface Loopback0
S1_config_l0# ip address 101.0.0.1 255.255.255.255
S1_config_l0# exit
3.3.1.2配置物理接口及逻辑接口
S1_config# interface FastEthernet0/31
S1_config_f0/31# switchport pvid 2
S1_config_f0/31# exit
S1_config# interface VLAN2
S1_config_v2# ip address 92.0.0.1 255.0.0.0
S1_config_v2# exit
S1_config# vlan 1-3
3.3.1.3配置OSPF路由协议
S1_config# router ospf 1
S1_config_ospf_1# network 92.0.0.0 255.0.0.0 area 0
S1_config_ospf_1# network 101.0.0.1 255.255.255.255 area 0
S1_config_ospf_1# exit
3.3.2配置S2(PE)
3.3.2.1配置全局MPLS
S2_config# mpls ip
3.3.2.2配置LDP全局属性
S2_config# mpls ldp router-id 102.0.0.1
3.3.2.3创建VRF
S2_config# ip vrf vpn1
S2_config_vrf_vpn1# rd 100:1
S2_config_vrf_vpn1# route-target export 100:1
S2_config_vrf_vpn1# route-target import 100:1
S2_config_vrf_vpn1# exit
3.3.2.4创建回环端口
S2_config# interface Loopback0
S2_config_l0# ip address 102.0.0.1 255.255.255.255
S2_config_l0# exit
3.3.2.5配置物理端口
S2_config# interface GigaEthernet3/5
S2_config_g3/5# switchport pvid 2
S2_config_g3/5# exit
S2_config# interface GigaEthernet3/9
S2_config_g3/9# switchport pvid 3
S2_config_g3/9# exit
3.3.2.6配置VLAN接口
S2_config# interface VLAN2
S2_config_v2# ip vrf forwarding vpn1
S2_config_v2# ip address 92.0.0.2 255.0.0.0
S2_config_v2# exit
S2_config# interface VLAN3
S2_config_v3# ip address 93.0.0.1 255.0.0.0
S2_config_v3# mpls ip
S2_config_v3# mpls ldp enable
S2_config_v3# exit
3.3.2.7创建VLAN
S2_config# vlan 1-3
3.3.2.8配置PE与P之间OSPF路由
S2_config# router ospf 1
S2_config_ospf_1# network 93.0.0.0 255.0.0.0 area 0
S2_config_ospf_1# network 102.0.0.1 255.255.255.255 area 0
S2_config_ospf_1# exit
3.3.2.9配置PE与CE间VPN路由
S2_config# router ospf 2 vrf vpn1
S2_config_ospf_2# network 92.0.0.0 255.0.0.0 area 0
S2_config_ospf_2# redistribute bgp 1
S2_config_ospf_2# exit
3.3.2.10配置MP-BGP
S2_config# router bgp 1
S2_config_bgp# bgp log-neighbor-changes
S2_config_bgp# neighbor 104.0.0.1 remote-as 1
S2_config_bgp# neighbor 104.0.0.1 update-source Loopback0
S2_config_bgp#
S2_config_bgp# address-family vpnv4
S2_config_bgp_vpnv4# neighbor 104.0.0.1 activate
S2_config_bgp_vpnv4# bgp redistribute-internal
S2_config_bgp_vpnv4# exit-address-family
S2_config_bgp#
S2_config_bgp# address-family ipv4 vrf vpn1
S2_config_bgp_vpn1# no synchronization
S2_config_bgp_vpn1# bgp redistribute-internal
S2_config_bgp_vpn1# redistribute ospf 2
S2_config_bgp_vpn1# exit-address-family
S2_config_bgp# exit
3.3.2.11启动IP硬件子网路由功能
S2_config# ip exf
3.3.3配置S3(P)
3.3.3.1配置全局MPLS及LDP
S3_config# mpls ip
S3_config# mpls ldp router-id 103.0.0.1
3.3.3.2配置回环端口
S3_config# interface Loopback0
S3_config_l0# ip address 103.0.0.1 255.255.255.255
S3_config_l0# exit
3.3.3.3配置物理端口
S3_config# interface GigaEthernet1/3
S3_config_g1/3# switchport pvid 3
S3_config_g1/3# exit
3.3.3.4配置VLAN接口及VLAN
S3_config# interface VLAN3
S3_config_v3# ip address 93.0.0.2 255.0.0.0
S3_config_v3# mpls ip
S3_config_v3# mpls ldp enable
S3_config_v3# exit
S3_config# vlan 1-4
3.3.3.5配置OSPF路由
S3_config# router ospf 1
S3_config_ospf_1# network 93.0.0.0 255.0.0.0 area 0
S3_config_ospf_1# network 103.0.0.1 255.255.255.255 area 0
S3_config_ospf_1# exit