计算机网络(动态路由OSPF)

HCIA --- 华为认证的初级网络工程师        (目前学习中)
HCIP --- 华为认证的高级网络工程师
HCIE --- 华为认证的专家级网络工程师  

如何判断动态协议:1.选路好坏2.收敛速度3.占用资源大小

OSPF -- 开放式最短路径优先协议 -- 典型的链路状态型协议

优点:选路佳,收敛快,占用资源小(相对的)
OSPF的分类:OSPFV1,OSPFV2 --- IPV4
                        OSPFV3  ---IPV6
对比RIPv2和OSPFv2 :
相同点:
    1.OSPF和RIP都是无类别的路由协议,都支持VLSM和CLDR传递路由信息时携带子网掩码
    2.OSPF和RIPv2都是以组播的形式发送
      RIP地址为224.0.0.9  OSPF地址为224.0.0.5和224.0.0.6
    3.OSPF和RIP都支持等开销负载均衡
不同点:
    RIP只能应用在小型的网络环境中,但是OSPF可以应用在中大型网络环境
     OSPF为了适应中大型网络环境,需要进行结构化部署 --- 区域划分
    如果一个网络中只包含一个OSPF区域,我们称这样的网络称为单区域OSPF网络
    如果一个网络中包含多个OSPF区域,我们称这样的网络称为多区域OSPF网络

OSPF进行区域划分

目的:区域内部传递拓扑信息,区域之间传递路由信息
                区域边界路由器ABR:同时属于两个区域
要求:1.区域之间必须存在ABR
           2.区域划分必须按照星型拓扑结构划分 -- 所有区域都需要围绕骨干区域进行划分为了方便管理,给OSPF的区域增加了编号标识 -- 区域ID --32位二进制构成(骨干区域的编号必须是区域0)

1.OSPF的数据包类型
    OSPF有五个数据包
        1.hello包 -- 用来周期发现,建立和保活邻居关系的
                    OSPF的hello包默认是有10s为周期发送一个
                    OSPF的失效判定时间为4倍hello时间 -- 死亡时间(dead time)40s
                    RID--用来区分和标识OSPF网络中的路由器
                             1.OSPF网络唯一
                             2.格式统一(统一按照ip地址格式来定义)
                    RID的获取方法:
                             1.手动配置 -- 符合上述两个要求即可
                              2.自动生成 -- 先从环回地址中取最大ip作为RID,若没有环回地址,则取物理接口中最大的ip作为RID
                     hello包中携带RID
        2.DBD包 -- 数据库(存储LSA)描述报文[类似菜单] 
                -- LSDB(链路状态数据库) -- 携带数据的DBD包
        3.LSR包 -- 链路状态请求报文(根据DBD请求未知的LSA信息)
        4.LSU包 -- 链路状态更新报文(真正携带LSA信息的报文)
        5.LSACK包 -- 链路状态确认报文
                  OSPF存在每30m一次的周期更新(保底,没有太大的意义)

2.OSPF的状态机
    
down状态 -- 启动OSPF,发送hello包,进入下一个状态
  
 init状态 -- 初始化状态 -- 收到hello包中包含本地的RID,进入下一个状态
  
 two-way -- 双向通讯状态  -- 标志着邻居关系的建立 (通过hello包)进行(条件匹配) -- 条件匹成功,进入下一个状态,匹配失败则停留在邻居关系,仅hello包保活
    exsatrt -- 预启动状态 -- 通过未携带数据DBD包,进行主从关系选取,比较RID,大的为主,优先进行下一个状态(这个时候不用hello包是因为状态变化,不再是邻居关系)
  
 exchange -- 准交换状态 -- 发送LSDB包(携带数据的DBD包),然后进入下一个状态(结束时发送LSACK包)
  
 loading -- 加载状态 -- 此时来核对方发来的DBD包并与本地LSDB数据库的LSA信息进行对比,对于本机存在未知的LSA信息,使用LSR请求包向对端发送获取,邻居使用LSU回包,本机使用LSACK确认,然后进入下一个状态
    
full -- 转发状态 -- 标志着领接关系确认
      
 领接状态主要是区分邻居状态(领接关系之间才能真正进行LSA交换,而邻居关系只能使用hello包进行包活)

3.OSPF的工作过程
      ①启动配置完成后,OSPF向本地所有的运行的协议的接口以组播形式发送hello包,hello包携带本地的RID信息及本地已知的邻居RID。
        之后将收集到的邻居关系记录在一张表中 --
邻居表

                [R1]display   ospf  peer  查看ospf邻居表

  ②邻居表建立完成后进行条件匹配。
      
如果匹配失败则仅停留在邻居关系,仅使用hello包保活;
       如果匹配成功,将开始建立领接关系。首先使用未携带的DBD包进行主从关系的选举。之后使用携带数据的DBD包共享数据库目录。之后,本地使用LSR/LSU/LSACK数据包获取未知的LSA信息。

        完成本地数据库建立,生成--数据表 -- LSDB

                [R1]display   ospf  lsdb

扫描二维码关注公众号,回复: 13381920 查看本文章

 

                [R1]display   ospf  lsdb    router 2.2.2.2    //查看一条LSDB的信息
    ③最后,基于本地的链路状态数据库,生成有向图及最短路径树,计算本地到达未知网段的路由信息。
        将生成的路由添加的到
路由表
    ④收敛完成,hello包每10s进行一次周期发送。周期保活,每30m进行一次周期更新

最后查看路由表:(华为设备的OSPF协议的默认优先级为10 )

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

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.0/24  Direct  0    0           D   1.1.1.1         LoopBack0
        1.1.1.1/32  Direct  0    0           D   127.0.0.1       LoopBack0
      1.1.1.255/32  Direct  0    0           D   127.0.0.1       LoopBack0
        2.2.2.2/32  OSPF    10   1           D   12.0.0.2        GigabitEthernet
0/0/0
        3.3.3.3/32  OSPF    10   2           D   12.0.0.2        GigabitEthernet
0/0/0
       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
       23.0.0.0/24  OSPF    10   2           D   12.0.0.2        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
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0

OSPF是以带宽作为cost值的评判标准
cost = 参考带宽/真是带宽 --华为设置的参考带宽默认值为100Mbps

[R1-ospf-1]bandwidth-reference ?
  INTEGER<1-2147483648>  The reference bandwidth (Mbits/s)

  !如果修改了一台路由器的参考带宽,则所以的路由器参考带宽全都要修改成一样! 

OSPF的交换过程可以用思科的图片来解释 

    网络结构发送突变:
    a.新增一个网段:触发更新,直接发送携带LSA信息的LSU包进行更新,需要ACK确认
    b.断开一个网段:触发更新,直接发送携带LSA信息的LSU包进行更新,需要ACK确认

   c.无法沟通 -- hello包的10s保活和40s的死亡时间

例图如下:

4.OSPF的基本配置
    ①启动OSPF进程

                [R3]ospf 1 router-id  3.3.3.3
    ②创建区域

                [R3-ospf-1]area  1
    ③宣告
      目的:激活接口,发布路由

  以R3为例,在配置OSPF后,设备自动跳出状态显示,对应的R2也会自动进行OSPF交换

//R3配置OSPF
[R3]os	
[R3]ospf 1 r	
[R3]ospf 1 router-id  3.3.3.3
[R3-ospf-1]area  1
[R3-ospf-1-area-0.0.0.1]net	
[R3-ospf-1-area-0.0.0.1]network  23.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.1]
Nov 14 2021 22:24:42-08:00 R3 %%01OSPF/4/NBR_CHANGE_E(l)[0]:Neighbor changes eve
nt: neighbor status changed. (ProcessId=256, NeighborAddress=1.0.0.23, NeighborE
vent=HelloReceived, NeighborPreviousState=Down, NeighborCurrentState=Init) 
[R3-ospf-1-area-0.0.0.1]
Nov 14 2021 22:24:42-08:00 R3 %%01OSPF/4/NBR_CHANGE_E(l)[1]:Neighbor changes eve
nt: neighbor status changed. (ProcessId=256, NeighborAddress=1.0.0.23, NeighborE
vent=2WayReceived, NeighborPreviousState=Init, NeighborCurrentState=2Way) 
[R3-ospf-1-area-0.0.0.1]
Nov 14 2021 22:24:42-08:00 R3 %%01OSPF/4/NBR_CHANGE_E(l)[2]:Neighbor changes eve
nt: neighbor status changed. (ProcessId=256, NeighborAddress=1.0.0.23, NeighborE
vent=AdjOk?, NeighborPreviousState=2Way, NeighborCurrentState=ExStart) 
[R3-ospf-1-area-0.0.0.1]
Nov 14 2021 22:24:42-08:00 R3 %%01OSPF/4/NBR_CHANGE_E(l)[3]:Neighbor changes eve
nt: neighbor status changed. (ProcessId=256, NeighborAddress=1.0.0.23, NeighborE
vent=NegotiationDone, NeighborPreviousState=ExStart, NeighborCurrentState=Exchan
ge) 
[R3-ospf-1-area-0.0.0.1]

条件匹配:
    指定路由器 -- DR (DR与其他路由器为邻接关系,其他的路由器为邻居关系)
    备份指定路由器 -- BDR (与其他路由器为邻接关系,其他的路由器为邻居关系)
    剩余的路由 -- DR other

DR和BDR虽然是指定路由器或备份指定路由器,但其实是一个接口的概念
DR和BDR的选举规则:
    1.先比较优先级,优先级大的为DR,次大的为BDR
        默认初始优先级为1,优先级取值范围为0-255
        如果优先级设置为0,则代表该接口放弃DR和BDR选举

//R1的G0/0/0进行配置优先级
[R1]interface  G0/0/0
[R1-GigabitEthernet0/0/0]OS	
[R1-GigabitEthernet0/0/0]ospf  D	
[R1-GigabitEthernet0/0/0]ospf  dr-priority  ?
  INTEGER<0-255>  Router priority value
[R1-GigabitEthernet0/0/0]ospf  dr-priority  

2.当优先级相同时,则比较RID,RID大的路由器对应的接口为DR,次大为BDR
    DR/BDR的选举是非抢占模式 -- 一旦DR和BDR选举完毕后,不会因为新加入的设备而重新选举,选举时间为40s

        以之前的配置为例,此时DR为12.0.0.1而BDR为12.0.0.2,原因:先配置的是12.0.0.1网段,先入为主的原则,所以12.0.0.2为次网段

[R1]display  ospf  peer 

	 OSPF Process 1 with Router ID 1.1.1.1
		 Neighbors 

 Area 0.0.0.0 interface 12.0.0.1(GigabitEthernet0/0/0)'s neighbors
 Router ID: 2.2.2.2          Address: 12.0.0.2        
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: 12.0.0.1  BDR: 12.0.0.2  MTU: 0    
   Dead timer due in 36  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:42:46     
   Authentication Sequence: [ 0 ] 

        reset ospf 1 process   重启ospf进程(重启必须是相邻接口同时重启,并且在用户视图下)

此时DR已经变化(从12.0.0.1变成12.0.0.2)

//R1重启前
[R1]display   ospf  peer

	 OSPF Process 1 with Router ID 1.1.1.1
		 Neighbors 

 Area 0.0.0.0 interface 12.0.0.1(GigabitEthernet0/0/0)'s neighbors
 Router ID: 2.2.2.2          Address: 12.0.0.2        
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: 12.0.0.1  BDR: 12.0.0.2  MTU: 0    
   Dead timer due in 40  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:02:31     
   Authentication Sequence: [ 0 ] 

<R1>reset  ospf  1  process   // 重启过程

//R1重启后
<R1>display ospf peer

	 OSPF Process 1 with Router ID 1.1.1.1
		 Neighbors 

 Area 0.0.0.0 interface 12.0.0.1(GigabitEthernet0/0/0)'s neighbors
 Router ID: 2.2.2.2          Address: 12.0.0.2        
   State: Full  Mode:Nbr is  Master  Priority: 1
   DR: 12.0.0.2  BDR: 12.0.0.1  MTU: 0    
   Dead timer due in 33  sec 
   Retrans timer interval: 5 
   Neighbor is up for 00:00:30     
   Authentication Sequence: [ 0 ] 

5.OSPF的拓展配置
   ①手工认证(keyID设置为1,这个接口的邻接表必须key值相同)

[R1-GigabitEthernet0/0/0]ospf  a	
[R1-GigabitEthernet0/0/0]ospf  authentication-mode  ?
  hmac-md5  Use HMAC-MD5 algorithm
  keychain  Keychain authentication mode
  md5       Use MD5 algorithm
  null      Use null authentication
  simple    Simple authentication mode
[R1-GigabitEthernet0/0/0]ospf  authentication-mode  md5 ?
  INTEGER<1-255>  Key ID
  <cr>            Please press ENTER to execute command 
[R1-GigabitEthernet0/0/0]ospf  authentication-mode  md5 1 ?
  STRING<1-255>/<20-392>  The password (key)
  cipher                  Encryption type (Cryptogram)
  plain                   Encryption type (Plain text)
[R1-GigabitEthernet0/0/0]ospf  authentication-mode  md5 1  c	
[R1-GigabitEthernet0/0/0]ospf  authentication-mode  md5 1  cipher  123456 

//此时R1的g0/0/0接口已经设置了密钥,而他的领接表由于没有密钥,不能OSPF连接
Nov 15 2021 13:52:40-08:00 R1 %%01OSPF/3/NBR_CHG_DOWN(l)[17]:Neighbor event:neig
hbor state changed to Down. (ProcessId=256, NeighborAddress=2.2.2.2, NeighborEve
nt=InactivityTimer, NeighborPreviousState=Full, NeighborCurrentState=Down) 
[R1-GigabitEthernet0/0/0]
Nov 15 2021 13:52:40-08:00 R1 %%01OSPF/3/NBR_DOWN_REASON(l)[18]:Neighbor state l
eaves full or changed to Down. (ProcessId=256, NeighborRouterId=2.2.2.2, Neighbo
rAreaId=0, NeighborInterface=GigabitEthernet0/0/0,NeighborDownImmediate reason=N
eighbor Down Due to Inactivity, NeighborDownPrimeReason=Hello Not Seen, Neighbor
ChangeTime=2021-11-15 13:52:40-08:00) 

  ②手工汇总(汇总其实是区域汇总,OSPF区域之间传递路由信息)
        OSPF区域之间传递路由信息,可以进行汇总,所以OSPF的手工认证是区域激活,在区域0的R1上配置两个换回路由192.168.0.1  24 和192.168.1.1  24,在ospf上宣告,此时R2和R3都是没有汇总,此时在R2上进行汇总,汇总在area0上,此时在R2上配置为[R2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.254.0,此时掩码必须是反掩码!!!(注意路由黑洞),此时R3上显示为汇总成功,即:区域0的汇总通过R2传导到区域1
  ③沉默接口

[R1-ospf-1]silent-interface g0/0/1
  ④加快收敛 -- 减少计时器
        修改在接口上,邻居之间的hello时间必须一致,否则将无法建立邻居关系
        hello时间修改以后,死亡时间自动修改为四倍hello时

//在R1的G0/0/0口上设置hello时间
[R1-GigabitEthernet0/0/0]ospf  timer hello 
[R1-GigabitEthernet0/0/0]ospf  timer hello   ?
  INTEGER<1-65535>  Second(s)  

  ⑤缺省路由

          如果在R3旁边配置一个路由器,此时R3被称为边界路由器
    在边界路由器上下发缺省信息(OSPF要求边界路由器自身必须有缺省路由才能发缺省)

        [R1-ospf-1]default-route-advertise
    没有缺省路由时,可以添加always来强制下发缺省信息

        [R1-ospf-1]default-route-advertise  always 

猜你喜欢

转载自blog.csdn.net/qq_44685426/article/details/121322451
今日推荐