HCIP学习(1)——基础路由
一. 路由基础
当路由器收到一个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值计算机网络中的逻辑计算综合 - 飔鬏 - 博客园 (cnblogs.com))
(1)IP路由查找的最长匹配原则
路由器查找FIB表时,将报文的目的IP地址和FIB表中各表项的掩码进行按位“逻辑与”,得到的地址符合FIB表中的网络地址则匹配。最终选择一个掩码最长的FIB表项转发报文。(关于逻辑计算的规则,可查看
二. 动态路由协议
动态路由协议根据作用范围不同,可分为:
内部网关协议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”表示是迭代路由。)