<!-- wp:quote -->

<p>为了交换链路状态信息以及路由信息,OSPF路由器之间首先要建立邻接关系</p>
<!-- /wp:quote --> <!-- wp:more --> <!-- /wp:more --> <!-- wp:tadv/classic-paragraph --> <h2>拓扑图:</h2> <p></p> <!-- /wp:tadv/classic-paragraph --> <!-- wp:tadv/classic-paragraph --> <h2>邻居和邻接</h2> <!-- /wp:tadv/classic-paragraph --> <!-- wp:tadv/classic-paragraph --> <p>OSPF是一个动态路由协议,运行OSPF的路由器之间需要交换链路状态信息和路由信息,在交换这些信息之前首先需要建立邻接关系。</p> <p>邻居路由器(Neighbor): 有端口连接到同一个网段的两个路由器就是邻居路由器。 邻居关系由OSPF的Hello协议维护。</p> <p>邻接(Adjacency): 从邻居关系中选出的为了交换路由信息而形成的关系。 并非所有的邻居关系都可以成为邻接关系,不同的网络类型,是否建立邻接关系的规则也不同。</p> <h2>OSPF支持的网络类型</h2> <h4>点到点和广播类型</h4> <p></p> <!-- /wp:tadv/classic-paragraph --> <!-- wp:tadv/classic-paragraph --> <p>点到点的网络可能有PPP,还有HDLC,广播型网络就是传统的以太网了</p> <h4>NBMA网络</h4> <p></p> <p>NB就是非广播的。这种情况一般出现在两段都是DTE中间是用ATM或者FR等设备连接起来的网络,不过讲道理这种网络也快没有了, 都是被淘汰的技术,但是华为的NA考试里还是有FR帧中继设备的。</p> <h4>点到多点类型</h4> <p></p> <p>这个是啥意思呢,上面的NBMA是完全的帧中继网络,但是这里是不完全的,我们知道帧中继网络都是要去运营商购买DLC专线的,但是看上面这个图,只有两条DLC专线,下面两台路由器之间没有DLC专线,那么OSPF可以通过最上面的路由器来学习。这样也是可以的。所以这也是支持的。</p> <h2>常见链路层协议对应的默认网络类型</h2> <p></p> <p>这个表格可以看到,P2P类型就是PPP和HDLC,至于LAPB我们暂时不用学习到。我们可以根据上一节的拓扑图,查看我们华为设备串口上面的链路类型:</p>
display  ospf interface Serial  4/0/0
<p>这就是查看这个接口的OSPF的信息:</p> <p></p> <p>可以看到这里是P-2-P的类型(type)。</p> <p>第二种broadcast,就是我们的广播,是以太网链路,我们也查看一下:</p> <p></p> <p>可以看到这里的type类型就是broadcast广播类型</p> <p>至于帧中继,我们这里没有图演示,大家可以自行测试。</p> <p>我们还有一个点到多点的没有说,这个呢是需要你手动去配置成点到多点的,这些网路类型如果在特殊情况需要修改也是可以修改的:</p> <p>以我们的拓扑图为例,我们需要在AR2和AR3的串口上修改:</p>
[AR2-Serial4/0/0]ospf network-type ?
  broadcast  Specify OSPF broadcast network
  nbma       Specify OSPF NBMA network
  p2mp       Specify OSPF point-to-multipoint network
  p2p        Specify OSPF point-to-point network
[AR2-Serial4/0/0]ospf network-type br    
[AR2-Serial4/0/0]ospf network-type broadcast 

<p>在AR2上面修改了在AR3上面也是同样的修改。注意看这里也可以手动改成P2MP</p>
<p>AR3:略</p>
<p>然后我们查看AR2的S4/0/0接口类型:</p>

[AR2-Serial4/0/0]dis th
[V200R003C00]
#
interface Serial4/0/0
 link-protocol ppp
 ip address 10.1.23.1 255.255.255.0 
 ospf network-type broadcast
#

<p>但是我们去查看OSPF的网络类型:</p>
<p></p>
<p>一个串口硬生生改成了broadcast。一定要注意的是两端都需要修改才能生效。</p>
<h2>虚连接(Virtual Link)</h2>
<p></p>
<p>如上图所示,如果区域0和区域1之间通过RTA连接,这样是没问题的,但是区域2没有直接同区域0连接,所以区域2的通信是有问题的,这时候我们就需要来设计虚连接来完成通信,虚连接要么建立在RTA上要么是在RTB上,说白了虚连接就是将区域1看成了一个区域0这样包裹住的。这样区域2就可以和区域0通信了。</p>
<h2>DR和BDR</h2>
<p></p>
<p>每一个含有至少两个路由器的广播型网络和NBMA网络都有一个指定路由器(Designated Router,DR)和备份指定路由器(Backup Designated Router,BDR)。</p>
<p>DR和BDR的作用:</p>
<p>1. 减少邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,减少路由器硬件的负担。一个既不是DR也不是BDR的路由器只与DR和BDR形成邻接关系并交换链路状态信息以及路由信息,这样就大大减少了大型广播型网络和NBMA网络中的邻接关系数量。 本例中,虽然RTA有三个邻居,但是只形成两个邻接关系。其它的就都是DRother,DRother是没有选举成DR和BDR的,这些没有选上的路由器,它们之间不需要建立邻接关系,只需要建立邻居关系即可。</p>
<p>2. 在描述拓扑的LSDB中,一个NBMA网段或者广播型网段是由单独一条LSA来描述的,这条LSA是由该网段上的DR产生的。</p>
<p>这里需要补充一下,如果DRother(A)里面的某条链路出现了问题那么它就会用<span style="color: #ff00ff;">224.0.0.6</span>去通告给BDR和DR,然后DR再告诉其他的DRother:DRother(A)有问题了。这里用的就是<span style="color: #ff00ff;">224.0.0.5</span>这条链路来通告的。注意,这里只有DR去通告其它的DRother,BDR只收这个坏消息,不做通告。</p>
<p>DR和BDR是不可以抢占的。</p>
<p>DR死掉之后BDR会成为DR,DRother里面会选举一个新的BDR。</p>
<h2>选举DR和BDR</h2>
<p></p>
<p>如上图,首先是靠优先级来选举的。优先级越大越优先,假如上图中,100和90优先级里面,100被选举成了DR。90成了BDR。但是过了一会,120优先级的路由器开机了,它是不能抢占的。如果优先级都配置成0,那么就不会被选举成DR或者BDR,这个配置可以放在配置很低的小路由器上做,这样就不会让很差的路由器当老大了。优先级默认都是1。</p>
<p>如果优先级都一样,那么就会看router id。router id越大就会被选举成DR,其次是BDR。</p>
<h2>配置Router Priority</h2>
<p></p>

[RTB]interface Ethernet 0/0
[RTB-Ethernet0/0]ospf dr-priority 100
[RTB-Ethernet0/0]quit
[RTB]

<p>注意这个优先级配置完之后需要去刷新OSPF的进程才可以生效:</p>

<AR2>reset  ospf 1 process 
Warning: The OSPF process will be reset. Continue? [Y/N]:y

<p>注意这个需要在用户视图下执行。</p>
<p>这个小实验可以自己尝试做一下。</p>
<p>我是在我们拓扑图中做的P-2-P链路中选举的DR和BDR:</p>
<p></p>
<p>做完一定要记得在AR3上面刷新路由进程。</p>
<p>本节就介绍到这里,下一节全是试验</p>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

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