1. 路由(Routing)
- 路由:路由是网络层的功能,负责将数据包从源地址传输到目的地址。这一过程涉及在OSI参考模型的第三层上工作,即网络层。路由器根据数据包中的网络层地址(如IP地址)和路由器内部维护的路由表,决定数据包转发的路径。
- :路由器通过动态维护路由表来反映当前的网络拓扑,并与网络上的其他路由器交换路由和链路信息以维护这个路由表。当数据包到达路由器时,路由器会查看数据包的目的地地址,并与路由表中的条目进行匹配,以决定下一步的转发动作。
- :路由器能够连接不同类型的网络,如以太网、ATM网、FDDI网、令牌环网等,并能够在不同网络之间进行帧格式转换。此外,路由器还负责在网络中执行路由协议,如OSPF(开放最短路径优先)和BGP(边界网关协议),以找到数据包从源到目的地的最优路径。
- 路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
- 路由器:能够将数据包转发到正确的目的地,并在转发过程中选择最佳路径的设备
- 直连路由:路由器接口所连接的子网的路由方式称为直连路由;直连路由是由链路层协议发现的,一般指去往路由器的接口地址所在网段的路径,该路径信息不需要网络管理员维护,也不需要路由器通过某种算法进行计算获得,只要该接口处于活动状态(Active),路由器就会把通向该网段的路由信息填写到路由表中去,直连路由无法使路由器获取与其不直接相连的路由信息。
- 非直连路由:通过路由协议从别的路由器学到的路由称为非直连路由;分为静态路由和动态路由;
- (英语:Static routing)是一种路由的方式,路由项(routing entry)由手动配置,而非动态决定。与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。一般来说,静态路由是由网络管理员逐项加入路由表。静态路由是由网络规划者根据网络拓扑,使用命令在路由器上配置的路由信息,这些静态路由信息指导报文发送,静态路由方式也不需要路由器进行计算,但是它完全依赖于网络规划者,当网络规模较大或网络拓扑经常发生改变时,网络管理员需要做的工作将会非常复杂并且容易产生错误。
- 浮动静态路由:路由表中存在相同目标网络的路由条目时,根据路由条目优先级的高低,将请求转发到相应端口;链路冗余的作用;
- 默认路由(Default route),是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由器的路由表里的所有数据包都会使用默认路由。这条路由一般会连去另一个路由器,而这个路由器也同样处理数据包: 如果知道应该怎么路由这个数据包,则数据包会被转发到已知的路由;否则,数据包会被转发到默认路由,从而到达另一个路由器。每次转发,路由都增加了一跳的距离。
1.1 直连路由
直连经常用在一个三层交换机连接几个VLAN时,通过设置直连VLAN间就能够直接通信而不需要设置其他路由方式了。如:一个三层交换机划分两个VLAN,VLAN1中有以PC1,地址为192.168.1.11/24,VLAN2有PC2,地址为192.168.2.12/24;假如它们两个不同VLAN间想通信,因为VLAN1,VLAN2都是与三层交换机直连,所以它们之间可以直接通信,而不需要设置其他路由协议.
例如,我们在公司访问不同网段的服务器,可以直接访问,一般情况下,不需要设置路由
- 三层交换机就是具有部分路由器功能的交换机,工作在OSI网络标准模型的第三层:网络层。三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。
- 三层交换机和二层交换机的主要区别在于它们在OSI网络模型中的工作层次不同。以下是三层交换机和二层交换机的区别:
- 工作层次不同。二层交换机主要工作在OSI模型的第二层,即数据链路层,它根据数据包的目的MAC地址进行转发;三层交换机工作在OSI模型的第三层,即网络层,它不仅可以根据MAC地址转发数据包,还能根据IP地址进行路由选择。
- 路由功能不同。二层交换机不具备路由功能,它只能进行同一VLAN内的数据转发;三层交换机具备路由功能,可以实现不同VLAN间的数据互通。
- 应用场景不同。二层交换机通常用于网络的接入层和汇聚层,主要用于提高局域网内的数据传输效率;三层交换机通常用于网络的核心层,主要负责不同网络段之间的数据路由。
1.2 静态路由
参考 静态路由(Static Routing)
图中,路由器和通过接口和所配置的IP地址和子网掩码,可自动得到每个接口所在的网络。同时,接口与网络直连,属于直接交付。R1,R2最基本的路由表如下表所示。
假设网络中的主机A向中的主机B发送数据报,从图中可以看出,数据报的转发顺序为:
主机A -> R1接口0 -> R1接口1 -> R2接口0 -> R2接口1 -> 主机B。
可是R1 现有的路由表中并没有关于子网3的路由条目,即R1并不知道目的网络的存在。
因此,我们可以给路由器添加一条到达的路由条目,如下表所示。
这样,子网1中的主机就可以将数据报发送至子网3的主机。 同理,若想子网3中的主机能向子网1中的主机发送数据报,则路由器R2的路由表应配置为如下所示。
本案例简单讲解了静态路由的基本使用,但在实际的使用环境中,网络错综复杂,如果仅仅依靠人工给路由器添加针对这些网络的每一条路由条目,一方面不符合实际需求,另一方面会使得路由器的路由表非常庞大,降低查表转发速度,因此我们引入了默认路由的概念。
1.3 默认路由
在前面示例的基础上,让路由器R2接入因特网,如下图所示。
假设子网1中的主机A向因特网发送数据报,从图中可以看出,数据报的转发顺序为:
主机A -> R1接口0 -> R1接口1 -> R2接口0 -> R2接口3 -> 因特网的某个主机
正如案例1中总结,如果我们在路由器R1中逐个添加通往因特网的路由条目,一方面不符合实际需求,另一方面会使得路由器的路由表非常庞大,降低查表转发速度,因此我们可以通过添加默认路由解决这一问题。
默认路由条目用于替代具有相同下一跳的不同目的网络的路由条目,默认路由条目的目的网络为,地址掩码为,因此R1的路由表可配置为如下所示。
- 我们可以发现如果我们从子网1发送数据报到子网3,数据报既可以走目的网络为192.168.2.0/24的路由条目,也可以走目的网络为0.0.0.0/0的默认路由条目,那数据报到底会走哪一条路由条目呢?
- 由于192.168.2.0/24的网络前缀更长,所以路由也就更具体。而默认路由的网络前缀较短,路由也就更模糊, 因此当路由器查表转发IP数据报时,若有多条路由条目可选,通常会采用最长前缀匹配原则,选择目的网络前缀最长的那条路由条目进行转发 。所以如果子网1的主机向子网3的主机发送数据报,会走192.168.2.0/24这一路由条目。
1.4 动态路由
- 动态路由的工作原理
- 路由器的接口接收或者发送路由消息
- 路由消息通过动态路由协议发送到其他路由器
- 发消息的路由器与其他路由器共享路由消息
- 拓扑变化时,该路由协议会成为路由器与路由器之间通信的桥梁
在动态路由中,路由条目是由路由算法自动生成的,路由表会定期更新,因此,如果发生任何变化,新的路由表将根据它们形成。
2. 路由器(AR)
参考 https://blog.csdn.net/liu_xueyin/article/details/
路由器是什么?
- 路由器:路由器是工作在网路层的设备(准确的说是三层路由器),主要作用就是根据查路由表选择最佳路径转发数据包
- 网关:网关的作用就是转发,是一个具体的地址,是网段中距离路由器最近的接口,是处在网络设备上的,网关的地址一般是网段中的第一个或者是最后一个地址,只是大家习惯这么设置。
路由表的形成
- 直连网段:路由器各个接口在配置ip地址的时候,路由器会自动将接口的网段加入路由表;
- 非直连网段:没有连接到路由器的网段称为非直连网段,对此:
- 手动配置:静态路由,人工维护路由表,配置时只能单向配置,如果要实现ping通信需要双向配置,不灵活,需要直到所有的网段才可以;
- 动态路由:路由器将直连网段记录在路由表中,然后把路由表以报文的形式传输给其他相连接的路由器,路由器会相互学习,最终能够获取整个网络中的路由表
AR路由器,意味着具备高级路由功能的路由器。“AR"是"Advanced Routing”(高级路由)的缩写。“AR路由器”相比普通路由器,提供了更强大的处理能力、更高的带宽容量、更复杂的路由算法和策略,以及更灵活的配置选项。常用于大型企业网络、数据中心、互联网服务提供商等对网络性能和可靠性要求较高的环境中。
2.1 路由器的工作原理
路由器的工作原理就是根据查询路由表,选择最佳路径,正确转发数据包
- pc1想要给pc2发送消息,通过pc1的子网掩码与pc2的ip地址相与,发现pc1与pc2不在同一网段,那么只能通过网关,所以pc1会发送ARP广播请求获取网关的mac地址,然后封装成数据帧发送给路由器AR1;(目标ip地址与源子网掩码相与判断是否在一个网段!)
- 路由器AR1接收到数据帧会进行拆包,发现这个是给到pc2的数据包,查找路由表发现到pc2的网段接口是C,所以封装数据帧,从C转发给到路由器AR2;(拆包—查路由表—封装转发)
- 路由器AR2收到数据帧后再次进行拆包,发现这是给pc2的数据,查询路由表,可以直接通过接口E转发给pc2
如果是没有找到目标ip地址,那么会从默认路由转发,或者发送一个出错ICMP报文反馈给pc1,表明目标地址不可达(也就是TYPE 3,CODE 1)
2.1 路由器转发数据包的过程
路由器转发数据包的过程主要涉及以下几个步骤:
- 接收数据包。路由器首先接收到数据包,这通常发生在数据包从源主机传输到目标主机的路径上。
- 解析数据包。路由器解释并处理数据包的链路层协议报头,进行数据的完整性验证,如CRC校验和帧长度检查。
- 查找路由表。路由器查看数据包的目标IP地址,并在路由表中查找匹配的条目。路由表包含目的网络地址和到达这些网络的最佳路径(下一跳路由器的地址)。
- 转发数据包。路由器根据路由表中的信息,将数据包从相应的端口转发出去。如果目标地址不在本网段,数据包会被转发到下一跳路由器。
- ARP解析。在数据包转发过程中,如果需要了解下一跳路由器的MAC地址,路由器会进行ARP广播来解析。
- 封装数据包。路由器在转发数据包时,会封装上相应的链路层包头。
- TTL递减和校验和计算。IP数据包头的TTL(Time To Live,生存时间)域开始减数,并重新计算校验和。
这个过程涉及多个路由器之间的协作,每个路由器都根据其路由表中的信息将数据包转发到下一个路由器,直到数据包到达目的地网络。
比如:
3. linux中的路由相关操作
3.1 route
route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由,但需要注意,大部分命令添加或修改的路由都是临时的。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
1. 查看路由表
查看linux内核路由表
route命令输出的路由表字段含义如下:
(旗标)U (route is up):该路由是启动的;
H (target is a host):目标是一部主机 (IP) 而非网段;
G (use gateway):路由指向网关,需要透过外部的主机 (gateway) 来转递封包(该行有gw);
R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;
D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
M (modified from routing daemon or redirect):路由已经被修改;
! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
A (installed by addrconf)
C (cache entry)
Metric距离、跳数。暂无用。与目标的“距离”(通常以跳数计算)。它不被最近的内核使用,但可能需要路由守护进程。Ref对这条路线的引用次数(Linux内核已不再使用)。Use该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。 路线查询次数。根据-F和-C的使用,这将是路由高速缓存丢失(-F)或命中(-C)。Iface 接口即eth0,eth1等网络接口名,为此路由发送数据包的接口。
由上面的路由排列顺序,依序是由小网域——逐渐到大网域——最后则是预设路由 (0.0.0.0/0.0.0.0)。当要判断某个网路封包应该如何传送的时候,该封包会经由这个路由的过程来判断
2. 三种路由类型说明
- 主机路由
主机路由是路由选择表中指向单个IP地址或主机名的路由记录。主机路由的字段为。例如,在下面的示例中,本地主机通过网关的路由器到达IP地址为的主机。
帮助文档里并没有字段
- 默认路由
当主机不能在路由表中查找到目标主机的IP地址或网络路由时,数据包就被发送到默认路由(默认网关)上。默认路由的字段为。例如,在下面的示例中,默认路由是IP地址为192.168.1.1的路由器
3. 配置路由route的命令
设置和查看路由表都可以用 route 命令,设置内核路由表的命令格式是:
- 添加到主机的路由
要永久生效的话要这样做
注:Linux 默认没有这个文件 ,得手动创建一个
- 添加到网络的路由
要永久生效的话要这样做
- 添加默认路由
- 删除路由
- 屏蔽一条路由
增加一条屏蔽的路由,目的地址为224.x.x.x将被拒绝。
4. 设置包转发
在Linux中默认的内核配置已经包含了路由功能,但 出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。
开启Linux的路由功能可以通过调整内核的网络参数来实现,方法如下:
3.2 ip route
和虽然都能设置路由,但是他们分属于不同的命令簇
- 添加静态路由到路由表的语法如下:
- 查询,无参数
显示路由表做简要说明如下:
路由第一部分是一个IP或者IPv6地址,也可以跟着一个斜杠和掩码长度(如:192.168.0.0/24)。如果没有掩码长度,ip命令就假定是一个单一ip 地址。
scope 【SCOPE_VAL】路由前缀所覆盖的目的地址的范围。可以是文件中的数字或字符串。如果省略此参数,则IP将为所有选通单播路由假定全局范围,为直连单播和广播路由假定链路范围,为本地路由假定主机范围。src 【ADDRESS】其后面跟一个IP地址,在向目的发送数据包时,选择的源地址。metric 【NUMBER】其后面跟一个数字,定义路由的优先值。 Metric的值越小,优先级越高,没有则为0。
protocol 几个协议值。即:
其中部分解释:
scope
的。 |
| kernel | 路由是由内核在自动配置期间生成的。 |
| boot | 路由是在引导序列期间生成的。如果路由守护程序启动,它将清除所有这些守护程序。 |
| static | 管理员配置的路由,以覆盖动态路由。路由守护进程将尊重它们,甚至可能将它们通告给它的对等方。 |
| ra | 路由是通过路由器发现(Router Discovery)协议安装的。 |
scope
到此这篇路由守卫有哪些职位(路由守卫写在哪)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/jszy-jszl/73261.html