背景

OSPF区域是由不同类型的网络链路组成的,邻接行为随网络类型而异,而要确保OSPF在某些类型的网络上能正确运行,必须对其进行正确的配置。根据拓扑和需求的变化,OSPF可以手工修接口的网路类型来适应不同的二层链路拓扑。

OSPF定义了如下3种RFC公有网络类型:

  1. 点到点(Point-to-Point):网络中只有一对路由器相互连接。如,WAN中的HDLC,PPP和帧中继的点到点子接口。

  2. 广播(Broadcast):多路访问广播网络,如以太网(Ethenet),令牌环网(TokenRing), 光纤分布式数据接口(FDDI)。

  3. 非广播多路访问(NBMA):连接的路由器超过两台,但是没有广播能力。如帧中继、ATM和X.25等网络都属于NBMA。在NBMA网络中,OSPF可以有5种运行模式。

注意:其实NBMA网络不是没有广播的能力,而是广播针对每一条VC发送,这样就使得一台路由器在不是Full-Mesh的NBMA拓扑中,发送的广播或组播分组可能无法到达其他所有路由器。

RFC在以3种链路类型的基础上扩展出5种网络类型:

  1. 点到点(Point-to-Point)

  2. 点到多点(Point-to-Multipoint)

  3. 虚链路(Virtual Link)

  4. 广播(Broadcast)

  5. 非广播多路访问(NBMA)

注意:其中虚链路较为特殊,不针对具体链路。而NBMA链路对应NBMA和点到多点两种网络类型。思科路由器在NBMA网络上实现的链路类型有5个,2 × RFC(非广播和点到多点) + 3 × Cisco(点到点,广播,点到多点非广播),区分较为复杂。

默认情况下OSPF 不能通过NBMA接口自动与邻居建立邻接关系,RFC 2328为OSPF在NBMA拓扑中的运行定义了两种模式:非广播和点到多点,分别对应的接口模式为:

  • ip ospf network non-broadcast

在Non-Broadcast 模式下是模仿OSPF在广播型链路中的运行,通常在Full-Mesh 者Partial-Mesh 使用,如果不是Full-Mesh必须手动选举DR/BDR。路由器接口处于同一IP子网,手动指定邻居,选举DR/BDR且必须与DRother在VC 上直连。

  • ip ospf network point-to-multipoint

在 Point-to-Multipoint 模式下是将NBMA视为一系列点到点的集合,通常用于Hub-and-Spoke 者Partial-Mesh,接口处于同一IP子网,使用OSPF组播自动发现邻居,不选举DR/BDR。

Cisco为NBMA多设计了三种模式:为广播,点到多点非广播和点到点,分别对应的接口模式为:

  • ip ospf network broadcast

如果说non-broadcast是在模仿广播型链路,那么broadcast就是将NBMA完全当成广播型链路,让WAN接口就像Lan接口。使用OSPF组播Hello来自动发现邻居,而不是像non-broadcast为每个PVC提供一个LSA拷贝。应用这种模式的前提是NMBA拓扑为Full-Mesh,且在FR Map中使用了关键字broadcast。

  • ip ospf network point-to-multipoint non-broadcast

如果在VC上没有启用组播和广播功能,即定义Map时没有使用关键字broadcast,那么就要应用point-to-multipoint non-broadcast相应的取消组播hello功能,代以手动配置邻居,无需选举DR和BDR。

  • ip ospf network point-to-pioint

如果链路中涉及多个子网,那么一定要用到Point-to-Point类型,也一定会用到子接口,每个子接口属于不同的子网,接口可以是WAN接口也可以是LAN接口。子接口分为两种模式,点到点和点到多点,其中点到多点子接口和主接口配置方式一致,而点到点子接口则有些不同:

interface Serial0/0                                                   interface Serial0/0.2 multipoint
encapsulation frame-relay                                      ip address 20.1.1.1 255.255.255.0
frame-relay lmi-type  ansi                                      ip ospf network point-to-point
interface Serial0/0.1 point-to-point                        frame-relay map ip 20.1.1.2 105 broadcast
ip address 10.1.1.1 255.255.255.0                         frame-relay map ip 20.1.1.3 106 broadcast
frame-relay interface-dlci 101                                frame-relay map ip 20.1.1.4 107 broadcast

注意:

  • 若子接口使用point-to-point模式,则意味着这个子接口对应的子网里只有一台路由器,即这个IP子网只有两个节点;而使用 multipoint模式时,意味着这个子接口对应多条VC,IP子网内有多于两台的路由器。通过配置就可以理解为什么说点到多点是点到点链路的集合。

  • 最初创建子接口的目的在于解决在NBMA上运行距离矢量协议引起的水平分割问题,即从一接口收到的路由信息不会再从这个接口发出去。而这个接口本身 可能连着多个邻居,这样就阻碍了网络中路由信息的传递,子接口是物理接口在逻辑上的划分,能很好的解决水平分割带来的问题。

  • 虚链路 可以认为是点到点的一种特殊配置,在虚链路上OSPF数据包是以单播形式发送,并不在意物理链路是什么类型,关键是虚链路两端可以实现互通。

以上5种网络类型形式上的差异在于:

  • 是否选举DR

  • 是否自动发现邻居

  • 更新时间

这5种网络类型应用上的差异在于:

  • NBMA拓扑是否是Full-Mesh

  • NBMA接口是否在同一IP子网

  • Frame-Relay 在定义Map时是否支持广播,即是否加了关键字broadcast。

所以总的来说,OSPF有8种网络类型:点到点,虚链路,点到多点,NBMA有5种(cisco:点到点,广播,点到多点非广播;RFC:非广播,点到多点),在接口下使用如下命令可以知道OSPF支持哪些网络类型:R1(config-if)#ip ospf network ?
  broadcast            Specify OSPF broadcast multi-access network
  non-broadcast        Specify OSPF NBMA network
  point-to-multipoint  Specify OSPF point-to-multipoint network
  point-to-point       Specify OSPF point-to-point network

从上面输出的内容上看,你是否会问,手动接口下的OSPF网络类型只有4种哪来的5种?其实point-to-multipoint nonbroadcast是隶属于上面的point-to-multipoint网络类型下的,请看下面命令:

R1(config-if)#ip ospf network point-to-multipoint ?
  non-broadcast  Specify non-broadcast point-to-mpoint network
  <cr>

由此可以知道,OSPF接口下的网络类型。总结如下:

网络

类型

二层

封装

Hell/

Dead

DR/

BDR

手动指

定邻居

支持32位主机路由

支持2

以上路由

动态邻

居发现

点对点

HDLC,PPP,FR-SUB-P2P,GRE

10/40

No

No

No

No

Yes

广播

ETH, TokenRing, FDDI

10/40

Yes

No

No

Yes

Yes

NBMA

FR-Primar/SUB-MP,ATM,X.25

30/120

Yes

Yes

No

Yes

No

点到多点

无默认

30/120

No

No

No

Yes

Yes

点到多点非广播

无默认

30/120

No

Yes

No

Yes

No

Loopback

Loopback接口

NA

NA

NA

Yes

NA

NA

OSPF在NBMA的一些局限和优化方案

点到多点和点到多点非广播可以改善NBMA部分互联(Hub-Spoke模式)拓扑下,原有NBMA网络类型的以下缺点:

  1. 在Hub要手工指定每一个Spoke端的neighbor,也许你会问,是否可以在Spoke端指定Hub为neighbor?答案是可以,但是配置比较分散不能集中配置需要在每个Spoke都指定neighbor。另外,Spoke端设置Priority 0以后,指neighbor打了命令后能生效但是show running看不见,其实命令是存在的,no掉priority后就可以看到。

  2. 需要在每个Spoke配置ip ospf priority 0,也许你会问,为什么不在Hub端把它的Priority设置成255?可以这么做,但是假如Hub down了很短时间,这时候Spoke就会成为DR,等Hub再恢复时,不抢占。

  3. 每个Spoke端都需要其他Spoke端的二层映射表项。

RFC的点到多点网络类型可以优化以上3个问题:

  1. 在有条件使用“伪广播”一类的方法在NBMA网络上支持广播时,发送组播Hello可以自动发现邻居,无需手工指定neighbor地址。

  2. 点到多点,等于多个点到点,所以不需要选DR,自然也就不需要设Spoke端的Priority为0来让Spoke不参与DR的选举。

  3. Spoke学习到其他Spoke的路由,下一跳指向的是Hub(相当于Hub代转),所以Spoke只要拥有Hub的二层映射项即可。如果Spoke还想访问其他Spoke的接口用于测试(直连路由,没有下一跳),仍然会用到其他Spoke接口的二层映射,点到多点网络类型的解决办法是:生成一条接口的IP的32位主机路由,下一跳指向Hub。从而彻底不需要Spoke之间的二层映射表项。

而Cisco的点到多点非广播类型的优化方案和上面大同小异:

  1. 用在无条件使用“伪广播”等方法在NBMA上支持广播时,不能自动发现邻居,只能退而求其次手动指定neighbor地址。

  2. 其他“点对多点”的优点仍然继承。

  3. show ip ospf interface InterfaceType看到的网络类型仍然是Point-to-Point,但是实际上是不同的(只能通过show running查看)。

Loopback网络类型

环回接口(逻辑接口)的定义决定了它不可能连接主机或者其他网络设备,如果环回接口配置成一个网段,实际上也只有接口配置的一个主机IP被用到。实际工作中通常将环回接口用于管理或者测试。

对于环回接口宣告OSPF时,默认的OSPF网络类型是Loopback,不管接口实际配置的掩码是多少位,都会被OSPF当做32位主机路由生成链路状态信息并计算出路由。如果希望不要被处理成32为主机路由,而是显示为真实掩码长度。可以手动修改环回接口的网络类型,但是只支持修改成point-to-point。

OSPF类型巧记技巧
1. 凡是“Point-to系列”(包括to-point,to-multipoint,to-multipoint nonbroadcast)均不需要选举DR/BDR,在Hub-and-Spoke这种星型拓扑中建议使用“Point-to系列”模式。

2. 凡是“Broadcast系列”(包括broadcast,non-broadcast),不管加不加non,多少都是广播型链路的翻版,需要选举DR/BDR。

3 .凡是“Nonbroadcast系列”(包括non-broadcast,point-to-multipoint nonbroadcast),一个non就是废除广播 & 组播能力,只能手动指定邻居。

4 .在Full-Mesh的拓扑中才可以应用non-broadcast 或broadcast模式,配置较为简单,但是如果发生链路中断,DRother可能会找不到DR,导致路由信息丢失。

5. Hub-Spoke拓扑中如果运行non-broadcast模式,要在hub 位置配置neighbor命令,并且都设置Spoke接口的优先级为0使其不参与DR/BDR选举。如果配置为点到多点模式,命令可大为简化。

6. 如果一个NBMA链路里有多个IP子网,则主接口网络类型一定是point-to-point,并且一定得用子接口,再看IP子网内接口,多于两个就用点到多点子接口,因为点到点子接口只能容纳一个DLCI。

7. 如果在配置FR Map时没加关键字broadcast,则只能使用“non-broadcast系列”,即non-broadcast和point-to-multipoint broadcast两种网络类型。

转载于:https://blog.51cto.com/jettcai/1666310

OSPF网络类型详解相关推荐

  1. OSPF的四种网络类型详解

    OSPF的四种网络类型 BMA网络 P2P网络 NBMA网络 P2MP网络 不同网络类型是否可以建立邻居 OSPF链路认证 注意:loopback接口默认OSPF网络类型为P2P,但是生成路由的网络掩 ...

  2. 《OSPF和IS-IS详解》一1.1 星际网络

    本节书摘来异步社区<OSPF和IS-IS详解>一书中的第1章,第1.1节,作者: [美]Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区"异步社 ...

  3. 《OSPF和IS-IS详解》一第6章 链路状态数据库同步6.1 OSPF数据库同步

    本节书摘来自异步社区<OSPF和IS-IS详解>一书中的第6章,第6.1节,作者 [美]Jeff Doyle,更多章节内容可以访问云栖社区"异步社区"公众号查看 第6章 ...

  4. 《OSPF和IS-IS详解》

    <OSPF和IS-IS详解> 基本信息 作者: (美)Jeff Doyle 译者: 孙余强 出版社:人民邮电出版社 ISBN:9787115347886 上架时间:2014-4-25 出版 ...

  5. 趣谈网络协议-第二模块-底层网络知识详解:4陌生的数据中心2CDN和数据中心

    趣谈网络协议-第二模块-底层网络知识详解:4陌生的数据中心2CDN和数据中心 1:CDN:你去小卖部取过快递么? 使用"中间仓库"来优化 网络中的"就近配送" ...

  6. 《OSPF和IS-IS详解》一1.4 互联网的诞生

    本节书摘来异步社区<OSPF和IS-IS详解>一书中的第1章,第1.4节,作者: [美]Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区"异步社 ...

  7. 《OSPF和IS-IS详解》一2.3 BGP路径属性

    本节书摘来异步社区<OSPF和IS-IS详解>一书中的第2章,第2.3节,作者: [美]Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区"异步社 ...

  8. 《OSPF和IS-IS详解》一1.2 ARPANET

    本节书摘来异步社区<OSPF和IS-IS详解>一书中的第1章,第1.2节,作者: [美]Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区"异步社 ...

  9. 《OSPF和IS-IS详解》一6.2 IS-IS数据库同步

    本节书摘来异步社区<OSPF和IS-IS详解>一书中的第6章,第6.2节,作者: [美]Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区"异步社 ...

最新文章

  1. A-FRAME初体验
  2. 20051008:看了AppleSeed,领悟到了一个道理:
  3. 【C++】19. 深入 char * ,char ** ,char a[ ] ,char *a[] 内核
  4. 电子邮箱里面的服务器,搭建电子邮件服务器
  5. ActiveReports 报表应用教程 (10)---交互式报表之向下钻取(详细数据按需显示解决方案)...
  6. 博客园自动添加版权说明,自动添加文章链接
  7. Mysql(二)——简单查询及示例
  8. java c 性能分析工具_Jprofiler使用介绍--java性能分析工具中文帮助
  9. Excel导入导出组件的设计
  10. 【BZOJ3218】 a+b Problem
  11. 李雅普诺夫(第二方法)稳定性分析+例题
  12. VB调用周立功CAN接口卡接口库函数
  13. 红宝书第四版的一个错误?
  14. 使用file.delete删除文件不起作用解决办法
  15. 答题对战方案java_使用WebSocket实现实时多人答题对战游戏
  16. 前端保留两位有效数字_用js取小数点后两位的一些方法
  17. Count Pairs
  18. Sicily 题目分类
  19. 捷联惯导系统学习2.2(等效旋转矢量)
  20. java-php-python-ssm计算机组成原理教学网站计算机毕业设计

热门文章

  1. 如何在Dart中读取控制台输入/ stdin?
  2. 二分法(折半查找)的运用之java实现猜数字游戏
  3. JDBC如何连接mysql数据库附详细步骤
  4. 室内空气流动原理图_家庭新风系统示意图 新风系统运行原理介绍
  5. php gd 行间距设置,PHP动态修改GD库扩展问题
  6. 产品优化成果过关?监控数据说了算
  7. PAT A1023 sort cmp字典序比较
  8. 计算机图形硬件---硬拷贝设备
  9. 在JavaScript文件中读取properties文件的方法
  10. debian6 xen4.0安装 guest半虚拟化--debootstrap安装