Olivier Dugeon | ec04b9f | 2016-04-19 19:18:18 +0200 | [diff] [blame] | 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 |