2.4 网络层03
2.4.7 路由表
1、什么是路由?
路由就是报文从源端到目的端的路径。当报文从路由器到目的网段有多条路由可达时,路由器可以根据路由表中最佳路由进行转发。
2、什么是路由表?
在计算机网络中,路由表(routing table)是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表存储着指向特定网络地址的路径。路由表建立的主要目标是为了实现路由协议和静态路由选择。路由表就相当于一张地图告诉数据报该如何去往目的地。
路由器会根据路由表进行数据包的转发:
在ubuntu系统下我们可以使用route-n命令查看系统的路由表:
在windows下可以使用routeprint命令查看系统的路由表:
我们发现ubuntu和windows系统的路由表中都有一条特殊的路由:目标地址为全网地址o.0.0.0,子网掩码为0.0.0.0,对应下一跳的地址为网关地址。那么这条路由的作用是什么呢?
我们先了解一下,计算机或者路由器是如何将一条数据通过网络发送出去的。首先将目的IP地址与自己的子网掩码进行按位与运算得到目的主机的网络号,然后拿该网络号与路由表中的路由进行匹配,如果匹配到了则将数据转发给指定的下一跳,如果没有匹配到,则转发给目标地址为0.0.0.0所对应的下一跳。
因此目标地址为0.0.0.0所对应的那条路由的作用就是:这条路由就是我们所说的默认路由,是对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。
注意1:当我们发现主机(尤其是一些嵌入式或者物联网的设备)不能够上网或者不能ping通外网的时候,假如检查了IP地址、DNS等设置都没问题后依然不能解决,我们可以查看系统的路由表中是否没有添加默认路由。
注意2:不同的路由器查看路由表的命令不一样
思科路由器查看路由表命令为:show ip route
华为路由器查看路由表命令为:display ip routing-table
3、路由表的类型
路由表可以分为:静态路由和动态路由。
- 动态路由:动态路由是指动态路由协议(如RIP)自动建立路由,并且能够根据实际情况的变化适时地进行调整。
- 动态路由之所以能根据网络的情况自动计算路由、选择转发路径,是由于当网络发生变化时,路由器之间彼此交换的路由信息会告知对方网络的这种变化,通过信息扩散使所有路由器都能得知网络变化。
- 路由器根据某种路由算法(不同的动态路由协议算法不同)把收集到的路由信息加工成路由表,供路由器在转发IP报文时查阅
- 常见的动态路由协议有:RIP、OSPF、IS-IS、BGP、IGRP/EIGRP
- 静态路由:由网络管理员手动配置的路由。
-
Linux系统静态路由操作:
- 添加路由:
route -n add -net 目标地址(网络地址)/子网掩码位数 gw 下一跳(网关/路由器接口IP)
例如:route -n add -net 192.168.1.0/24 gw 192.168.33.2 - 添加默认路由:
route add default gw IP - 删除路由:
route delete-net 目标地址/子网掩码位数,
例如:route delete-net192.168.1.0/24 - 注意:参数-net表示操作某个网段,如果操作的数具体某台主机的地址则使用-host选项
- 添加路由:
-
路由器静态路由操作
- 添加路由:
ip route 目标地址 子网掩码 下一跳地址
例如:ip route 192.168.3.0 255.255.255.0 192.168.1.1 - 删除路由:
no ip route 目标地址 子网掩码 下一跳地址
- 添加路由:
-
4、路由表实验
我们使用思科的模拟器Cisco Packet Tracer进行路由表的实验:
下载地址:
网络模拟器
实验目的:
通过设置三个路由器的路由表实现主机PC 0与主机PC 1之间的通信
实验步骤:
选择以访客方式登录,之后会弹出思科的官网,直接将官网关掉会返回该软件
全部线路连接之后:
如果连接线上没有显示连接的端口,可以在Options->Preferences中把“Always Show Port Labels in Logical Workspace”勾选上
分别设置主机PC0与主机PC1的IP地址:
我们设PC0的IP:192.168.0.100 子网掩码:255.255.255.0 默认网关:192.168.0.1(默认网关就是Router0 接口Gig 0/0/0的IP的IP地址)
PC1的IP:192.168.3.100 子网掩码:255.255.255.0 默认网关:192.168.3.1(默认网关就是Router2 接口Gig 0/0/1的IP的IP地址)
分别设置三台路由器的IP地址:
分别为三个路由器设置静态路由:
Router0:
ip route 192.168.3.0 255.255.255.0 192.168.1.2
//ip route 0.0.0.0 0.0.0.0 192.168.1.2 //默认路由
Router1:
ip route 192.168.3.0 255.255.255.0 192.168.2.2
ip route 192.168.0.0 255.255.255.0 192.168.1.1
//ip route 0.0.0.0 0.0.0.0 192.168.2.2 //默认路由
Router2:
ip route 192.168.0.0 255.255.255.0 192.168.2.1
//ip route 0.0.0.0 0.0.0.0 192.168.2.1 //默认路由