Annotation of embedaddon/quagga/doc/ripd.texi, revision 1.1
1.1 ! misho 1: @c -*-texinfo-*-
! 2: @c This is part of the Quagga Manual.
! 3: @c @value{COPYRIGHT_STR}
! 4: @c See file quagga.texi for copying conditions.
! 5: @node RIP
! 6: @chapter RIP
! 7:
! 8: RIP -- Routing Information Protocol is widely deployed interior gateway
! 9: protocol. RIP was developed in the 1970s at Xerox Labs as part of the
! 10: XNS routing protocol. RIP is a @dfn{distance-vector} protocol and is
! 11: based on the @dfn{Bellman-Ford} algorithms. As a distance-vector
! 12: protocol, RIP router send updates to its neighbors periodically, thus
! 13: allowing the convergence to a known topology. In each update, the
! 14: distance to any given network will be broadcasted to its neighboring
! 15: router.
! 16:
! 17: @command{ripd} supports RIP version 2 as described in RFC2453 and RIP
! 18: version 1 as described in RFC1058.
! 19:
! 20: @menu
! 21: * Starting and Stopping ripd::
! 22: * RIP Configuration::
! 23: * RIP Version Control::
! 24: * How to Announce RIP route::
! 25: * Filtering RIP Routes::
! 26: * RIP Metric Manipulation::
! 27: * RIP distance::
! 28: * RIP route-map::
! 29: * RIP Authentication::
! 30: * RIP Timers::
! 31: * Show RIP Information::
! 32: * RIP Debug Commands::
! 33: @end menu
! 34:
! 35: @node Starting and Stopping ripd
! 36: @section Starting and Stopping ripd
! 37:
! 38: The default configuration file name of @command{ripd}'s is
! 39: @file{ripd.conf}. When invocation @command{ripd} searches directory
! 40: @value{INSTALL_PREFIX_ETC}. If @file{ripd.conf} is not there next
! 41: search current directory.
! 42:
! 43: RIP uses UDP port 520 to send and receive RIP packets. So the user must have
! 44: the capability to bind the port, generally this means that the user must
! 45: have superuser privileges. RIP protocol requires interface information
! 46: maintained by @command{zebra} daemon. So running @command{zebra}
! 47: is mandatory to run @command{ripd}. Thus minimum sequence for running
! 48: RIP is like below:
! 49:
! 50: @example
! 51: @group
! 52: # zebra -d
! 53: # ripd -d
! 54: @end group
! 55: @end example
! 56:
! 57: Please note that @command{zebra} must be invoked before @command{ripd}.
! 58:
! 59: To stop @command{ripd}. Please use @command{kill `cat
! 60: /var/run/ripd.pid`}. Certain signals have special meaningss to @command{ripd}.
! 61:
! 62: @table @samp
! 63: @item SIGHUP
! 64: Reload configuration file @file{ripd.conf}. All configurations are
! 65: reseted. All routes learned so far are cleared and removed from routing
! 66: table.
! 67: @item SIGUSR1
! 68: Rotate @command{ripd} logfile.
! 69: @item SIGINT
! 70: @itemx SIGTERM
! 71: @command{ripd} sweeps all installed RIP routes then terminates properly.
! 72: @end table
! 73:
! 74: @command{ripd} invocation options. Common options that can be specified
! 75: (@pxref{Common Invocation Options}).
! 76:
! 77: @table @samp
! 78: @item -r
! 79: @itemx --retain
! 80: When the program terminates, retain routes added by @command{ripd}.
! 81: @end table
! 82:
! 83: @menu
! 84: * RIP netmask::
! 85: @end menu
! 86:
! 87: @node RIP netmask
! 88: @subsection RIP netmask
! 89:
! 90: The netmask features of @command{ripd} support both version 1 and version 2 of
! 91: RIP. Version 1 of RIP originally contained no netmask information. In
! 92: RIP version 1, network classes were originally used to determine the
! 93: size of the netmask. Class A networks use 8 bits of mask, Class B
! 94: networks use 16 bits of masks, while Class C networks use 24 bits of
! 95: mask. Today, the most widely used method of a network mask is assigned
! 96: to the packet on the basis of the interface that received the packet.
! 97: Version 2 of RIP supports a variable length subnet mask (VLSM). By
! 98: extending the subnet mask, the mask can be divided and reused. Each
! 99: subnet can be used for different purposes such as large to middle size
! 100: LANs and WAN links. Quagga @command{ripd} does not support the non-sequential
! 101: netmasks that are included in RIP Version 2.
! 102:
! 103: In a case of similar information with the same prefix and metric, the
! 104: old information will be suppressed. Ripd does not currently support
! 105: equal cost multipath routing.
! 106:
! 107:
! 108: @node RIP Configuration
! 109: @section RIP Configuration
! 110:
! 111: @deffn Command {router rip} {}
! 112: The @code{router rip} command is necessary to enable RIP. To disable
! 113: RIP, use the @code{no router rip} command. RIP must be enabled before
! 114: carrying out any of the RIP commands.
! 115: @end deffn
! 116:
! 117: @deffn Command {no router rip} {}
! 118: Disable RIP.
! 119: @end deffn
! 120:
! 121: @deffn {RIP Command} {network @var{network}} {}
! 122: @deffnx {RIP Command} {no network @var{network}} {}
! 123: Set the RIP enable interface by @var{network}. The interfaces which
! 124: have addresses matching with @var{network} are enabled.
! 125:
! 126: This group of commands either enables or disables RIP interfaces between
! 127: certain numbers of a specified network address. For example, if the
! 128: network for 10.0.0.0/24 is RIP enabled, this would result in all the
! 129: addresses from 10.0.0.0 to 10.0.0.255 being enabled for RIP. The @code{no
! 130: network} command will disable RIP for the specified network.
! 131: @end deffn
! 132:
! 133: @deffn {RIP Command} {network @var{ifname}} {}
! 134: @deffnx {RIP Command} {no network @var{ifname}} {}
! 135: Set a RIP enabled interface by @var{ifname}. Both the sending and
! 136: receiving of RIP packets will be enabled on the port specified in the
! 137: @code{network ifname} command. The @code{no network ifname} command will disable
! 138: RIP on the specified interface.
! 139: @end deffn
! 140:
! 141: @deffn {RIP Command} {neighbor @var{a.b.c.d}} {}
! 142: @deffnx {RIP Command} {no neighbor @var{a.b.c.d}} {}
! 143: Specify RIP neighbor. When a neighbor doesn't understand multicast,
! 144: this command is used to specify neighbors. In some cases, not all
! 145: routers will be able to understand multicasting, where packets are sent
! 146: to a network or a group of addresses. In a situation where a neighbor
! 147: cannot process multicast packets, it is necessary to establish a direct
! 148: link between routers. The neighbor command allows the network
! 149: administrator to specify a router as a RIP neighbor. The @code{no
! 150: neighbor a.b.c.d} command will disable the RIP neighbor.
! 151: @end deffn
! 152:
! 153: Below is very simple RIP configuration. Interface @code{eth0} and
! 154: interface which address match to @code{10.0.0.0/8} are RIP enabled.
! 155:
! 156: @example
! 157: @group
! 158: !
! 159: router rip
! 160: network 10.0.0.0/8
! 161: network eth0
! 162: !
! 163: @end group
! 164: @end example
! 165:
! 166: Passive interface
! 167:
! 168: @deffn {RIP command} {passive-interface (@var{IFNAME}|default)} {}
! 169: @deffnx {RIP command} {no passive-interface @var{IFNAME}} {}
! 170: This command sets the specified interface to passive mode. On passive mode
! 171: interface, all receiving packets are processed as normal and ripd does
! 172: not send either multicast or unicast RIP packets except to RIP neighbors
! 173: specified with @code{neighbor} command. The interface may be specified
! 174: as @var{default} to make ripd default to passive on all interfaces.
! 175:
! 176: The default is to be passive on all interfaces.
! 177: @end deffn
! 178:
! 179: RIP split-horizon
! 180:
! 181: @deffn {Interface command} {ip split-horizon} {}
! 182: @deffnx {Interface command} {no ip split-horizon} {}
! 183: Control split-horizon on the interface. Default is @code{ip
! 184: split-horizon}. If you don't perform split-horizon on the interface,
! 185: please specify @code{no ip split-horizon}.
! 186: @end deffn
! 187:
! 188: @node RIP Version Control
! 189: @section RIP Version Control
! 190:
! 191: RIP can be configured to send either Version 1 or Version 2 packets.
! 192: The default is to send RIPv2 while accepting both RIPv1 and RIPv2 (and
! 193: replying with packets of the appropriate version for REQUESTS /
! 194: triggered updates). The version to receive and send can be specified
! 195: globally, and further overriden on a per-interface basis if needs be
! 196: for send and receive seperately (see below).
! 197:
! 198: It is important to note that RIPv1 can not be authenticated. Further,
! 199: if RIPv1 is enabled then RIP will reply to REQUEST packets, sending the
! 200: state of its RIP routing table to any remote routers that ask on
! 201: demand. For a more detailed discussion on the security implications of
! 202: RIPv1 see @ref{RIP Authentication}.
! 203:
! 204: @deffn {RIP Command} {version @var{version}} {}
! 205: Set RIP version to accept for reads and send. @var{version}
! 206: can be either `1'' or `2''.
! 207:
! 208: Disabling RIPv1 by specifying version 2 is STRONGLY encouraged,
! 209: @xref{RIP Authentication}. This may become the default in a future
! 210: release.
! 211:
! 212: Default: Send Version 2, and accept either version.
! 213: @end deffn
! 214:
! 215: @deffn {RIP Command} {no version} {}
! 216: Reset the global version setting back to the default.
! 217: @end deffn
! 218:
! 219: @deffn {Interface command} {ip rip send version @var{version}} {}
! 220: @var{version} can be `1', `2' or `1 2'.
! 221:
! 222: This interface command overrides the global rip version setting, and
! 223: selects which version of RIP to send packets with, for this interface
! 224: specifically. Choice of RIP Version 1, RIP Version 2, or both versions.
! 225: In the latter case, where `1 2' is specified, packets will be both
! 226: broadcast and multicast.
! 227:
! 228: Default: Send packets according to the global version (version 2)
! 229: @end deffn
! 230:
! 231: @deffn {Interface command} {ip rip receive version @var{version}} {}
! 232: @var{version} can be `1', `2' or `1 2'.
! 233:
! 234: This interface command overrides the global rip version setting, and
! 235: selects which versions of RIP packets will be accepted on this
! 236: interface. Choice of RIP Version 1, RIP Version 2, or both.
! 237:
! 238: Default: Accept packets according to the global setting (both 1 and 2).
! 239: @end deffn
! 240:
! 241: @node How to Announce RIP route
! 242: @section How to Announce RIP route
! 243:
! 244: @deffn {RIP command} {redistribute kernel} {}
! 245: @deffnx {RIP command} {redistribute kernel metric <0-16>} {}
! 246: @deffnx {RIP command} {redistribute kernel route-map @var{route-map}} {}
! 247: @deffnx {RIP command} {no redistribute kernel} {}
! 248: @code{redistribute kernel} redistributes routing information from
! 249: kernel route entries into the RIP tables. @code{no redistribute kernel}
! 250: disables the routes.
! 251: @end deffn
! 252:
! 253: @deffn {RIP command} {redistribute static} {}
! 254: @deffnx {RIP command} {redistribute static metric <0-16>} {}
! 255: @deffnx {RIP command} {redistribute static route-map @var{route-map}} {}
! 256: @deffnx {RIP command} {no redistribute static} {}
! 257: @code{redistribute static} redistributes routing information from
! 258: static route entries into the RIP tables. @code{no redistribute static}
! 259: disables the routes.
! 260: @end deffn
! 261:
! 262: @deffn {RIP command} {redistribute connected} {}
! 263: @deffnx {RIP command} {redistribute connected metric <0-16>} {}
! 264: @deffnx {RIP command} {redistribute connected route-map @var{route-map}} {}
! 265: @deffnx {RIP command} {no redistribute connected} {}
! 266: Redistribute connected routes into the RIP tables. @code{no
! 267: redistribute connected} disables the connected routes in the RIP tables.
! 268: This command redistribute connected of the interface which RIP disabled.
! 269: The connected route on RIP enabled interface is announced by default.
! 270: @end deffn
! 271:
! 272: @deffn {RIP command} {redistribute ospf} {}
! 273: @deffnx {RIP command} {redistribute ospf metric <0-16>} {}
! 274: @deffnx {RIP command} {redistribute ospf route-map @var{route-map}} {}
! 275: @deffnx {RIP command} {no redistribute ospf} {}
! 276: @code{redistribute ospf} redistributes routing information from
! 277: ospf route entries into the RIP tables. @code{no redistribute ospf}
! 278: disables the routes.
! 279: @end deffn
! 280:
! 281: @deffn {RIP command} {redistribute bgp} {}
! 282: @deffnx {RIP command} {redistribute bgp metric <0-16>} {}
! 283: @deffnx {RIP command} {redistribute bgp route-map @var{route-map}} {}
! 284: @deffnx {RIP command} {no redistribute bgp} {}
! 285: @code{redistribute bgp} redistributes routing information from
! 286: bgp route entries into the RIP tables. @code{no redistribute bgp}
! 287: disables the routes.
! 288: @end deffn
! 289:
! 290: If you want to specify RIP only static routes:
! 291:
! 292: @deffn {RIP command} {default-information originate} {}
! 293: @end deffn
! 294:
! 295: @deffn {RIP command} {route @var{a.b.c.d/m}} {}
! 296: @deffnx {RIP command} {no route @var{a.b.c.d/m}} {}
! 297: This command is specific to Quagga. The @code{route} command makes a static
! 298: route only inside RIP. This command should be used only by advanced
! 299: users who are particularly knowledgeable about the RIP protocol. In
! 300: most cases, we recommend creating a static route in Quagga and
! 301: redistributing it in RIP using @code{redistribute static}.
! 302: @end deffn
! 303:
! 304: @node Filtering RIP Routes
! 305: @section Filtering RIP Routes
! 306:
! 307: RIP routes can be filtered by a distribute-list.
! 308:
! 309: @deffn Command {distribute-list @var{access_list} @var{direct} @var{ifname}} {}
! 310: You can apply access lists to the interface with a @code{distribute-list}
! 311: command. @var{access_list} is the access list name. @var{direct} is
! 312: @samp{in} or @samp{out}. If @var{direct} is @samp{in} the access list
! 313: is applied to input packets.
! 314:
! 315: The @code{distribute-list} command can be used to filter the RIP path.
! 316: @code{distribute-list} can apply access-lists to a chosen interface.
! 317: First, one should specify the access-list. Next, the name of the
! 318: access-list is used in the distribute-list command. For example, in the
! 319: following configuration @samp{eth0} will permit only the paths that
! 320: match the route 10.0.0.0/8
! 321:
! 322: @example
! 323: @group
! 324: !
! 325: router rip
! 326: distribute-list private in eth0
! 327: !
! 328: access-list private permit 10 10.0.0.0/8
! 329: access-list private deny any
! 330: !
! 331: @end group
! 332: @end example
! 333: @end deffn
! 334:
! 335: @code{distribute-list} can be applied to both incoming and outgoing data.
! 336:
! 337: @deffn Command {distribute-list prefix @var{prefix_list} (in|out) @var{ifname}} {}
! 338: You can apply prefix lists to the interface with a
! 339: @code{distribute-list} command. @var{prefix_list} is the prefix list
! 340: name. Next is the direction of @samp{in} or @samp{out}. If
! 341: @var{direct} is @samp{in} the access list is applied to input packets.
! 342: @end deffn
! 343:
! 344: @node RIP Metric Manipulation
! 345: @section RIP Metric Manipulation
! 346:
! 347: RIP metric is a value for distance for the network. Usually
! 348: @command{ripd} increment the metric when the network information is
! 349: received. Redistributed routes' metric is set to 1.
! 350:
! 351: @deffn {RIP command} {default-metric <1-16>} {}
! 352: @deffnx {RIP command} {no default-metric <1-16>} {}
! 353: This command modifies the default metric value for redistributed routes. The
! 354: default value is 1. This command does not affect connected route
! 355: even if it is redistributed by @command{redistribute connected}. To modify
! 356: connected route's metric value, please use @command{redistribute
! 357: connected metric} or @command{route-map}. @command{offset-list} also
! 358: affects connected routes.
! 359: @end deffn
! 360:
! 361: @deffn {RIP command} {offset-list @var{access-list} (in|out)} {}
! 362: @deffnx {RIP command} {offset-list @var{access-list} (in|out) @var{ifname}} {}
! 363: @end deffn
! 364:
! 365: @node RIP distance
! 366: @section RIP distance
! 367:
! 368: Distance value is used in zebra daemon. Default RIP distance is 120.
! 369:
! 370: @deffn {RIP command} {distance <1-255>} {}
! 371: @deffnx {RIP command} {no distance <1-255>} {}
! 372: Set default RIP distance to specified value.
! 373: @end deffn
! 374:
! 375: @deffn {RIP command} {distance <1-255> @var{A.B.C.D/M}} {}
! 376: @deffnx {RIP command} {no distance <1-255> @var{A.B.C.D/M}} {}
! 377: Set default RIP distance to specified value when the route's source IP
! 378: address matches the specified prefix.
! 379: @end deffn
! 380:
! 381: @deffn {RIP command} {distance <1-255> @var{A.B.C.D/M} @var{access-list}} {}
! 382: @deffnx {RIP command} {no distance <1-255> @var{A.B.C.D/M} @var{access-list}} {}
! 383: Set default RIP distance to specified value when the route's source IP
! 384: address matches the specified prefix and the specified access-list.
! 385: @end deffn
! 386:
! 387: @node RIP route-map
! 388: @section RIP route-map
! 389:
! 390: Usage of @command{ripd}'s route-map support.
! 391:
! 392: Optional argument route-map MAP_NAME can be added to each @code{redistribute}
! 393: statement.
! 394:
! 395: @example
! 396: redistribute static [route-map MAP_NAME]
! 397: redistribute connected [route-map MAP_NAME]
! 398: .....
! 399: @end example
! 400:
! 401: Cisco applies route-map _before_ routes will exported to rip route table.
! 402: In current Quagga's test implementation, @command{ripd} applies route-map
! 403: after routes are listed in the route table and before routes will be
! 404: announced to an interface (something like output filter). I think it is not
! 405: so clear, but it is draft and it may be changed at future.
! 406:
! 407: Route-map statement (@pxref{Route Map}) is needed to use route-map
! 408: functionality.
! 409:
! 410: @deffn {Route Map} {match interface @var{word}} {}
! 411: This command match to incoming interface. Notation of this match is
! 412: different from Cisco. Cisco uses a list of interfaces - NAME1 NAME2
! 413: ... NAMEN. Ripd allows only one name (maybe will change in the
! 414: future). Next - Cisco means interface which includes next-hop of
! 415: routes (it is somewhat similar to "ip next-hop" statement). Ripd
! 416: means interface where this route will be sent. This difference is
! 417: because "next-hop" of same routes which sends to different interfaces
! 418: must be different. Maybe it'd be better to made new matches - say
! 419: "match interface-out NAME" or something like that.
! 420: @end deffn
! 421:
! 422: @deffn {Route Map} {match ip address @var{word}} {}
! 423: @deffnx {Route Map} {match ip address prefix-list @var{word}} {}
! 424: Match if route destination is permitted by access-list.
! 425: @end deffn
! 426:
! 427: @deffn {Route Map} {match ip next-hop A.B.C.D} {}
! 428: Cisco uses here <access-list>, @command{ripd} IPv4 address. Match if
! 429: route has this next-hop (meaning next-hop listed in the rip route
! 430: table - "show ip rip")
! 431: @end deffn
! 432:
! 433: @deffn {Route Map} {match metric <0-4294967295>} {}
! 434: This command match to the metric value of RIP updates. For other
! 435: protocol compatibility metric range is shown as <0-4294967295>. But
! 436: for RIP protocol only the value range <0-16> make sense.
! 437: @end deffn
! 438:
! 439: @deffn {Route Map} {set ip next-hop A.B.C.D} {}
! 440: This command set next hop value in RIPv2 protocol. This command does
! 441: not affect RIPv1 because there is no next hop field in the packet.
! 442: @end deffn
! 443:
! 444: @deffn {Route Map} {set metric <0-4294967295>} {}
! 445: Set a metric for matched route when sending announcement. The metric
! 446: value range is very large for compatibility with other protocols. For
! 447: RIP, valid metric values are from 1 to 16.
! 448: @end deffn
! 449:
! 450: @node RIP Authentication
! 451: @section RIP Authentication
! 452:
! 453: RIPv2 allows packets to be authenticated via either an insecure plain
! 454: text password, included with the packet, or via a more secure MD5 based
! 455: @acronym{HMAC, keyed-Hashing for Message AuthentiCation},
! 456: RIPv1 can not be authenticated at all, thus when authentication is
! 457: configured @code{ripd} will discard routing updates received via RIPv1
! 458: packets.
! 459:
! 460: However, unless RIPv1 reception is disabled entirely,
! 461: @xref{RIP Version Control}, RIPv1 REQUEST packets which are received,
! 462: which query the router for routing information, will still be honoured
! 463: by @code{ripd}, and @code{ripd} WILL reply to such packets. This allows
! 464: @code{ripd} to honour such REQUESTs (which sometimes is used by old
! 465: equipment and very simple devices to bootstrap their default route),
! 466: while still providing security for route updates which are received.
! 467:
! 468: In short: Enabling authentication prevents routes being updated by
! 469: unauthenticated remote routers, but still can allow routes (I.e. the
! 470: entire RIP routing table) to be queried remotely, potentially by anyone
! 471: on the internet, via RIPv1.
! 472:
! 473: To prevent such unauthenticated querying of routes disable RIPv1,
! 474: @xref{RIP Version Control}.
! 475:
! 476: @deffn {Interface command} {ip rip authentication mode md5} {}
! 477: @deffnx {Interface command} {no ip rip authentication mode md5} {}
! 478: Set the interface with RIPv2 MD5 authentication.
! 479: @end deffn
! 480:
! 481: @deffn {Interface command} {ip rip authentication mode text} {}
! 482: @deffnx {Interface command} {no ip rip authentication mode text} {}
! 483: Set the interface with RIPv2 simple password authentication.
! 484: @end deffn
! 485:
! 486: @deffn {Interface command} {ip rip authentication string @var{string}} {}
! 487: @deffnx {Interface command} {no ip rip authentication string @var{string}} {}
! 488: RIP version 2 has simple text authentication. This command sets
! 489: authentication string. The string must be shorter than 16 characters.
! 490: @end deffn
! 491:
! 492: @deffn {Interface command} {ip rip authentication key-chain @var{key-chain}} {}
! 493: @deffnx {Interface command} {no ip rip authentication key-chain @var{key-chain}} {}
! 494: Specifiy Keyed MD5 chain.
! 495: @end deffn
! 496:
! 497: @example
! 498: !
! 499: key chain test
! 500: key 1
! 501: key-string test
! 502: !
! 503: interface eth1
! 504: ip rip authentication mode md5
! 505: ip rip authentication key-chain test
! 506: !
! 507: @end example
! 508:
! 509: @node RIP Timers
! 510: @section RIP Timers
! 511:
! 512: @deffn {RIP command} {timers basic @var{update} @var{timeout} @var{garbage}} {}
! 513:
! 514: RIP protocol has several timers. User can configure those timers' values
! 515: by @code{timers basic} command.
! 516:
! 517: The default settings for the timers are as follows:
! 518:
! 519: @itemize @bullet
! 520: @item
! 521: The update timer is 30 seconds. Every update timer seconds, the RIP
! 522: process is awakened to send an unsolicited Response message containing
! 523: the complete routing table to all neighboring RIP routers.
! 524:
! 525: @item
! 526: The timeout timer is 180 seconds. Upon expiration of the timeout, the
! 527: route is no longer valid; however, it is retained in the routing table
! 528: for a short time so that neighbors can be notified that the route has
! 529: been dropped.
! 530:
! 531: @item
! 532: The garbage collect timer is 120 seconds. Upon expiration of the
! 533: garbage-collection timer, the route is finally removed from the routing
! 534: table.
! 535:
! 536: @end itemize
! 537:
! 538: The @code{timers basic} command allows the the default values of the timers
! 539: listed above to be changed.
! 540: @end deffn
! 541:
! 542: @deffn {RIP command} {no timers basic} {}
! 543: The @code{no timers basic} command will reset the timers to the default
! 544: settings listed above.
! 545: @end deffn
! 546:
! 547: @node Show RIP Information
! 548: @section Show RIP Information
! 549:
! 550: To display RIP routes.
! 551:
! 552: @deffn Command {show ip rip} {}
! 553: Show RIP routes.
! 554: @end deffn
! 555:
! 556: The command displays all RIP routes. For routes that are received
! 557: through RIP, this command will display the time the packet was sent and
! 558: the tag information. This command will also display this information
! 559: for routes redistributed into RIP.
! 560:
! 561: @c Exmaple here.
! 562:
! 563: @deffn Command {show ip protocols} {}
! 564: The command displays current RIP status. It includes RIP timer,
! 565: filtering, version, RIP enabled interface and RIP peer inforation.
! 566: @end deffn
! 567:
! 568: @example
! 569: @group
! 570: ripd> @b{show ip protocols}
! 571: Routing Protocol is "rip"
! 572: Sending updates every 30 seconds with +/-50%, next due in 35 seconds
! 573: Timeout after 180 seconds, garbage collect after 120 seconds
! 574: Outgoing update filter list for all interface is not set
! 575: Incoming update filter list for all interface is not set
! 576: Default redistribution metric is 1
! 577: Redistributing: kernel connected
! 578: Default version control: send version 2, receive version 2
! 579: Interface Send Recv
! 580: Routing for Networks:
! 581: eth0
! 582: eth1
! 583: 1.1.1.1
! 584: 203.181.89.241
! 585: Routing Information Sources:
! 586: Gateway BadPackets BadRoutes Distance Last Update
! 587: @end group
! 588: @end example
! 589:
! 590: @node RIP Debug Commands
! 591: @section RIP Debug Commands
! 592:
! 593: Debug for RIP protocol.
! 594:
! 595: @deffn Command {debug rip events} {}
! 596: Debug rip events.
! 597: @end deffn
! 598:
! 599: @code{debug rip} will show RIP events. Sending and receiving
! 600: packets, timers, and changes in interfaces are events shown with @command{ripd}.
! 601:
! 602: @deffn Command {debug rip packet} {}
! 603: Debug rip packet.
! 604: @end deffn
! 605:
! 606: @code{debug rip packet} will display detailed information about the RIP
! 607: packets. The origin and port number of the packet as well as a packet
! 608: dump is shown.
! 609:
! 610: @deffn Command {debug rip zebra} {}
! 611: Debug rip between zebra communication.
! 612: @end deffn
! 613:
! 614: This command will show the communication between @command{ripd} and
! 615: @command{zebra}. The main information will include addition and deletion of
! 616: paths to the kernel and the sending and receiving of interface information.
! 617:
! 618: @deffn Command {show debugging rip} {}
! 619: Display @command{ripd}'s debugging option.
! 620: @end deffn
! 621:
! 622: @code{show debugging rip} will show all information currently set for ripd
! 623: debug.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>