ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 跟我一起做实验之简单的路由实验

跟我一起做实验之简单的路由实验

原创 Linux操作系统 作者:眼镜男 时间:2009-07-21 21:50:38 0 删除 编辑

先简单介绍路由的基本概念:

I P路由选择是简单的,特别对于主机来说。如果目的主机与源主机直接相
连(如点对点链路)或都在一个共享网络上(以太网或令牌环网),那么I P数据报就直接送到目的主机上。否则,主机把数据报发往一默认的路由器上,由路由器来转发该数据报。大多数的主机都是采用这种简单机制。
在一般的体制中,I P可以从T C P、U D P、I C M P和I G M P接收数据报(即在本地生成的数据报)并进行发送,或者从一个网络接口接收数据报(待转发的数据报)并进行发送。I P层在内存中有一个路由表。当收到一份数据报并进行发送时,它都要对该表搜索一次。当数据报来自某个网络接口时, I P首先检查目的I P地址是否为本机的I P地址之一或者I P广播地址。如果确实是这样,数据报就被送到由I P首部协议字段所指定的协议模块进行处理。如果数据报的。目的不是这些地址,那么( 1)如果I P层被设置为路由器的功能,那么就对数据报进行转发(也就是说,像下面对待发出的数据报一样处理);否则( 2)数据报被丢弃。

路由表中的每一项都包含下面这些信息:
• 目的I P地址。它既可以是一个完整的主机地址,也可以是一个网络地址,由该表目中的标志字段来指定(如下所述)。主机地址有一个非0的主机号,以指定某一特定的主机,而网络地址中的主机号为0,以指定网络中的所有主机(如以太网,令牌环网)。
• 下一站(或下一跳)路由器( next-hop router)的I P地址,或者有直接连接的网络I P地址。下一站路由器是指一个在直接相连网络上的路由器,通过它可以转发数据报。下一站路由器不是最终的目的,但是它可以把传送给它的数据报转发到最终目的。一定要理解这段话。
• 标志。其中一个标志指明目的I P地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器,还是一个直接相连的接口。
• 为数据报的传输指定一个网络接口。
I P路由选择是逐跳地( h o p - b y - h o p)进行的。从这个路由表信息可以看出, I P并不知道到任何目的的完整路径(当然,除了那些与主机直接相连的目的)。所有的I P路由选择只为数报传输提供下一站路由器的I P地址。它假定下一站路由器比发送数据报的主机更接近目的,且下一站路由器与该主机是直接相连的。
I P路由选择主要完成以下这些功能:
1) 搜索路由表,寻找能与目的I P地址完全匹配的表目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。
2) 搜索路由表,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口(取决于标志字段的值)。目的网络上的所有主机都可以通过这个表目来处置。例如,一个以太网上的所有主机都是通过这种表目进行寻径的。
3) 搜索路由表,寻找标为“默认( d e f a u l t)”的表目。如果找到,则把报文发送给该表目指定的下一站路由器。
如果上面这些步骤都没有成功,那么该数据报就不能被传送。如果不能传送的数据报来自机,那么一般会向生成数据报的应用程序返回一个“主机不可达”或“网络不可达”的错误。
完整主机地址匹配在网络号匹配之前执行。只有当它们都失败后才选择默认路由。默认由,以及下一站路由器发送的I C M P间接报文(如果我们为数据报选择了错误的默认路由),I P路由选择机制中功能强大的特性。

理论知识就补充到这里,下面开始做个简易的实验来理解一下上面的知识。

                                A <------->B<------->C

上面是一张简易的不能在简易的拓扑图。

A,B,C分别代表三台主机。

A主机上设了一个IP为172.168.1.1/24
B主机上设了两个IP,分别为:172.168.1.2/24,10.10.10.1/24
C主机上设了一个IP为:10.10.10.2/24

下面我们要配置路由规则了,在配置之前问两个问题.

A机器能直接ping同C机器吗?
答案不能,因为这两台机器根本就不再一个网段之内。如果还不明白看看刚才蓝色标记的那一段理解一下。
A机器怎样才能和C机器通信呢?
这就需要中间的某个介质帮我做了,在我这里就是B机器。

这里我们配置路由规则主要用的是ip这个命令。如果不清楚可以 ip help 查看下帮助。
1.在A机器配置路由规则:
ip route add 10.10.10.0/24 via 172.168.1.2 dev eth0
这句话代表的意思是如果我们要和 10.10.10.0/24范围内的主机通信,需要经过172.168.1.2这台机器, eth0指定自己本机的网卡。

2.在B机器开启IP转发功能,因为B机器有两个不同的IP.
vim /etc/sysctl.conf 将net.ipv4_ip_forward的值改成1

3.在C机器上添加路由规则:
ip route add 172.168.1.0/24 via 10.10.10.1 dev eth0
意思和上面的差不多,只不过是反过来了

4.测试A机器 ping  10.10.10.2 看是否通。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21996817/viewspace-609848/,如需转载,请注明出处,否则将追究法律责任。

上一篇: rhcs 4.2+gfs6.1.2
下一篇: 策略路由实验
请登录后发表评论 登录
全部评论

注册时间:2009-06-28

  • 博文量
    30
  • 访问量
    31692