网络层-第五节:静态路由配置及其可能产生的路由环路问题
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络层-第五节:静态路由配置及其可能产生的路由环路问题相关的知识,希望对你有一定的参考价值。
- 获取pdf:密码7281
- 专栏目录首页:【专栏必读】王道考研408计算机网络+湖科大教书匠计算机网络+网络编程万字笔记、题目题型总结、注意事项、目录导航和思维导图
- 王道考研408计算机组成原理万字笔记
- 王道考研408数据结构+计算机算法设计与分析万字笔记
- 王道考研408操作系统+Linux系统编程万字笔记
文章目录
本节对应视频如下
一:静态路由配置
(1)概述
静态路由配置:静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表
- 这种人工配置方式简单、开销小。但不能及时适应网络状态(流量、 拓扑等)的变化
- 一般只在小规模网络中采用
使用静态路由配置可能出现以下导致产生路由环路的错误
- 配置错误
- 聚合了不存在的网络
- 网络故障
(2)举例说明
A:静态路由配置
采用如下图所示的网络拓扑和相应的IP地址配置
- 路由器R1
- 接口0:可以通过自己的接口0所配置的IP地址和地址掩码自动得出接口0所在的网络,由于接口0与该网络直连,则下一条不是路由器地址,而是通过接口0转发IP数据报给网络中的某个主机,这属于直接交付,这条自动得出的路由条目类型属于直连路由
- 接口1:可以通过自己的接口1所配置的IP地址和地址掩码自动得出接口1所在的网络,由于接口1与该网络直连,则下一条不是路由器地址,而是通过接口1转发IP数据报给网络中的某个主机,这属于直接交付,这条自动得出的路由条目类型属于直连路由
- 路由器R2
- 接口0:可以通过自己的接口0所配置的IP地址和地址掩码自动得出接口0所在的网络,由于接口0与该网络直连,则下一条不是路由器地址,而是通过接口0转发IP数据报给网络中的某个主机,这属于直接交付,这条自动得出的路由条目类型属于直连路由
- 接口1:可以通过自己的接口1所配置的IP地址和地址掩码自动得出接口1所在的网络,由于接口1与该网络直连,则下一条不是路由器地址,而是通过接口1转发IP数据报给网络中的某个主机,这属于直接交付,这条自动得出的路由条目类型属于直连路由
假设R1要转发一个IP数据报给该网络中的某个主机,从图中可以看出,R1应该将该IP数据报转发给路由器R2的接口0,但R1的路由表中并没有关于该目的网络的路由条目,换句话说,R1并不知道目的网络的存在。因此,我们可以使用路由器的相关配置命令,给R1添加一条到达该目的网络的路由条目,该路由条目是我们人工配置的静态路由
假设R2要转发一个IP数据报给该网络中的某个主机,从图中可以看出,R2应该将该IP数据报转发给路由器R1的接口1,但R2的路由表中并没有关于该目的网络的路由条目,换句话说,R2并不知道目的网络的存在。因此,我们可以使用路由器的相关配置命令,给R2添加一条到达该目的网络的路由条目,该路由条目是我们人工配置的静态路由
B:默认路由
如下图,假设路由器R2的接口2连接到了因特网
假设R1要转发一个IP数据报给因特网中某个网络的某个主机,从图中可以看出,R1应该将该IP数据报转发给路由器R2的接口0。由于因特网中包含了众多的网络,如果我们给R1添加针对这些网络的每一个路由条目,则会给人工配置带来巨大的工作量,并且使R1的路由表变得非常大,降低了查表转发的速度。实际上,对于具有相同下一跳的不同目的网络的路由条目,可以用一条默认路由条目哎代替,默认路由条目中的目的网络地址为0.0.0.0
,地址掩码也为0.0.0.0
,其CIDR形式为0.0.0.0/0
。对于本例,默认路由的下一条是路由器R2的接口0的地址,由于默认路由也是人工配置的,因此其类型也为静态
C:特定主机路由
特定主机路由:有时候,我们可以给路由器添加针对某个主机的特定主机路由条目,一般用于网络管理人员对网络的管理和测试。另外,在需要考虑某些安全问题时也可以采用特定主机路由
如下图,假设这是该网络中的某台特定主机,可以在R1的路由表中添加一条到达该主机的特定主机路由条目。其目的网络地址为192.168.2.1/32
,地址掩码为255.255.255.255
,对于本例特定主机路由条目中的下一跳是路由器R2的接口0的地址,由于特定主机路由也是人工配置的,因此其类型也为静态
可以看出
- 特定主机路由网络前缀最长,路由最具体
- 默认路由网络前缀最短,路由最模糊
当路由器查表转发IP数据报时,若有多条路由可选,则采用最长前缀匹配的原则,即选用目的网络前缀最长的那个路由条目进行转发
二:路由环路问题
(1)静态路由配置错误导致路由环路
A:概述
如下图,R2路由表中目的网络为192.168.1.0/24
的下一跳错误的配置成了10.0.1.2
(本来应该是10.0.0.1
)。这会导致本来要转发到R1接口0的IP数据报错误的被转发到了R3接口1处,于是该IP数据报便会在网络10.0.1.0/30
和网络192.168.2.0/24
一直兜圈,产生路由环路问题
B:解决方法
因此,为了防止IP数据报在路由环路中永久兜圈,在IP数据报首部设有生存时间TTL字段。IP数据报进入路由器后,TTL字段的值减1。若TTL的值不等于0,则被路由器转发,否则被丢弃
(2)聚合了不存在的网络导致路由环路
A:概述
如下图,R2路由表中第三个条目是由网络192.168.1.0/24
和192.168.2.0/24
聚合而来的
假设R2要转发IP数据报到网络192.168.2.0/24
,进行查表转发,找到了匹配的路由条目,下一条应该转发给地址10.0.0.1
。R1收到该IP数据报后,进行查表转发,找到了匹配的路由条目,下一条是通过接口2直接交付
对于这条聚合路由,它包含如下4部分
192.168.0.0/24
:不存在192.168.1.0/24
:存在192.168.2.0/24
:存在192.168.3.0/24
:不存在
如果R2要转发给192.168.3.0/24
这个不存在的网络,那么当其到达R1时,进行查表转发,发现找不到匹配的路由条目,所以只能走默认路由,也即10.0.0.2
,最终就会在R2和R1之间兜圈子,产生了路由环路
B:解决方法
可以在R2的路由表中添加针对聚合的、不存在网络的黑洞路由,其下一条为null0
,这是路由器内部的虚拟接口,IP数据报进入后就有去无回了。对于本例,R2在进行查表转发时,根据最长匹配原则,将会选择192.168.3.0/24
这条到达该不存在网络的黑洞路由
(3)网络故障导致路由环路
A:概述
**如下图,假设路由器R1检测到其接口0所直连的网络出现了故障而不可达,就会在其路由表中删除该直连网络的路由条目。之后R2要转发IP数据报到网络192.168.1.0/24
,进行查表转发,找到匹配的路由条目,下一条转发给10.0.0.1
,R1收到该IP数据报后进行查表转发,只能走默认路由,下一条又会转发给路由器R2,最终就会在R2和R1之间兜圈子,产生了路由环路
B:解决方法
可以在路由器R1的路由表中添加针对该直连网络的黑洞路由,这样R1收到该IP数据报进行查表转发时,就会将其丢进“黑洞”
假设一段时间后,之前的故障消失了,则R1又自动地得出了其接口0的直连网络的路由条目,并把刚才设置的黑洞路由设为失效状态
以上是关于网络层-第五节:静态路由配置及其可能产生的路由环路问题的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络—— 网络层(45):IP数据报的发送和转发过程静态路由配置及其可能产生的路由环路问题
计算机网络湖科大微课堂笔记 p47-49 IPv4地址的应用规划IP数据报的发送和转发过程静态路由配置及其可能产生的路由环路问题