Linux路由管理------认识路由

对于Linux系统而言网路至关重要,这是因为大多数Linux服务器都依赖于网络。而数据包在网络中从主机出发,经过传输、转发最终到达目标主机所依赖的是网络中的路由器。路由器是根据路由条目转发数据包,因此路由管理的实质是路由条目管理。

路由不仅存在与路由器中,也存在与操作系统中,不仅Linux有,windows中也存在。

路由的基本概念
路由器传递数据包的方法与现在邮政系统的工作机制相似,先按行政区域划分设立邮局。如果信件传递只发生在邮局内部,则直接分拣投递即可。例如北京市东城区发往另一小区的信件,只需在东城区邮政局分拣投递即可。如果信件发往外埠则需要借助邮政局之间的运输网络。例如由北京市东城区发往四川省成都市成华去的邮件,则需要东城区邮政局将邮件交由北京市邮政局,再由北京市邮政局通过运输网络发往四川省,然后层层下发直到邮件到达收件人手中。

数据包的传递过程与邮政系统类似,也是先将计算机分组划分成不同的子网,然后通过子网间的路由器传递数据包。当数据包发送的目标地址为同一子网时,数据包由交换机直接传送给目标主机。无论是数据包发送给默认网关,还是由一个路由器发送给另一个路由器,都离不开路由的参与。

路由的原理
一个路由条目至少包含3个要素:子网,子网掩码和下一跳地址(在有些设备中使用的是下一跳设备),其主要含义如下:

子网:目标子网的网络号,默认路由的子网号为0.0.0.0。
子网掩码:目标子网的子网掩码,默认路由的子网掩码为0.0.0.0。
下一跳地址:目标子网数据包的转发地址。在有些路由器中使用下一跳设备,设备通常是本地接口。

通常计算机中会有多条路由条目,计算机发出数据包时会进行计算,将目标IP地址与路由条目中的子网掩码按位与,即二进制按位做乘法。如果按位与的结果与路由条目的子网相同,则采用此路由条目的下一跳地址作为转发目的地。

无论是计算机还是路由器,在计算路由时都遵循精确匹配原则,即如果多条路由条目都匹配目标地址,则使用最精确的条目作为转发路径。

Linux系统中的路由表
在计算机中通常不止一个路由条目,能正常通信的计算机至少有两个路由条目,而路由器中的路由条目可能会更多。这些路由条目存储在路由表中,如果在Linux系统中查看路由表,可以使用route命令,如下所示:

[root@localhost /]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 enp0s20f0u2u2
default         gateway         0.0.0.0         UG    600    0        0 wlp1s0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 enp0s20f0u2u2
192.168.1.0     0.0.0.0         255.255.255.0   U     600    0        0 wlp1s0
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

命令输出了两个路由条目,前两条是指向默认网关的默认路由,后面三条是与计算机直接相连的子网路由。命令输出中Flags子段中的U表示路由条目可用,G表示正在使用的网关。

静态路由和动态路由
路由的来源有三种,第一种是路由器和计算机根据自身的网络连接自动生成的直联路由,即与自身所在同一子网的路由,只要网络持续连接直联路由就会一直存在并生效;第二种是由管理员手动添加的静态路由,静态路由仅适合于网络运作简单的环境,Linux系统中添加的路由多为静态路由;最后一种是由动态路由协议生成的动态路由。

静态路由的缺点很明显,当路由器数量增加时,子网数量也增多,这时就需要在每个路由器上为每个子网添加路由,否则就会出现无法访问的问题。如果其中一台路由器出现问题,路由条目就会失效,也会造成无法访问的问题。

为了解决静态路由的这些问题,动态路由协议应运而生,动态路由协议会根据网络状况调整各路由器的路由条目,最大程度上保证网络畅通。常见的动态路由协议有RIP、OSPF、BGP、IGRP等。

(1)RIP(Routing Information Protocol,路由信息协议)是最简单的路由协议,RIP协议要求路由器以30秒为周期,相邻的路由器交换信息,从而让每个路由器都建立路由表。RIP建立的路由表以距离为单位,通过一个路由器称为一跳,RIP总是希望数据包通过最少的跳数到达目的地。RIP最大的优点是配置简单,但仅使用于小型网络,如果跳数超过15,数据包将不可达。由于路由器每30秒向相邻路由器交换信息,因此RIP协议的收敛时间相对较长(收敛时间是指路由协议让每个路由器建立精确并稳定的路由表的时间长度,时间越长,网络发生变化后,路由表生成的越慢,网络稳定需要的时间就越长)。

(2)OSPF(Open Shortest Path First,开放最短路径优先)是一个相对比较复杂的动态路由协议。OSPF一般用于一个路由域内,称为自治系统(Autonomous System)。在这个自治系统内部,所有加入到OSPF的路由器都会通过路由协议相互交换信息,以维护自治系统的结构数据库,最后路由器会通过数据库计算出OSPF表。与RIP相比,OSPF协议根据链路状态计算路由表,更适合于大型网络,其收敛速度也更快。

(3)BGP(Border Gateway Protocol,边界网关协议)是一种用来处理自治系统之间的路由关系的路由协议,最适合处理像Internet这样十分巨大的网络。BGP即不完全是距离矢量协议,也不完全像OSPF那样使用链路状态,BGP使用的是通路向量路由协议。BGP使用TCP协议进行可靠的传输,同时还使用了路由汇聚、增量更新等功能,极大地增加了网络可靠性和稳定性。

(4)IGRP(Interior Gateway Routing Protocol,内部网关路由协议)是由Cisco公司设计的专用于Cisco设备上的一种路由协议。IGRP是一种距离向量路由协议,其要求路由器以90秒为周期向相邻的路由表发送路由表的全部或部分,由此区域内的所有路由器都可以计算出所有网络的距离。由于使用网络延迟、带宽、可靠性及负载等都被用作路由器选择,因此IGRP的稳定性相当不错。

Last modification:December 17th, 2018 at 01:40 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment