《IS-IS网络设计解决方案》一第2章 IS-IS路由选择协议介绍2.1 ISO无连接网络服务

简介:

本节书摘来自异步社区《IS-IS网络设计解决方案》一书中的第2章,第2.1节,作者【美】Abe Martey,更多章节内容可以访问云栖社区“异步社区”公众号查看

第2章 IS-IS路由选择协议介绍

IS-IS网络设计解决方案
想要了解中间系统到中间系统(IS-IS)路由选择协议的内部结构和底层操作机制,对其所在的网络互连协议体系及相关技术有一个整体性的了解是非常重要的。本章将着眼于IS-IS的起源,并针对国际标准化组织(International Organization for Standardization,ISO)定义的无连接网络环境进行讨论。

本章首先介绍开放系统互连参考模型(Open System Interconnection Reference Model,OSI-RM),随后主要讨论由OSI定义的包含在OSI参考模型框架中的两种数据通信服务;面向连接网络服务(Connection Network Service,CONS)和无连接网络服务(Connectionless Network Service,CLNS)。IS-IS是CLNS网络环境中的一部分,用于提供在该环境中自动及动态地对数据包进行路由选择的功能。在开发之初,IS-IS就被修改以适应IP路由选择并具有其他的一些功能,例如多协议标签交换(Multiprotocol Label Switching,MPLS)流量工程。

2.1 ISO无连接网络服务

IS-IS网络设计解决方案
国际标准化组织,也就是现在的国际电信联盟(International Telecommunications Union,ITU),通过定义7个层次的OSI参考模型(见图2-1)为计算机网络的标准化打下了基础。OSI参考模型也称为OSI栈,是在OSI 7498文档中定义的(本章涉及的ISO标准化文档可以在www.itu.org网站中找到)。

对于数据通信和信息技术的创立以及随后的发展,OSI参考模型具有着重大的意义。OSI为开放标准的开发提供了结构框架,使不同厂商的通信设备具有灵活的互联性和互操作性。尽管OSI参考模型没有定义任何通信协议或系统的内部细节,但为此类系统的设计和结构开发提供了指导原则。OSI参考模型7个层次中的每一层都定义了一项单独的服务功能,并将相关的功能元素加以组合到这些功能层次中,从而使协议的设计变得简单和便利。每一个功能层次都为其上层提供特定的服务,例如,网络层为传输层提供服务(见图2-1),传输层则为更高层提供数据传输服务,帮助其在通信设备之间传输用户数据。此外,数据传输服务可以是面向连接的或无连接的。面向连接的服务要求数据在通信节点之间传输之前沿通信路径建立一个节点间的连接,而无连接服务则不需要。


0d1e493a2a71515e16e339f824a5f58f47cd131e

最初,在OSI参考模型网络服务中只定义了面向连接的通信服务(CONS)。CONS由两个规范定义:X.25 Packet-Level Protocol for Data Terminal Equipment(ISO 8208)和Network Service Definition(ISO 8348)。

ISO 8348后来进行了修订,在“Network Service Definition, Amendment 1”中定义了在网络设备之间进行无连接通信的功能,称为无连接网络服务(CLNS)。与CONS不同,CLNS不需要在通信设备之间预定义及建立端到端的路径来转发包。CLNS提供了一种数据报服务,使路由器可以根据目前已知的源和目的之间的最佳路径独立地转发每一个数据包。支持CLNS定义的无连接数据报服务的ISO协议如下(见图2-2)。

  • ISO 8473——提供无连接网络服务的无连接网络协议(Connectionless Network Protocol,CLNP)。
  • ISO 9542——与提供无连接网络服务的协议协同工作的终端系统到中间系统路由选择交换协议(End System-to-Intermediate System,ES-IS)。
  • ISO 10589——与提供面向连接网络服务的协议协同工作的中间系统到中间系统(IS-IS)域内路由选择交换协议。
    CLNP、ES-IS和IS-IS都是独立的网络层协议,共存于OSI参考模型的第三层。这三种协议通过编码协议格式的第一个八位组——初始协议标识(Initial Protocol Identifier,IPI)来区分,如下所示。

  CLNP:10000001(0x81)

  ES-IS:10000010(0x82)

  IS-IS:10000011(0x83)


2649ccddeedcea46fe46c4136e203366b0774357

2.1.1 CLNP

无连接网络协议与IP协议非常相似,区别在于CLNP是为ISO的传输协议提供服务,而IP是为TCP/IP协议族服务。与IP协议类似,CLNP独立于数据链路层,这样使其基本上独立于底层的物理介质——无论物理介质是点到点的(常见的广域网连接类型)还是广播的(局域网连接类型)。与IP协议不同的是,IP协议是TCP/IP协议族唯一的网络层协议,所有的上层协议包括路由选择信息和用户应用程序最终都将被IP协议封装,而CLNP与ES-IS及IS-IS共存于OSI网络层,均支持ISO CLNS环境,并各自独立地封装成数据链路层帧。ISO网络层协议族在数据链路层以协议类型值0xFEFE进行标识。

除了与IS-IS路由选择协议相关的内容之外,本书将不再更多地讨论CLNP协议。

2.1.2 ES-IS
终端系统到中间系统(ES-IS)路由选择交换协议在同一网段或链路上的ISO终端系统和路由器之间自动地交换信息,便于邻居发现。在ES-IS协议中,路由器会发送中间系统Hello消息(Intermediate System Hello,ISH),而终端系统会发送终端系统Hello消息(End System Hello,ESH)。这些在直连节点之间传送的Hello消息包含了通信节点的网络层及数据链路层地址。Hello消息可以理解成配置信息。终端系统通过路由器将数据包转发到非直连设备。

ES-IS协议中使用的另一种类型的数据包称为路由重定向(Route Redirection,RD)。RD数据包由路由器发送给终端系统,用于告知终端系统到达某一感兴趣终端系统的更优路径。RD的功能与IP网络环境中的Internet消息控制协议(ICMP)重定向类似。基本上来说,ISO环境中的ES-IS协议的操作可以看作是IP协议框架中ICMP、地址解析协议(ARP)和动态主机配置协议(DHCP)的集合。

ES-IS协议与处理和传输IP数据报的IP工作站及服务器无关。对于这些IP设备,IP ARP用于对需要定位的路由器及直连主机提供必要的网络层到数据链路层的地址的解析。尽管某些不常见的高级服务器能够支持简单的路由选择协议(如RIP),一些现代的服务器甚至能够利用更为复杂的OSPF协议实现IP路由选择,但IP主机通常使用静态默认路由作为其默认网关。

IS-IS协议某些方面的操作需要依赖ES-IS协议支持;因此,尽管在Cisco路由器上IS-IS仅用于IP路由选择,也需要运行ES-IS协议提供后台支持。例如,在IS-IS点到点邻接关系建立之前,需要首先在在两台邻居路由器之间交换ES-IS的ISH消息。

2.1.3 IS-IS路由选择协议

IS-IS路由选择协议在ISO 10589中定义,提供了一种在ISO CLNS环境下运行CLNP的路由器之间动态交换路由选择信息的方法。CLNP使用逐跳的路由选择机制在网络中转发数据。IS-IS则负责自动执行最佳路径的计算和选择过程。

IS-IS的设计目标主要包括以下内容。

  • 域内路由选择协议的相关功能;
  • 呈现整个网络的拓扑并决策最佳路由;
  • 故障情况下的快速收敛;
  • 保障网络的稳定性;
  • 高效地利用网络资源,如路由器内存、CPU及网络带宽。

为了实现以上目标,IS-IS被设计成链路状态路由选择协议并应用在单个网络域内。因此,IS-IS是一种IGP协议。IS-IS支持2级Level的路由选择(Level 1和Level 2路由选择)以实现大规模网络域的路由选择。IS-IS使用最短路径优先(SPF)算法进行路由计算和路径选择,并可以实现快速收敛。

2.1.4 集成IS-IS

Internet工程任务组(IETF)在RFC 1195,“Use of OSI IS-IS for Routing in TCP/IP and Dual Environments”中定义了IS-IS协议的另一个版本,一般称之为集成IS-IS或双重IS-IS。集成IS-IS可以像最初的IS-IS协议一样运行在CLNS环境中,同时也可以实现IP路由选择。值得注意的是,集成IS-IS是少数支持并发处理超过一种网络层协议(对于集成IS-IS来说是IP和CLNS)的路由选择协议之一。其他的路由选择信息协议通常只能支持某一种网络层协议的路由选择,例如OSPF只能对IP协议进行路由选择。集成IS-IS可用于纯IP网络或CLNP网络的路由选择,也可以用在同时存在IP和CLNP流量的双重网络中。

本书着重于IP网络中尤其是组成Internet的服务提供商网络中集成IS-IS的使用。虽然IS-IS的设计初衷并不是用于IP路由选择,但其后来在Internet上的IP路由选择却取得了成功,因此,为进一步增强其灵活性和可扩展性,在RFC 1195中又为IS-IS开发了很多专有的特性。IETF最近重新启动了IS-IS工作组以探索将一些厂商私有特性标准化的可能性,并开发一些新的标准以满足新兴的应用需求,例如多协议标签交换流量工程(MPLS TE)。大部分最近的IS-IS标准化特性已经形成了RFC文档,还有一部分IETF仍在审阅。同时,大部分的这些新特性也将包含在ISO 10589第二版中,该文档目前仍在审阅(本书创作之际),不久将会发布。当需要时,与本书主题相关的IETF RFC文档和草案会被提及。

相关文章
|
1天前
|
安全 网络协议 网络安全
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题
【网络连接】ping不通的常见原因+解决方案,如何在只能访问网关时诊断,并修复IP不通的问题
21 0
|
2天前
|
网络协议 Linux Android开发
计算机网络:MAC地址 & IP地址 & ARP协议
计算机网络:MAC地址 & IP地址 & ARP协议
26 7
|
2天前
|
算法
计算机网络:CSMA/CA协议
计算机网络:CSMA/CA协议
15 9
|
2天前
|
缓存 算法
计算机网络:CSMA/CD协议
计算机网络:CSMA/CD协议
9 0
|
2天前
|
缓存 编解码 Go
计算机网络:可靠传输协议
计算机网络:可靠传输协议
10 1
|
2天前
|
算法 网络架构
计算机网络:点对点协议PPP
计算机网络:点对点协议PPP
11 0
|
13天前
|
监控 安全 Linux
【专栏】Linux中六个常用的网络命令:ping、traceroute、netstat、nmap、ifconfig和ip
【4月更文挑战第28天】本文介绍了Linux中六个常用的网络命令:ping、traceroute、netstat、nmap、ifconfig和ip,以及它们在测试网络连通性、追踪路由、查看网络状态、安全扫描和接口配置等场景的应用。通过学习和运用这些命令,系统管理员和网络爱好者能更有效地诊断和管理网络问题,确保网络稳定运行。
|
3天前
|
域名解析 网络协议 Linux
linux网络配置详解
linux网络配置详解
12 0
|
4天前
|
网络协议 Java Linux
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
11 0
|
4天前
|
存储 网络协议 算法
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
11 0