`
biaoming
  • 浏览: 266428 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用Zebra做简单的RIP实验

阅读更多
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等,有条件有时间 的话可以做更复杂的实验。
分享到:
评论

相关推荐

    ZEBRA斑马打印机驱动 原装驱动

    ZEBRA斑马打印机驱动 原装驱动ZEBRA斑马打印机驱动 原装驱动ZEBRA斑马打印机驱动 原装驱动ZEBRA斑马打印机驱动 原装驱动ZEBRA斑马打印机驱动 原装驱动ZEBRA斑马打印机驱动 原装驱动ZEBRA斑马打印机驱动 原装驱动...

    java调用Zebra Demo

    java调用Zebra标签打印机 中英文数字条码混合标签,可自由控制格式和排版

    Zebra-ZPLIIZBI编程指南

    明,并提供了有关如何使用这些命令的示例。 ZPL 无线命令 提供适用于无线打印服务器的新增和修改后的 ZPL 命令。 ZBI 命令 提供有关 Zebra Basic Interpreter 及其命令、说 明、格式和参数的详细信息。 SGD 打印机...

    zebra的相关说明

    zebra.pdf 主要对zebra的内容进行讲解说明,可以基本让你认识使用zebra。

    zebra-vtysh简析

    简要介绍了zebra-vtysh的架构以及相关的命令实现

    BGP zebra开源代码

    基于TCP的路由协议BGP的源代码,由Zebra开源,包括OSPF,RIP,BGP等协议的具体实现。可用于基于TCP的应用层协议开发参考。尤其是VREP和RFC等标准的协议开发。

    zebra-0.94.rar

    Zebra是最先进的路由软件之一,最新版本可以从GNU Zebra Web站点上下载。 Zebra可以利用模块法对各种协议进行管理,这种设计是独一无二的。它可以根据网络的需要激活或者停止协议。到目前为止,我们发现Zebra最有用...

    linux下zebra命令行编程

    讲述的是动态路由quagga(或者说是之前的zebra)的命令行基本使用

    horse2zebra.rar

    cycleGAN使用的hore2zebra数据集

    C# 直接使用Zebra 指令控制zebra 打印机打印

    C# 直接通过zebra 指令控制斑马打印机,打印条码

    zebra条码打印机SDK开发包

    zebra条码打印机SDK开发包

    用Zebra在Linux上构建路由器实战记录

    用Zebra在Linux上构建路由器实战记录

    大众点评开源的数据库访问层中间件 Zebra.zip

    Zebra是点评内部使用的数据库访问层中间件,它具有以下的功能点:配置集中管理,动态刷新支持读写分离、分库分表丰富的监控信息在CAT上展现其中的三个组件的功能分别是:zebra-api : 最主要的访问层中间件zebra-ds-...

    斑马Zebra WIN XP 条码打印机驱动最新下载Seagull(7.1.9)

    斑马Zebra条码打印机驱动最新下载Seagull(7.1.9) Zebra 105 Zebra 105S (152 dpi) Zebra 105S (203 dpi) Zebra 105S (300 dpi) Zebra 105Se (152 dpi) Zebra 105Se (203 dpi) Zebra 105Se (300 dpi) Zebra ...

    zebra路由相关

    zebra路由相关zebra路由相关zebra路由相关zebra路由相关

    SAP中如何通过SMARTFORM 在ZEBRA 打印机打印条码

    SAP中如何通过SMARTFORM 在ZEBRA 打印机打印条码

    Zebra打印实例Delphi

    利用zebra命令打印条码的delphi实例

    zebra 源码下载

    zebra是一个经典的路由软件,是学习网络路由的的必备知识,同时也是优秀代码的典范,并且可以移植到ARM上,这里提供zebra 自发布以来的各个版本的源代码,最老的是zebra-0.91到最近的是zebra-0.95a,方便大家学习!

    Zebra驱动包安装程序

    Zebra驱动包。 Zebra驱动程序包,版本号:latest。提交时间。

    zebra

    linux系统下 zebra 源代码

Global site tag (gtag.js) - Google Analytics