在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. Python机器学习(基础篇---监督学习(k近邻))

    K近邻 假设我们有一些携带分类标记的训练样本,分布于特征空间中,对于一个待分类的测试样本点,未知其类别,按照‘近朱者赤近墨者黑’,我们需要寻找与这个待分类的样本在特征空间中距离最近的k个已标记样本作为 ...

  2. Linux:Linux Mint系统的安装

    今天就更新一篇了,其实Linux系统大部分都是用虚拟机来安装的,毕竟Windows系统才是我们常用的系统,而Linux系统只是我们工作时才用的,而且使用虚拟机是非常方便的,不用重启电脑就可以使用另一种 ...

  3. PHP协程入门详解

    概念 咱们知道多进程和多线程是实现并发的有效方式.但多进程的上下文切换资源开销太大:多线程开销相比要小很多,也是现在主流的做法,但其的控制权在内核,从而使用户(程序员)失去了对代码的控制,而且线程的上 ...

  4. 泊爷带你学go -- 加锁的问题

    package main import ( "fmt" "sync" ) var l sync.Mutex var a string func f() { a ...

  5. python笔记2——关于列表的使用

      一.列表的一些基本用法 names=["XiaoNaiyou", "XiaoNan", "WeiZhen", "WuCheng ...

  6. win7安装python3.6.1及scrapy

    ---恢复内容开始--- 第一篇博客,记录自己自学python的过程及问题. 首先下载python3.6.1及所需资料 百度云:https://pan.baidu.com/s/1geOEp6z 密码: ...

  7. 页面添加锚点后如何点击不改变URL?

    直接奔主题,前端简单地锚点实现方法大家都会,无非就是在把 a 标签的 href 写成想要跳到的元素的id ,比如点击 <a href="#box"></a> ...

  8. React native中使用XMLHttpRequest请求数据

    一.代码 import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View } from ' ...

  9. PTA L2-4 关于堆的判断

    先上题面 链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805064676261888 首先,题目描述的很清楚,这是 ...

  10. 20155208徐子涵 Exp 6 信息搜集与漏洞扫描

    20155208徐子涵 Exp 6 信息搜集与漏洞扫描 实验目的 掌握信息搜集的最基础技能与常用工具的使用方法 实验内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技 ...