IGP Comparison (Summary of Responses)

In the process of selecting an IGP to run on a large scale nationwide
IP Network, I received many responses to my NANOG request for information on
IS-IS versus OSPF protocols. Most of the resources mentioned in the
responses, however, were bias towards OSPF. There was not much
information on IS-IS to be found, although obviously some individuals are
satisfied enough with this protocol that is it still in place in large
networks.

Thank you to everyone who responded to my request. Rather than responding to
each of you individually, I have summarized the information I received below
(although
admittedly one-sided).

General:
"The two are really pretty much equivalent, other than that IS-IS is
intended for OSI networks while OSPF is for IP networks. Then there's
"Integrated IS-IS" that handles both."

Politics:
"In fact, a number of members in the OSPF working group feared that IS-IS
would be preferred for "political" reasons, as part of a grand plan to
convert the Internet to OSI correctness, even if that meant a complete
disruption of the service."(1)

"There were also non-technical considerations. Many people felt that it was
better that the IETF have complete control over the OSPF protocol design
rather than depend on an ISO committee whose goals, namely to produce a
routing protocol for the OSI protocol stack, were somewhat different."(2)

Technical Issues:
The following are excerpt from John Moy's book discusses the reasons
that the IETF went ahead with the development of OSPF even though IS-IS was
already being developed:
"First, IS-IS ran directly over the link layer, which we thought was the
wrong choice for a TCP/IP routing protocol..."
"IS-IS had an area routing scheme, but one that did not allow any shortcuts
between areas that we thought were necessary for an Internet routing
protocol."
"Also, IS-IS made no attempt to align fields in their packet formats, making
life more difficult for protocol implementers."

"It is possible to run IS-IS on an IP-only network, but, even if one does
not want to forward CLNP datagarms, one will have to install in the routers
the low-level code that demultiplexes CLNP and IS-IS packets. The "area"
model of IS-IS is designed for CLNP where the rigidity and connectivity
requirements are somewhat compensated by the possibility to perform
automatic address assignment; when one uses IS-IS for IP, the rigidity
remains, but the advantages disappear. IS-IS suffers from at least two
other problems; a tiny metric and a limit to what a router can advertise.
Having only 6 bits to express a link's metric is not really a good idea. It
may make some messages shorter, but it certainly diminishes the routing's
precision. Then, using the 8-bit link state record number to identify the
link state record's will limit to 256 the number of records that a given
router can advertise. As the size of each record is limited to the maximum
packet size supported by the network, this can prove to be a severe
constraint."(1)
Dr. Huitema goes on to state some advantages of OSPF over IS-IS:
* Support of a backup designated router
* Coexistence with RIP through "not-so-stubby-areas" [Okay, this ones a
little dated]
* OSPF is "change controlled" by the IETF, evolution of OSI Protocols was
much slower and that it responded to many other forces besides user needs.

Ron Johnson wrote:
OSPF: Uses a multicast address and standard IP transport to carry it's
packets.
IS-IS: Uses it own transport method to carry it's packets.

OSPF: Scales well when the Backbone/area/stub model is correctly
implemented, otherwise with many routers in a single area, it can have a
definite performance impact on routing convergence times.
IS-IS: Is less sensitive to growth problems then OSPF.

OSPF: Is easier to implement and understand. It is more widely used, and
supported amongst many vendors.
IS-IS: Is more arcane. Harder to implement and understand it's operation
and behavior, and may not be supported on every router.

So, the bottom line, for me is; Use OSPF V2, if you are building a network
where you can create a "backbone" area and then other logical areas
attached to the backbone. Then aggregate and summarize your route
announcements in your areas and announce the summarized routes into the
backbone area.
You will end up with less routes in your IGP. Which in turn means lower
OSPF recalculation times, better performance and a more stable IGP.

References:
(1)"Routing and the Internet" By: Christian Huitema (ISBN: 0131321927)
(2)"OSPF Anatomy of an Internet Routing Protocol" By: John Moy (ISBN:
0201634724)
"Routing TCP/IP Volume I" By: Jeff Doyle, CCIE (ISBN:1578700418)
RFC2178 "OSPF Version 2" (http://www.faqs.org/rfcs/rfc2178.html)
RFC1195 "Use of OSI IS-IS for Routing in TCP/IP and Dual Environments"
(http://www.faqs.org/rfcs/rfc1195.html)
RFC1371 "Choosing a "Common IGP" for the IP Internet (The IESG's
Recommendation to the IAB)" (http://www.faqs.org/rfcs/rfc1370.html)
Previous NANOG Discussions on this topic:
http://www.cctec.com/maillists/nanog/historical/9810/threads.html#00484

Other References I have yet to review:
"Interconnections: Bridges and Routers" By: Radia Perlman (ISBN:
0201563320)
"The Great IGP Debate--Part One:IS-IS and Integrated Routing." By: R.
Perlman and R. Callon (ConneXions 5, no. 10, October 1991)
"The Great IGP Debate--Part Two:The Open Shortest Path First (OSPF) Routing
Protocol." (ConneXions 5, no. 10, October 1991)

Dan Rabb
Network
digital broadcast network
dan@dbn.net

Hello Dan,

In the process of selecting an IGP to run on a large scale nationwide
IP Network, I received many responses to my NANOG request for information on
IS-IS versus OSPF protocols. Most of the resources mentioned in the
responses, however, were bias towards OSPF. There was not much
information on IS-IS to be found,

  Yes, this is (IMHO) one of the main drawbacks of IS-IS. It has a
higher learning curve than OSPF, because there is less documentation.

although obviously some individuals are
satisfied enough with this protocol that is it still in place in large
networks.

  Most of the large ISPs in the US run IS-IS as their IP IGP.
In europe a number of PTTs have chosen IS-IS as the IGP for their new
IP Internet backbones. That might be an indication if IS-IS is dead.

Thank you to everyone who responded to my request. Rather than responding to
each of you individually, I have summarized the information I received below
(although admittedly one-sided).

  What's worse, some of the information below is simply not true.
Let me give you some more info.
And yes, I am biased towards IS-IS.

General:
"The two are really pretty much equivalent, other than that IS-IS is
intended for OSI networks while OSPF is for IP networks. Then there's
"Integrated IS-IS" that handles both."

  IS-IS and "Integrated IS-IS" are just one and the same protocol.
In my opinion IS-IS defines fixed packet formats, plus a way to
extend the content of those packets with TLVs (Type Length Value).
Adjacency maintenance and a reliable flooding mechanism are also
part of IS-IS. The main goal of IS-IS is to determine the topology
of the network. Building routing tables is secondary to that.

  "Integrated IS-IS" is just a bunch of extensions. Extra TLVs so IS-IS
can carry IP information. IS-IS can easily be extended to carry routing
information for IPv6 or any layer3 protocol. Have a look at NLSP, and
you will see ISIS carrying IPX routes and SAPs. Unfortunately Novell
defined NLSP in such a way that it is incompatible with ISIS.
  IS-IS is defined in ISO document 10589. It defines the base structures
of the protocol (adjacencies, flooding, etc). Unfortunately it also
defines lots of CLNS specific TLVs. So it looks like ISIS is a routing
protocol for CLNS, and the IP thing is an add on. That is partly true,
but the ability to carry routing info for any layer3 protocol is a
well designed feature. I suspect IS-IS might be easier to understand
if the CLNS specific part was separated from the base protocol.

Politics:
"In fact, a number of members in the OSPF working group feared that IS-IS
would be preferred for "political" reasons, as part of a grand plan to
convert the Internet to OSI correctness, even if that meant a complete
disruption of the service."(1)

"There were also non-technical considerations. Many people felt that it was
better that the IETF have complete control over the OSPF protocol design
rather than depend on an ISO committee whose goals, namely to produce a
routing protocol for the OSI protocol stack, were somewhat different."(2)

  This is all history, and should not be a reason for you to pick one
protocol over the other. The IETF has become what OSI was (and even
worse). Right now there are active OSPF *and* IS-IS workgroups. The IETF
can extend IS-IS as much as is needed.

Technical Issues:
The following are excerpt from John Moy's book discusses the reasons
that the IETF went ahead with the development of OSPF even though IS-IS was
already being developed:
"First, IS-IS ran directly over the link layer, which we thought was the
wrong choice for a TCP/IP routing protocol..."

  IMHO it doesn't matter much. Strictly speaking routers should only need
to communicate with their direct neighbors. Unless you want virtual
links. (Yes, ISIS has them too, but for area partioning repair. They use
CLNS as tunnel encapsulation. I hate them even more than OSPF virtual
links).

  FYI, at the Orlando IETF an internet draft by TonyP was discussed that
prososes an encapsulation scheme for IS-IS in IPv4 packets.

"IS-IS had an area routing scheme, but one that did not allow any shortcuts
between areas that we thought were necessary for an Internet routing
protocol."

  Yes, OSPF allows virtual links. But there are different opinions regarding
the use of them. Some people say that if you use them, your network
design is already broken. Networks should be designed hierachical, or
you are gonna regret it later.

  One of the obvious problems of VL is that instability in an area with
a VL can now influnece instability in area 0.

  FYI, in IS-IS level-1 areas and the level-2 backbone can overlap. That
allows you to design a more robust leve-2 backbone, and alleviates the
need for virtual links.

"Also, IS-IS made no attempt to align fields in their packet formats, making
life more difficult for protocol implementers."

  I totally disagree here.
  IS-IS allows variable lenght fields (in the TLVs). An implementor just
knows that if he want to copy an integer out of a packet he has to
copy it byte-by-byte. That's all. Not all fields in packets are integers.
Whether an integer copy, a short copy, or a longlong copy takes more time
depends on the CPU type. Anyway, with today's fast CPUs, who cares about
the speed of byte copies in routing protocol packets ? (User traffic
forwarding is a different story).
  The variable lenght TLVs make protocol extensions way more easier.

"It is possible to run IS-IS on an IP-only network, but, even if one does
not want to forward CLNP datagarms, one will have to install in the routers
the low-level code that demultiplexes CLNP and IS-IS packets.

  IS-IS is not CLNP.
Yes, you need the low-level code to recognize "OSI traffic", and get
the ISIS packets (and maybe ignore the CLNS packets). If you plan to
run Gated on your Unix box, it migth matter. But if you buy a commercial
router product, do you care ?
  

The "area"
model of IS-IS is designed for CLNP where the rigidity and connectivity
requirements are somewhat compensated by the possibility to perform
automatic address assignment; when one uses IS-IS for IP, the rigidity
remains, but the advantages disappear.

  This is true. In IS-IS all areas are stub areas.
Or to be exact, in the most popular IS-IS implementation IS-IS areas
are more like OSPF not-so-stubby-areas.
  However, note that design guides typically advise you to use stub areas
in OSPF network designs. In most (hierarchical and redundant) networks
it hardly matters which ABR is chosen to get out of an area.

  The only real problem here is if you are a ISP and do
shortest-exit-routing, or if you need to give MED to your customers
based on IGP distance to your BGP next-hops.

  There is an IETF draft in the making that defines inter-area IP routes.
Once that is implemented, IS-IS will behave exactly the same as OSPF
regarding inter-area routes.

IS-IS suffers from at least two
other problems; a tiny metric and a limit to what a router can advertise.
Having only 6 bits to express a link's metric is not really a good idea. It
may make some messages shorter,

  Using 6 bits has nothing to do with making LSPs smaller.
It is done to assure the total path metric can be assumed to be under 1023.
That will allow implementors to use a trick during sorting of the tentative
list during SPF. This will bring the theoretical complexity of SPF from
O(n log n) to O(n). However, in real life it probably hardly matters.

  FYI the upcoming draft that will define interarea IP routes will also
defines some more new TLVs, and will use more bits for the metric.

but it certainly dimnishes the routing's precision.

  Most ISPs use hand-picked metrics. They don't want automatic metrics.
In that case the precision is less important. With some puzzling you
can get what you want. But yes, sometimes this puzzling gets a bit nasty.

Then, using the 8-bit link state record number to identify the
link state record's will limit to 256 the number of records that a given
router can advertise. As the size of each record is limited to the maximum
packet size supported by the network, this can prove to be a severe
constraint."(1)

  FYI, the default max lsp-size is 1492 bytes. 256 fragments of 1492
bytes gives enough room to store 30K IP routes. More than you want.
If you are gonna carry many IP routes in your IGP, it is way better
to carry them in BGP.

  Sometimes it is nice to flood only information that has changed.
Like in OSPF when only a single external route changes.
But sometimes it is a drawback.
Real life has shown that LSP/LSA flooding is way more of a scaling
issue than running SPFs. In heavily meshed networks a router will
see many copies of the same LSP/LSA. Only the first time a router
sees the new LSP/LSA is will store it in the LSDB. All the other
copies of that same LSP/LSA will be ignored. But they need to be send,
acknowledged, etc. That is a lot of work for many small LSAs (in OSPF).
It is more effective to just flood a few larger LSPs (in IS-IS).

Dr. Huitema goes on to state some advantages of OSPF over IS-IS:
* Support of a backup designated router

  Yeah, right.
Dr Huitema clearly needs a little education.
Flooding in OSPF over a LAN is painful. When the DR goes down, we need
a new DR. All routers on the LAN need to sync with the new DR. That
takes a lot of time. So OSPF needed an ugly hack like the BDR. It keeps
DR changes acceptable, but adds a lot of complexity. IS-IS uses CSNPS
in a scheme that is a lot more simpler and elegant.

* Coexistence with RIP through "not-so-stubby-areas" [Okay, this ones a
little dated]

  Same can be done in IS-IS. (If you ignore the part in rfc1195 that
says you can't advertise externals in L1 LSPs).

* OSPF is "change controlled" by the IETF, evolution of OSI Protocols was
much slower and that it responded to many other forces besides user needs.

  IS-IS has it's own IETF WG. And many new drafts.

Ron Johnson wrote:
OSPF: Uses a multicast address and standard IP transport to carry it's
packets.
IS-IS: Uses it own transport method to carry it's packets.

  IS-IS is encapsulated directly in the datalink layer.
Only an issue when you us ATM. IS-IS and IP over ATM require snap or
nlpid encaps, which adds enough bytes so a TCP ack won't fit into
one ATM cell. You'll waste some extra percentage of your BW. OSPF
allows null encaps, and a TCP ack will just fit into one cell.
  IS-IS in IP encapsultation is on it's way.

OSPF: Scales well when the Backbone/area/stub model is correctly
implemented, otherwise with many routers in a single area, it can have a
definite performance impact on routing convergence times.
IS-IS: Is less sensitive to growth problems then OSPF.

  Most ISPs run their backbone as one IS-IS area. (Because there are
no inter-area routes from level-2 into level-1). This is not a public
statement, so don't hold me responsible. But I believe that in a cisco
network, with MIPS based boxes and running dCEF, and enough BW (T1s or
so) you can probably easily put a 1000 routers or more in one area.
In that case you don't need to mess with areas. Is a 1000 routers
in one network enough for you ?
  Again, don't build a 1000 router network and when it breaks come
complaining. Please contact your cisco SE (or me) if you plan to
do this. :slight_smile:

OSPF: Is easier to implement and understand. It is more widely used, and
supported amongst many vendors.

  That is true. More documentation and more experience.
Note, many router vendors have implemented IS-IS recently, or are
working on it.

IS-IS: Is more arcane. Harder to implement and understand it's operation
and behavior, and may not be supported on every router.

  Mmmm, actually I think IS-IS is easier to troubleshoot and predict
once you understand the basics.

So, the bottom line, for me is; Use OSPF V2, if you are building a network
where you can create a "backbone" area and then other logical areas
attached to the backbone. Then aggregate and summarize your route
announcements in your areas and announce the summarized routes into the
backbone area.

  Summarization. That is good network design.
But is also indicates you care less about "routing precision".
So IMO there are no substantial benefits in OSPF over IS-IS.

You will end up with less routes in your IGP. Which in turn means lower
OSPF recalculation times, better performance and a more stable IGP.

  Of course.
Same design rules apply for both OSPF and ISIS.

References:
(1)"Routing and the Internet" By: Christian Huitema (ISBN: 0131321927)

  If the rest of the book is as accurate as the quotes in your email,
better throw away this book. :wink:

(2)"OSPF Anatomy of an Internet Routing Protocol" By: John Moy (ISBN:
0201634724)
"Routing TCP/IP Volume I" By: Jeff Doyle, CCIE (ISBN:1578700418)
RFC2178 "OSPF Version 2" (http://www.faqs.org/rfcs/rfc2178.html)
RFC1195 "Use of OSI IS-IS for Routing in TCP/IP and Dual Environments"
(RFC 1195 - Use of OSI IS-IS for routing in TCP/IP and dual envir (RFC1195))
RFC1371 "Choosing a "Common IGP" for the IP Internet (The IESG's
Recommendation to the IAB)" (RFC 1370 - Applicability Statement for OSPF (RFC1370))
Previous NANOG Discussions on this topic:
http://www.cctec.com/maillists/nanog/historical/9810/threads.html#00484

Other References I have yet to review:
"Interconnections: Bridges and Routers" By: Radia Perlman (ISBN:
0201563320)

  Biased towards IS-IS. Maybe you should have read it. :wink:

"The Great IGP Debate--Part One:IS-IS and Integrated Routing." By: R.
Perlman and R. Callon (ConneXions 5, no. 10, October 1991)
"The Great IGP Debate--Part Two:The Open Shortest Path First (OSPF) Routing
Protocol." (ConneXions 5, no. 10, October 1991)

  I haven't read these. Old stuff, I guess they are less relevant now.

  Bottomline, OSPF and ISIS are very similar. The differences might
be meaningful in some network, and not in others. Personally I prefer ISIS.
It is simpler and more elegant. Thus (IMHO) easier to implement and deploy.
Which should result in more scalable and robust implementations.
I just wanted to discuss some of the opinions given by others.
Hope it helps.

    Regards,

       Henk

hsmit@cisco.com (Henk Smit) writes:

> "There were also non-technical considerations. Many people felt that it was
> better that the IETF have complete control over the OSPF protocol design
> rather than depend on an ISO committee whose goals, namely to produce a
> routing protocol for the OSI protocol stack, were somewhat different."(2)

  This is all history, and should not be a reason for you to pick one
protocol over the other. The IETF has become what OSI was (and even
worse). Right now there are active OSPF *and* IS-IS workgroups. The IETF
can extend IS-IS as much as is needed.

We should also point out that the IETF is now an OSI liason organization
and can make contributions to the ISO process. Further, given the
technical expertise of the folks working in the IETF, the effective death
of CLNP, and the fact that a significant proportion of the systems running
IS-IS are actually doing so to forward IP, any contributions made by the
IETF will be taken very seriously by ISO.

Regards,
Tony Li
IS-IS WG co-chair

Most of the large ISPs in the US run IS-IS as their IP IGP.
In europe a number of PTTs have chosen IS-IS as the IGP for their new
IP Internet backbones. That might be an indication if IS-IS is dead.

hypothesis: big isps talk less. except a few loudmouths <g>, and when jhawk
gets pissed off <g^2>.

randy

Btw, I doubt anyone pay attention to the IS-IS and OSPF feature
differences when choose IGP protocol, usially this protocols are treated
as _EQUAL - IS-IS is more complex to configure, and that's the only real
difference for real life_, but pay attention to the vendors (CISCO
realised IS-IS later and this realisation was better than OSPF's, IS-IS
is not common-vendor protocol, IS-IS allow you to use OSPF for the
customer's routing and readvertise OSPF into IS-IS, and so on...

Henk Smit wrote:

> Politics:
> "In fact, a number of members in the OSPF working group feared that
IS-IS
> would be preferred for "political" reasons, as part of a grand plan
to
> convert the Internet to OSI correctness, even if that meant a
complete
> disruption of the service."(1)
>
> "There were also non-technical considerations. Many people felt
that it was
> better that the IETF have complete control over the OSPF protocol
design
> rather than depend on an ISO committee whose goals, namely to
produce a
> routing protocol for the OSI protocol stack, were somewhat
different."(2)

  This is all history, and should not be a reason for you to pick one
protocol over the other. The IETF has become what OSI was (and even
worse). Right now there are active OSPF *and* IS-IS workgroups. The
IETF
can extend IS-IS as much as is needed.

That's just one way to see the world. The other way is that obviously
a demand for one or the other reason exists for both protocols and
since both
protocols are used to haul IP data, it's better for IETF to try to make
sure that both protocols are in a decent shape in terms of
standardization and
interoperability. ISPs are customers here and until the world converges
on one
protocol (if it ever will), their needs should be met. The reasons for
the convergence
not being trivial or high on the priority lists of many have been
discussed in other
threads. Observe that neither OSPF nor
IS-IS working group has on its charter "political fight of the other
protocol" as
many people try to interpret the IETF landscape (this of course only
mirroring the
human tendency to label things as bad and good and watch wrestling
instead of
debates of deep technical content ;-). As Henk
mentions, little good documentation exists although ISIS work has been
done
(much of it by a well known, leading company :wink: to scale the protocol.
One of the
goals of the working group I particularly try to speak for is to
document this kind of work.

> OSPF: Scales well when the Backbone/area/stub model is correctly
> implemented, otherwise with many routers in a single area, it can
have a
> definite performance impact on routing convergence times.
> IS-IS: Is less sensitive to growth problems then OSPF.

  Most ISPs run their backbone as one IS-IS area. (Because there are
no inter-area routes from level-2 into level-1). This is not a public

statement, so don't hold me responsible. But I believe that in a
cisco
network, with MIPS based boxes and running dCEF, and enough BW (T1s
or
so) you can probably easily put a 1000 routers or more in one area.
In that case you don't need to mess with areas. Is a 1000 routers
in one network enough for you ?
  Again, don't build a 1000 router network and when it breaks come
complaining. Please contact your cisco SE (or me) if you plan to
do this. :slight_smile:

nobody doubts that you can have 1000 routers staying up in a stable
network, just
the convergence time when coming up and links flap is kind of rather
ugly issue :wink:

> OSPF: Is easier to implement and understand. It is more widely used,
and
> supported amongst many vendors.

  That is true. More documentation and more experience.
Note, many router vendors have implemented IS-IS recently, or are
working on it.

Here I jump in for Henk, I wouldn't say OSPF is easier to implement
correctly
& efficiently than IS-IS. Argument about documentation & experience is
true
of course but that's what the group is for, the better documented the
protocol
becomes, the better the chance it will survive long-term IMHO.

> IS-IS: Is more arcane. Harder to implement and understand it's
operation
> and behavior, and may not be supported on every router.

  Mmmm, actually I think IS-IS is easier to troubleshoot and predict
once you understand the basics.

I would say it boils down to the documentation question agian ...

> Other References I have yet to review:
> "Interconnections: Bridges and Routers" By: Radia Perlman (ISBN:
> 0201563320)

  Biased towards IS-IS. Maybe you should have read it. :wink:

great book, however the level of detail is sometimes scanty
if you look for deep insight into
the specific protocols. Radia is updating it though ...

                thank you

                --- tony, the other co-chair :wink:

ISPs are customers here and until the world converges

on one
protocol (if it ever will), their needs should be met.

If we do see pressure for convergence, it will be evidence that we've
lost our hold on the multi-tier model. If we like the multi-tier model
(and so far it's been useful) then we want to continue to make the IGP
you run in a given domain a local matter. If it weren't we never would
have seen OSPF or ISIS deployed widely in the first place.

Cordiali saluti ... Scott