Allgemein:

IS-IS ist ein Routing Protokoll das aus einer 2-Level Hierarchie besteht. Intermediate Systeme (IS) können bei IS-IS für Level 1 (L1) oder für Level 2 (L2) konfiguriert werden. Weiters kann ein IS auch als Exit-Point für eine Area auftreten. Die Exit-Points unterstützten dann beide Ebenen und werden als Level 1 Level 2 ISs (L1L2ISs) bezeichnet. Das Routing auf L1, auch als Intra-Area Routing bezeichnet, wird durch eine in der Area eindeutige System ID realisiert. Ein L1-IS hat keine Kenntnisse über den Aufbau der Domain, es kennt einzig und allein die Topologie der Area in der es sich befindet. Ein L2-IS kennt die Topologie der gesamten Domain, besitzt aber keine Kenntnisse über den Aufbau einer Area. Ein Exit-Point hat Kenntnisse über beide Levels.

Ein L1L2-IS sendet eine Default Route an alle L1-ISs die sich in der Area befinden. Wenn nun ein L1-IS ein Paket in eine andere Area versenden will, dann sucht sich das L1-IS aus allen empfangenen Default Routen den günstigsten Exit-Point für sich in der Area aus. Soweit einmal der grobe Aufbau bei IS-IS der für das Verständnis von „Suboptimal Inter-Area Routing“ wichtig ist.

Für eine genaue Beschreibung über die verschiedenen Levels und das Routing-Verhalten von IS-IS siehe „routingdomains“.


Das nicht optimale Inter-Area Routing Verhalten von IS-IS:

Bei IS-IS kann durch eine ungünstige Konstellation der Exit-Points in den verschiedenen Areas ein nicht optimales Inter-Area Routing Verhalten erreicht werden.

Die folgende Abbildung soll als visuelle Unterstützung für die Erläuterung des Problems dienen.

1)

Abb. 1: Suboptimal Routing

In der obigen Abbildung ist eine Domain zu sehen. Diese Domain besteht aus fünf Areas, weiters gibt es eine unterschiedliche Anzahl an ISs innerhalb jeder Area. Anzumerken sei aber, dass es in jeder Area zumindest einen Exit-Point geben muss. Weiters ist es auch von Nöten, dass es einen durchgängigen Backbone, also L2 bzw. L1L2, zu den fünf Areas geben muss. Wir gehen nun davon aus, dass via R1, aus dem Area 1, Daten an R2, der sich in Area 2 befindet, gesendet werden. Danach sendet Router 2 eine Bestätigung über den Empfang der Pakete an Router 1.

Hier nun der Ablauf:

  • Der L1-R1 empfängt Daten und stellt fest, dass sich der Empfänger nicht in dieser Area befindet. Er sendet seine Daten via L1 zum günstigsten L1L2IS. Das ist in diesem Fall das einzige L1L2IS in Area 1. Jetzt werden die Pakete auf L2 weitergesendet. Der Exit-Point sieht sich die Area Adresse der Pakete an und schickt die Daten an den direkt verbundenen Exit-Point in Area 2.
  • In der Area 2 angekommen werden die Routing Pakete wieder von L2 an L1 übergeben und zum Router 2 gesendet. Zu beachten ist hier, dass es auch eine L2 Verbindung zum Router 2 gibt. Diese wird aber nicht für die Intra-Area Kommunikation verwendet, sondern ausschließlich für Daten die in andere Areas verschickt werden.
  • Wenn jetzt R2 an R1 Daten senden will, wird dabei nicht die gleiche Route verwendet wie im vorherigen Schritt. Die Daten werden also von R2 an den, von R2 aus günstigsten Exit-Point gesendet. Das heißt im Klartext, dass die Pakete zum L1L2IS in die Area 4 gesendet werden. Dieser sendet die Daten weiter zum L2IS in die Area 5 und von dort aus kommen die Routing Pakete in die Area 1.
  • Der Exit-Point von Area 1 sieht sich auf L2 die Area ID des Pakets an, übermittelt die Daten an L1 und von dort werden die Pakete dann weiter zu R1 gesendet.

Wenn wir jetzt den Ablauf analysieren dann stellen wir fest, dass zum einem für den Weg R1 zu R2 und dem Weg R2 zu R1 zwei komplett verschiedene Routen gewählt wurden und zum anderen wurde beim Rückweg eine höhere Metrik und ein Hop mehr in Kauf genommen. Der entscheidende Fehler der hier also passiert, ist das sofortige Senden zu einem Exit-Point ohne eventuelle Berücksichtigung einer besseren und vor allem günstigeren Route. Es wäre also sehr wünschenswert wenn bei einer zukünftigen Implementation von IS-IS eine Lösung für dieses Problem erarbeitet würde.


Quellen:

Abe Martey, IS-IS Network Design Solution

CCNP 1 Ver. 3.1 Kap.7

 
suboptimalrouting.txt · Last modified: 2009/09/13 14:37 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki