网络层:静态路由配置及其可能产生的路由环路问题
笔记来源:
湖科大教书匠:静态路由配置及其可能产生的路由环路问题
声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考
静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表(不能及时适应网络流量或网络拓扑等的变化,只在小规模网络中使用)
使用静态路由配置可能出现以下导致产生路由环路的错误:
- 配置错误
- 聚合了不存在的网络
- 网络故障
静态路由配置的例子:
R1转发给最右侧网络,但R1路由表中并没有到达该网络的路由,这时候可以人工配置路由表添加条目
默认路由例子
若路由器要转发给某个网络的某主机,可以在此路由表中人工配置目标网络的路由器接口,但网络众多,如果逐条人工配置,任务会很繁重。我们使用一个默认路由来代替
默认路由(Default route),是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。目的地不在路由器的路由表里的所有数据包都会使用默认路由。这条路由一般会连去另一个路由器,而这个路由器也同样处理数据包: 如果知道应该怎么路由这个数据包,则数据包会被转发到已知的路由;否则,数据包会被转发到默认路由,从而到达另一个路由器。每次转发,路由都增加了一跳的距离。–摘自:默认路由
默认路由和默认网关的区别:
默认路由是个指路牌,认不到路就走这。网关是一个围城的城门洞,你想出去只能走这。–摘自:关于默认路由与网关的区别?
特定主机路由例子
若需要考虑某些安全问题时,人工可以在路由表中添加特定主机的路由条目
1.1 配置错误导致路由环路
静态路由配置错误导致路由环路
正常配置情况下,R2将数据报转发给R1的接口1,再由R1转发给最左侧的网络
若R2中第三个条目的下一跳错误配置为10.0.1.2(R3的接口0),则R2将数据报转发给了R3,R3查找路由表条目,再次发送给R2,造成了路由环路
R2本来要把数据报发给R1,但由于人工配置错误,数据报在R2与R3之间循环
为防止数据报在路由环路中永久兜圈,在IP数据报首部设有生存时间TTL字段
IP数据报进入路由器后,TTL字段的值减1。若TTL的值不等于0,则被路由器转发,否则被丢弃。
1.2 聚合不存在的网络导致路由环路
聚合网络就是找多个IP地址的共同前缀,非共同前缀全取0,共同前缀有几位则斜线后就写几
若R2要将数据报转发到黄绿色的那个网络,先进行查表找到匹配路由条目为R1的接口1,R1查表找匹配路由条目为接口2直接交付目的网络
若R2要转发给192.168.3.0/24(该网络中不存在,但包含在聚合网络地址中),R2查表查到聚合网络地址,并转发给R1,但R1在路由表中并未找到该目的地址,只能走默认路由,又转发给了R2,产生路由环路
为了避免因聚合路由产生路由环路的问题,可以在路由表中添加聚合路由中不存在的地址(黑洞路由)
1.3 网络故障导致路由环路
若R1检测到其接口0直连网络出现故障不可达,则在路由表中删除对应条目
若R2要将数据包转发给橙色的那个网络,查表后先将数据包转发给R1,R1查表找不到目的网络,走默认路由,数据包又回到R2
为解决因网络故障导致的路由环路,可以在路由表中为故障网络添加黑洞路由
若故障网络恢复,则可使路由器中相关黑洞路由条目失效