假装网络工程师11——ospf路径选取详解(代码片段)

author author     2023-04-23     651

关键词:

一、背景介绍

提到路由,就一定会涉及选路,ospf与其他路由协议一样,同样存在选路,除了对比cost(metric)值,ospf协议还会对比表项,并且表项的优先级高于cost值,本文详细说明ospf协议的路径选取原则。

二、实验拓扑

技术图片
本次实验拓扑如上图所示,R2,R3环回接口模拟外部网络,通过import-route导入,每条路径的cost如标注所示

三、ospf选路详解

1.cost值比较

此时将基础配置按照上图配置好,外部路由直接使用import-route direct导入,未设置接口cost值时,此时在R1上看到去往192.168.0.0/24网段的路由如下所示:

[R1]display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 12       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       12.0.0.0/24  Direct  0    0           D   12.0.0.1        GigabitEthernet
0/0/0
       12.0.0.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
     12.0.0.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
       13.0.0.0/24  Direct  0    0           D   13.0.0.1        GigabitEthernet
0/0/1
       13.0.0.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
     13.0.0.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    192.168.0.0/24  O_ASE   150  1           D   13.0.0.3        GigabitEthernet
0/0/1
                    O_ASE   150  1           D   12.0.0.2        GigabitEthernet
0/0/0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

通过路由表能够看到,R1认为13.0.0.3与12.0.0.2是等价路由,都可以去往192.168.0.0/24,且cost为1(环回接口cost默认为1),但如果只是将R2的g0/0/0与R3的g0/0/1端口开销值进行更,R1去往192.168.0.0/24还是负载均衡

[R2-GigabitEthernet0/0/0]display this 
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 12.0.0.2 255.255.255.0 
 ospf cost 100
#
return
[R3-GigabitEthernet0/0/1]display this 
[V200R003C00]
#
interface GigabitEthernet0/0/1
 ip address 13.0.0.3 255.255.255.0 
 ospf cost 10
#
return

只有将R1上的g0/0/0与g0/0/1端口开销修改后才能看到选路后的效果,此时R1路由表去往192.168.0.0/24网段只会保留去往R3的条目

[R1]dis ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 11       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       12.0.0.0/24  Direct  0    0           D   12.0.0.1        GigabitEthernet
0/0/0
       12.0.0.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
     12.0.0.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
       13.0.0.0/24  Direct  0    0           D   13.0.0.1        GigabitEthernet
0/0/1
       13.0.0.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
     13.0.0.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    192.168.0.0/24  O_ASE   150  1           D   13.0.0.3        GigabitEthernet
0/0/1
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

原因就是R2与R3跟R1都是直连,cost为0,g0/0/1的端口开销为10,小于g0/0/0的100,所以优选从R3去往192.168.0.0/24网段。由此可以得知路径开销计算的方法:本地端口开销+到达目的地址经过所有网段的开销,以R2上12.0.0.0/24去往R3上13.0.0.0/24为例
技术图片
此时开销为R2本地g0/0/0接口开销(100)加R1上13.0.0.0/24网段端口(g0/0/1)开销(10),所以此时总的开销为110

<R2>display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 11       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       12.0.0.0/24  Direct  0    0           D   12.0.0.2        GigabitEthernet
0/0/0
       12.0.0.2/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
     12.0.0.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
       13.0.0.0/24  OSPF    10   110         D   12.0.0.1        GigabitEthernet
0/0/0
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    192.168.0.0/24  Direct  0    0           D   192.168.0.1     LoopBack0
    192.168.0.1/32  Direct  0    0           D   127.0.0.1       LoopBack0
  192.168.0.255/32  Direct  0    0           D   127.0.0.1       LoopBack0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

2.外部表项类型1与类型2

上述在将外部路由使用import-route引入时,没有指定类型,此时默认值2,外部表项类型有两种:分为类型1与类型2

[R3-ospf-1]import-route direct ?
  cost          Set cost
  route-policy  Route policy
  tag           Specify route tag
  type          Metric type of the imported external routes
  <cr>          Please press ENTER to execute command 
[R3-ospf-1]import-route direct type ?
  INTEGER<1-2>  Type value

其中类型2为开销值不累加,即外部端口开销值为多少,引入ospf后,在ospf域内始终为多少,上文中等价路由的cost值为1,原因就是开销不累加,只按照环回接口本身的开销值计算,如果在导入时将R2的外部表项类型改为1,此时尽管R3去往192.168.0.0/24网段的开销为101,小于R2的开销1,但在R1的路由表中,存放的依然是R2的路由

<R1>display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 11       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       12.0.0.0/24  Direct  0    0           D   12.0.0.1        GigabitEthernet
0/0/0
       12.0.0.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
     12.0.0.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
       13.0.0.0/24  Direct  0    0           D   13.0.0.1        GigabitEthernet
0/0/1
       13.0.0.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
     13.0.0.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/1
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    192.168.0.0/24  O_ASE   150  101         D   12.0.0.2        GigabitEthernet
0/0/0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

说明在ospf路径选取时:外部表项类型1>外部表项类型2>cost值

3.区域内与区域间

此时拓扑如下图所示,首先让所有路由器在同一区域内,按照标注建立好ospf邻居,并设置好端口开销值
技术图片
此时R1如果到24.0.0.0/24网段有2条路径:

  1. R1--R3--R4,此时开销值为120
  2. R1--R3--R2--R4,此时开销值为30

所以,R1会选取第2条路径放在自己的路由表里

[R1]tracert 24.0.0.4

 traceroute to  24.0.0.4(24.0.0.4), max hops: 30 ,packet length: 40,press CTRL_C
 to break 

 1 13.0.0.3 20 ms  20 ms  20 ms 

 2 23.0.0.2 30 ms  30 ms  40 ms 

 3 24.0.0.4 30 ms  30 ms  30 ms 

说明在同一区域中,路径取cost值小的,如果此时将拓扑变为如下所示:
技术图片
R2跟R3此时成为2个abr,还是以R1到24.0.0.0/24网段为例,尽管这时 R1--R3--R2--R4开销值仍为30

[R1]display ospf routing 

     OSPF Process 1 with Router ID 1.1.1.1
          Routing Tables 

 Routing for Network 
 Destination        Cost  Type       NextHop         AdvRouter       Area
 12.0.0.0/24        50    Stub       12.0.0.1        1.1.1.1         0.0.0.0
 13.0.0.0/24        10    Stub       13.0.0.1        1.1.1.1         0.0.0.0
 23.0.0.0/24        20    Stub       13.0.0.3        3.3.3.3         0.0.0.0
 24.0.0.0/24        30    Inter-area 13.0.0.3        2.2.2.2         0.0.0.0
 34.0.0.0/24        110   Inter-area 13.0.0.3        3.3.3.3         0.0.0.0

 Total Nets: 5  
 Intra Area: 3  Inter Area: 2  ASE: 0  NSSA: 0 

但此时他会选择 R1--R3--R4,原因就是从R1--R3后,他会认为R2是区域间路由(即上图中的Inter-area),尽管开销更低,他依然会选择同区域内的R4,虽然此时路径总开销为110

[R1]display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 15       Routes : 15       

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

       12.0.0.0/24  Direct  0    0           D   12.0.0.1        Serial1/0/0
       12.0.0.1/32  Direct  0    0           D   127.0.0.1       Serial1/0/0
       12.0.0.2/32  Direct  0    0           D   12.0.0.2        Serial1/0/0
     12.0.0.255/32  Direct  0    0           D   127.0.0.1       Serial1/0/0
       13.0.0.0/24  Direct  0    0           D   13.0.0.1        Serial2/0/1
       13.0.0.1/32  Direct  0    0           D   127.0.0.1       Serial2/0/1
       13.0.0.3/32  Direct  0    0           D   13.0.0.3        Serial2/0/1
     13.0.0.255/32  Direct  0    0           D   127.0.0.1       Serial2/0/1
       23.0.0.0/24  OSPF    10   20          D   13.0.0.3        Serial2/0/1
       24.0.0.0/24  OSPF    10   30          D   13.0.0.3        Serial2/0/1
       34.0.0.0/24  OSPF    10   110         D   13.0.0.3        Serial2/0/1
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

这样就会产生一个问题:即流量从R1到R4的时候路径为R1--R3--R4

<R1>tracert -a 13.0.0.1 34.0.0.4

 traceroute to  34.0.0.4(34.0.0.4), max hops: 30 ,packet length: 40,press CTRL_C
 to break 

 1 13.0.0.3 80 ms  20 ms  20 ms 

 2 34.0.0.4 60 ms  40 ms  30 ms 

返回时路径为R4--R2--R3--R1

<R4>tracert -a 34.0.0.4 13.0.0.1

 traceroute to  13.0.0.1(13.0.0.1), max hops: 30 ,packet length: 40,press CTRL_C
 to break 

 1 24.0.0.2 30 ms  20 ms  10 ms 

 2 23.0.0.3 10 ms  10 ms  40 ms 

 3 13.0.0.1 20 ms  40 ms  20 ms 

造成来回路径不一致,如果R2,R3是2台安全设备,比如防火墙,在一些厂家(如华为)的策略中默认是不允许的,所以必须关闭原进原出的检查机制

undo firewall session link-state check  

四、总结

通过上述实验得知,ospf在进行路径选取时,优先级会按照以下方式进行(1优先级高于2):

  1. 表项:区域内>区域间>外部路由类型1>外部路由类型2
  2. cost值

假装网络工程师9——ospf中的1,2,3类lsa详解(代码片段)

一、前期回顾之前讲过运行ospf的路由器之间是通过lsa进行消息传递,且建立邻接关系时,两端接口的网络类型必须一致,如果在MA类型网络中接口的掩码也要一致,p2p网络掩码可以不一致,只有MA网络中才有DR与BDR角色等约束条... 查看详情

假装网络工程师12——ospf中的特殊区域及6,7类lsa详解(代码片段)

一、背景介绍假设有一个大型企业,各省市都有分公司,总路由与运营网络之间跑bgp,总路由与各省路由器在area0,每个省的不同地市处在不同的area,其网络拓扑如下所示,:以area1中的R5为例,当配置完ospf之后,R5上除了本区... 查看详情

假装网络工程师23——mpls单域通信过程详解

一、背景说明上一篇文章只是讲述了多站点穿过mpls域进行通信,本文专门从路由传输与数据传输两个维度详细讲解传输的过程,上文实验拓扑如下图所示,为了简单起见,只已客户A为例(紫色)进行描述二、路由传输层面R5与R1... 查看详情

假装网络工程师17——初识bgp(代码片段)

一、背景介绍BGP是一种多用于运营商之间的网络协议类型,他与IGP不同的地方(主要指IGP中的ospf协议)在于它是一种距离矢量型的协议,所以路由器之间传递的为路由表,而运行商选择BGP协议的原因在于IGP协议无法容纳公网上... 查看详情

假装网络工程师15——igp综合实验(代码片段)

一、背景介绍IGP协议的学习即将结束,最后通过一个综合实验最为结尾,实验拓扑如下图所示:每个路由器的route-id与lo0接口ip地址一致,除基础配置外,还需满足如下约束:RIP需求:1.R1-R4运行RIPV22.R1仅从R4接收199.172.0.0、199.172.1... 查看详情

假装网络工程师13——路由选择工具acl(代码片段)

一、背景介绍ACL全称accesscontrollist,作为一种路由选择工具更多的是应用于路由过滤,根据ACL编号可以分为:基础访问控制列表高级访问列表指定2层接口组[R1]aclnumber?INTEGER<2000-2999>Basicaccess-list(addtocurrentusingrules)INTEGER<3000-39... 查看详情

华为ospfbgp路由反射器配置详解(代码片段)

对于网络工程师而言,OSPF、BGP的重要性不言而喻,本篇文章我们就来回顾下OSPF、BGP的配置技巧,重点如下1.熟悉DHCP配置;2.熟悉OSFP配置;3.BGP路由反射器配置入下图所示,要求如下:1.网络拓扑规划如图所示;2.PC1、PC2、PC3全部... 查看详情

配置ospf负载分担示例(代码片段)

?微信公众号:网络民工组网图形图1配置OSPF负载分担组网图OSPF负载分担简介等价负载分担ECMP(Equal-CostMultiplePath),是指在两个网络节点之间同时存在多条路径时,节点间的流量在多条路径上平均分摊。负载分担的作用是减轻每... 查看详情

大型网络实战之ospf路由协议

OSPF路由协议楔子为了加强自己我打算好好玩玩网络。OSPF的基本概念和工作过程开放式最短路径优先协议(OSFP)是基于开放标准的链路状态路由选择协议,它完成各路由选择协议算法的两大主要功能:路径选择和路径交换。Intern... 查看详情

[网络协议篇]igp详解之ospf详解

...0c;相互学习进步!ospf是当前用的最多的IGP路由协议走网络方向的兄弟们,ospf是必须掌握的同时,ospf的内容很多,这里我会有三四篇的文章来写ospf可能由于能力有限,不会写的特别全面,但对于网络工作... 查看详情

假装网络工程师8——nat使用场景介绍(代码片段)

一、背景介绍NAT地址转换是生产环境中用的最多的一种技术,除了能缓解ipv4地址不够外,还能有效保护内网真实服务器的地址,nat从流向的角度可以分为snat和dnat,本章对以下几种情况分别进行说明,拓扑如下图所示:二、SNAT... 查看详情

ospf多区域原理与配置(代码片段)

...域中划分成多个小区域,和划分小区域的必要性。在大型网络中,使用OSPF路由协议经常遇到以下问题:1.在大型网络中,网络结构的变化是时常发生的,因此OSPF路由器就会经常运行SPF算法来重新计算路由信息,大量消耗路由器... 查看详情

hcnp网络工程师ospf学习总结

我们知道不同网络之间通信需要路由,而最基础的便是直连路由和手写静态路由,我们也许接触过RIP、OSPF等动态路由协议,那么路由的分类又是如何,请看下图OSPF是一种链路状态动态路由协议,是3层协议,协议号89;OSPF之所以... 查看详情

【网络工程师配置篇】——ospf基础配置!

参考技术AOSPF(OpenShortestPathFirst)为IETFOSPF工作组开发的一种基于链路状态的内部网关路由协议。OSPF是专为IP开发的路由协议,直接运行在IP层上面,协议号为89,采用组播方式进行OSPF包交换,组播地址为224.0.0.5(全部OSPF设备)... 查看详情

路由基础之ospf中级网络工程师企业网络架构

路由基础之中级网络工程师企业网络架构​原理概述:​防火墙(英语:Firewall)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资... 查看详情

ospf基础实验及概念(代码片段)

...设定有两种方式:通过命令行手动配置,在实际网络部署中,建议手工配置OSPF的RouterID,因为这关系到协议的稳定。通过协议自动选取。如果没有手动配置RouterID,设备会从当前接口的IP地址中自动选取一个作... 查看详情

流量工程trafficengineering(te)

...流量的特性选取传输路径的处理过程。流量工程用于平衡网络中的不同交换机、路由器以及链路之间的负载。[编辑]流量工程的内容  流量工程在复杂的网络环境中,控制不同的业务流走不同的路径,关键的业务走可靠的路径... 查看详情

ospfte

...(IS-IS)、资源预留协议(RSVP)、OSPF)的扩展计算并建立根据网络约束设置的单向隧道。通信流在不同的隧道被映射根据他们的目的地。 (OSPFTrafficEngineering,即OSPF流量工程)是为了支持MPLS流量工程(MPLSTE),支持建立和维护TE... 查看详情