Difference between revisions of "Cisco IS-IS"

From HackerNet
Jump to: navigation, search
Line 20: Line 20:
  
 
==Paket-typer==
 
==Paket-typer==
* Hello/IIH (IS-IS Hello): Upptäcka grannar.  
+
'''Hello/IIH:''' IS-IS Hello används för att upptäcka grannar och kontrollera att de lever. De skickas default var 10:e sekund. De används också för att välja DIS (Designated IS) där det behövs. DIS skickar Hellos mer frekvent, hello time delat på 3 så var 3.33 sekund default. Hold time är Hello-interval x Hello-multiplier. Varken Hello eller Hold behöver matcha för grannskap. På broadcast segment används separata Hellos för L1 och L2 medans på point-to-point interface används gemensamma L1L2 Hellos pga effektivitet.
* Link state PDU:
+
 
* Complete Sequence Numbers PDU:
+
Timers ställs per interface. Default är 10 sekunder och multiplier är 3 för hold time.
* Partial Sequence Numbers PDU:
+
isis hello-interval 10 [level]
 +
isis hello-multiplier 3 [level]
 +
 
 +
'''Link state PDU:''' LSPs används för att annonsera routing information till andra IS. Det finns inte olika LSP-typer som OSPF har olika LSU/LSA-typer utan adjacencies och prefixes skickas med en LSP som innehåller olika TLVer. En LSPs payload kan därmed variera i storlek. Varje LSP innehåller ett LSPID som gör det unikt. Det består av System ID (router that originated the LSP), Pseudonode ID () och LSP number (fragment number). För att skilja mellan olika versioner av samma LSP sätts även ett löpnummer. Det börjar på 1 och varje gång en ändring görs ökas det med 1. Varje LSP har även en remaining lifetime satt, det börjar på 1200 sekunder och tickar neråt. Var 900:e sekund så refreshar en IS-IS router sina self-originated LSPer och skickar ut. Går remaining lifetime ner till 0 på en LSP tas routing informationen bort från LSDB och routern kommer att flooda ut endast headern från LSPn med remaining lifetime satt till 0 för att ta reda på om någon annan känner till mer aktuell information, detta kallas LSP Purge. LSP headern hålls kvar i LSDB så länge som ZeroAgeLifetime är satt till, 60 sekunder default men kan sparas 20 minuter på Cisco-routrar.
 +
router isis
 +
  max-lsp-lifetime 1200
 +
  lsp-refresh-interval 900
 +
 
 +
Eftersom IS-IS paket enkasuleras direkt i L2-frames måste IS-IS ha en egen fragmenteringsfunktion för LSPer som är större än MTU. Behöver man skicka en LSP vars header + TLVer är större än MTU så delar routern upp det i flera LSPer som innehåller några TLVer var. LSPerna har samma LSPID men LSP/fragment number ökas per LSP med start från 0. Fragmentering görs av den router som skapar LSPn, när den sedan har skickats ut får den inte modifieras eller fragmenteras om. Detta leder till att MTU på alla interface inom arean måste vara identiskt. Annars får man manuellt ställa lsp-storlek på alla enheter så det inte överstiger lägsta MTU.
 +
lsp-mtu 1400
 +
 
 +
'''Complete Sequence Numbers PDU:'''
 +
 
 +
'''Partial Sequence Numbers PDU:'''
  
 
==Levels==
 
==Levels==
IS-IS routrar på level 1 agerar oberoende av level 2 och vice versa. De upprättar separata grannskap på varje level. T.ex. om det finns två stycken IS-IS routrar som båda kör L1 och L2 så kommer de att ha två grannskap med varandra. Det blir bara grannskap om båda är på samma level, t.ex. L2 + L1L2 = L2-grannskap. De kommer även hålla separata LSDBer för varje level. Så Link State PDUer som skickas gör det antingen i L1 eller L2. L1-LSPer beskriver grannskap i L1 och samma gäller för L2. Det går nästan likna vid separata routing-processer. Att ändra mellan L1, L2 och L1L2 görs per router.
+
IS-IS routrar på level 1 agerar oberoende av level 2 och vice versa. De upprättar separata grannskap på varje level. T.ex. om det finns två stycken IS-IS routrar som båda kör L1 och L2 så kommer de att ha två grannskap med varandra. Det blir bara grannskap om båda är på samma level, t.ex. L2 + L1L2 = L2-grannskap. De kommer även hålla separata LSDBer för varje level. Så Link State PDUer som skickas görs det antingen L1 eller L2. L1-LSPer beskriver grannskap i L1 och samma gäller för L2. Det går nästan likna vid separata routing-processer. Att ändra mellan L1, L2 och L1L2 görs per router.
 
  router isis 1
 
  router isis 1
 
   is-type level-1-2
 
   is-type level-1-2
Line 129: Line 142:
 
=Show=
 
=Show=
 
  show isis
 
  show isis
 +
show isis hostname
 
  show isis neighbors/adjacency
 
  show isis neighbors/adjacency
 
  show isis topology
 
  show isis topology
  
 
[[Category:Cisco]]
 
[[Category:Cisco]]

Revision as of 12:30, 28 March 2016

Intermediate System-to-Intermediate System är ett link-state routing protokoll. Det använder Network Service Access Point (NSAP) adressering för att identifiera routrar, area-tillhörighet och deras grannskap. En IS-IS router konfigureras med nivå som anger systemtyp - antingen Level 1, Level 2 eller Level 1-2. Se en Level 2 router som motsvarande area 0 (backbone area) i OSPF och Level 1 som en area som är ”totally stubby”, d.v.s. det enda som injiceras i arean är en default route.

IS-IS använder inte något L3-protokoll alls utan det enkapsuleras direkt i L2 frames, detta gör det helt protokolloberonde. Grannskap och adressinformation skrivs med Type-Length-Value (TLV) records, detta gör det väldigt flexibelt. T.ex. om en ny adressfamilj ska läggas till så handlar det om att definiera nya TLVer som innehåller adress- och topologiinformation.

Type: Link State

Algorithm: Dijkstra

AD: 115

Protocols: IP, CLNS

OBS Interface MTU måste matcha för grannskap

Terminologi

  • End system: host
  • Intermediate system: router
  • Circuit: interface
  • Domain: autonomous system

Paket-typer

Hello/IIH: IS-IS Hello används för att upptäcka grannar och kontrollera att de lever. De skickas default var 10:e sekund. De används också för att välja DIS (Designated IS) där det behövs. DIS skickar Hellos mer frekvent, hello time delat på 3 så var 3.33 sekund default. Hold time är Hello-interval x Hello-multiplier. Varken Hello eller Hold behöver matcha för grannskap. På broadcast segment används separata Hellos för L1 och L2 medans på point-to-point interface används gemensamma L1L2 Hellos pga effektivitet.

Timers ställs per interface. Default är 10 sekunder och multiplier är 3 för hold time.

isis hello-interval 10 [level]
isis hello-multiplier 3 [level]

Link state PDU: LSPs används för att annonsera routing information till andra IS. Det finns inte olika LSP-typer som OSPF har olika LSU/LSA-typer utan adjacencies och prefixes skickas med en LSP som innehåller olika TLVer. En LSPs payload kan därmed variera i storlek. Varje LSP innehåller ett LSPID som gör det unikt. Det består av System ID (router that originated the LSP), Pseudonode ID () och LSP number (fragment number). För att skilja mellan olika versioner av samma LSP sätts även ett löpnummer. Det börjar på 1 och varje gång en ändring görs ökas det med 1. Varje LSP har även en remaining lifetime satt, det börjar på 1200 sekunder och tickar neråt. Var 900:e sekund så refreshar en IS-IS router sina self-originated LSPer och skickar ut. Går remaining lifetime ner till 0 på en LSP tas routing informationen bort från LSDB och routern kommer att flooda ut endast headern från LSPn med remaining lifetime satt till 0 för att ta reda på om någon annan känner till mer aktuell information, detta kallas LSP Purge. LSP headern hålls kvar i LSDB så länge som ZeroAgeLifetime är satt till, 60 sekunder default men kan sparas 20 minuter på Cisco-routrar.

router isis
 max-lsp-lifetime 1200
 lsp-refresh-interval 900

Eftersom IS-IS paket enkasuleras direkt i L2-frames måste IS-IS ha en egen fragmenteringsfunktion för LSPer som är större än MTU. Behöver man skicka en LSP vars header + TLVer är större än MTU så delar routern upp det i flera LSPer som innehåller några TLVer var. LSPerna har samma LSPID men LSP/fragment number ökas per LSP med start från 0. Fragmentering görs av den router som skapar LSPn, när den sedan har skickats ut får den inte modifieras eller fragmenteras om. Detta leder till att MTU på alla interface inom arean måste vara identiskt. Annars får man manuellt ställa lsp-storlek på alla enheter så det inte överstiger lägsta MTU.

lsp-mtu 1400

Complete Sequence Numbers PDU:

Partial Sequence Numbers PDU:

Levels

IS-IS routrar på level 1 agerar oberoende av level 2 och vice versa. De upprättar separata grannskap på varje level. T.ex. om det finns två stycken IS-IS routrar som båda kör L1 och L2 så kommer de att ha två grannskap med varandra. Det blir bara grannskap om båda är på samma level, t.ex. L2 + L1L2 = L2-grannskap. De kommer även hålla separata LSDBer för varje level. Så Link State PDUer som skickas görs det antingen på L1 eller L2. L1-LSPer beskriver grannskap i L1 och samma gäller för L2. Det går nästan likna vid separata routing-processer. Att ändra mellan L1, L2 och L1L2 görs per router.

router isis 1
 is-type level-1-2

Metrics

IS-IS använder bandwidth som metric precis som OSPF. Från början fanns det 4 olika metric-typer men i princip är det endast default (bandwidth) som används idag. Default så får alla interface en cost av 10 oavsett bandbredd. Med andra ord så räknar inte routern ut cost på en länk så som andra routing protokoll gör utan det är upp till administratören att manuellt ställa metric per interface. Nedan visas det som kallas narrow metrics, det är legacy och är inte default på Cisco-routrar.

isis metric 1-63

Wide metrics togs fram för att man hade behov av större metrics och det har 24-bitars längd. Detta är alltid rekommenderat men alla enheter inom arean måste stödja det. T.ex. krävs det för MPLS traffic engineering över IS-IS.

router isis
 metric-style wide

Det går även att acceptera båda typerna av metric.

metric-style transition

Verify

R1# show clns protocol | i metrics
 Generate narrow metrics: none
 Accept narrow metrics:   none
 Generate wide metrics:   level-1-2
 Accept wide metrics:     level-1-2

NET

Network Entity Title, formatet är AFI.DSP.SystemID.NSEL:

  • AFI = 49
  • DSP(Area ID) = 0001
  • SystemID = Räknas fram baserat på Loopback adressen
  • NSEL = 00

IOS

router isis 1
is-type level-2
metric-style wide
passive-interface default
no passive-interface te0/1/1
log-adjacency-changes
address-family ipv4 unicast
exit
net 49.0001.0001.0001.0001.0001.00

Fast convergence

lsp-gen-interval 5 50 50
prc-interval 5 50 50
spf-interval 5 50 50

Authentication

authentication mode md5 
authentication key-chain <key-chain-name>

Vänta med att använda en granne som nyss har bootat.

set-overload-bit on-startup 180

Enablea interface

interface te0/1/1
ip router isis 1
no isis hello padding
isis network point-to-point #effektivisera LSP-hantering
isis authentication mode md5
isis authentication key-chain <key-chain-name>
no shut

BFD

BFD hjälper routing protokoll att konvergera snabbare.

int te0/1/1
 bfd interval 50 min_rx 50 multiplier 5
 isis bfd

NX-OS

feature isis
router isis IS
is-type level-2
passive-interface default level-1-2
log-adjacency-changes
address-family ipv4 unicast
exit
net 49.0001.0001.0001.0001.0002.00

Fast convergence

spf-interval level-2 5000 50 50
lsp-gen-interval level-2 5000 50 50

Authentication

authentication-type md5 level-2
authentication key-chain <key-chain-name> level-2

Vänta med att använda en granne som nyss har bootat.

set-overload-bit on-startup 180

Interface

int lo0
ip router isis IS
interface e1/1
ip router isis IS
no isis passive-interface level-2
no isis hello-padding
isis network point-to-point #effektivisera LSP-hantering
isis authentication-type md5 level-2
isis authentication key-chain <key-chain-name> level-2

BFD

BFD hjälper routing protokoll att konvergera snabbare.

feature bfd
int e1/1
 bfd interval 50 min_rx 50 multiplier 3
 no bfd echo
bfd per-link
isis bfd

Show

show isis
show isis hostname
show isis neighbors/adjacency
show isis topology