欢迎,我是小弗。OSI 定义了七层模型,但为何称其为 OSI 参考模型?因为 OSI 除了定义七层模型,还定义了各层的网络协议,例如:CLNS、CONP、IS-IS 等。然而,许多协议在多年间未能最终定稿,而定稿的部分复杂且实现成本高昂。
相比之下,TCP/IP 协议族首先确立了网络协议,然后参考了 OSI 的网络分层模型,构建了 TCP/IP 网络模型。尽管不如 OSI 完善,但 TCP、IP 等协议可以直接投入使用。
最后,OSI 的大部分项目未能继续,几乎只剩下参考模型。
IS-IS 是少数仍在现网应用的 OSI 网络协议。它是一种链路状态路由协议,类似于 OSPF,通过 Hello 报文发现对方,建立邻居关系,交换 LSP,这些 LSP 存储在 LSDB 中,并利用 SPF 算法计算路径,最终得到 IS-IS 路由。
IS-IS 是专为 CLNP(无连接网络协议)设计的动态路由协议,可以理解为 OSI 中 CLNP 的功能等同于 TCP/IP 的 IP 协议。IS-IS 不能在 TCP/IP 环境中运行,后经过扩展,允许同时支持 IP 路由,这种 IS-IS 称为集成 IS-IS(Integrated IS-IS)。
常用名词解释如下:
ISO:国际标准化组织,负责国际标准化的实现,例如 ISO9000 质量体系和 OSI 参考模型。
OSI 模型包含两种通信类型:CONS(面向连接的网络服务)和 CLNS(无连接网络服务)。
CONS:面向连接的网络服务。CONP 是连接网络协议,支持 CONS 服务。但如今 CLNS 已取代 CONS 服务。
CLNS:无连接的网络服务,由 CLNP 协议支持。
CLNP:无连接网络协议,类似于 IP 协议,是 OSI 模型下 CLNS 的网络协议,有时也称 CLNS 协议。IS-IS、ES-IS、CLNP 都是网络层协议,直接封装在数据链路层帧中,而 TCP/IP 的 OSPF 报文则封装在 IP 报文中。
IS:中间系统。在 IS-IS 协议中,路由器扮演中间系统的角色。
ES:终端系统。在 IS-IS 协议中,如主机、服务器等。
IS-IS:中间系统到中间系统,是 OSI 协议中的动态链路协议,在 CLNS 环境中,IS 之间动态交换路由信息的协议,后来扩展支持 TCP/IP 协议。OSPF 是 TCP/IP 下的动态链路协议。
集成 IS-IS:原本仅支持 CLNS 网络环境的 IS-IS,后 IETF 修改扩展,称为集成 IS-IS(Integrated IS-IS)。集成 IS-IS 在 TCP/IP 和 OSI 网络中同时提供动态路由信息交换,支持多种网络层协议,如 IP 和 CLNP,而 OSPF 只支持 IP。
ES-IS:终端系统与中间系统的通信协议。不属于路由协议。ES 和 IS 间建立邻接关系,实现数据链路地址到网络地址的映射,类似于 TCP/IP 协议中的 MAC 地址到 IP 地址映射。
LSP:链路状态报文,IS-IS 用于描述链路状态信息,类似于 OSPF 的 LSA。IS 收集网络中的 LSP,装载到 LSDB 中,基于 LSP 进行路由计算。LSP 分为 Level-1 LSP 和 Level-2 LSP 两种。
PDU:数据单元,OSI 网络层协议报文,类似 TCP/IP 中的 IP 报文。
OSI 地址 NSAP
在 OSI 协议栈中,NSAP(网络服务器接入点)是 OSI 网络层地址,用于在 OSI 协议栈中定位资源。它不仅包含设备的地址信息,还包含上层协议类型或服务类型的标识。类似于 TCP/IP 中 IP 地址与 TCP 或 UDP 端口号的组合。
NSAP 地址由 IDP(初始域部分)和 DSP(域指定部分)组成,两者长度可变,总长度范围从 8byte 到 20byte。AFI(地址分配机构)长度是 1 byte,表示地址格式,值为 49 表示本地管理,即私有地址空间。IDI(域)长度可变。High Order DSP(高阶 DSP)长度可变,在一个域内进一步划分区域。System ID(系统 ID)长度固定 6 byte,通常使用 16 进制表示,例如 1234.abcd.5678,且必须在域内唯一。设备 MAC 地址可作为 System ID。SEL(服务类型标识)长度 1 byte,表示服务类型,类似于 TCP/IP 中的端口。IDP(IDP)类似于 IP 地址的网络号,由 AFI 和 IDI 组成。DSP(DSP)类似于 IP 地址的子网号和主机地址,由 High Order DSP、System ID 和 SEL 组成。Area Address(区域地址)长度可变,最短为 1 byte,由 IDP 和 DSP 的 High Order DSP 组成,能够表示路由域和区域。
NET(网络实体名称)是 OSI 协议栈中的重要地址,表示设备的网络地址。当 SEL 为 0 的 NASP 地址是 NET,它标识设备本身,即使在纯 TCP/IP 环境中部署 IS-IS,也需要为每台运行 IS-IS 的设备分配 NET,以正常工作。配置 NET 后,设备可解析出区域 ID 和系统 ID。通常,每个设备配置一个 NET,也支持多个 NET,但系统 ID 必须相同。系统 ID 类似于 OSPF 的 Router-ID。
NSAP 使用单一地址表示一台路由器,而 IP 地址则为路由器每个端口分配一个地址。在 NET 中,区域 ID 长度可变,因此 NET 长度不固定。设备识别区域 ID 和系统 ID 的方式:以 49.0001.1234.abcd.5678.00 为例,NET 最后一个字节是 SEL,对应值必须为 0;接下来的六个字节是系统 ID;其余部分为区域 ID。同区域内的 IS-IS 设备,区域 ID 必须相同,系统 ID 必须不同。
配置示例:使用 isis 命令创建进程并进入配置视图,可指定进程 ID。未指定时,系统自动分配默认值。在配置视图下,network-entity 命令配置 NET,如 49.1234.abcd.1111.2222.3333.00,系统 ID 为 1111.2222.3333,也可用接口的 MAC 地址。区域 ID 为 49.1234.abcd。配置 NET 时,关注区域 ID 和系统 ID 即可。