MPLSVPN文档格式.docx
- 文档编号:17371911
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:15
- 大小:301.97KB
MPLSVPN文档格式.docx
《MPLSVPN文档格式.docx》由会员分享,可在线阅读,更多相关《MPLSVPN文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
<
nexthop>
,这里的next-hop的ip地址是VRF解析的地址,可以通过使用静态路由实现跨vrf的通讯,如果你使用关联接口的静态路由,接口可以属于任何vrf,注意使用多路访问接口时,你也需要指定关联这个接口子网的下一跳地址,ciscoios将在源vrf内构建一个cef条目用来提供信息,并且不会尝试递归寻找下一跳。
因此,使用接口的vrf静态路由只能工作在直连接口的非递归静态路由上。
ii.Showipvrf,在ping的时候需要指定vrf,来告诉路由器使用哪个路由表进行ping测试,pingvrfVPN_A155.1.76.7
iii.案例
1.R6接口f0/0.76ip155.1.76.6属于vrfa接口f0/0.67ip155.1.67.6属于vrfb,sw1的接口vlan76svi155.1.76.7、lo100ip172.16.7.7属于vrfa,接口vlan67sviip155.1.67.7lo101ip192.168.7.7属于vrfb配置静态路由使得192.168.7.7和172.16.7.7互通
2.配置如下
a)配置vrf,将接口划入vrf中
R6:
Ipvrfa
Intf0/0.76
Ipvrfforwardinga
Ipadd155.1.76.6255.255.255.0
Ipvrfb
Intf0/0.67
Ipvrfforwardingb
Ipadd155.1.67.6255.255.255.0
Sw1
Intvlan76
Ipadd155.1.76.7255.255.255.0
Intvlanlo100
Ipadd172.16.7.7255.255.255.0
Intvlan67
Ipadd155.1.67.7255.255.255.0
Intlo101
Ipadd192.168.7.7255.255.255.0
b)配置静态路由
Sw1
iproutevrfa192.168.7.7255.255.255.255Vlan76155.1.76.6
iproutevrfb172.16.7.7255.255.255.255Vlan67155.1.67.6
R6
iproutevrfVPN_A192.168.7.7255.255.255.255F0/0.67155.1.67.7
iproutevrfVPN_B172.16.7.7255.255.255.255F0/0.76155.1.76.7
考虑数据包发送的整个过程,sw1的lo100发送去往lo101的数据包检查,pingvrfa192.168.7.7solo100ping命令指定了使用vrfA的路由表,数据包查找后发现应该交给intvlan76后发送给路由器R6的155.1.76.6,路由器R6从自己的vrfa接口收到一个icmp包查看目标地址是192.168.7.7,查找自己的vrfa表,发现应该交给155.1.67.7于是从vrfb接口发出,在此处完成了一次跨vrf的转发,交换机收到数据包后回复reply给lo100,由于是vrfb收到的数据包查看vrfb的路由表,找到应该交给155.1.67.6,于是数据包到达R6,R6查看目标ip,由于是vrfb收到的数据包因此查看vrfb的路由表找到下一跳是vrfa的155.1.76.7,再次实施跨vrf的转发从vrfa的f0/0.76口发出,到达交换机后完成数据包的传递。
如果在写静态路由时不指定出接口则无法完成跨vrf的转发,这是因为假如R6的静态路由写成ipvrfa192.168.7.7255.255.255.255155.1.67.7,查看vrfa的路由表发现没有这条路由存在
Rack1R6(config)#noiproutevrfa192.168.7.7255.255.255.255f0/0.67155.1.67.7
Rack1R6(config)#iproutevrfa192.168.7.7255.255.255.255155.1.67.7
Rack1R6(config)#doshiprouvrfVPN_A
Gatewayoflastresortisnotset
155.1.0.0/24issubnetted,1subnets
C155.1.76.0isdirectlyconnected,FastEthernet0/0.76
这是因为指定的下一跳地址不是本vrf内的接口,因此本vrf内也就不会存在这个接口的子网,所以155.1.67.7这个下一跳对于vrf来说是无效的一个下一跳,不可达。
因此不会产生静态路由,所以必须在这里指定接口,因为静态路由关联接口可以指向任何vrf实现跨vrf的转发,由于这里是个多路访问的接口因此,还必须跟下一跳地址才能生效
2、MPLSLDP多协议标签交换的标签分发协议
a)VRF虽然能够实现vpn的功能,但是可扩展性非常差,为此出现了多协议标签交换
b)工作过程很像fr,fr是一个二层协议,后面的头部是一个完成的三层头部,而mpls是将标签插入在二层和三层之间,因此是一个2.5层协议,mpls标签20bit,有一些保留的标签值。
c)Mpls只对最顶层的标签进行交换,通过FIB和LFIB决定标签的出口
d)边界路由器负责插入标签,mpls域内的路由器负责交换标签,出口边界路由器负责弹出标签。
3、Mpls的核心是如何将标签关联给前缀,使用LDP标签分发技术,为每个在路由表中发现的前缀自动分配标签,并且通告这些标签给他的邻居,其他邻居使用下游邻居传来的标签标记为前缀的出口标签。
这样如果一个路由器收到自己产生的某个前缀的相关标签,就会将它交换成下游邻居通告的相同前缀的标签。
4、配置步骤
a)首先接口启用mpls的ldp命令mplsip(如果你运行ospf为你的IGP,并且有很多接口要激活mpls,你可以使用mpls在ospf下的自动配置命令是在ospf进程下使用mplsldpautoconfig,这样所有运行ospf的接口都将激活mpls)激活mpls后,ldp将尝试建立邻居关系,发送udp到224.0.0.5端口号是646
b)邻居收到其他mpls邻居发来的discovery消息,就会学习到这个邻居的ldprid,默认是最大的lo接口地址,改变rid命令是mplsldproute-id<
force。
c)使用route-id为源,两个彼此听到对方的路由器通过tcp建立连接,目标端口也是646,如果lo口down掉,想使用物理接口初始化tcp连接接口下使用命令mplstransport-addressinterface,可以进行md5认证,命令是mplsldpneighbor<
ip>
password<
value>
这里的ip是邻居的rid,要使密码认证强制执行,可以使用全局命令mplsldppasswordrequired。
d)Tcp回话建立完成后,邻居彼此交换标签和前缀的绑定,构建LFIB,前提是tcp连接完成
e)LFIB数据库同步完成后,标签交换开始执行。
非常重要的一点是MPLS域内所有的路由器都要有一个统一的路由表。
否则有些标签绑定是不匹配的。
这将导致MPLS和传统的IGP不能使用路由汇总。
f)最后,LDP的前身是一个cisco私有协议,TDP,某些老的ios默认使用这种标签分发协议,全局命令mplslabelprotocolldp/tdp改变使用的标签协议
g)Showmplsldpnei、showmplsforward-table
5、过滤标签通告
a)Mplsldpadvertise-labelsfor1
b)Ac1per150.1.0.00.0.255.255
c)在应用过滤之前首先要nomplsldpadvertise-labels,然后再mplsldpadvertise-labelsfor1,否则仍然全部通告。
6、MP_BGPvpnv4
a)Mplsvpn就是在PE路由器之间动态的建立一个MPLSLSR全互联,并用他来构建在网络核心转发vpn数据包的隧道。
为了在终点PE路由器选择适当的vrf实例,需要一个额外的标签来选择正确的关联目标vrf的FIB表项,因此mplsvpn的标签栈有两个标签,上层标签是传输标签用来在起点PE和终点PE之间的传输路径上交换使用,另外一个内层标间是VPN标签,用来选择适当的出口VRFcef条目
b)由于扩展性等问题,任何IGP都无法很好的实现MPLSLSR之间来传输vpn路由,而BGP可以很好的实现这个功能
c)为了实现支持新特性,BGP功能已经被增强能够处理vrf指定路由,一个新定义的MPBGP地址族名字为VPNV4被增加到BGP中用来传递VPNV4路由,这些路由是关联了RD的前缀,并且可以为VPNV4路由分配相应的MPLS标签。
这允许传输不同VPN的路由,并且为每个不同的RD实施独立的最优路径选择。
VPNV4address-family能力是per-neighbor激活的,当你使用命令neighboripremote-as后默认的ipv4-unicastaddress-family就会自动激活这个邻居,有时候可能不希望激活这个邻居,而只想传递VPNV4路由,你可以使用命令nobgpdefaultipv4-unicast命令禁止这种默认行为。
d)对于ibgp邻居这里有一些限制就是,首先他们必须源于lo口,第二这些接口必须是/32的,因为bgp建立邻居时的ip地址被用来作为本地起源的VPNV4前缀的下一跳,当远程bgp路由收到这些前缀时,他们将对下一跳实施递归路由查找并且为找到这个下一跳地址关联的标签作为传输标签,而通告这个路由的路由器本地生成一个关于vrf的VPN标签,这个标签是mpbgp分发的。
实际上,下一条地址用来搭建隧道或者在两个PE路由器之间传递LSP。
而/32的限制是为了确保让LSP路径终结于某个PE路由器,而不是某个共享网络段。
当路由器创建了某个vrf后,并且把它重发布bgp后,他就成为了一个vpnv4路由,mpbgp就会为他分配一个本地vrf标签,然后通过mpls封装外层标签传递给远程PE路由器,远程PE路由器收到这个vpnv4后在vpnv4bgp表中保存这个vrf标签值,一旦有数据包发送就会在这个数据包的内层封装vpnv4bgp表中保存的vrf标签,同时根据下一跳封装mpls标签,利用mpls标签传递到达倒数第二跳路由器时弹出外层标签交给出口PE路由器,PE路由器再根据内层vrf标签决定发给哪个vrf,而具体导出哪些路由则根据RT值来进行过滤。
e)内层标签和rt值都是用来选择往哪个vrf发送的,不同的是一个是路由层面的,一个是数据层面的,首先传递路由根据rt值,决定哪个vrf发送路由,这些路由携带了内层标签,准备给传数据时使用,真正数据传递时比如web数据,他是不会携带rt值的,因此只能通过mpbgp分配的内层标签决定是去哪个vrf的流量
f)要注入某个vrf的路由到bgp,你需要在bgp进程下激活相应的vrf,并且重发布路由,所有相应的属于这个vrf的路由都将带着RD值被注入到bgp中,并且有了他们自己的vrf标签,传递给邻居PE路由器后,路由层面的导入导出是根据rt值。
Rt是一个bgp扩展团体属性,可传递,64bit长度而不是正常的32bit团体属性。
用来表示vpnv4路由前缀,RT的产生是基于这样一个事实,那就是当你要共享你的路由时,路由可能需要导入给多个vrf,而每个vrf又只能有一个RD,这时就不能仅仅使用RD执行路由的到如何导出。
例如站点a要向站点b的ce1路由器所在的子站点公布自己的路由,但是不能让站点b的ce2子站点获得自己的路由,而站点b的两个子站点还要能通信,假设使用RD作为路由的导入和导出,要让站点b的两个子站点通信,就必须RD相同,可是站点a要和他们相同的话,两个站点又都受到了a的路由。
所以,不能使用RD来完成这个任务。
g)Rt的导入工作(import)和导出(export)工作:
由于rt是在vrf配置模式下配置的,所以导入导出的方向都是从vrf的角度考虑,导出指的是从vrf重分布到bgp,而导入指的是从bgp重发布到vrf,默认所有前缀从vrf重分布到BGP后,被打上扩展属性x:
y,命令是router-targetx:
y允许打多个,在接收端,执行导入操作是从bgp将vpnv4导入的vrf中,所有匹配命令route-targetimportx:
y所定义的rt的路由都将被导入进vrf中,如果导入的路由域本地vrf的RD不匹配,他们将改变为RD为本地vrf的RD。
对于上面那个rd无法解决的导入问题,现在就可以用rt来解决,站点a路由器的rt是导出100:
1导入是100:
1,站点b的ce1导入是100:
1和200:
1,站点b的ce2导出是200:
1,导入是200:
1,route-targetboth表示导入导出都相同
h)Big-show
i.Showipbgpvpnv4all/rd/vrf查看vpnv4路由,
ii.showipbgpvpnv4vrfVPN_A155.1.67.6查看明细可以看到内层标签值mplslabelsin/outnolabel/19内层标签19,
iii.showmplsforwarding-table查看外层标签值
iv.showiproutevrfVPN_A查看vrf路由表
v.showipvrfdetail查看vrf的详细包括RD和RT的导入导出策略
7、利用vrf的rt导入导出映射实施mpbgp前缀过滤
a)Rt默认关联所有从vrf导入bgp的路由,有事可能希望控制某些前缀不导入,这可以使用IOS的导入导出映射实现
b)在vrf配置模式下使用命令{import|export}map<
route-map-name>
,
i.导出映射(exportmap)这个route-map通过匹配前缀列表、acl抓取vrf内的路由所有被拒绝的路由不会导出给bgp,也可以setextended-communityrt。
这允许根据前缀分配不同的rt值
ii.导入映射(importmap)没有exportmap用的频繁,但是也很有用,他控制所有从bgp分布进来的路由基于前缀列表、acl、任何BGP属性
8、PE-CEwithIGP
a)尽管MPBGP是MPLSvpn之间的传输协议,但是PE和CE之间的路由协议却是任意的,可以使静态路由,直连路由,IGP以及EBGP,每个站点连接PE路由器的协议是独立的,通过在mpbgp和igp之间重发布与MPBGP交换他们的路由信息,在MP-bgp中添加了一系列的特性,用来防止在重发布期间重要的路由协议信息丢失,这些特性在每个PE-CE协议之间是变化的。
b)Rip
i.rip进程下使用命令address-familyipv4vrf<
vrfname>
来激活响应的地址族,然后配置network,注意计时器的设置,version的设置,auto-summary的设置是在全局下配置的。
在vrf地址族下,将mpbgp重发布进rip的命令是redistributebgp<
N>
metric{X|transparent},N是bgp的as号,x是rip路由的度量值,如果使用transparent,通告端将rip路由的metric拷贝到BGP的MED属性中,在接收端从MED属性中被恢复。
这允许在VPN网络中透明的传递RIPv2度量值,在有后门链路的实例中成为最优路径
c)ospf
i.ospf是一个链路状态协议,由于mplsvpn使用mpbgp作为传输路由信息的载体,因此没有ospf邻居可以穿越核心建立。
然而,ospf使用DV型路由协议的行为作为area0和其他非area0区域传输更新的行为,因此可以吧mpls骨干想象成为一个superarea0,用来连接所有不同站点间的其他所有ospf区域。
这个虚拟的area叫做ospf的超级骨干,超级骨干这个名字只是为了避免和普通area0骨干区分开,他实际的工作和area0相同。
你可以在任何站点都不需要area0然后将这些所有站点的非0区域通过mpbgp连接起来。
然而,在不同站点使用area0连接其他非零区域再连接到超级骨干上也是合法的,主要的设计应该遵循所有连接到超级骨干的区域都应该确保无环启动方式
ii.BGP对于ospf的扩展:
使用ospf时,bgp有一些扩展团体属性用来承载附加的ospf前缀信息,所有ospf路由重发布到mpbgp被认为是三类lsa,他们是从其他区域传递到超级骨干区域的,当注入bgp后,ospf前缀有两个扩展团体属性:
1.一个是domain-id,等于ospf的进程号也可以通过ospf进程下命令domain-id进行显式的配置。
用来表示ospf进程属于哪个不同的VPNs,他们假设所有domain-id相同的ospf进程都是来自于一个相同vpn,如果由于一些原因,你使用不同的domain-id在两个不同的vpn之间交换信息,ospf进程将认为所有前缀都是5类外部lsa。
2.另外一个扩展属性是ospf路由类型有三个字段组成sourcearea,route-type,option。
通常写法是X:
Y:
Z,Y=2是区域内部前缀,Y=3是区域间路由,Y=5是外部路由,Y=7是NSSA路由,Z表示度量类型,只有Y=5和7是才会用到,Z=1为E1,Z=2为E2
iii.所有的BGP路由重发布给ospf显式为区域间路由,即使他们属于相同的area,但是不同站点仍然会显式为区域间路由。
这个结果是由于这样一个事实导致的,那就是LSA是穿越了超级骨干并且基本上确实是域间路由。
iv.最后一个BGP属性用来携带ospf信息的是MED,从路由表中copy原始路由的metric,在当从bgp重发布进ospf路由插入ospf数据库时,需要route-type属性来正确进行ospf最优路径计算。
注意路由在穿越MPBGP云时不会增加他们的度量,除非你手工改变了入向BGP前缀的MED属性,可能有时为了适当的ospf选路需要这么做。
v.所有这些机制当你配置从一个VRF与BGP重发布时自动实施。
,使用命令routerospfxvrfname命令可以为每个vrf创建独立的ospf进程。
而不是像rip那样整个进程被所有vrf共享。
vi.由于在ospf域间插入了一个骨干区域,因此可能导致如果站点和多个PE相连的话。
这样路由从MPBGP中从一个PE路由器重发布给CE,在客户网络传递后可能由于存在另外的PE再次将其重发布进bgp。
为了减少这种情况发生,OSPF执行了最简单的防环策略,如果某个PE将一个3类lsa重发布进ospf后,down-bit会置位。
其他所有属于这个vrf的PE路由器如果收到down-bit置位的3类lsa后就不会将其重发布进BGP而是丢弃他。
有时候可能不希望这么做,例如一个CE路由器属于多个vrf时,这时,你可以在CE路由器上输入ospf进程下的命令capabilityvrf-lite,但是这回关闭环路检测机制,如果你想配置ce多vrf,并且避免路由黑洞,最好的做法是配置PE路由使用不同的domain-id,这样确保所有的重发布路由变成外部路由,而跳过down-bit检测。
Domain-tag的作用等同于down-bit,只是他是对外部路由lsatype5&
7执行环路检测而不是内部路由。
vii.Bgp中重发布ospf时要注意redisos2vrfVPN_A
d)Ospfsham-like
i.Mpls对于传递的ospf路由重新发布回ospf是不是3类就是5类,而如果两个站点间相同区域存在后门链路的话,则是1类,因此所有流量都将从ospf的后面链路发出。
而多数情况下,后门链路应该仅仅作为备份链路。
ii.为了解决上述情况,可以使用sham-link,在两个PE之间构建一个很像virtual-link的隧道,并且让PE路由器看起来处于相同的区域,这个链路用来在PE之间构建邻居关系,并且传递LSA,然后LSA被夹在到ospf的数据库中,并且sham-link被看做内部路径进行计算。
但是虽然看起来打通sham-link后数据包是被ospf传输的,然而真正实现数据传递的仍然是MPBGP,sham-link的作用仅仅是位SPF算法计算最优路径。
iii.配置sham-link
1.首先也是最重要的,sham-link起源于响应VRF中的一个真实接口,通常是lo口,用于sham-link链路隧道的端点。
注意这些接口的ip地址应该通过ospf以外的方式,一般都是BGP的方式被通告进VRF路由表,这是因为,IBGP必须时刻为sham-link提供端点的信息,一旦sham-linak建立起来而ospf也在通告这个端点信息,邻居会收到对方端点的ospf通告,由于ospf的ad小于ibgp因此路由表中将只会显示ospf通告的端点地址,由于没有MPBGP提供底层的传输机制。
这时sham-link就会down,邻居也就收不到对方ospf的通告端点地址,然后ibgp会重新出现在路由表中,链路又会再次建立永远翻动下去。
2.命令是area1sham-link源rid目的ridcost
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MPLSVPN