什么是路由?
什么是路由?
介绍
路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。路由发生在OSI网络参考模型中的第三层即网络层。
路由引导分组转送,经过一些中间的节点后,到它们最后的目的地。作成硬件的话,则称为路由器。路由通常根据路由表——一个存储到各个目的地的最佳路径的表——来引导分组转送。因此为了有效率的转送分组,创建存储在路由器存储器内的路由表是非常重要的。
路由与桥接的不同,在于路由假设地址相似的节点距离相近。这使得路由表中的一项纪录可以表示到一群地址的路径。因此,在大型网络中,路由优于桥接,且路由已经成为互联网上查找路径的最主要方法。
较小的网络通常可以手动设置路由表,但较大且拥有复杂拓扑的网络可能常常变化,若要手动创建路由表是不切实际的。尽管如此,大多数的公共交换电话网络(PSTN)仍然使用预先计算好的路由表,在直接连线的路径断线时才使用预备的路径;见公共交换电话网路由。“动态路由”尝试按照由路由协议所携带的信息来自动创建路由表以解决这个问题,也让网络能够近自主地避免网络断线或失败。
动态路由作为当前最普及的实现方式。然而,设置路由协议常须要经验与技术;目前的网络技术还没有发展到能够全自动地设置路由。
工作原理
数据以数据包的形式沿着任何网络传输。每个数据包都有一个标头,其中包含有关数据包预定目的地的信息。当数据包向目的地移动时,多台路由器可能会对其进行多次路由。路由器每秒对数百万个数据包执行此过程数百万次。
当数据包到达时,路由器首先在路由表中查找其地址。这类似于乘客查阅公交时刻表以找到前往目的地的最佳公交路线。然后,路由器将数据包转发或移动到网络中的下一个点。
例如,当您从办公室网络中的计算机访问网站时,数据包首先会发送到办公室网络路由器。路由器查找标头数据包并确定数据包的目的地。然后,它查找其内部表并将数据包转发到网络内部的下一个路由器或另一台设备,例如打印机。
有哪些类型?
有两种不同的路由类型,取决于路由器创建路由表的方式:
静态路由
在静态路由中,网络管理员使用静态表手动配置和选择网络路由。在网络设计或参数需要保持不变的情况下,静态路由非常有用。
这种路由技术的静态特性会带来预期的缺点,例如网络拥塞。虽然管理员可以在链路出现故障时配置回退路径,但静态路由通常会降低网络的适应性和灵活性,从而限制网络性能。
动态路由
在动态路由中,路由器根据实际网络条件在运行时创建和更新路由表。它们尝试使用动态路由协议找到从源到目的地的最快路径,动态路由协议是一组用于创建、维护和更新动态路由表的规则。
动态路由的最大优势在于它可以适应不断变化的网络条件,包括流量、带宽和网络故障。
主要的路由协议有哪些?
路由协议是一组规则,用于指定路由器如何识别和转发网络路径上的数据包。路由协议分为两个不同的类别:内部网关协议和外部网关协议。
内部网关协议最适合自治系统,即由单一组织管理控制的网络。外部网关协议可以更好地管理两个自治系统之间的信息传输。
内部网关协议
这些协议评估自治系统,并根据不同的指标做出路由决策,如下所示:
- 跳数,或源和目的地之间的路由器数量
- 延迟,或将数据从源发送到目的地所花费的时间
- 带宽,或源和目的地之间的链路容量
以下是内部网关协议的一些示例。
路由信息协议-RIP
路由信息协议(RIP)依靠跳数来确定网络之间的最短路径。RIP 是一种传统协议,如今已经没有人使用,因为它不能很好地扩展到更大规模的网络实施。
开放最短路径优先协议-OSPF
开放最短路径优先协议(OSPF)从自治系统中的所有其他路由器收集信息,以确定通往数据包目的地的最短和最快路由。您可以使用各种路由算法或计算机进程实施 OSPF。
外部网关协议
边界网关协议(BGP)是唯一的外部网关协议。
边界网关协议-BGP
BGP 定义了通过互联网进行的通信。互联网是连接在一起的自治系统的大集合。每个自治系统都有自治系统号(ASN),它是通过向互联网号码分配机构注册而获得的。
BGP 的工作原理是跟踪最近的 ASN 并将目的地地址映射到其各自的 ASN。
什么是路由算法?
路由算法是实现不同路由协议的软件程序。它们的工作原理是为每条链路分配一个成本数字;成本数字是使用各种网络指标计算的。每台路由器都尝试以最低的成本将数据包转发到下一个最佳链路。
通常使用以下两种形式的路由协议来达成:距离向量算法与连线状态算法。所有路由算法几乎都可以分类到这两种算法中。
距离矢量路由
距离矢量路由算法要求所有路由器定期互相更新找到的最佳路径信息。每台路由器都会向所有已知目的地发送有关当前总成本评估的信息。
最终,网络中的每台路由器都会发现所有可能的目的地的最佳路径信息。
链路状态路由
在链路状态路由中,每台路由器都会发现网络中的所有其他路由器。路由器利用此信息绘制整个网络的地图,然后计算任何数据包的最短路径。
常见问题
路由表: 指记录路由信息的表(可以单路由表,也可以多路由表)
问题1: 按上面的路由表来看,如果要访问10.1.1.1这个IP,请问会怎么走?
答: 会通过10.1.1.0/255.255.255.0这个路由条目后面指示的ens33网卡去寻找10.1.1.1。
问题2: 按上面的路由表来看,如果要访问119.75.217.26这个IP,请问会怎么走?
答: 会通过网关10.1.1.2去寻找。
当在一台linux机器上要访问一个目标ip时,请记住linux以下四步口诀(在linux默认的单路由表情况下,如果想更深 入了解多路由表,请看课外拓展内容):
如果本机有目标ip,则会直接访问本地; 如果本地没有目标ip,则看第2步
- 用route -n查看路由,如果路由条目里包含了目标ip的网段,则数据包就会从对应路由条目后面的网卡出去
- 如果没有对应网段的路由条目,则全部都走网关
- 如果网关也没有,则报错:网络不可达