免费注册 查看新帖 |

Chinaunix

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

[网络管理] 鸟哥书里关于路由表的疑问。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-22 16:56 |只看该作者 |倒序浏览
本帖最后由 litsands 于 2012-05-22 16:57 编辑

# 范例一:单纯的观察路由状态
[root@www ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0

[root@www ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.1.254   0.0.0.0         UG    0      0        0 eth0

此外,观察一下上面的路由排列顺序喔,依序是由小网域 (192.168.1.0/24 是 Class C),逐渐到大网域 (169.254.0.0/16 Class B) 最后则是预设路由 (0.0.0.0/0.0.0.0)。 然后当我们要判断某个网络封包应该如何传送的时候,该封包会经由这个路由的过程来判断喔! 举例来说,我上头仅有三个路由,若我有一个传往 192.168.1.20 的封包要传递,那首先会找 192.168.1.0/24 这个网域的路由,找到了!所以直接由 eth0 传送出去;

如果是传送到 Yahoo 的主机呢? Yahoo 的主机 IP 是 119.160.246.241,我们通过判断 1)不是 192.168.1.0/24, 2)不是 169.254.0.0/16 结果到达 3)0/0 时,OK!传出去了,透过 eth0 将封包传给 192.168.1.254 那部 gateway 主机啊!所以说,路由是有顺序的。




服务器第五章常用网络指令中的一个例子。http://vbird.dic.ksu.edu.tw/linux_server/0140networkcommand_1.php
这里说路由的选择顺序是按照在路由表里的排列顺序来的。在一些帖子里看到说是按照最长匹配选择路由。而且,我在ubuntu 8.04 上执行route -n 命令,出现的list确实是按照小网域到大网域的顺序排列。而在ubuntu  12.04上执行route -n
结果如下。
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.135.1   0.0.0.0         UG    0      0        0 eth0
129.182.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
172.16.39.0     0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
172.16.254.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
192.168.135.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
跟8.04 恰恰相反。所以有些困惑。

谢谢大家的解答~

论坛徽章:
0
2 [报告]
发表于 2012-05-22 18:10 |只看该作者
时代不同了
  1. [olive@fc16 ~]$ uname -r
  2. 3.1.0-7.fc16.i686
  3. [olive@fc16 ~]$ route -n
  4. Kernel IP routing table
  5. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
  6. 0.0.0.0         192.168.100.2   0.0.0.0         UG    0      0        0 p3p1
  7. 192.168.100.0   0.0.0.0         255.255.255.0   U     1      0        0 p3p1
复制代码

论坛徽章:
0
3 [报告]
发表于 2012-05-22 18:35 |只看该作者
route 命令结果并不能反映路由算法,只能反映出规则。

论坛徽章:
0
4 [报告]
发表于 2012-05-22 18:52 |只看该作者
我觉得只是个显示顺序而已,是不是为了跟windows的路由表显示保持一致呢?或者某些方面做了变化。
个人观点,还没有仔细了解过

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015年迎新春徽章
日期:2015-03-04 09:57:09
5 [报告]
发表于 2012-05-22 23:01 |只看该作者
包是这样发的,如果有多个路由,tcp包发出去后,一个路由到不了,会换条链路来发。

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
6 [报告]
发表于 2012-05-23 07:45 |只看该作者
只是一个显示的问题,楼主不用纠结.路由匹配的话,先匹配子网掩码最长的,依次类推

论坛徽章:
0
7 [报告]
发表于 2012-05-23 14:10 |只看该作者
您的意思是不是按照最长匹配,先找到路由再转发,而是  从第一条开始尝试,如果不通,则换下一条路由么。

dooros 发表于 2012-05-22 23:01
包是这样发的,如果有多个路由,tcp包发出去后,一个路由到不了,会换条链路来发。

论坛徽章:
0
8 [报告]
发表于 2012-05-23 14:11 |只看该作者
怎么查看使用的路由算法呢?

自由建客 发表于 2012-05-22 18:35
route 命令结果并不能反映路由算法,只能反映出规则。

论坛徽章:
0
9 [报告]
发表于 2012-05-23 22:49 |只看该作者
本帖最后由 自由建客 于 2012-05-23 22:50 编辑
litsands 发表于 2012-05-23 14:11
怎么查看使用的路由算法呢?

不知道,这应该是内核的事。你想看内核源码?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP