免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2129 | 回复: 2
打印 上一主题 下一主题

【疑问】路由表和路由缓存 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-23 22:38 |只看该作者 |倒序浏览
最近看linux源代码的IP路由部分,遇到一些疑惑:
      
      路由转发过程中先用ip_route_input()查路由缓存,不中了再在ip_route_input_slow()中调用fib_lookup()查询路由表(FIB),路由规则、路由表和路由缓存相关的一些数据结构和函数都看了大概,比较复杂,但发现对路由的查询都以套接字缓冲区指针、源和目的地址、TOS值以及net_device指针为参数。

      在linux下route -C,发现路由缓存格式为Source  Destination  Gateway  Flags  Metric  Ref  Use Iface,与参数基本一致,但路由表格式为Destination  Gateway  Genmask  Flags  Metric  Ref  Use  Iface,两者有些差别,难道时将在路由表中查到的条目与源地址一起组成了路由缓存?这是由数据结构决定的么,以前我觉得源地址是没用的,后来才知到需要用来做逆向路径过滤,即源地址检验,不知我的理解是否有偏差,敬请指教!

      谢谢!

[ 本帖最后由 njngypp 于 2008-4-24 07:53 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-05-05 09:57 |只看该作者
>>难道时将在路由表中查到的条目与源地址一起组成了路由缓存?

基本上是的

>>这是由数据结构决定的么,以前我觉得源地址是没用的,后来才知到需要用来做逆向路径过滤,即源地址检验,不知我的理解是否有偏差,敬请指教!

源地址必然需要,否则缓存的意义就不大了,和逆向过滤没什么关系,逆向过滤是在没有缓存的情况下,slow中用源地址来做过滤的

论坛徽章:
0
3 [报告]
发表于 2008-05-07 13:49 |只看该作者

回复 #2 qtdszws 的帖子

谢谢,我后来也看了些资料,路由缓存是用来做精确匹配的转发表,由路由表和源地址等信息映射而成,而路由表是最长前缀匹配,豁然了,呵呵!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP