路由器怎么查路由表
当路由收到一个数据包的时候,先进行解封装,得到目的地址,例如我们叫常见的192.168.1.10
接着,路由会把这个地址与路由表里的各条路由的掩码匹配,再与该条路由较对,如果匹配,就向这条路由发送出来,如果不匹配,就向下一条路由查找
各条路由查找顺序,根据路由协议的管理距离大小查找,例如直连接口是最小的,管理距离值是0,静态路由是1,那么就先跟直连路由匹配
如果同是直连路由,那就按最小子网匹配
例如有两条路由192.168.1.0/24和192.168.1.10/32
那么就会去到192.168.1.10/32这条路由
简单说就是这样
实际是个很复杂的过程,有兴趣的可以参考一下思科CCNA第二册的教材,说得很详细
二、如何查看交换机路由表
ARP表、交换机转发表、路由表
要弄明白二三转发原理和流程,必须弄清楚ARP表、交换机转发表和路由表,这是数据转发的依据。
由于ARP表和交换机转发表对于管理员来说是透明的,一般很忽视其工作原理,这是我需要注意的学习地方。
所以今天主要是弄明白ARP表、交换机转发表、路由表。
数据最终转发依靠的都是ARP表,他是数据转发最基础的依据。
ARP直接将硬件地址和网络地址相互映射。
数据最终转发依靠的虽然不是路由表,但路由表是一个向导,指引着数据的走向,让数据能跨越网络,ARP表是没有掩码的,是不区分网段的。
以下是我学习结合实验的学习内容小结:
ARP表
1、主机ARP表
主机上查看ARP表:arp -a
主机上删除ARP表:arp -d
主机上ARP表项主要有:
Internet地址(这里是IP地址)
物理地址(这里是MAC地址)
类型(动态或静态,这里是动态)
2、路由器ARP表
路由器上查看ARP表:show arp
路由器上删除ARP表:no arp ……
路由器上ARP表项主要有:
协议(这里是IP协议)
地址(这里是IP地址)
生存时间(?)
硬件地址(这里是MAC地址)
类型(?)
接口(下一跳、出接口)
总结:无论是主机还是路由器,他们的ARP表最重要的是网络地址和硬件地址这两项,最常用的也就是IP地址和MAC地址这两项的映射关系,这是ARP表的本质作用。
路由表
1、主机上的路由表
主机上查看路由表:netstat -r
主机上的路由表项主要有:
目的网络(这里是IP地址)
网络掩码
网关
接口(这里是下一跳地址)
度量值
2、路由器的路由表
路由器上查看路由表:show ip route
路由器上删除路由表:no ip route ……
路由器上的路由表项主要有:
协议类型
网络地址(网段、子网掩码)
下一跳地址、下一跳接口
管理距离、度量值
……
总结:无论是路由器还是主机,他们的路由表都有网络地址、下一跳(地址或接口)、度量值等基本选项。
交换机转发表
交换机转发表(CAM/TCAM)
查看命令:show mac-address-table
交换机转发表表项:
目的地址
地址类型
VLAN
目的端口
三、路由器查询路由表的原则
路由器转发数据时查询的并不是路由表而是转发表!
路由器收集所有端口的路由信息后,后建立路由转发表。
也就是说,收集到的所有路由都会在路由表中,而到达同一目的地址,只有最优路由才会进入路由转发表(为例避免路由环路)。
而路由在转发数据时,使用的是最长匹配原则,举个例子:路由表里有两条路由目的网段分别是172.16.0.0/16和172.16.1.0/24那么当路由器收到一个目的地址为172.16.1.10的地址时,他会优先选择172.16.1.0/24这条路由所匹配的端口转发数据,因为这条路由的掩码较长匹配更精确。