在MPLS/VPN环境中,如果PE-CE之间使用OSPF交换路由信息,OSPF route将作为VPNv4 route(携带OSPF domain ID,OSPF Router ID,OSPF Route Type等BGP extended communities)通过MP-BGP在PE Routers之间传播。当PE Router收到VPNv4 Route时,若其所携带的Domain ID与OSPF process的Domain ID相一致,则作为OSPF inter-area Routes(type1, 2 and 3 LSA)或OSPF external Routes(type 5, 7 LSA)通告给CE Router;若Domain ID不一致,则作为OSPF external Routes通告给CE Router。

  在如下拓扑示例中,若在CE之间建立一条直连链路(OSPF backdoor link),CE将优先选择通过该链路学到的路由信息,因为通过该链路学习到路由信息为OSPF intra-area routes,而PE通告给CE的则是inter-area routes。

  

  若我们期望将MPLS/VPN backbone作为主链路,则需要将经由MPLS/VPN backbone传播的OSPF routes作为intra-area routes通告给CE,且其metric要小于OSPF backdoor link。为此,我们需要在PE Routers之间建立一条intra-area链路,这条链路也就是所谓的OSPF Sham-link。

  对每个与对端PE建立sham link连接的VRF OSPF instance都需要有一个sham link endpoint address与之相关联。

Sham link endpoint address是一个位于VRF地址空间的/ IPv4地址,该地址不能被OSPF通告,必须作为VPNv4地址由BGP通告。有关OSPF sham link的更多信息可以参见RFC 。

  在Cisco IOS上使用area sham-link [cost]命令创建sham-link链路,下面是San Jose PE的配置示例片段。

!
hostname SanJose-PE
!
ip vrf GalaxyTech
rd :
route-target export :
route-target import :
!
router ospf vrf GalaxyTech
log-adjacency-changes
area sham-link 1.1.1.1 2.2.2.2
redistribute bgp subnets
network 192.168.1.0 0.0.0.3 area
!
router bgp
no bgp default ipv4-unicast
bgp log-neighbor-changes
neighbor 194.22.15.3 remote-as
neighbor 194.22.15.3 update-source Loopback0
!
address-family vpnv4
neighbor 194.22.15.3 activate
neighbor 194.22.15.3 next-hop-self
neighbor 194.22.15.3 send-community extended
exit-address-family
!
address-family ipv4 vrf GalaxyTech
redistribute ospf match internal external external
no auto-summary
no synchronization
network 1.1.1.1 mask 255.255.255.255
exit-address-family
!

  使用show ip ospf sham-links命令检查sham link链路状态:

  

  从上面的输出可以看到sham link链路已经建立且被视为demand circuit。通过show ip route vrf GalaxyTech命令查看San Jose PE的VRF table:

  

  可以看到经由MP-BGP传播的子网172.16.1.0/24已作为intra-area route被安装到VRF table中了。

  在将OSPF路由信息重分发到MP-BGP时,VPNv4路由所携带的MED为OSPF路由的度量值;当把VPNv4路由重分发到OSPF中时,VPNv4所携带的MED将被还原为OSPF路由的cost。在我们的示例中所有串行链路均为T1线路的速率(.544Mbps),所以New York PE到New York CE的OSPF cost为108/1.544 = ,New York CE与子网172.16.1./24相连的接口的OSPF cost为1,而子网172.16.1./24在New York PE中的度量值为65。因为sham link的默认cost为1,所以其路由度量值在San Jose PE上为66。

  再来看San Jose CE的路由表:

  

  可以看到子网172.16.1.0/24的next-hop已经指向了San Jose PE。

  最后来看下San Jose PE的OSPF database。

  

  从上面的输出可以看到San Jose PE通告了两条type 5 LSA。在MPLS/VPN环境中,PE Router同时扮演着OSPF ABR及ASBR的角色,当BGP路由(非OSPF VPNv4路由)重分发到OSPF中时,将成为OSPF external route。

OSPF Sham-Link配置示例的更多相关文章

  1. OSPF虚链路配置.示例2

    先看一个拓扑图 黄色区域是area0,即骨干区域,如果如图示RT1与RT6之间的链路断了,那么会出现骨干区域被“分裂”的情况,很明显骨干区域是不能被分割开的,出现这种状况的时候可能会影响到整个自制系统 ...

  2. OSPF虚链路配置.示例1

      在OSPF 网络中,区域0为骨干区域,其它的为非骨干区域,非骨干区域必须与骨干区域直接相连. 根据拓扑图可看到区域1与骨干区域0直接相连而区域2与骨干区域没有直接相连,这种情况下我们可以创建一条虚 ...

  3. 全互联结构DVPN综合配置示例

    以下内容摘自正在全面热销的最新网络设备图书“豪华四件套”之一<H3C路由器配置与管理完全手册>(第二版)(其余三本分别是:<Cisco交换机配置与管理完全手册>(第二版).&l ...

  4. [Nginx]Nginx的基本配置与优化1(完整配置示例与虚拟主机配置)

    ---------------------------------------------------------------------------------------- 完整配置示例: [ n ...

  5. Nginx 简单的负载均衡配置示例(转载)

    原文地址:Nginx 简单的负载均衡配置示例(转载) 作者:水中游于 www.s135.com 和 blog.s135.com 域名均指向 Nginx 所在的服务器IP. 用户访问http://www ...

  6. HBase + Kerberos 配置示例(二)

    接上篇<HBase + Kerberos配置示例(一)>,我们继续剩下的配置工作. 环境准备 Hadoop配置 Zookeeper配置 HBase配置 Java测试程序 环境准备 安装ha ...

  7. Haproxy的安装和配置示例

    1.ha proxy简介ha proxy是一个开源的,高性能的,基于tcp第四层和http第七层应用的负载均衡软件优点:可靠性和稳定性非常好          最高可以同时维护40000-50000个 ...

  8. OSPF的基本配置及DR /BDR选举的实验

    OSPF的基本配置及DR /BDR选举的实验 实验拓扑: 实验目的:掌握OSPF的基本配置 掌握手工指定RID 掌握如何修改OSPF的接口优先级 观察DR BDR选举的过程 实验要求:R3当选为DR ...

  9. MyBatis Generator配置示例

    (一).MBG介绍 MyBatis Generator(MBG)是一个Mybatis的代码生成器,它可以用来生成可以访问(多个)表的基础对象.MBG解决了对数据库操作有最大影响的一些简单的CRUD(插 ...

随机推荐

  1. spyder常用功能

    最近和同学讨论到spyder的使用技巧,所以就结合之前在网上看到网友的总结( https://blog.csdn.net/peiwang245/article/details/78528098)和自己 ...

  2. tomcat 内存溢出处理方案

    找到tomcat7w.exe  在java  页 java options 最后添加 -XX:PermSize=256m-XX:MaxPermSize=512m

  3. 使用mbedtls的使用说明和AES加密方法(原来的PolarSSL)

    关于PolarSSL mbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码.这是双重许可与Apache许可证 2.0版(与GPLv2许可也可).网站 ...

  4. python日常小计

    1.查看变量类型:  pring type(item) 2.解决list中的中文显示乱码 使用decode('string_escap')将数据库查询返回的将带转义的字节码字符串转换为成utf-8中文

  5. dos2章

    讲FOR之前呢,咋先告诉各位新手朋友,如果你有什么命令不懂,直接在CMD下面输入: name /? 这样的格式来看系统给出的帮助文件,比如for /? 就会把FOR命令的帮助全部显示出来!当然许多菜鸟 ...

  6. Spring AOP选择切点的问题

    先上代码: /** * 管理员登录方法的切入点 */ @Pointcut("execution(* com.arch.shiro.realm.UserRealm.doGetAuthentic ...

  7. redis命令String类型(四)

    String 字符串类型 命令: 1> 赋值 语法:set key value 比如:set test 123 2> 取值 语法:get key 比如:get test 3> 取值并 ...

  8. 数据分析处理库--Pandas

    Pandas库: pandas索引与计算:

  9. AI之旅(5):正则化与牛顿方法

    前置知识   导数,矩阵的逆 知识地图   正则化是通过为参数支付代价的方式,降低系统复杂度的方法.牛顿方法是一种适用于逻辑回归的求解方法,相比梯度上升法具有迭代次数少,消耗资源多的特点. 过拟合与欠 ...

  10. 常见Soc平台图形内存管理学习笔记

    硬件编解码.硬件图像scale等过程,是在专有的硬件单元里进行,其使用的内存也是专有的内存,这种内存多是SoC中图形内存.如此方便与硬件加速图形渲染.图像显示.硬件图像加速处理等功能相交互. 上述过程 ...