在OSI模型中定义数据链路层/物理层和传输层/网络层执行的任务非常相似,它们都提供了数据的传输手段,即沿某路径将数据从源点发往目的的方法,不同之处在于数据链路层/物理层提供跨物理路径的方法。而传输层/网络层则提供跨由一段连串的数据链路组成的逻辑路径或虚拟路径的通信服务。
RIB{(路由选择信息库)routinginformation database }又称路由表
Issue: 数据到达路由器接口之后会发生什么?
首先,路由器会检查数据帧目的地址字段中的数据链路标识,如果它包含了路由器接口标识符或广播标识符,那么路由器将从帧中剥离出数据包并传递给网络层。 在网络层路由器会将检查数据包的目标地址,如果目标地址是路由器接口的IP地址或是所有主机的广播,那么需要进一步检查数据包的协议字段,然后再把封装的数据发送给适当的内部进程 目的地址还可能是一个定向的广播地址,这种地址有明确的网络地址或子网地址并且主机位全部为1,这些地址也是可以路由的。
在数据库中的每个路由表项最少必须包括下面的两个项目:
●目的地址(Destination address) ●指向目标的指针{Pointer to the destination(下一跳Next hop)}
路由器会尽量的进行最精确的匹配按精确程度递减的顺序:
●主机地址{(主机路径)Hostaddress (a host route)} ●子网(Subnet) ●一组子网{(一跳汇总路由)Groupof subnets (a summary route)} ●主网号(Major network number) ●一组主网号{(超网)Groupof major network numbers (a supernet)} ●缺省路由(Default address)
注:缺省地址是最不明确的地址,只有当所有匹配都失败的时候才会被使用。
如果当数据包不能匹配到任何一跳路由表项,那么数据包会被丢弃,同时会向源地址(source address)发送一个“目的不可达”(Destination Unreachable ICMP message)的IGMP消息。
写静态路由的时候有三种方式: 1.ip route 主类网络号子网掩码下一跳IP地址 2.ip route 主类网络号子网掩码出站接口 3.ip route 主类网络号子网掩码出站接口下一跳IP地址
如果直接把静态路由指向一个广播型出站口,而不使用下一跳地址,可能会导致广播网络上面出现过多的流量。而且还可能小小尽路由器的内存。 例如:如果我们在路由器上面输入 ip route 10.1.0.0 255.255.255.0 ,路由器会认为10.1.0.0 是直连网络。当路由器想10.1.0.0/16的目的主机转发数据包的时候,路由器会发送ARP请求以便获取目的主机的MAC地址。如果广播网络上的一台路由器(ARP代理)代表网络10.1.0.0回复ARP响应,那么不管数据包的目的地址是否有效,每次到达都会触发一个ARP请求和响应。并需要路由器配备的大容量ARP高速缓存。例如IP ROUTE 10.1.0.0255.255.0.0 E0 192.168.1.194,如果在静态路由表象后面附加一个下一跳地址,那么路由器就不再认为目标网络是直连网络。这时,ARP的请求对象只可能是下一跳地址,而且仅当第一个去往10.1.0.0 的数据包才会触发ARP请求。 (ARP 代理功能在IOS缺省情况下面是打开的)
指定出现接口和下一跳地址可以最小化与下一跳地址关联的出站接口查询,并且把广播网络上的流量减到最小。
配置静态路由的第三中选择是联合使用出站接口和下一跳地址,即下一跳地址加指定的出站接口。如果出站接口失效,即使下一跳地址通过替代理由递归可达,路由依然会删除。这样可以把与下一跳相关联的出站接口查询减到最小,同时使相应的路由表项不在是直连网络,而是距离为1的静态理由。
路由汇总(summary route)是一个包含路由表中几个更加精确的地址。正是由于理由表项与地址掩码联合使用,是的静态路由的使用如此灵活。通过使用何时的子网掩码,有时可以为多个目标地址生成一条单一的汇总路由。
均分负载: 1.等价均分负载:(Equal-Cost Load Sharing )将流量均匀地分布到多条度量相同的路径上。在这种情况下面均分负载又叫负载平衡 2.非等价均分负载:(Unequal-Cost Load Sharing)将数据包分布到度量不同的多条路径上面。各条路径上分布的流量与路由代价成反比。也就是说,代价越低的路径分配的流量越多,代价越高的路径分配的流量越少。 负载均衡有两种方式: 1.基于目标网络 2.基于数据包
静态路由没有度量,所以仅支持等价负载均衡
静态理由的两个特性: 1.如果网络拓扑结构发生改变,那么需要知道这些变化的路由器必须被重新配置。 2.可以用静态路由建立非常精确的路径选择行为。
Example: Toconfigure a static route to network 10.10.20.0/24, pointing to a next-hoprouter with the IP address of 192.168.100.1, type: (Note that this example iswritten in the Cisco IOS command line syntax and will only work oncertain Cisco routers) iproute 10.10.20.0 255.255.255.0 192.168.100.1 Destination network | 10.10.20.0 | subnet | 255.255.255.0 | next-hop | 192.168.100.1 |
The other optionis to define a static route with reference to the outgoing interface which isconnected to the next hop towards the destination network. iproute 10.10.20.0 255.255.255.0 Serial 0/0
Destination network | 10.10.20.0 | subnet | 255.255.255.0 | next-hop | Serial interface 0/0 (local exit) |
|