<!-- wp:quote -->

<p> 开放式最短路径优先OSPF(Open Shortest Path First)协议是IETF定义的一种基于链路状态的内部网关路由协议。 </p>
<!-- /wp:quote --> <!-- wp:more --> <!-- /wp:more --> <h2>OSPF区域</h2> <p></p>
  • <p>每个区域都维护一个独立的LSDB。</p>
  • <p>Area 0是骨干区域,其他区域都必须与此区域相连。</p>

<p>这个OSPF多区域主要是在NP阶段在学习的,我们这里只是简单的提及一下。首先我们需要知道为什么OSPF要多区域,因为如果OSPF在大型的网络中有很多的路由器的话,就会有很多的LSDB,这样就很多,这个例子中的RTA、RTB、RTC,这三个都是边界路由器,他们身上的路由条目只要有自己区域的LSDB和其它区域的汇总即可。如果说RT3里面的路由条目发生了变化,那么RTA是不需要知道Area三里面的详细变化的。</p>
<p>OSPF支持将一组网段组合在一起,这样的一个组合称为一个区域。</p>
<p>划分OSPF区域可以缩小路由器的LSDB规模,减少网络流量。</p>
<p>区域内的详细拓扑信息不向其他区域发送,区域间传递的是抽象的路由信息,而不是详细的描述拓扑结构的链路状态信息。每个区域都有自己的LSDB,不同区域的LSDB是不同的。路由器会为每一个自己所连接到的区域维护一个单独的LSDB。由于详细链路状态信息不会被发布到区域以外,因此LSDB的规模大大缩小了。</p>
<p>Area 0为骨干区域,为了避免区域间路由环路,非骨干区域之间不允许直接相互发布路由信息。因此,每个区域都必须连接到骨干区域。</p>
<p>运行在区域之间的路由器叫做区域边界路由器ABR(Area Boundary Router),它包含所有相连区域的LSDB。自治系统边界路由器ASBR(Autonomous System Boundary Router)是指和其他AS中的路由器交换路由信息的路由器,这种路由器会向整个AS通告AS外部路由信息。</p>
<p>在规模较小的企业网络中,可以把所有的路由器划分到同一个区域中,同一个OSPF区域中的路由器中的LSDB是完全一致的。OSPF区域号可以手动配置,为了便于将来的网络扩展,推荐将该区域号设置为0,即骨干区域。</p>
<h2>OSPF开销</h2>
<p></p>

  • OSPF的开销计算公式为带宽参考值/带宽 。
  • 可以通过bandwidth-reference命令来设置带宽参考值。

<p>OSPF基于接口带宽计算开销,计算公式为:接口开销=带宽参考值÷带宽。带宽参考值可配置,缺省为100Mbit/s。以此,一个64kbit/s串口的开销为1562,一个E1接口(2.048 Mbit/s)的开销为48。</p>
<p>命令bandwidth-reference可以用来调整带宽参考值,从而可以改变接口开销,带宽参考值越大,开销越准确。在支持10Gbit/s速率的情况下,推荐将带宽参考值提高到10000Mbit/s来分别为10 Gbit/s、1 Gbit/s和100Mbit/s的链路提供1、10和100的开销。注意,配置带宽参考值时,需要在整个OSPF网络中统一进行调整。</p>
<p>另外,还可以通过ospf cost命令来手动为一个接口调整开销,开销值范围是1~65535,缺省值为1。</p>
<h2>OSPF配置</h2>
<p></p>
<p>OSPF基于接口带宽计算开销,计算公式为:接口开销=带宽参考值÷带宽。带宽参考值可配置,缺省为100Mbit/s。以此,一个64kbit/s串口的开销为1562,一个E1接口(2.048 Mbit/s)的开销为48。</p>
<p>命令bandwidth-reference可以用来调整带宽参考值,从而可以改变接口开销,带宽参考值越大,开销越准确。在支持10Gbit/s速率的情况下,推荐将带宽参考值提高到10000Mbit/s来分别为10 Gbit/s、1 Gbit/s和100Mbit/s的链路提供1、10和100的开销。注意,配置带宽参考值时,需要在整个OSPF网络中统一进行调整。</p>
<p>另外,还可以通过ospf cost命令来手动为一个接口调整开销,开销值范围是1~65535,缺省值为1。</p>
<p>现在我们用具体的例子来演示一下:</p>
<p></p>
<p>我的拓扑图就是这样的,请注意我的IP地址。现在我们把所有的IP地址都是配好了的,这里就省略,直接从AR1来看OSPF的配置:</p>

ospf 1 router-id 10.11.11.1 
 area 0.0.0.1 
  network 10.0.0.0 0.255.255.255 

<p>我们在AR1上面的配置是直接用环回口作为我们的router-id,然后这里宣告的是一个A类的主类网络,这样我们就不用宣告10.11.11.1和10.12.12.0这两个网段了</p>
<p>我们再来看AR2:</p>

ospf 1 
 area 0.0.0.1 
  network 10.12.12.0 0.0.0.255 
  network 10.23.23.0 0.0.0.255 

<p>这里AR2我们的配置就很老实,将两边的网段都宣告进去了。</p>
<p>接着看AR3,注意这个AR3是边界路由器,我们看如何宣告:</p>

ospf 1 
 area 0.0.0.0 
  network 192.168.3.0 0.0.0.255 
 area 0.0.0.1 
  network 10.23.23.0 0.0.0.255 

<p>我们会发现,在同一个OSPF进程下面有两个area区域,这里就分开宣告了,属于橙色区域的就放在了区域1里面,而粉红色的区域则是区域0里面。</p>
<p>然后来看看AR4:</p>

ospf 1 
 area 0.0.0.0 
  network 0.0.0.0 255.255.255.255 

<p>在AR4这里我们偷了懒,我们直接宣告了所有网络“0.0.0.0”,这样两边都不用我们去宣告了,注意这样的方法只是在实验里这样做,实际中如果这样做的话,假设要想在AR4中开新的区域出来都会默认放到区域0里面的。所以还是不要偷懒的好。</p>
<p>好了,主要的就这几种,其它的紫色部分配置基本上同理这边。</p>
<p>最后我们可以看到在AR1上面能够学习到紫色部分的路由表,包括环回口的路由表:</p>
<p></p>
<p>我们可以看到这个环回口的路由表是一个32位的路由,我们去AR6上面查看一下:</p>

<AR6>display  ospf interface  LoopBack  0

     OSPF Process 1 with Router ID 172.16.53.2
         Interfaces 


 Interface: 172.16.33.1 (LoopBack0)
 Cost: 0       State: P-2-P     Type: P2P       MTU: 1500  
 Timers: Hello 10 , Dead 40 , Poll  120 , Retransmit 5 , Transmit Delay 1

<p>我们可以看到这里的这个Type是P2P的,我们是可以改的,在AR6上;</p>

[AR6]interface LoopBack  0
[AR6-LoopBack0]ospf network-type  broadcast  

<p>改好了之后我们再次查看路由表就是24位的路由了:</p>
<p>同样的你在AR1上面去修改它的环回口类型也是可以改的。这样在AR6上的查看效果就变了</p>
<p>好,我们现在再想想,之前说多区域就是为了让AR1不用学那么多的路由表,可是我们现在查看却发现它还是拥有AR6的路由条目。很奇怪我们查看一下链路状态信息数据库:</p>

<AR1>display  ospf lsdb 

     OSPF Process 1 with Router ID 10.11.11.1
         Link State Database 

                 Area: 0.0.0.1
 Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric
 Router    10.12.12.2      10.12.12.2        1499  48    80000009       1
 Router    10.11.11.1      10.11.11.1        1512  48    80000003       1
 Router    10.23.23.2      10.23.23.2        1505  36    80000004       1
 Network   10.12.12.2      10.12.12.2        1513  32    80000001       0
 Network   10.23.23.1      10.12.12.2        1499  32    80000002       0
 Sum-Net   192.168.4.0     10.23.23.2        1448  28    80000001       2
 Sum-Net   172.16.33.0     10.23.23.2         275  28    80000001       4
 Sum-Net   172.16.53.0     10.23.23.2        1322  28    80000001       4
 Sum-Net   192.168.3.0     10.23.23.2        1498  28    80000001       1
 Sum-Net   172.16.23.0     10.23.23.2        1370  28    80000001       3

<p>如何解决这种情况呢,我们需要在边界路由器上面做配置,我们要把area2做汇总,那么就要在R1(注意是R1不是AR1,拉错路由器了 :shock: )上面做汇总:</p>

[R1]ospf 
[R1-ospf-1]area  2
[R1-ospf-1-area-0.0.0.2]abr-summary 172.16.0.0 255.255.0.0

<p>看这个命令,一定要记好,现在我们再去AR1上面查看路由表:</p>
<p></p>
<p>就会发现这里全都汇总成了172.16.0.0/16的路由条目。那么我们在AR3上面也是同理:</p>

 area 0.0.0.1 
  abr-summary 10.0.0.0 255.0.0.0

<p>好了,然后验证一下,在AR6上看吧:</p>
<p>好厉害,7个路由器,只有4条路由表就全通了,OSPF真伟大,</p>
<p></p>
<p>如果喜欢的话就点赞一下吧,打赏还没接入好。</p>

最后修改:2020 年 02 月 28 日 06 : 51 PM
请俺喝杯咖啡呗