一、二者对比

1、Linux 系统中可能创建多张路由表来支持策略路由,因此路由表有多个,但是路由缓存只有一个。

2、二者对象粒度也不同

路由表:使用连续地址的集合即子网

缓存:与单个IP地址相关联

二、路由缓存垃圾回收

1、同步回收

      当路由子系统看到需要内存释放时,立即进行清理。以下两种情况,需要立即回收,而无需等待

      A. 当一条新的路有缓存需要被添加到路由缓存内,而缓存中,缓存表项数量已经到达用户配置门限值。

      B. 邻居子系统缓存需要内存时候(路由缓存和邻居子系统缓存相互引用对方)。

 2、异步回收

       为了保持缓存的容量合理,使用一个周期定时器来触发定期的清理操作。路由缓存时间可配置。

 3、路由缓存过期事件  

A. 本地系统接收到一条ICMP 不可达消息或者ICMP fragmentation needed消息,转交ICMP层处理。

B. 邻居协议无法解析L3到L2映射。

       当一个目的IP地址被认为是不可达时候,缓存中该地址相关的所有表现需要被flush,因此立即被设置为过期。

三、路由查找过程

查找过程根据下面这几步,逐次递进,若到了第三部还没有查到,那么内核随便选择一条。

1、最长匹配原则;

        2、tos(type of service)根据服务质量

        3、优先级,这个更路由插入顺序有关系

Logo

更多推荐