]>
Commit | Line | Data |
---|---|---|
4b547606 OD |
1 | @cindex ISIS |
2 | @node ISIS | |
3 | @chapter ISIS | |
4 | ||
5 | @acronym{ISIS,Intermediate System to Intermediate System} is a routing protocol | |
6 | which is described in @cite{ISO10589, RFC1195, RFC5308}. ISIS is an | |
7 | @acronym{IGP,Interior Gateway Protocol}. Compared with @acronym{RIP}, | |
8 | @acronym{ISIS} can provide scalable network support and faster | |
9 | convergence times like @acronym{OSPF}. ISIS is widely used in large networks such as | |
10 | @acronym{ISP,Internet Service Provider} and carrier backbone networks. | |
11 | ||
12 | @menu | |
13 | * Configuring isisd:: | |
14 | * ISIS router:: | |
15 | * ISIS Timer:: | |
16 | * ISIS region:: | |
17 | * ISIS interface:: | |
18 | * Showing ISIS information:: | |
19 | * ISIS Traffic Engineering:: | |
20 | * Debugging ISIS:: | |
21 | * ISIS Configuration Examples:: | |
22 | @end menu | |
23 | ||
24 | @node Configuring isisd | |
25 | @section Configuring isisd | |
26 | ||
27 | There are no @command{isisd} specific options. Common options can be | |
28 | specified (@pxref{Common Invocation Options}) to @command{isisd}. | |
29 | @command{isisd} needs to acquire interface information from | |
30 | @command{zebra} in order to function. Therefore @command{zebra} must be | |
31 | running before invoking @command{isisd}. Also, if @command{zebra} is | |
32 | restarted then @command{isisd} must be too. | |
33 | ||
34 | Like other daemons, @command{isisd} configuration is done in @acronym{ISIS} | |
35 | specific configuration file @file{isisd.conf}. | |
36 | ||
37 | @node ISIS router | |
38 | @section ISIS router | |
39 | ||
40 | To start ISIS process you have to specify the ISIS router. As of this | |
41 | writing, @command{isisd} does not support multiple ISIS processes. | |
42 | ||
43 | @deffn Command {router isis WORD} {} | |
44 | @deffnx Command {no router isis WORD} {} | |
45 | @anchor{router isis WORD}Enable or disable the ISIS process by specifying the ISIS domain with 'WORD'. | |
46 | @command{isisd} does not yet support multiple ISIS processes but you must specify | |
47 | the name of ISIS process. The ISIS process name 'WORD' is then used for interface | |
48 | (see command @ref{ip router isis WORD}). | |
49 | @end deffn | |
50 | ||
51 | @deffn {ISIS Command} {net XX.XXXX. ... .XXX.XX} {} | |
52 | @deffnx {ISIS Command} {no net XX.XXXX. ... .XXX.XX} {} | |
53 | Set/Unset network entity title (NET) provided in ISO format. | |
54 | @end deffn | |
55 | ||
56 | @deffn {ISIS Command} {hostname dynamic} {} | |
57 | @deffnx {ISIS Command} {no hostname dynamic} {} | |
58 | Enable support for dynamic hostname. | |
59 | @end deffn | |
60 | ||
61 | @deffn {ISIS Command} {area-password [clear | md5] <password>} {} | |
62 | @deffnx {ISIS Command} {domain-password [clear | md5] <password>} {} | |
63 | @deffnx {ISIS Command} {no area-password} {} | |
64 | @deffnx {ISIS Command} {no domain-password} {} | |
65 | Configure the authentication password for an area, respectively a domain, | |
66 | as clear text or md5 one. | |
67 | @end deffn | |
68 | ||
69 | @deffn {ISIS Command} {log-adjacency-changes} {} | |
70 | @deffnx {ISIS Command} {no log-adjacency-changes} {} | |
71 | Log changes in adjacency state. | |
72 | @end deffn | |
73 | ||
74 | @deffn {ISIS Command} {metric-style [narrow | transition | wide]} {} | |
75 | @deffnx {ISIS Command} {no metric-style} {} | |
76 | @anchor{metric-style}Set old-style (ISO 10589) or new-style packet formats: | |
77 | - narrow Use old style of TLVs with narrow metric | |
78 | - transition Send and accept both styles of TLVs during transition | |
79 | - wide Use new style of TLVs to carry wider metric | |
80 | @end deffn | |
81 | ||
82 | @deffn {ISIS Command} {set-overload-bit} {} | |
83 | @deffnx {ISIS Command} {no set-overload-bit} {} | |
84 | Set overload bit to avoid any transit traffic. | |
85 | @end deffn | |
86 | ||
87 | @node ISIS Timer | |
88 | @section ISIS Timer | |
89 | ||
90 | @deffn {ISIS Command} {lsp-gen-interval <1-120>} {} | |
91 | @deffnx {ISIS Command} {lsp-gen-interval [level-1 | level-2] <1-120>} {} | |
92 | @deffnx {ISIS Command} {no lsp-gen-interval} {} | |
93 | @deffnx {ISIS Command} {no lsp-gen-interval [level-1 | level-2]} {} | |
94 | Set minimum interval in seconds between regenerating same LSP, | |
95 | globally, for an area (level-1) or a domain (level-2). | |
96 | @end deffn | |
97 | ||
98 | @deffn {ISIS Command} {lsp-refresh-interval <1-65235>} {} | |
99 | @deffnx {ISIS Command} {lsp-refresh-interval [level-1 | level-2] <1-65235>} {} | |
100 | @deffnx {ISIS Command} {no lsp-refresh-interval} {} | |
101 | @deffnx {ISIS Command} {no lsp-refresh-interval [level-1 | level-2]} {} | |
102 | Set LSP refresh interval in seconds, globally, for an area (level-1) or a domain (level-2). | |
103 | @end deffn | |
104 | ||
105 | @deffn {ISIS Command} {lsp-refresh-interval <1-65235>} {} | |
106 | @deffnx {ISIS Command} {lsp-refresh-interval [level-1 | level-2] <1-65235>} {} | |
107 | @deffnx {ISIS Command} {no lsp-refresh-interval} {} | |
108 | @deffnx {ISIS Command} {no lsp-refresh-interval [level-1 | level-2]} {} | |
109 | Set LSP refresh interval in seconds, globally, for an area (level-1) or a domain (level-2). | |
110 | @end deffn | |
111 | ||
112 | @deffn {ISIS Command} {max-lsp-lifetime <360-65535>} {} | |
113 | @deffnx {ISIS Command} {max-lsp-lifetime [level-1 | level-2] <360-65535>} {} | |
114 | @deffnx {ISIS Command} {no max-lsp-lifetime} {} | |
115 | @deffnx {ISIS Command} {no max-lsp-lifetime [level-1 | level-2]} {} | |
116 | Set LSP maximum LSP lifetime in seconds, globally, for an area (level-1) or a domain (level-2). | |
117 | @end deffn | |
118 | ||
119 | @deffn {ISIS Command} {spf-interval <1-120>} {} | |
120 | @deffnx {ISIS Command} {spf-interval [level-1 | level-2] <1-120>} {} | |
121 | @deffnx {ISIS Command} {no spf-interval} {} | |
122 | @deffnx {ISIS Command} {no spf-interval [level-1 | level-2]} {} | |
123 | Set minimum interval between consecutive SPF calculations in seconds. | |
124 | @end deffn | |
125 | ||
126 | @node ISIS region | |
127 | @section ISIS region | |
128 | ||
129 | @deffn {ISIS Command} {is-type [level-1 | level-1-2 | level-2-only]} {} | |
130 | @deffnx {ISIS Command} {no is-type} {} | |
131 | Define the ISIS router behavior: | |
132 | - level-1 Act as a station router only | |
133 | - level-1-2 Act as both a station router and an area router | |
134 | - level-2-only Act as an area router only | |
135 | @end deffn | |
136 | ||
137 | @node ISIS interface | |
138 | @section ISIS interface | |
139 | ||
140 | @deffn {Interface Command} {ip router isis WORD} {} | |
141 | @deffnx {Interface Command} {no ip router isis WORD} {} | |
142 | @anchor{ip router isis WORD}Activate ISIS adjacency on this interface. Note that the name | |
143 | of ISIS instance must be the same as the one used to configure the ISIS process | |
144 | (see command @ref{router isis WORD}). | |
145 | @end deffn | |
146 | ||
147 | @deffn {Interface Command} {isis circuit-type [level-1 | level-1-2 | level-2]} {} | |
148 | @deffnx {Interface Command} {no isis circuit-type} {} | |
149 | Configure circuit type for interface: | |
150 | - level-1 Level-1 only adjacencies are formed | |
151 | - level-1-2 Level-1-2 adjacencies are formed | |
152 | - level-2-only Level-2 only adjacencies are formed | |
153 | @end deffn | |
154 | ||
155 | @deffn {Interface Command} {isis csnp-interval <1-600>} {} | |
156 | @deffnx {Interface Command} {isis csnp-interval <1-600> [level-1 | level-2]} {} | |
157 | @deffnx {Interface Command} {no isis csnp-interval} {} | |
158 | @deffnx {Interface Command} {no isis csnp-interval [level-1 | level-2]} {} | |
159 | Set CSNP interval in seconds globally, for an area (level-1) or a domain (level-2). | |
160 | @end deffn | |
161 | ||
162 | @deffn {Interface Command} {isis hello padding} {} | |
163 | Add padding to IS-IS hello packets. | |
164 | @end deffn | |
165 | ||
166 | @deffn {Interface Command} {isis hello-interval <1-600>} {} | |
167 | @deffnx {Interface Command} {isis hello-interval <1-600> [level-1 | level-2]} {} | |
168 | @deffnx {Interface Command} {no isis hello-interval} {} | |
169 | @deffnx {Interface Command} {no isis hello-interval [level-1 | level-2]} {} | |
170 | Set Hello interval in seconds globally, for an area (level-1) or a domain (level-2). | |
171 | @end deffn | |
172 | ||
173 | @deffn {Interface Command} {isis hello-multiplier <2-100>} {} | |
174 | @deffnx {Interface Command} {isis hello-multiplier <2-100> [level-1 | level-2]} {} | |
175 | @deffnx {Interface Command} {no isis hello-multiplier} {} | |
176 | @deffnx {Interface Command} {no isis hello-multiplier [level-1 | level-2]} {} | |
177 | Set multiplier for Hello holding time globally, for an area (level-1) or a domain (level-2). | |
178 | @end deffn | |
179 | ||
180 | @deffn {Interface Command} {isis metric [<0-255> | <0-16777215>]} {} | |
181 | @deffnx {Interface Command} {isis metric [<0-255> | <0-16777215>] [level-1 | level-2]} {} | |
182 | @deffnx {Interface Command} {no isis metric} {} | |
183 | @deffnx {Interface Command} {no isis metric [level-1 | level-2]} {} | |
184 | Set default metric value globally, for an area (level-1) or a domain (level-2). | |
185 | Max value depend if metric support narrow or wide value (see command @ref{metric-style}). | |
186 | @end deffn | |
187 | ||
188 | @deffn {Interface Command} {isis network point-to-point} {} | |
189 | @deffnx {Interface Command} {no isis network point-to-point} {} | |
190 | Set network type to 'Point-to-Point' (broadcast by default). | |
191 | @end deffn | |
192 | ||
193 | @deffn {Interface Command} {isis passive} {} | |
194 | @deffnx {Interface Command} {no isis passive} {} | |
195 | Configure the passive mode for this interface. | |
196 | @end deffn | |
197 | ||
198 | @deffn {Interface Command} {isis password [clear | md5] <password>} {} | |
199 | @deffnx {Interface Command} {no isis password} {} | |
200 | Configure the authentication password (clear or encoded text) for the interface. | |
201 | @end deffn | |
202 | ||
203 | @deffn {Interface Command} {isis priority <0-127>} {} | |
204 | @deffnx {Interface Command} {isis priority <0-127> [level-1 | level-2]} {} | |
205 | @deffnx {Interface Command} {no isis priority} {} | |
206 | @deffnx {Interface Command} {no isis priority [level-1 | level-2]} {} | |
207 | Set priority for Designated Router election, globally, for the area (level-1) | |
208 | or the domain (level-2). | |
209 | @end deffn | |
210 | ||
211 | @deffn {Interface Command} {isis psnp-interval <1-120>} {} | |
212 | @deffnx {Interface Command} {isis psnp-interval <1-120> [level-1 | level-2]} {} | |
213 | @deffnx {Interface Command} {no isis psnp-interval} {} | |
214 | @deffnx {Interface Command} {no isis psnp-interval [level-1 | level-2]} {} | |
215 | Set PSNP interval in seconds globally, for an area (level-1) or a domain (level-2). | |
216 | @end deffn | |
217 | ||
218 | @node Showing ISIS information | |
219 | @section Showing ISIS information | |
220 | ||
221 | @deffn {Command} {show isis summary} {} | |
222 | Show summary information about ISIS. | |
223 | @end deffn | |
224 | ||
225 | @deffn {Command} {show isis hostname} {} | |
226 | Show information about ISIS node. | |
227 | @end deffn | |
228 | ||
229 | @deffn {Command} {show isis interface} {} | |
230 | @deffnx {Command} {show isis interface detail} {} | |
231 | @deffnx {Command} {show isis interface <interface name>} {} | |
232 | Show state and configuration of ISIS specified interface, or all | |
233 | interfaces if no interface is given with or without details. | |
234 | @end deffn | |
235 | ||
236 | @deffn {Command} {show isis neighbor} {} | |
237 | @deffnx {Command} {show isis neighbor <System Id>} {} | |
238 | @deffnx {Command} {show isis neighbor detail} {} | |
239 | Show state and information of ISIS specified neighbor, or all | |
240 | neighbors if no system id is given with or without details. | |
241 | @end deffn | |
242 | ||
243 | @deffn {Command} {show isis database} {} | |
244 | @deffnx {Command} {show isis database [detail]} {} | |
245 | @deffnx {Command} {show isis database <LSP id> [detail]} {} | |
246 | @deffnx {Command} {show isis database detail <LSP id>} {} | |
247 | Show the ISIS database globally, for a specific LSP id without or with details. | |
248 | @end deffn | |
249 | ||
250 | @deffn {Command} {show isis topology} {} | |
251 | @deffnx {Command} {show isis topology [level-1|level-2]} {} | |
252 | Show topology IS-IS paths to Intermediate Systems, globally, | |
253 | in area (level-1) or domain (level-2). | |
254 | @end deffn | |
255 | ||
256 | @deffn {Command} {show ip route isis} {} | |
257 | Show the ISIS routing table, as determined by the most recent SPF calculation. | |
258 | @end deffn | |
259 | ||
260 | @node ISIS Traffic Engineering | |
261 | @section Traffic Engineering | |
262 | ||
263 | @deffn {ISIS Command} {mpls-te on} {} | |
264 | @deffnx {ISIS Command} {no mpls-te} {} | |
265 | Enable Traffic Engineering LSP flooding. | |
266 | @end deffn | |
267 | ||
268 | @deffn {ISIS Command} {mpls-te router-address <A.B.C.D>} {} | |
269 | @deffnx {ISIS Command} {no mpls-te router-address} {} | |
270 | Configure stable IP address for MPLS-TE. | |
271 | @end deffn | |
272 | ||
273 | @deffn {Command} {show isis mpls-te interface} {} | |
274 | @deffnx {Command} {show isis mpls-te interface @var{interface}} {} | |
275 | Show MPLS Traffic Engineering parameters for all or specified interface. | |
276 | @end deffn | |
277 | ||
278 | @deffn {Command} {show isis mpls-te router} {} | |
279 | Show Traffic Engineering router parameters. | |
280 | @end deffn | |
281 | ||
282 | @node Debugging ISIS | |
283 | @section Debugging ISIS | |
284 | ||
285 | @deffn {Command} {debug isis adj-packets} {} | |
286 | @deffnx {Command} {no debug isis adj-packets} {} | |
287 | IS-IS Adjacency related packets. | |
288 | @end deffn | |
289 | ||
290 | @deffn {Command} {debug isis checksum-errors} {} | |
291 | @deffnx {Command} {no debug isis checksum-errors} {} | |
292 | IS-IS LSP checksum errors. | |
293 | @end deffn | |
294 | ||
295 | @deffn {Command} {debug isis events} {} | |
296 | @deffnx {Command} {no debug isis events} {} | |
297 | IS-IS Events. | |
298 | @end deffn | |
299 | ||
300 | @deffn {Command} {debug isis local-updates} {} | |
301 | @deffnx {Command} {no debug isis local-updates} {} | |
302 | IS-IS local update packets. | |
303 | @end deffn | |
304 | ||
305 | @deffn {Command} {debug isis packet-dump} {} | |
306 | @deffnx {Command} {no debug isis packet-dump} {} | |
307 | IS-IS packet dump. | |
308 | @end deffn | |
309 | ||
310 | @deffn {Command} {debug isis protocol-errors} {} | |
311 | @deffnx {Command} {no debug isis protocol-errors} {} | |
312 | IS-IS LSP protocol errors. | |
313 | @end deffn | |
314 | ||
315 | @deffn {Command} {debug isis route-events} {} | |
316 | @deffnx {Command} {no debug isis route-events} {} | |
317 | IS-IS Route related events. | |
318 | @end deffn | |
319 | ||
320 | @deffn {Command} {debug isis snp-packets} {} | |
321 | @deffnx {Command} {no debug isis snp-packets} {} | |
322 | IS-IS CSNP/PSNP packets. | |
323 | @end deffn | |
324 | ||
325 | @deffn {Command} {debug isis spf-events} {} | |
326 | @deffnx {Command} {debug isis spf-statistics} {} | |
327 | @deffnx {Command} {debug isis spf-triggers} {} | |
328 | @deffnx {Command} {no debug isis spf-events} {} | |
329 | @deffnx {Command} {no debug isis spf-statistics} {} | |
330 | @deffnx {Command} {no debug isis spf-triggers} {} | |
331 | IS-IS Shortest Path First Events, Timing and Statistic Data | |
332 | and triggering events. | |
333 | @end deffn | |
334 | ||
335 | @deffn {Command} {debug isis update-packets} {} | |
336 | @deffnx {Command} {no debug isis update-packets} {} | |
337 | Update related packets. | |
338 | @end deffn | |
339 | ||
340 | @deffn {Command} {show debugging isis} {} | |
341 | Print which ISIS debug level is activate. | |
342 | @end deffn | |
343 | ||
344 | @node ISIS Configuration Examples | |
345 | @section ISIS Configuration Examples | |
346 | A simple example, with MD5 authentication enabled: | |
347 | ||
348 | @example | |
349 | @group | |
350 | ! | |
351 | interface eth0 | |
352 | ip router isis FOO | |
353 | isis network point-to-point | |
354 | isis circuit-type level-2-only | |
355 | ! | |
356 | router isis FOO | |
357 | net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00 | |
358 | metric-style wide | |
359 | is-type level-2-only | |
360 | @end group | |
361 | @end example | |
362 | ||
363 | ||
364 | A Traffic Engineering configuration, with Inter-ASv2 support. | |
365 | ||
366 | - First, the 'zebra.conf' part: | |
367 | ||
368 | @example | |
369 | @group | |
370 | hostname HOSTNAME | |
371 | password PASSWORD | |
372 | log file /var/log/zebra.log | |
373 | ! | |
374 | interface eth0 | |
375 | ip address 10.2.2.2/24 | |
ee65c55e OD |
376 | link-params |
377 | enable | |
378 | metric 100 | |
379 | max-bw 1.25e+07 | |
380 | max-rsv-bw 1.25e+06 | |
381 | unrsv-bw 0 1.25e+06 | |
382 | unrsv-bw 1 1.25e+06 | |
383 | unrsv-bw 2 1.25e+06 | |
384 | unrsv-bw 3 1.25e+06 | |
385 | unrsv-bw 4 1.25e+06 | |
386 | unrsv-bw 5 1.25e+06 | |
387 | unrsv-bw 6 1.25e+06 | |
388 | unrsv-bw 7 1.25e+06 | |
389 | admin-grp 0xab | |
4b547606 OD |
390 | ! |
391 | interface eth1 | |
392 | ip address 10.1.1.1/24 | |
ee65c55e OD |
393 | link-params |
394 | enable | |
395 | metric 100 | |
396 | max-bw 1.25e+07 | |
397 | max-rsv-bw 1.25e+06 | |
398 | unrsv-bw 0 1.25e+06 | |
399 | unrsv-bw 1 1.25e+06 | |
400 | unrsv-bw 2 1.25e+06 | |
401 | unrsv-bw 3 1.25e+06 | |
402 | unrsv-bw 4 1.25e+06 | |
403 | unrsv-bw 5 1.25e+06 | |
404 | unrsv-bw 6 1.25e+06 | |
405 | unrsv-bw 7 1.25e+06 | |
406 | neighbor 10.1.1.2 as 65000 | |
4b547606 OD |
407 | @end group |
408 | @end example | |
409 | ||
410 | - Then the 'isisd.conf' itself: | |
411 | ||
412 | @example | |
413 | @group | |
414 | hostname HOSTNAME | |
415 | password PASSWORD | |
416 | log file /var/log/isisd.log | |
417 | ! | |
418 | ! | |
419 | interface eth0 | |
420 | ip router isis FOO | |
421 | ! | |
422 | interface eth1 | |
423 | ip router isis FOO | |
424 | ! | |
425 | ! | |
426 | router isis FOO | |
427 | isis net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00 | |
428 | mpls-te on | |
429 | mpls-te router-address 10.1.1.1 | |
430 | ! | |
431 | line vty | |
432 | @end group | |
433 | @end example |