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