研究RIP协议在Linux等多系统平台中的应用

网络 网络管理
下面我们主要讲解一下Linu和Windows当中的RIP协议的使用。在整个平台中,如何构建这个协议的网络呢?让我们来详细了解一下吧。

RIP协议,是路由的基础,在很多组网结构中,我们都会用到这个协议。那么今天我们关于RIP协议的基础就不多赘述了。本例中使用的RIP协议是 Version 2 的,支持认证、MD5 加密、VLSM、CIDR等,在这里使用 Version 2 而不使用 Version 1,是因为 Windows Server 2003 和Linux均不支持 RIPv1.由于RIP 协议是国际标准,各个厂商都会有支持.所以不管我是用 Windows 还是Linux或是 UNIX,都应该可以顺利地运行RIP协议.

这里是本例中所使用的拓扑图:

研究:RIP协议在Linux等多系统平台中的应用

不仅用到了 VMnet1 和 VMnet8 做网络接口,而且还使用了一个自定义的网络—— VMnet2.那么首先,在 VMware 中新建一个 VMnet2 网络:

研究:RIP协议在Linux等多系统平台中的应用#p#

研究:RIP协议在Linux等多系统平台中的应用

由于我已经添加了,这里就不会有了,当然,也可以选择 "VMnet3" 等:

研究:RIP协议在Linux等多系统平台中的应用

添加完成之后,应该可以在网络连接中看到这个虚拟的 VMnet2 接口的网卡:

研究:RIP协议在Linux等多系统平台中的应用#p#

这里是我的 Host 上的网络设置:

研究:RIP协议在Linux等多系统平台中的应用

其中:192.168.100.241 是我的无线网卡的 IP,不用理会它.

然后,再设置 Windows XP 设置其网络类型为 Customize --> VMnet2:

研究:RIP协议在Linux等多系统平台中的应用

并将其默认网关设置为 192.168.10.2,指向 Windows Server 2003 的 VMnet2 接口.#p#

研究:RIP协议在Linux等多系统平台中的应用

再来设置 Windows Server 2003,它上边共有 2 块网卡,一块网卡接入 VMnet2 网络,其地址设置为 192.168.10.2,而另外一块网卡接入 VMnet8 网络,地址设置为 192.168.246.20,千万注意,一定不要把 IP 地址和网络的对应关系搞反了:

研究:RIP协议在Linux等多系统平台中的应用#p#

现在设置Linux上的网卡,Linux上有 2 块网卡,一块接入 VMnet8 网络,另一块接入 VMnet1 网络,VMnet8 网络接口的网卡 IP 地址设置为 192.168.246.10,而接入 VMnet1 网络的网卡 IP 地址设置为 172.16.0.1.其中 eth0 是接入到 VMnet8 网络的,而 eth1 是接入到 VMnet1 网络的.这是用 SSH 客户端连接到Linux上看到的:

研究:RIP协议在Linux等多系统平台中的应用

如果要修改 IP 地址,可以到 /etc/sysconfig/network-scripts/下边修改 ifcfg-eth0,ifcfg-eth1 两个脚本,同样,修改时也要注意不要改错了,修改完之后可以使用 service network restart 命令来重新启动网卡,使设置生效.(注:我使用的是 Redhat Linux 9,其他的Linux平台的实现可能有所不同).

最后,设置 Windows 2000 IP 地址为172.16.0.20,2000 上边只有一个接口,连接到 VMnet1 网络,并且把默认网关设置为 172.16.0.1(注:我的这个 2000 上边有 2 块网卡,有一块是 NAT 网络接入的,但是我已经把它断开了,相当于没有这块网卡)

研究:RIP协议在Linux等多系统平台中的应用#p#

OK,第一步,网络设置完成了.现在开始配置两台路由器(Windows Server 2003、Linux),Windows 2003 的路由配置为:打开 "控制面板",找到"管理工具",然后找到" Route and Remote Access",在左边的列表中,找到 Windows Server 2003 这台主机(我的主机名是 "DC"),右键单击它,然后选择 "Config and Enable Routing and Remote Access":

研究:RIP协议在Linux等多系统平台中的应用

然后选择 "Next",在 "Configuration" 中选择 "Custom configuration",然后选择 "LAN Routing",接着按 "Next" 就结束配置了,如下图:

研究:RIP协议在Linux等多系统平台中的应用

完成后的界面:

研究:RIP协议在Linux等多系统平台中的应用#p#

当然,仅仅这么配置是不可以的,还得让 Windows Server 2003 运行路由协议,这样才能成为一台真正的路由器,在左边的树形中右键单击 "IP routing" 中的 "General",然后选择 "New Routing Protocol...":

研究:RIP协议在Linux等多系统平台中的应用

然后是选择路由协议,这里当然选择 "RIP Version 2 for Internet Protocol",这时候,在左边已经看到了RIP协议了,但是此时虽然运行了RIP协议,但并没有把该网络通告出来,还需要在这里添加 2 个接口:VMnet2 接口和 VMnet8 接口,首先添加 VMnet2:

研究:RIP协议在Linux等多系统平台中的应用#p#

这时候出现了协议属性的设置:

研究:RIP协议在Linux等多系统平台中的应用

其实都用默认的就可以了,因为都是 RFC 规定好的,不必要修改,只有一个"Incoming packet protocol",修改为 "RIP Version 2 only",因为这里只想运行纯粹的 RIPv2,所以没有必要接受 RIPv1 的广播数据.

重复此动作,可把 2 个网络接口都通告进来,这样的话,通过路由协议,将来Linux就可以学习到 VMnet2 中的路由了.

OK,现在 Windows Server 2003 就设置好了,那么现在来设置 Linux,需要一个路由组件:zebra,可在www.zebra.org下载最新版本,RedhatLinux9 在默认安装的时候,是安装有这个路由组件的,只需要做些简单的配置就可以了.

下载之后,使用命令 tar -zvxf zebra-0.94.tar.gz 将其解压缩,然后进入 zebra-0.94 目录,分别使用命令:

  1. ./configure  
  2. make  
  3. make install 

就可以完成软件的默认安装,该软件的可执行文件安装在 /usr/local/sbin 目录下,分别是"bgpd","ospfd","ripd","zebra",而该软件的配置文件位于 /usr/local/etc 目录下,分别为 "bgpd.conf.sample","ospfd.conf.sample","ripd.conf.sample","zebra.conf.sample",然后进入这个目录,分别用命令:#p#

  1. cp bgpd.conf.sample bgpd.conf  
  2. cp ospfd.conf.sample ospfd.conf  
  3. cp ripd.conf.sample ripd.conf  
  4. cp zebra.conf.sample zebra.conf 

这里的几个RIP协议的配置文件只是一个样本,将来不会用到的,但是为了安全起见,还是保留它们,再复制一份出来,并把 .sample 后缀去掉,这个很重要,否则将来启动程序的时候,是找不到配置文件的,这样的话就启动不了程序.然后看一下这个目录中的 zebra.conf 文件,里边是路由的一些配置,主要看的是 2 个东西:

  1. password zebra  
  2. enable password zebra 

这里分别是2个密码,因为 zebra 运行之后是模拟了一个 cisco 路由器出来,所以这里的这个就相当于它的 startup-config 文件,默认的 telnet 密码和 enable 密码都是 zebra,在这里不需要修改什么,记着这么一个东西就好了.

然后,为了启动方便起见,在 /usr/local/sbin 目录下建立一个脚本文件:

  1. #!/bin/bash  
  2. cd /usr/local/sbin  
  3. ./bgpd -d  
  4. ./ospfd -d  
  5. ./ripd -d  
  6. ./zebra -d 

参数 -d 是以 demon 的方式启动(后台),运行该脚本,这样的话,这个路由器模拟程序就运行起来了,现在用 netstat -an看一下有没有运行:

研究:RIP协议在Linux等多系统平台中的应用

如果该程序正确地运行了,那么会监听 2601、2602、2604、2605 这几个 TCP 端口,稍后就会用到这几个端口.#p#

现在在Linux上使用命令:

  1. telnet 127.0.0.1 2601 

登录到该"路由器",可以看到它的界面:

研究:RIP协议在Linux等多系统平台中的应用

当进行telnet时,它会提示:

  1. User Access Verification 

输入 telnet密码(默认为 "zebra"),成功之后,再进入特权模式,使用 enable 命令,并输入 enable 密码(默认为 "zebra")

成功之后,应该可以看到:

  1. Router# 

怎么样,很像 cisco 路由器吧.现在在这个端口的 telnet 不能开启路由协议,只能做一些简单的设置,现在只配 2 个 IP 地址即可.

分别使用命令:

  1. Router#config terminal  
  2. Router(config)#int e0  
  3. Router(config-if)#ip add 192.168.246.10/24  
  4. Router(config-if)#exit  
  5. Router(config)#int e1  
  6. Router(config-if)#ip add 172.16.0.1/24  
  7. Router(config-if)#end 

注意,这里的 e0 和 e1 的接口地址要和在Linux中使用 ifconfig 看到的 IP 地址一致.#p#

然后,注意别忘记保存,使用命令:

  1. copy run start 

然后使用 exit 命令退出,再来 telnet 2602 端口:

  1. telnet 127.0.0.1 2601 

输入同样的密码,就可以进入该路由器的特权模式了, 然后,使用简单的几条命令,分别通告 2 个网络:

  1. ripd#config t  
  2. ripd(config)#router rip  
  3. ripd(config-router)#network 192.168.246.0/24  
  4. ripd(config-router)#network 172.16.0.0/16  
  5. ripd(config-router)#end  
  6. ripd#copy run start 

然后,退出路由器配置模式,已经配置好了.

OK,所有的配置都已经 over 了,现在来看一下这 2 个路由器是否能够正确运行了,由于这 2 个路由器都连接在 VMnet8 网络中,那么我在 Host 上抓取 VMnet8 下的数据包,应该可以看到 RIPv2 的组播更新,协议分析器为 Sniffer Portable:

研究:RIP协议在Linux等多系统平台中的应用

而且,在 Windows Server 2003 上边,也已经可以看到它的RIP协议的邻居了:

研究:RIP协议在Linux等多系统平台中的应用#p#

现在来验证一下,从 XP 上 tracert 172.16.0.20:

研究:RIP协议在Linux等多系统平台中的应用

再从 2000 上 tracert 192.168.10.10:

研究:RIP协议在Linux等多系统平台中的应用

OK,路由都是通的,证明路由器工作正常,至此,实验完全结束.

RIP协议参考资料:

zebra 配置:

http://www.myfaq.com.cn/2005September/2005-09-13/202094.html

http://bbs.linuxsky.net/thread-2148-1-1.html

资源:

RFC2453:

http://www.faqs.org/rfcs/rfc2453.html

责任编辑:佟健 来源: QQread
相关推荐

2010-08-06 10:49:46

RIP路由

2009-12-15 14:29:54

RIP路由协议

2022-09-05 16:05:58

Freeswitch开源

2010-07-05 16:25:13

IPX SPX协议

2010-08-06 09:51:42

RIP路由协议

2010-05-14 14:07:38

VMwareXen

2018-04-19 10:39:45

大数据资源控制大数据平台

2010-08-06 13:53:12

RIP协议

2010-09-10 13:28:53

配置双协议栈嵌入式

2010-05-20 13:30:26

MySQL代码

2011-09-05 15:09:06

Android平台Phonegap

2010-08-05 17:43:27

RIP协议

2010-06-10 13:37:44

RIP协议

2010-07-30 14:31:20

RIP协议

2009-06-22 15:39:45

JSFGlassFish管理

2010-10-09 15:40:19

CookieJ2ME

2010-08-06 09:17:37

RIP路由协议

2010-06-10 13:18:31

RIP协议

2010-08-06 12:12:56

RIP协议

2010-01-06 14:29:03

Linux操作系统
点赞
收藏

51CTO技术栈公众号