New upstream release and new maintainer
[quagga-debian.git] / doc / isisd.texi
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
376  mpls-te on
377  mpls-te link metric 10
378  mpls-te link max-bw 1.25e+06
379  mpls-te link max-rsv-bw 1.25e+06
380  mpls-te link unrsv-bw 0 1.25e+06
381  mpls-te link unrsv-bw 1 1.25e+06
382  mpls-te link unrsv-bw 2 1.25e+06
383  mpls-te link unrsv-bw 3 1.25e+06
384  mpls-te link unrsv-bw 4 1.25e+06
385  mpls-te link unrsv-bw 5 1.25e+06
386  mpls-te link unrsv-bw 6 1.25e+06
387  mpls-te link unrsv-bw 7 1.25e+06
388  mpls-te link rsc-clsclr 0xab
389 !
390 interface eth1
391  ip address 10.1.1.1/24
392  mpls-te on
393  mpls-te link metric 10
394  mpls-te link max-bw 1.25e+06
395  mpls-te link max-rsv-bw 1.25e+06
396  mpls-te link unrsv-bw 0 1.25e+06
397  mpls-te link unrsv-bw 1 1.25e+06
398  mpls-te link unrsv-bw 2 1.25e+06
399  mpls-te link unrsv-bw 3 1.25e+06
400  mpls-te link unrsv-bw 4 1.25e+06
401  mpls-te link unrsv-bw 5 1.25e+06
402  mpls-te link unrsv-bw 6 1.25e+06
403  mpls-te link unrsv-bw 7 1.25e+06
404  mpls-te link rsc-clsclr 0xab
405  mpls-te neighbor 10.1.1.2 as 65000
406 @end group
407 @end example
408
409  - Then the 'isisd.conf' itself:
410
411 @example
412 @group
413 hostname HOSTNAME
414 password PASSWORD
415 log file /var/log/isisd.log
416 !
417 !
418 interface eth0
419  ip router isis FOO
420 !
421 interface eth1
422  ip router isis FOO
423 !
424 !
425 router isis FOO
426  isis net 47.0023.0000.0000.0000.0000.0000.0000.1900.0004.00
427   mpls-te on
428   mpls-te router-address 10.1.1.1
429 !
430 line vty
431 @end group
432 @end example