The Routing Information Protocol (RIP) is a legendary protocol. It is a very simple distance-vector routing protocol. `ripd' supports RIP version 2 as described in RFC2453 and RIP version 1 as described in RFC1058. RIP is a "distance-vector" protocol and is based on the "Bellman-Ford" algorithms. The RIP protocol was developed in the 1970s at Xerox Labs as part of the XNS routing protocol. As a distance-vector protocol, routers running RIP will send updates to its neighbors, thus allowing the convergence to a known topology. In each update, the distance of any given router will be broadcast to its neighbor.
Menu |
---|
Invoking ripd |
ripd Configuration |
Filtering RIP Routes |
ripd route-map |
ripd Terminal Mode Commands |
ripd Debug Commands |
ripd invocation options. Common options that can be specified (See also Common Invocation Options.).
The following points are important to consider when using ripd:
The user must have the capability to bind to port 521, generally this means that it (the user) must have superuser priviliges.
The netmask features of ripd supports both version 1 and version 2 of RIP. Version 1 of RIP originally contained no netmask information. In RIP version 1, network classes were originally used to determine the size of the netmask. Class A networks use 8 bits of mask, Class B networks use 16 bits of masks, while Class C networks use 24 bits of mask. Today, the most widely used method of a network mask is assigned to the packet on the basis of the interface that received the packet. Version 2 of RIP supports a variable length subnet mask (VLSM). By extending the subnet mask, the mask can be divided and reused. Each subnet can be used for different purposes such as large to middle size LANs and WAN links. Zebra ripd does not support the non-sequential netmasks that are included in RIP Version 2.
In a case of similar information with the same prefix and metric, the
old information will be suppressed. Ripd does not currently support
equal cost multipath routing.
RIP can be configured to process either Version 1 or Version 2
packets, the default mode is Version 2. If no version is specified,
then the RIP beast will default to Version 2. In the case that RIP is
set to Version 1, the setting "Version 1" will be displayed, but the
setting "Version 2" will not be displayed whether or not Version 2 is
set explicitly as the version of RIP being used.
This group of commands either enables or disables RIP interfaces
between certain numbers of a specified network address. For
example, if the network for 10.0.0.0/24 is RIP enabled, this would
result in all the addresses from 10.0.0.0 to 10.0.0.255 being
enabled for RIP. The no network command will disable RIP for
the specified network.
The distribute-list command can be used to filter the RIP path.
distribute-list can apply access-lists to a chosen interface.
First, one should specify the access-list. Next, the name of the
access-list is used in the distribute-list command. For example,
in the following configuration eth0 will permit only the paths
that match the route 10.0.0.0/8
Usage of ripd's route-map support.
Optional argument route-map MAP-NAME is added to each redistribute
statement.
redistribute static [route-map MAP_NAME]
Cisco applies a route-map before routes will
be exported to rip route table. In current Zebra's test implementation, ripd
applies a route-map
after routes listed in the route table and before routes will be announced
to interface (something like output filter). I think it is not so clear,
but it is draft and it may be changed at future.
Route-map statement Route Map is needed to use
route-map functionality.
The command will display all RIP routes. For routes that are received
through RIP, this command will display the time the packet was sent and
the tag information. This command will also display this information
for routes redistributed into RIP.
debug rip will show RIP events. Sending and receiving packets,
timers, and changes in interfaces are events shown with ripd.
debug rip packet will display detailed information about the RIP
packets. The origin and port number of the packet as well as a packet
dump is shown.
This command will show the communication between ripd and zebra. The
main information will include addition and deletion of paths to the
kernel and the sending and receiving of interface information.
show debugging rip will show all information currently set for ripd
debug.
(C) Copyright 1999 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Free Software Foundation.
The router rip command is necessary to enable RIP. To disable
RIP, use the no router command. RIP must be enabled before
carrying out any of the commands listed below in section 6.2.
Set RIP process's version. VERSION can be 1 or 2.
RIP Command: no network NETWORK
Set the RIP enable interface by NETWORK. The interfaces which
have addresses matching with NETWORK are enabled.
RIP Command: no network IFNAME
Set a RIP enabled interface by IFNAME. Both the sending and
receiving of RIP packets will be enabled on the port specified in
the network ifname command. The "no network ifname" command will
disable RIP on the specified inferface.
RIP Command: no neigbour A.B.C.D
Specify RIP neighbor. When a neighbor doesn't understand
multicast, this command is used to specify neighbors. In some
cases, not all routers will be able to understand multicasting,
where packets are sent to a network or a group of addresses. In a
situation where a neighbor cannot process multicast routing, it is
necessary to establish a direct link between routers. The
neighbor command allows the network administrator to specify a
router as a RIP neighbor. The no neighbor A.B.C.D command will
disable the RIP neighbor.
RIP command: no redistribute static
redistribute static redistributes routing information from a
static route entry into the RIP tables. no redistribute static
disables the route.
Redistribute a connected route into the RIP tables. no
redistribute connected disables the connected routes in the RIP
tables.
RIP command: no route A.B.C.D/M
This command is specific to Zebra. The route command makes a
static route only inside RIP. This command should be used only by
advanced users who are particularly knowledgeable about the RIP
protocol. In most cases, we recommend creating a static route in
Zebra and redistributing it in RIP using `redistribute static'.
The default settings for the timers are as follows:
The timers basic command allows the the default values of the
timers listed above to be changed.
VARSION can be 1, 2, 1 2.
This configuration command
overrides the router's rip version setting. The command will
enable the selected interface to send packets with RIP Version 1,
RIP Version 2, or both. In the case of 1 2 packets will be
both broadcast and multicast.
RIP version 2 has simple text authentication. This command set authentication string. The string must be shorter than 16 charaters.
Version setting for incoming RIP packets. This command will
enable the selected interface to receive packets in RIP Version 1,
RIP Version 2, or both.
You can apply access lists to the interface with a
distribute-list command. ACCESS_LIST is the access list name.
DIRECT is in or out. If DIRECT is in the access list is
applied to input packets.
!
access-list private permit 10 10.0.0.0/8
access-list private deny any
!
distribute-list private in eth0
!
distribute-list can be applied to both incoming and outgoing data.
redistribute connected [route-map MAP_NAME]
Match if the route has this metric.
Match if route destination permitted by access-list.
Cisco uses here <access-list> ripd IPv4 address. Match if route has this
next-hop (mean next-hop listed in the rip route table -
show ip rip.
Notation of this match is differ from Cisco. Cisco uses list of interfaces -
NAME1 NAME2 ... NAMEN. Ripd allow only one name (maybe will change at future).
Next - Cisco means interface what include next-hop of routes (if it is some
similiar as ip next-hop statement).
Ripd means interface where this route will be sent. I done this differs
because next-hop of same routes that sent to different interfaces
must be different. May be it is better to make new matches - say match interface-out NAME or something like this.
Set a metric for matched route when send announce.
Set next-hop field.
Show RIP routes.
Debug rip events.
Debug rip packet.
Debug rip <-> zebra communication.
show debugging rip
Display ripd's debugging option.