`
- 浏览:
269760 次
- 性别:
- 来自:
北京
-
RIP是应用较早、使用较普遍的IGP,适用于小型同类网络,是典型的距离向量(distance-vector)协 议。RIP通过广播UDP报文来交换路由信息,每30秒发送一次路由信息更新。RIP提供跳跃计数(hop count)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的路由器的数目。如果到相同 目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。RIP最多支 持的跳数为15,即在源和目的网间所要经过的最多路由器的数目为15,跳数16表示不可达。RIPv2支持 验证、密钥管理、路由汇总、无类域间路由(CIDR)和变长子网掩码(VLSMs)。
Zebra支持RIPv2,使用ripd程序实现RIP路由功能,但ripd程序需要在zebra程序读取接口信息,所以zebra 一定要在ripd之前启动。由于条件所限,下面的RIP实验是在两台单网卡的magiclinux1.2下做的,所以只是 最简单的演示。
按照上面基本配置的方法初始化第一台机器:
shell_1> cd /usr/local/etc
shell_1> cp zebra.conf.sample zebra.conf
shell_1> cp ripd.conf.sample ripd.conf
shell_1> zebra -d
进入zebra设置IP
shell_1> telnet localhost 2601
Password:
Router> en
Password:
Router# conf t
Router(config)# hostname r1
r1(config)# int eth0
r1(config-if)# ip address 192.168.5.121/24
r1(config-if)# ctrl+z
r1# copy run start
进入第一台机器的rip设置
shell_1> ripd -d
shell_1> telnet localhost 2602
Password:
ripd> en
ripd# conf t
ripd(config)# hostname r1_ripd !改个名字好辨认
r1_ripd(config)# router rip !启动rip
r1_ripd(config-router)# network 192.168.5.0/24 !RIPv1是有类别路由协议,RIPv2是无类别路由协议,Zebra 默认支持RIPv2,指定网络需要子网掩码。
r1的RIP简单配置这样就可用了,下面来检验一下:
r1_ripd# sh ip protocols
Routing Protocol is "rip"
Sending updates every 30 seconds with +/-50%, next due in 3 seconds
Timeout after 180 seconds, garbage collect after 120 seconds
Outgoing update filter list for all interface is not set
Incoming update filter list for all interface is not set
Default redistribution metric is 1
Redistributing:
Default version control: send version 2, receive version 2
Interface Send Recv Key-chain
eth0 2 2
Routing for Networks:
192.168.5.0/24
Routing Information Sources:
Gateway BadPackets BadRoutes Distance Last Update
Distance: (default is 120)
我们看到RIP已经起来了,是RIPv2。
r1_ripd# sh ip rip
Codes: R - RIP, C - connected, O - OSPF, B - BGP
Network Next Hop Metric From Time
由于就两个接口直连,没有其它网络,所以sh ip rip看不到什么。
Zebra对log处理可能有些问题,使用log stdout不能显示各种debug信息,所以只能记录到文件,在shell下 用tail命令查看。
r1_ripd# debug rip events
r1_ripd# debug rip packet
r1_ripd(config)# log file /usr/local/etc/ripd.log
然后我们在shell下查看debug信息
shell_1> tail -f /usr/local/etc/ripd.log
--------------------------------8<---------------------------------------
2002/04/28 22:17:44 RIP: update timer fire!
2002/04/28 22:17:44 RIP: SEND UPDATE to eth0 ifindex 2
2002/04/28 22:17:44 RIP: multicast announce on eth0
2002/04/28 22:17:44 RIP: update routes on interface eth0 ifindex 2
2002/04/28 22:18:23 RIP: update timer fire!
2002/04/28 22:18:23 RIP: SEND UPDATE to eth0 ifindex 2
2002/04/28 22:18:23 RIP: multicast announce on eth0
2002/04/28 22:18:23 RIP: update routes on interface eth0 ifindex 2
2002/04/28 22:19:04 RIP: update timer fire!
2002/04/28 22:19:04 RIP: SEND UPDATE to eth0 ifindex 2
2002/04/28 22:19:04 RIP: multicast announce on eth0
2002/04/28 22:19:04 RIP: update routes on interface eth0 ifindex 2
--------------------------------8<---------------------------------------
RIP每隔30秒发送一次更新,在sh ip prot可以看到Sending updates every 30 seconds with +/-50%
第二台机器的设置
前面的初始化和第一台一样,不过这里名字设成r2便于辨认,IP设成了192.168.5.123/24。
进入第二台机器的rip设置
shell_2> ripd -d
shell_2> telnet localhost 2602
Password:
ripd> en
ripd# conf t
ripd(config)# hostname r2_ripd
r2_ripd(config)# router rip
r2_ripd(config-router)# network 192.168.5.0/24
执行完network命令,我们看到第一台机器的tail -f /usr/local/etc/ripd.log输出下面的信息:
--------------------------------8<---------------------------------------
2002/04/28 22:19:15 RIP: RECV packet from 192.168.5.123 port 520 on eth0
2002/04/28 22:19:15 RIP: RECV REQUEST version 2 packet size 24
2002/04/28 22:19:15 RIP: 0.0.0.0/0 -> 0.0.0.0 family 0 tag 0 metric 16
2002/04/28 22:19:15 RIP: update routes to neighbor 192.168.5.123
2002/04/28 22:19:35 RIP: update timer fire!
2002/04/28 22:19:35 RIP: SEND UPDATE to eth0 ifindex 2
2002/04/28 22:19:35 RIP: multicast announce on eth0
2002/04/28 22:19:35 RIP: update routes on interface eth0 ifindex 2
--------------------------------8<---------------------------------------
r1通过UDP广播接收到192.168.5.123的更新包,并且把192.168.5.123设为neighbor。
保存一下配置
r1_ripd# copy run start
Configuration saved to /usr/local/etc/ripd.conf
r2_ripd# copy run start
Configuration saved to /usr/local/etc/ripd.conf
Zebra还支持很多RIP功能,如果Filtering RIP Routes, RIP route-map, RIP Authentication等,有条件有时间 的话可以做更复杂的实验。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Zebra是一款开源的路由软件,它提供了一套完整的路由协议栈,包括RIP、OSPF、BGP等,广泛应用于网络管理和研究领域。Zebra因其高度模块化的设计、强大的功能以及友好的用户界面而受到欢迎。本文档旨在帮助读者了解...
Zebra的使用对于小型网络尤其适用,通过模拟路由器和应用路由协议(如RIP和OSPF),可以构建实验网络,进行动态路由学习和测试。这为网络工程师提供了一个经济高效的学习和实践平台,降低了网络设备的成本,同时也...
这些协议是互联网路由的基础,通过Zebra,用户可以在本地环境中进行实验,理解它们的工作原理,而无需实际的硬件设备。 在模拟路由器的过程中,Zebra提供了一个命令行接口(CLI),类似于真实的路由器配置界面。...
Zebra是日本NTT实验室开发的一个网络路由服务软件,它提供了一个实时的操作系统接口,用于管理和控制路由协议。Zebra的核心功能包括路由表的维护、路由更新的处理以及与各种路由协议(如RIP, OSPF, BGP等)的交互。...
4. **模拟和测试**:利用Zebra,可以构建虚拟环境,模拟各种网络拓扑和路由场景,进行实验和测试。 在"zebra-0.95a"这个压缩包中,包含了Zebra的特定版本,这为我们提供了一个特定时间点的软件快照,可以用来研究...
理解Quagga和Zebra的工作原理和使用方法对于网络管理员和系统集成者来说至关重要。它们允许用户在不依赖商业路由器的情况下搭建和管理复杂的网络环境,同时提供了高度的灵活性和可定制性。通过学习和实践这些开源...
- **GNU Zebra**:一款开源软件路由器项目,支持多种路由协议如RIP、OSPF等,适用于构建动态路由环境。 - **开放最短路径优先(OSPF)**:一种链路状态路由协议,用于在网络中寻找最佳路径,常用于大型企业网络或ISP...
在设置Zebra时,可以使用一个简单的配置文件,例如/etc/zebra/zebra.conf,内容包括主机名、速度、密码等基本设置。这使得Zebra的配置变得更加直观和便捷。 总的来说,利用Linux建立网络路由器不仅能够降低成本,还...
本实验的目的是使用 Quagga 在 Ubuntu 16 下进行网络路由仿真,熟悉 Quagga 的安装、配置和使用。同时,通过实验,我们可以了解路由协议的工作原理和 Quagga 的配置方法。 实验环境 实验环境包括: * 软件:Linux...
RIP使用周期性更新来传播路由信息,存在慢收敛和环路问题,但在教育和实验环境中仍然常见。 2. **OSPF(Open Shortest Path First)**:OSPF是IETF制定的链路状态路由协议,适用于大型网络。它使用Dijkstra算法计算...
在Ubuntu 16.04操作系统中,Quagga是一个开源的网络路由软件套件,用于实现路由器功能,支持多种路由协议,如OSPF(开放最短路径优先)、BGP(边界网关协议)和RIP(路由信息协议)。这个实验主要目的是让学生熟悉...
本文将详细介绍如何利用LXD容器来搭建一个路由器进行网络路由仿真,主要涉及的知识点包括LXD容器的使用、Quagga软件的安装与配置以及RIP协议的配置。 首先,LXD(Linux Container Hub)是Ubuntu项目开发的一款轻量...
最后,你可以尝试构建路由器实验,分析zebra等开源路由器软件的源码,添加额外的网卡,实现NAT、RIP等网络协议,将你的目标机转变为功能完备的路由器。 总结来说,嵌入式Linux的开发与移植涉及众多方面,包括环境...
嵌入式Linux开发与移植学习方法 ...* 尝试分析NAT RIP等协议,将你的PC板目标机,变成一台简单的路由器 嵌入式Linux的开发与移植学习方法需要一步步实践,掌握每个知识点,才能更好地理解嵌入式Linux的开发与移植。
4. **BGP**:Border Gateway Protocol(边界网关协议)是互联网上广泛使用的自治系统之间的路由协议,用于在不同的AS之间交换路由信息,是互联网的重要组成部分。 Quagga的源码特性使其适合于开发者和网络管理员...