IS-IS如何承载IP路由?

网络工程 路由 层2 第3层 奥西 伊斯兰国
2021-07-27 06:11:17

IS-IS 在 OSI 参考模型的第 2 层本地运行。路由将如何完成?

我怀疑第 3 层是否有能力进行路由。但是,ISIS 不在第 3 层运行,而是在第 2 层本机运行。那么,IS-IS 如何在 OSI 模型的第 2 层执行路由?

2个回答

ISIS 的工作方式与您所知道的大多数协议大不相同。在最初的 OSI 网络中,ISIS 会与它的邻居建立邻接关系,并告诉他们它知道的任何 ES 的地址。IS 意味着中间系统,因此最好是路由器。ES 意味着端系统,所以任何主机。ISIS 有不同的逻辑和不同的路由级别。ISIS 中使用的级别是*:

  • Level 1:与同一区域内的邻居交换路由信息。
  • 级别 2:与其他区域的邻居(通常称为主干)交换路由信息。

基本上,逻辑如下: 对于级别 1:将您知道的所有已连接和重新分配的路由泛洪到该区域中的所有级别 1 邻居将默认路由设置为您知道的具有 2 级功能的任何路由器。对于 2 级:从你知道的 1 级路由器导入所有路由,泛洪到任何区域的所有 2 级邻居(请注意,您需要级别 1 和 2 的路由器才能进行翻译)

每个路由器都根据这两个规则将它们接收到的任何数据包泛洪给它们的邻居。这些数据包中的信息采用 Type,Length,Value (TLV) 格式。使用 TLV 意味着以下内容:

  • 如果你想添加一个新协议,比如 IPv6,你只需定义一个新的 TLV。
  • 如果其中一个路由器不知道类型,它可以跳过这个值(通过在数据包中向前看 Length)并且仍然按预期工作。
  • 如果一个路由器不知道这个类型,它仍然可以将信息转发给其他路由器。

ISIS 和 OSPF 一样,运行 Dijkstra 算法来寻找最短路径。该算法的所有信息都包含在 TLV 中。与邻居的 L2 通信以两种方式完成: - 当连接到共享网段时,使用该网段的第 2 层协议进行通信。这样做是为了能够遍历可能无法使用 OSI 第 2 层协议 CLNS 的交换机。- 当连接到点对点网络时,第 2 层上的通信是 CLNS。

这并不意味着没有 L3 通信。ISIS 路由器仍然需要第 3 层地址。由于我们谈论的是 OSI,而不是 IP,因此地址略有不同。在这种情况下,该地址称为网络实体标题 (NET),它是整个系统的一个地址(因此不是每个接口一个)。NET 有多种形式,但对于大多数 ISIS 邻接,其工作方式如下:49.<4 char area>.<12 char system identifier>.00. 您使用什么作为标识符并不重要,但是假设我们在区域 52 中有路由器 192.0.2.5,我们可以使 NET 49.0052.1920.0000.2005.00 因为地址是十六进制的,所以您更喜欢 49.0052.0000.B00B.0000.000.000地址是十六进制的)。

*) OSI 路由中还有其他级别,但这些级别对于 ISIS 的当前操作并不重要

路由的简短说明

                                       <-----+192.168.1.0/24         <-----+192.168.1.0/24                                     
      Default route +------>           192.168.2.0/24+----->         192.168.2.0/24+----->      <------+  Default route        

              +-------------+          +-------------------+         +-------------------+      +---------------+              
              |             |          |                   |         |                   |      |               |              
192.168.1.0/24| L1 router   | L1       |   L1/L2 router    |   L2    |   L1/L2 router    |  L1  |   L1 router   |192.168.2.0/24
              |   Area 1    +----------+      Area 1       +---------+      Area 2       +------+     Area 2    |              
              |             |          |                   |         |                   |      |               |              
              +-------------+          +-------------------+         +-------------------+      +---------------+              

它有什么区别?OSPF 和 ISIS 的行为非常相似,因为它们都使用方法与 Hello 数据包(或 PDU)形成邻居/邻接,然后交换拓扑信息(LSA 泛洪),然后构建它们的链路状态数据库,然后 Dijkstra 算法是运行生成最短路径树,然后建立路由表。

OSPF 仅在本机 IP 之上运行,而 ISIS 则不然。NSAP/OSI 寻址的概念对只使用 IP 的人来说是否很奇怪?是的。但正如 Mike 指出的那样,这仅仅是因为设计该协议的人旨在使其与网络层无关,这不仅允许 ISIS 支持其他路由协议,而且还使得扩展协议以支持那些路由协议更容易(例如 - 因为 OSPF 直接依赖于 IP,所以必须基本上重写它以支持 IPv6,而对于 ISIS,只需要创建对新 TLV 的支持)。

Dijkstra 就是 Dijkstra——我们谈论的是 CLNS/CLNP 还是本机 IP 都没有关系。