Isis
Isis
IS-IS
Link-state routing
Intermediate system to Intermediate System
1
Literature
•Read:
CISCO: Introduction to Intermediate System-to-Intermediate
System System Protocol
• link from home page -> literature
•Reference only
Original standard: ISO DP 10589
• Rewritten in RFC 1142
IETF RFC 1195: How to use IS-IS for IPv4
IETF RFC 1069: How to encode IP addresses in ISIS
IETF work-group: IS-IS for IP Internets (isis)
• IPv6, traffic-engineering, etc
2
Link-state routing
•Each router spreads information about its
links to its neighbours.
•This information is flooded to every router
in the routing domain so that every router
has knowledge of the entire network
topology.
•Using Dijkstra's algorithm, the shortest path
to each prefix in the network is calculated
3
Comparison with Distance-Vector
•Link-state uses a distributed database model
•Distance-vector uses a distributed processing model
•Link-state pros:
–More functionality due to distribution of original
data, no dependency on intermediate routers
• Easier to troubleshoot
–Fast convergence: when the network changes,
new routes are computed quickly
–Less bandwidth consuming
•Distance-vector pros:
–Less complex – easier to implement and
administrate
–Needs less memory
4
Dijkstra's shortest path
From the link-state database, compute a shortest path delivery
tree using a permanent set S and a tentative set Q:
1) Define the root of the tree: the router
2) Assign a cost of 0 to this node and make it the first
permanent node.
3) Examine each neighbor node of the last permanent node.
4) Assign a cumulative cost to each node and make it tentative.
5) Among the list of tentative nodes:
• Find the node with the smallest cumulative cost and make it
permanent.
• If a node can be reached from more than one direction, select
the direction with the smallest cumulative cost.
6) Repeat steps 3 to 5 until every node is permanent.
5
Dijkstra pseudo-code
function Dijkstra(G, w, s)
for each vertex v in V[G] // Initializations
d[v] := infinity
previous[v] := undefined
d[s] := 0
S := empty set // S: Permanent set
Q := set of all vertices // Q: Tentative set
while Q is not an empty set // The algorithm itself
u := Extract_Min(Q)
S := S union {u}
for each edge (u,v) outgoing from u
if d[v] > d[u] + w(u,v) // Relax (u,v)
d[v] := d[u] + w(u,v)
previous[v] := u
(from Wikipedia)
6
N14
8 N13
3 RT5
N1 1 1 8 8 8
8 N12
RT1 RT4 7 6
N3
3
N2 1 6
1
RT2 8 6 RT6
2 RT3 Ia 7
N4
2
Ib 6 6 9
RT10
3 1 1 RT7
3
N11 1
RT9 1 2
N9 N6
RT12 RT11
H1 10 1
1
N8
2 RT8
4
N4 Ib
7
3 6
N2 RT2
1 6
RT3 RT6
2 7
N4 Ib
7
10
From Network to FIB: Summary
1)Network topology and metrics
2)Construct local link-states
3)Flood link-state
4)Construct topology database
5)Compute Dijkstra
6)Construct OSPF Routing table
7)Merge with other routing protocols: RIB
8)Compile forwarding table: FIB
11
OSPF and IS-IS comparison
•Both are link-state protocols
•IS-IS has a longer history from Digital via OSI
•OSPF is newer and developed in IETF
•Area difference
–OSPF defines area boundaries between interfaces
–IS-IS defines area boundaries between nodes
–IS-IS areas leads to simpler configuration
•Protocol dependency
–IS-IS can run many protocols (IPv6, CLNP)
–OSPF only IPv4, (OSPFv3 supports IPv6)
•OSPF is implemented on more platforms and
more deployed
•IS-IS often popular among backbone networks
12
OSPF Network Topology
•Area 0 is the backbone area. All (inter-area) traffic goes via the
backbone.
•All other areas are connected to the backbone (1-level hierarchy)
•An Area Border Router (ABR) has one interface in each area.
•An AS Boundary Router (ASBR) – redistributes external routes
•Backbone router – at least one interface in backbone area
External
Internal
All areas connected to router +
backbone area ASBR
Area 1 Area 2 Area 3
External
13
IS-IS Network Topology
•Area borders are between routers
•Areas are called L1
•Backbone is called L2
•A router can be L1, L2, or L1+L2.
•All inter-area traffic via L2
•L2 must be connected (1-level hierarchy)
L1-L2
Redistributes between
L1 and L2 L2
L1 Router
Default and intra-area L2 Router
Inter-area routes
L1 Area 1 L1 Area 2
14
History
•IS-IS came out of DECnet (Digital)
•Used by ISO in its OSI effort
OSI was thought to be the internetworking standard protocol
What survived was the OSI reference model
•IETF defined integrated IS-IS (or dual IS-IS)
to work both for OSI (CLNP) and IP networking
this is why it so easily could be extended with IPv6
15
The TCP/IP stack and OSI ref model
L7: Application
L5: Session
ICMP IGMP
L3: Network
IP
ARP
L1: Physical
16
OSI and IP comparison
TCP/IP OSI
IP CLNS
ICMP ~CLNP
ARP ~ES-IS
Router IS (Intermediate system)
Host ES (End System)
AS Routing Domain
Packet PDU (Protocol data unit)
DR DIS (Designated IS)
17
ISO addressing
ISO addresses are:
•Variable length: 6-20 bytes (48-160 bits)
•Hierarchical structure
•Node addresses (not link or interface)
•A CLNS network-layer address is called an NSAP
•From an IS-IS perspective, such an address looks like below with
the following fields(*)
AFI - Authority and format identifier. 49 corresponds to private
address space
Area ID - Unique area identifier
System ID - Per-area unique ID
NSEL - NSAP selector. Zero means intermediate system
Length[bytes]: 1 2-12 6 1
19
Example of NET address in .se
•AFI (Authority Format Identifier) 39
•IDI (Initial Domain Identifier) SE 752
•DFI (Domain Format Identifier) 100
•AAI (Administrative Authority Identifier) 0014
•RSVD (Reserved)
•RD (Routing domain)
•Area, System ID and sel.
20
Encapsulation
•OSPF runs over IP
Allows virtual links
Relies on fragmentation if OSPF messages > links MTU
Vulnerable to spoofing and denial-of-service
•ISIS runs over link-layer
Routing protocol independent of routed protocol
More difficult to spoof and attack
Harder to implement (there are many link-layers,...)
21
Packet types
•Hellos - IS-to-IS Hello (IIH)
Link-level multicast
•Link-state Packets (LSP)
Pseudo-nodes (cf OSPF network LSA), Example N2 below.
Nonpseduo-node (cf OSPF router LSA), Example RT3-RT6
Also level 1 / level 2 LSPs (area support)
•Sequence number PDUs: (CSNP/PSNP)
Complete sequence number PDU (CSNP)
• A list of all LSPs of current database
• Similar to OSPF DD packet
Partial sequence number PDU (PSNP)
• Request or ack specific LSPs
Designated IS
RT3 RT4
R R R R
T T T T N2
3 4 4 6
N2 RT5 RT6
22
Encoding
•OSPF
Positional fields
Hard-wired for IPv4
32 bit alignment
Unknown LSAs are discarded
•ISIS uses TLV (Type - Length - Value)
No alignment
Extensible
Unknown LSAs are flooded
Nested TLV gives a lot of flexibility
23
Adjacency forming
•Send IIHs (IS-IS Hellos) over L2
•Detect point-to-point or broadcast media
•Match timers: holding time before defining a neighbor dead
•Circuit-type (level 1 / level 2)
•Priority - higher is better
•On a broadcast link, a Designated IS is selected using priority
and thereafter MAC address
•A DIS with better prio (or mac address) pre-empts another DIS
which makes DIS forming deterministic
In OSPF DR election is non-deterministic
•No need for BDR (backup)
•Hellos are typically padded to full MTU size
To detect mismatching MTUs on same link
OSPF does this at DD
24
Areas
•IS-IS areas are named L1.
•L2 represents inter-area routes
•A router can be L1, L2 or L1-L2
•A router can have most two link-state databases (L1 and L2)
•An L1 area corresponds to an OSPF totally stub area with only
intra-area routes and a default route to the nearest L2 router.
•The L1 area is specified by the AREA-ID in the OSI address.
Therefore only one area per router
•Areas are formed as part of the hello protocol
25
Areas example
•Two areas: 0001 and 0002 connected by inter-area L1-L2,
and L2 routes
•L2 corresponds to a backbone: all inter-area traffic must
go via L2
•The L1-L2 routers are area border routers
They redistribute routes from the L1 to the L2 link-state DB
They redistribute a default route from L2 to L1
L2 L2 L2
L1: 0001 L1: 0002
26
Areas adjacency
•Two L1 routers can form L1 adjacencies only if areaid
match
•L2 routers always match
L2 L2
MATCH
!
L2 L2
MATCH MATCH
L1: 0001 ! L1: 0001 L1: 0001 ! L1: 0001
NO L2 L2
MATCH MATCH
L1: 0001 ! L1: 0002 L1: 0001 ! L1: 0002
27
L2 vs OSPF backbone
•L2 routers must be contiguous but is not an area in itself
•There is even a mechanism for repairing partitioned L1
areas using L2 in IS-IS
•L1 routers send all non intra-area traffic to the nearest L2
routers
Area 1 L1/L2
Area 3
L1
L1/L2 L2
L1/L2
L1/L2 L1
L1
L1/L2 L1 Area 4
Area 2
28
Route leaking
•Totally stub areas (only default route) can lead to sub-
optimal routing
Why? Because if area is multi-homed, a single default route
may not provide the best route
•It is possible to extend ISIS L1 areas to something similar
to OSPF areas
•L2 routes can be ”leaked” to L1 routers
•L1 routers can then make better route calculations
29
Database
30
Extensions
•OSPF was never built to be extended
Hardwired for IPv4
IPv6 requires a new protocol (OSPFv3)
•ISIS is extendable
So far extending ISIS has straightforward
IPv6 ready (just like it's IPv4 and IPX ready...)
A side-note:
Some researchers claim that routing protocols
should be completely independ of each other, that
they should act like ”ships in the night”: CLNP, IPX,
IPv4 and IPv6 routing should be run by different
protocols. But one can still run the same protocol in
different instances, and then you get all benefits of
configuration reuse, etc, of using the same protocol
31
Deployment
•IS-IS very popular in the ISP world
especially large ISPs
•OSPF popular in enterprises
•What are the reasons for this?
•Availability of implementations:
Only the large routing vendors have good IS-IS
implementations: CISCO, JUNIPER
Example: There is no stable open-source IS-IS implementation
available
•Many claim that IS-IS is easier to configure.
32
IS-IS lab
•IS-IS in pair, square and cross
•IS-IS areas: a single L1, one L1/L2 and two L2 routers
connected to all other groups.
•IPv6 and ISIS
33
Conclusions
•For most topologies, IS-IS and OSPF are functionally identical
•Stability and scalability are mostly a matter of hardware, software
and topology, not protocol
•Choose the one you are most comfortable with
34