一、路由表
当frame到达路由器的接口以后,路由器检查frame中的目标地址,如果目标地址为路由器的接口的地址或广播地址的时候,路由器把、packet从frame中剥离出来,传递给Network Layer,然后packet中的目标地址将被检查,接下来还要检查protocol字段,最后再发送给合适的进程。如果packet是可路由的,路由器会查找自己的路由表寻找相应的路由条目。
1. 路由表中的两个重要要素:
- 目标地址,这个地址是路由器能够到达的地址,
- 到达目标地址的指向,这个指向也就是所谓的next hop(下一跳)
2. 路由器在地址匹配过程中按最大程度进行匹配,地址按精确程度递减的排列
- 主机地址
- 子网
- 汇总(summary)地址
- 主网络号
- 超网(supernet)
- 默认(default)地址
如果在地址匹配过程中,不能和路由表中任何条目所匹配,packet将被丢弃。
【一个名为 Destination Unreachable(目标不可达)的ICMP信息将发回给源地址】
二、静态路由配置
- 为每条链路确定地址(包括子网地址和网络地址)
- 为每个路由器,标识非直连的链路地址
- 为每个路由器写出未直连的地址的路由语句(写出直连地址的语句是没必要的)
- Piglet(config)#ip route 192.168.1.0 255.255.255.224 192.168.1.193
- Piglet(config)#ip route 192.168.1.64 255.255.255.224 192.168.1.193
- Piglet(config)#ip route 10.4.6.0 255.255.255.0 192.168.1.193
- Piglet(config)#ip route 10.4.7.0 255.255.255.0 192.168.1.193
设置一条管理距离稍大于正常使用的一条静态路由,如下,将一条路由的管理距离设置为 50,这样正常使用的这条链路 down 掉后,被设置为浮动路由的备份链路启用
- Piglet(config)#ip route 10.4.7.0 255.255.255.0 192.168.1.193 50
均衡负载可以是基于目标地址或者是基于每个packet的所谓机遇目标地址的均衡负载,是说假如有两条到达目标地址的路径,那么第一个packet将通过第一条链路到达第一个目标设备,第二个packet将通过第二条链路到达第二个目标设备,第三个packet又将通过第一条链路到达第三个目标设备等等,以次类推.当 Cisco 路由器工作在默认的交换模式,Fast Switching(快速交换)模式下,就使用这种类型的均衡负载
4. Fast Switching 的工作原理:
当路由器对第一个 packet 进行发往目标地址的处理的时候,先查看路由表和选择出口接口,然后获取组成frame的信息(比如ARP表的查询)并进行封装,然后传输。之前获取的这些路由和数据链路信息将被保存在快速交换的 cache 中。
接下来,当有要到达和第一个包相同的目标地址的包的时候,就可以不进行路由表和 ARP 表的查询,直接对 packet 进行交换。
快速交换降低了 CPU 的占用和处理时间,并意味着去往某个目标地址的 packet 都从相同的路由器接口被路由出去。当有到达同一网络不同主机的 packet,路由器可能会把这些 packet 通过另外一条链路进行路由。
因此,路由器能做的最好的就是给予目标地址的均衡负载所谓基于基于 packet 的均衡负载,是说假如有 2 条到达目标地址的路径,那么第一个 packet 将通过第一条链路到达目标设备,第二个packet将通过第二条链路到达目标设备,第三个packet又将通过第一条链路到达目标设备等等,以次类推(这里考虑的是等价的均衡负载)。