文章目录
- 静态路由及动态路由
- 一、静态路由基础
-
- [1. 静态路由配置](#1. 静态路由配置)
- [2. 负载分担](#2. 负载分担)
- [3. 路由备份](#3. 路由备份)
- [4. 缺省路由](#4. 缺省路由)
- [5. 静态路由实操](#5. 静态路由实操)
- [二、RIP 动态路由协议](#二、RIP 动态路由协议)
-
- [1. RIP 协议概述](#1. RIP 协议概述)
- [2. RIP 协议版本对比](#2. RIP 协议版本对比)
-
- [2.1 有类路由及无类路由](#2.1 有类路由及无类路由)
- [3. RIP 路由协议原理](#3. RIP 路由协议原理)
- [4. RIP 计时器](#4. RIP 计时器)
- [5. 度量值](#5. 度量值)
- [6. 收敛](#6. 收敛)
- [7. 示例](#7. 示例)
静态路由及动态路由
一、静态路由基础
静态路由适用于末梢网络。(只有一条路的网络叫末梢网络)
- 例如公司网关的网络都是向运营商发数据,公司网关的路由器写默认路由指向运营商。
静态路由的优缺点
-
优点:
- 对路由器CPU没有管理性开销。
- 在路由器间没有宽带占用。
- 增加安全性。
-
缺点:
- 必须真正了解网络。
- 对于新添加网络配置繁琐。
- 对于大型网络工作量大。
静态路由的优先级比动态路由的优先级高。
静态路由是指由管理员手动配置和维护的路由静态路由配置简单,被广泛应用于网络中。另外,静态路由还可以实现负载均衡和路由备份。
1. 静态路由配置
ip route-static ip-address { mask | mask-length } interface-type interface-number [ nexthop-address ]
命令配置静态路由。
说明:
- 参数ip-address指定了一个网络或者主机的目的地址。
- 参数mask指定了一个子网掩码或者前缀长度。如果使用了广播接口如以太网接口作为出接口,则必须要指定下一跳地址;如果使用了串口作为出接口。则可以通过参数interface-type和interface-number(如Serial 1/0/0)来配置出接口,此时不必指定下一跳地址。
以太网是广播类型网络,和串行网络情况不同。在以太网中配置静态路由,必须指定下一跳地址。
以太网中同一网络可能连接了多台路由器,如果在配置静态路由时只指定了出接口,则路由器无法将报文转发到正确的下一跳。在本示例中,RTA需要将数据转发到192.168.2.0/24网络,在配置静态路由时,需要明确指定下一跳地址为10.0.123.2,否则,RTA将无法将报文转发到RTB所连接的192.168.2.0/24网络,因为RTA不知道应该通过RTB还是RTC才能到达目的地。
路由器根据数据包中IP首部中的目的IP地址查询路由表,查看是否有去目的IP的信息。
2. 负载分担
配置静态路由
当源网络和目的网络之间存在多条链路时,可以通过==等价路由==来实现流量负载分担。这些等价路由具有相同的目的网络和掩码、优先级和度量值。
本示例中RTA和RTB之间有两条链路相连,通过使用等价的静态路由来实现流量负载分担。
在RTB上配置了两条静态路由,它们具有相同的目的IP地址和子网掩码、优先级(都为60)、路由开销(都为0),但下一跳不同。在RTB需要转发数据给RTA时,就会使用这两条等价静态路由将数据进行负载分担。
在RTA上也应该配置对应的两条等价的静态路由。
配置验证
在配置完静态路由之后,可以使用**display ip routing-table
**命令来验证配置结果。在本示例中,红色高亮部分代表路由表中的静态路由。这两条路由具有相同的目的地址和掩码,并且有相同的优先级和度量值,但是它们的下一跳地址和出接口不同。此时,RTB就可以通过这两条等价路由实现负载分担。
3. 路由备份
RTB上配置两条静态路由。正常情况下,这两条静态路由是等价的。通过配置preference 100,使第二条静态路由的优先级要低于第一条(++值越大优先级越低++,默认60)。路由器把优先级最高的静态路由加入到路由表中。当加入到路由表中的静态路由出现故障时,优先级低的静态路由才会加入到路由表并承担数据转发业务。
优先级较高静态路由暂时会隐藏,如果断了一个链路,那么优先级较高静态路由就会显示出来。
4. 缺省路由
当路由表中没有与报文的目的地址匹配的表项时,设备可以选择缺省路由作为报文的转发路径。在路由表中,缺省路由的目的网络地址为0.0.0.0,掩码也为0.0.0.0。在本示例中,RTA使用缺省路由转发到达未知目的地址的报文。缺省静态路由的默认优先级也是60。在路由选择过程中,缺省路由会被最后匹配。
配置缺省路由后,可以使用display ip routing-table命令来查看该路由的详细信息。在本示例中,目的地址在路由表中没能匹配的所有报文都将通过GigabitEthernet 0/0/0接口转发到下一跳地址10.0.12.2。
5. 静态路由实操
环境搭建
配置R1
配置R2
配置R3
配置静态路由
查看路由表发现没有去10.4.4.0网段的路由
配置R1的静态路由,要跳转到10.4.4.0网段,下一条地址为10.2.2.2
配置R2的静态路由,要跳转到10.4.4.0网段,下一条地址为10.3.3.2
配置R3的静态路由,要跳转到10.1.1.0网段,下一条地址为10.3.3.1
配置R2的静态路由,要跳转到10.1.1.0网段,下一条地址为10.2.2.1
最后PC1成功ping通PC2
取消配置的 IP 地址命令
如果在交换机中配置好了IP地址,但是ip配置错误可以使用下面的命令来取消。
sh
undo ip address
二、RIP 动态路由协议
1. RIP 协议概述
RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由协议 ,距离矢量IP路由协议。
RIP通过UDP报文 进行路由信息的交换,工作在网络层 ,使用端口号为==520 ==,协议号17 (其实就是UDP),每30秒发送一次路由信息更新。
RIP动态路由协议的消息形式:请求消息,响应消息。
默认支持的等价负载均衡4,最大支持6。
距离矢量路由协议 : 距离矢量名称的由来是因为路由是以矢量(距离、方向)的方式通告出去的,其中距离是根据度量定义的,方向是根据下一跳路由器定义的。传递的内容是路由表中的信息。
RIP的一个特点是触发式更新。当其中一个路由器的路由表更新后,那么该路由器会给其他直连的路由发送自身的路由表。
环路的发生
防止环路发生的机制
距离矢量型路由协议中,用以下几个方法解决环路问题:
- 水平分割:从一个接口收到的路由条目不会在从这个接口发送出去。
- 路由毒化和毒性逆转的水平分割:从一个接口收到的路由条目会从这个接口发送出去,但是将这个路由条目标记为16跳不可达。
- 路由毒化就是将路由条目标记为16跳不可达。
- 触发更新,当路由表发生变化时,会立刻发送更新信息。
2. RIP 协议版本对比
当前使用的RIP协议是针对与IPV4的地址,针对于IPV4的RIP有两个版本:
RIPv1
- RIPv1使用广播更新路由表 。
- 当路由器首次在网络上被激活时,最简单的方式是广播地址(在IP网络中,广播地址是 255.255.255.255)发送更新信息。使用相同的路由选择协议的邻居路由器将会收到广播数据包,并且采取相应的动作。不关心路由更新信息的主机和其他设备会丢弃该数据包。
- RIPv1有类路由,不支持变长子网掩码,不支持不连续子网。
RIPv2
- RIPv2使用组播更新路由表 ,组播地址是224.0.0.9 。
- 启用了RIP,那么设备就拥有了监听224.0.0.9这个IP地址的功能。当一个路由器收到一条更新消息时,它会检查消息的源IP地址,并相应地更新其路由表。如果它已经有了关于该网络的路由信息,则将其更新为新的信息。如果它还没有关于该网络的路由信息,则将其添加到路由表中。
- RIPv2无类路由,支持变长子网掩码,支持不连续子网。
- 路由表查询机制是由小类->大类(按位查询最长匹配、精确匹配,先检查32位掩码的)
- 支持明文及密文认证(思科私有)
2.1 有类路由及无类路由
RIPv1有类路由
-
在传递路由表的时候不传递子网掩码。
-
其中网络地址被分为五个类别(A、B、C、D、E),每个类别有固定的网络前缀长度。类路由是基于网络地址的类别来划分的,因此它只能处理默认网络掩码,无法有效地支持可变长度子网掩码(VLSM)。这意味着在RIPv1中,所有属于同一个类别的网络都会被汇总为一个路由,而无法区分具体的子网。
-
在有类路由中,网络地址被汇总为一个路由,无法区分具体的子网。这使得类路由在网络规模较小、拓扑结构相对简单且不需要细粒度控制时比较适用。
RIPv2无类路由
- 无类路由能够更精确地表示网络地址和子网掩码,可以对不同的子网进行区分。VLSM允许将网络地址划分为更小的子网,并为每个子网分配适当的子网掩码。这使得RIPv2能够更有效地利用IP地址空间,并更好地适应复杂的网络拓扑。
- 例如,在一个网络中可能有多个子网,每个子网都具有不同的子网掩码。使用无类路由,路由器可以将每个子网的地址和相应的子网掩码一起传输,从而实现更准确的路由选择。这样可以更好地利用IP地址空间,并支持更复杂的网络拓扑。
3. RIP 路由协议原理
RIP 路由协议使用跳数(Hop Count)作为度量值来衡量达到目的的地址的距离(最大跳数15跳)。设备到与它直连网络的设备跳数为0,然后每经过一 个三层设备跳数增加1。也就是说通过一个3层设备到达的网络的跳数 为1。度量值等于从本网络到达目的网络间的设备数据量。为限制收敛时间,RIP规定度量值取1~15之间的整数,大于或等于16的跳数(也 就是3层设备数量)被定义为无穷大,即目的网络或主机不可达。也就 是说最大跳数15跳所以流量只能经过15个3层设备,16跳第16个3 层设备为不可达。
4. RIP 计时器
RIP使用距离作为路由选择的度量标准,并通过定期广播路由更新来维护网络的路由表。
- 更新计时器(Update Timer) :RIP协议平均每30s(默认值)从每个启动 RIP 协议的接口不断发送响应消息。这个周期性的更新又更新计时器进行初始化,并且包含一个随机变化量用来防止表的同步。
- 超时计时器(Timeout Timer) : 超时计时器也就是失效计时器,超时计时器用来限制停留在路由选择表中的路由未被更新的时间。五类什么时候,当有一条新的路由建立后,超时计时器就会被初始化为 180s(默认值), 而每当接收到这条路由的更新报文时,超时计时器又将被重置成计时器的初始值。如果一条路由的更新在180s(6个更新周期)内还没有收到,那么这条路由的跳数将变成16,也就是标记不可达路由。
- 刷新计时器(Flush Timer) : 也叫垃圾收集,这个计时器所设置的时间长度一般比超时计时器的时间长240~60s (Cisco路由器使用60s的刷新收集计时器,虽然RFC1058规定为120s)。也就是超时计时器的180s 到期后再加 60s 也就是 240s 为刷新计时器的时间 (可以更改)。如果刷新计时器也超时了,则该路由器将被通告为一条度量值为不可达的路由,同时从路由选择表中删除该路由。
- 抑制计时器(Holddown Timer) : 用于抑制更新机制,Cisco的路由器中允许的 RIP 协议使用了它们。如果一条路由表更新的跳数大于路由选择表已记录的该路由的跳数,那么将会引起该路由进入长达180s(即6个更新周期)的抑制状态节点。
5. 度量值
度量值 :跳数用来计算开销用的。不能超过15,如果超过15台第16台为路由不可达。
当到达同一个网段有两条或者两条以上不同路径的时候,动态路由协议会选择一条最优的路径传输数据。路由协议使用度量选择路径优劣的依据:不同的路由协议使用不同的度量,有时还使用多个度量。
直白来说就是路由器选路的依据。
-
跳数(Hop Count): 度量可以简单记录路由器的跳数。
- 如上图,R1要到达192.168.1.0,如果选择跳数作为度量值来衡量链路的优劣。那么就会选择跳数较少的路径转发数据,即R1-->R3-->192.168.1.0。但是R1-->R3真的是最优路径吗?R1-->R3的链路带宽只有19.2Kb/s,而R1-->R2-->R3的路径带宽却是2Mb/s。
-
带宽(Bandwidth): 度量将会选择高带宽路径,而不是低带宽路径。
- 如上图,如果将带宽作为度量值,选择的路径应该是R1-->R2-->R3。然而带宽本身可能不是一个好的度量。例如,一条被其他 流量过多占用的的2Mb/s链路,与一个 128Kb/s 的空闲链路相比到底谁更好呢?或者与一条高带宽但是延迟很大的链路相比又如何呢?
6. 收敛
网络中的路由器通过交换路由更新信息并重新计算路由表,最终达到稳定的路由状态的过程叫收敛。
收敛时间(convergence time):从网络拓扑发生变化到网络中所有路由器都知道这个变化的时间就叫收敛时间。
动态路由选择协议必须包含一系列过程,这些过程用于路由器向其他路由器通告本地直连网络(传递路由表),接受并处理来自其他路由器的同类信息,中继从其他路由器接收到的信息。此外,路由选择协议还需要定义决定最优路径的度量。对路由协议来说,另一个标准是互联网络上所有路由器的路由表中的可达信息必须一致。使所有路由表都达到一致状态的过程称为收敛(Convergence)。全网实现信息共享及所有路由器计算最优路径所花费的时间的总和就是收敛时间。
每30秒收敛一次,也就是每隔30秒把路由表发送一次。
7. 示例
像之前每台路由器都要配置静态路由会非常的麻烦,现在使用RIP动态路由。
配置方式如下:
在R1中启用version 2版本,并宣告network。
在R2中启用version 2版本,并宣告network。
在R3中启用version 2版本,并宣告network。
然后使用PC1和PC2通信即可
Wireshark抓包分析