HCIP学习(1)——基础路由

发布时间 2023-08-09 20:59:15作者: 飔鬏

一. 路由基础

当路由器收到一个IP数据包,路由器会根据数据包的目的IP地址查找FIB(Forwarding Information Base,转发信息库)表,找到“最匹配”的路由条目后,将数据包根据路由条目所指示的出接口或下一跳转发出去。

路由器获取路由的方式有三种,分别是动态路由(例如OSPF)、静态路由(Static)和直连路由(Direct)。

具有路由功能的网络设备都维护两种重要的数据表:一是路由表RIB(Routing Information Base,路由信息库),二是转发表FIB。

示例如下图:

设备编号 端口 IP配置
AR2220-AR1 GE0/0/0 1.1.1.1/24
AR2220-AR2 GE0/0/0 1.1.1.2/24
GE0/0/1 192.168.2.254/24
PC-PC1 /

192.168.2.100/24

GateWay:192.168.2.254

 

AR2220-AR1配置:

<Huawei>system-view
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.2.254 24
Aug 9 2023 17:15:51-08:00 Huawei %%01IFNET/4/LINK_STATE(l)[1]:The line protocol IP on the interface GigabitEthernet0/0/1 has entered the UP state.
[Huawei]ospf 1
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255       #宣告直连网段
[Huawei-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255

AR2220-AR2配置:

<Huawei>system-view 
Enter system view, return user view with Ctrl+Z.
[Huawei]interface GigabitEthernet 0/0/0
[Huawei-GigabitEthernet0/0/0]ip ad    
[Huawei-GigabitEthernet0/0/0]ip address 
[Huawei-GigabitEthernet0/0/0]ip address 1.1.1.2 24
Aug  9 2023 17:15:16-08:00 Huawei %%01IFNET/4/LINK_STATE(l)[0]:The line protocol
 IP on the interface GigabitEthernet0/0/0 has entered the UP state. 
[Huawei-GigabitEthernet0/0/0]q
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]ip add    
[Huawei-GigabitEthernet0/0/1]ip address 192.168.2.254 24
Aug  9 2023 17:15:51-08:00 Huawei %%01IFNET/4/LINK_STATE(l)[1]:The line protocol
 IP on the interface GigabitEthernet0/0/1 has entered the UP state.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf 1
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255

完成对以上两个路由器的简单配置后,在AR1上对PC进行通信,如下表示成功通信:

<Huawei>ping 192.168.2.100
  PING 192.168.2.100: 56  data bytes, press CTRL_C to break
    Request time out
    Reply from 192.168.2.100: bytes=56 Sequence=2 ttl=127 time=20 ms
    Reply from 192.168.2.100: bytes=56 Sequence=3 ttl=127 time=30 ms
    Reply from 192.168.2.100: bytes=56 Sequence=4 ttl=127 time=20 ms
    Reply from 192.168.2.100: bytes=56 Sequence=5 ttl=127 time=20 ms

  --- 192.168.2.100 ping statistics ---
    5 packet(s) transmitted
    4 packet(s) received
    20.00% packet loss
    round-trip min/avg/max = 20/22/30 ms

接下来,查看任意路由器的路由表RIB和转发表FIB,此处以AR1为例:

<Huawei>display ip routing-table   #本地核心路由表  RIB
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 8        Routes : 8        

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.0/24  Direct  0    0           D   1.1.1.1         GigabitEthernet 0/0/0
        1.1.1.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet 0/0/0
      1.1.1.255/32  Direct  0    0           D   127.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.2.0/24  OSPF    10   2           D   1.1.1.2         GigabitEthernet 0/0/0
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
<Huawei>display fib   #转发表 FIB
Route Flags: G - Gateway Route, H - Host Route,    U - Up Route
             S - Static Route,  D - Dynamic Route, B - Black Hole Route
             L - Vlink Route
--------------------------------------------------------------------------------
 FIB Table:
 Total number of Routes : 8 
 
Destination/Mask   Nexthop         Flag  TimeStamp     Interface      TunnelID
1.1.1.255/32       127.0.0.1       HU    t[62]         InLoop0        0x0
1.1.1.1/32         127.0.0.1       HU    t[62]         InLoop0        0x0
255.255.255.255/32 127.0.0.1       HU    t[5]          InLoop0        0x0
127.255.255.255/32 127.0.0.1       HU    t[5]          InLoop0        0x0
127.0.0.1/32       127.0.0.1       HU    t[5]          InLoop0        0x0
127.0.0.0/8        127.0.0.1       U     t[5]          InLoop0        0x0
1.1.1.0/24         1.1.1.1         U     t[62]         GE0/0/0        0x0
192.168.2.0/24     1.1.1.2         DGU   t[272]        GE0/0/0        0x0
<Huawei>

根据以上内容可知,路由器维护一张本地核心路由表,此外路由器还维护着路由协议各自的路由表;路由器将本地核心路由表中的最优路由下载到FIB表,路由器转发芯片根据FIB表转发到报文。

此外,每个路由表不仅有本地核心路由表,还有协议路由表。所谓的协议路由表其实就是关于某一种协议产生的路由组成的表格。依据以上实例,查看OSPF的协议路由表,如下:

<Huawei>display ospf routing   #关于OSPF的协议路由表

     OSPF Process 1 with Router ID 1.1.1.1
          Routing Tables 

 Routing for Network 
 Destination        Cost  Type       NextHop         AdvRouter       Area
 1.1.1.0/24         1     Transit    1.1.1.1         1.1.1.1         0.0.0.0
 192.168.2.0/24     2     Stub       1.1.1.2         1.1.1.2         0.0.0.0

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

可以看到OSPF协议路由表中有两条协议路由,但是在核心路由表中却只有一条OSPF路由,其原因是目的地为1.1.1.0/24的协议路由不是最优路由,所以在本地核心路由表中没有显示。

确认路由路径优劣的步骤:
    1.比较路由掩码,遵循掩码最长匹配原则;
    2.若掩码匹配相同,则比较Pre(协议优先级)
    3.若以上两个相同,则比较Cost值

(1)IP路由查找的最长匹配原则
路由器查找FIB表时,将报文的目的IP地址和FIB表中各表项的掩码进行按位“逻辑与”,得到的地址符合FIB表中的网络地址则匹配。最终选择一个掩码最长的FIB表项转发报文。(关于逻辑计算的规则,可查看
计算机网络中的逻辑计算综合 - 飔鬏 - 博客园 (cnblogs.com)

二. 动态路由协议

动态路由协议根据作用范围不同,可分为:

  内部网关协议IGP(Interior Gateway Protocol):在一个自治系统内部运行。常见的IGP协议包括OSPF和IS-IS。其作用主要是进行路由计算。

  外部网关协议EGP(Exterior Gateway Protocol):运行于不同自治系统之间。BGP是目前最常用的EGP协议,现存唯一的。其作用主要是进行路由传递。

三. 路由迭代

路由必须有直连的下一条才能够指导转发,静态路由或BGP路由的下一跳可能不是直连的邻居,因此需要计算出一个直连的下一跳,这个过程叫做路由迭代。(简单来说,迭代路由的工作过程,就是路由器依据给出的路由条目的下一跳地址,在路由表查找以此地址为目的地的相应路由,直到找到与路由器直连的端口路由,则完成路由传递【反向查找】)

 根据上面的示例进行修改配置,体现路由迭代的效果:

<Huawei>system-view 
Enter system view, return user view with Ctrl+Z.
[Huawei]undo ospf 1      #关闭OSPF功能
Warning: The OSPF process will be deleted. Continue? [Y/N]:y
[Huawei]display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 7        Routes : 7        

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.0/24  Direct  0    0           D   1.1.1.1         GigabitEthernet
0/0/0
        1.1.1.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet
0/0/0
      1.1.1.255/32  Direct  0    0           D   127.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
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
[Huawei]ip route
-static 192.168.2.0 24 1.1.1.2 #手动配置的迭代路由 [Huawei]display ip routing-table Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 8 Routes : 8 Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet 0/0/0 1.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet 0/0/0 1.1.1.255/32 Direct 0 0 D 127.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.2.0/24 Static 60 0 RD 1.1.1.2 GigabitEthernet 0/0/0 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
(特别注意:路由表中的Flags列中的“D”表示不是迭代路由,而“RD”表示是迭代路由。)