设为首页 收藏本站
查看: 843|回复: 0

[经验分享] OSPF网络类型详解

[复制链接]
累计签到:19 天
连续签到:1 天
发表于 2015-6-27 15:01:21 | 显示全部楼层 |阅读模式
背景
OSPF区域是由不同类型的网络链路组成的,邻接行为随网络类型而异,而要确保OSPF在某些类型的网络上能正确运行,必须对其进行正确的配置。根据拓扑和需求的变化,OSPF可以手工修接口的网路类型来适应不同的二层链路拓扑。
OSPF定义了如下3种RFC公有网络类型:
  • 点到点(Point-to-Point):网络中只有一对路由器相互连接。如,WAN中的HDLC,PPP和帧中继的点到点子接口。
  • 广播(Broadcast):多路访问广播网络,如以太网(Ethenet),令牌环网(TokenRing), 光纤分布式数据接口(FDDI)。
  • 非广播多路访问(NBMA):连接的路由器超过两台,但是没有广播能力。如帧中继、ATM和X.25等网络都属于NBMA。在NBMA网络中,OSPF可以有5种运行模式。

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

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

  • 点到点(Point-to-Point)
  • 点到多点(Point-to-Multipoint)
  • 虚链路(Virtual Link)
  • 广播(Broadcast)
  • 非广播多路访问(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的一些局限和优化方案

上面已经提到过,点到多点,点到多点非广播,是思科私有的两种OSPF网络类型,用于改善NBMA部分互联(Hub-Spoke模式)拓扑下,原有NBMA网络类型的以下缺点:
  • 在Hub要手工指定每一个Spoke端的neighbor,也许你会问,是否可以在Spoke端指定Hub为neighbor?答案是可以,但是配置比较分散不能集中配置需要在每个Spoke都指定neighbor。另外,Spoke端设置Priority 0以后,指neighbor打了命令后能生效但是show running看不见,其实命令是存在的,no掉priority后就可以看到。
  • 需要在每个Spoke配置ip ospf priority 0,也许你会问,为什么不在Hub端把它的Priority设置成255?可以这么做,但是假如Hub down了很短时间,这时候Spoke就会成为DR,等Hub再恢复时,不抢占。
  • 每个Spoke端都需要其他Spoke端的二层映射表项。


Cisco的点到多点网络类型可以优化以上3个问题:
  • 在有条件使用“伪广播”一类的方法在NBMA网络上支持广播时,发送组播Hello可以自动发现邻居,无需手工指定neighbor地址。
  • 点到多点,等于多个点到点,所以不需要选DR,自然也就不需要设Spoke端的Priority为0来让Spoke不参与DR的选举。
  • Spoke学习到其他Spoke的路由,下一跳指向的是Hub(相当于Hub代转),所以Spoke只要拥有Hub的二层映射项即可。如果Spoke还想访问其他Spoke的接口用于测试(直连路由,没有下一跳),仍然会用到其他Spoke接口的二层映射,点到多点网络类型的解决办法是:生成一条接口的IP的32位主机路由,下一跳指向Hub。从而彻底不需要Spoke之间的二层映射表项。

而点到多点非广播类型的优化方案和上面大同小异:
  • 用在无条件使用“伪广播”等方法在NBMA上支持广播时,不能自动发现邻居,只能退而求其次手动指定neighbor地址。
  • 其他“点对多点”的优点仍然继承。
  • 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两种网络类型。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-80967-1-1.html 上篇帖子: OSPF LSA类型详解 下篇帖子: cisco模拟器 基本操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表