在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. 动态流程图关于jointJs的使用

    这段时间由于业务需要,需要展现动态的流程图.具体实现效果如图所示: jointJS中的线条以及框都是依赖SVG进行的二次开发.建议初学者先学习svg里相关属性,便于在阅读jointJs的API或者de ...

  2. Jsoup获取全国地区数据(省市县镇村)

    最近手头在做一些东西,需要一个全国各地的地域数据,从省市区到县镇乡街道的.各种度娘,各种谷歌,都没找到一个完整的数据.最后功夫不负有心人,总算找到一份相对来说比较完整的数据,但是这里的数据也只是精确到 ...

  3. 加#include <mysql.h>,报了很多以下错误

    1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winsock2.h(557): warning C4005: “FD ...

  4. 18-09-09 Linux 系统如何获取外部的数据例如 软件的2中方式

    方式一 利用U盘  手动挂载/卸载 U盘==========================================1, cat /proc/partitions查看U盘插入前后, 多出的 s ...

  5. better-scroll

    better-scroll会将默认事件阻止掉,如果自己写的部分需要有点击事件,需要在参数里加上click:true. 同时,在PC上或某些手机端,由于未成功将touchend事件move掉,点击事件会 ...

  6. myls

    #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <unist ...

  7. CSS3 正方体

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. sqlite比较时间秒

    julianday(datetime('now','localtime'))*86400 -julianday("你的时间字段")*86400>0

  9. CF867E: Buy Low Sell High(贪心, STL) (hdu6438)

    Description 有nn个城市,第ii个城市商品价格为aiai​,从11城市出发依次经过这nn个城市到达n n城市,在每个城市可以把手头商品出售也可以至多买一个商品,问最大收益. Input 第 ...

  10. Centos中安装gitlab

    安装依赖: sudo yum install curl openssh-server openssh-clients postfix cronie sudo service postfix start ...