计算机通信网课程自学笔记5——网络层:控制平面

本文详细介绍了网络层的控制平面,包括路由选择算法的分类,如链路状态和距离向量算法,重点讲解了OSPF和BGP协议的工作原理。OSPF用于自治系统内部的路由选择,采用链路状态算法确定最佳路径。BGP作为自治系统间的路由选择协议,处理ISP之间的路由,并通过AS-PATH和NEXT-HOP属性确定最佳路由。此外,还提到了SDN控制平面的概念和OpenFlow协议的角色。
摘要由CSDN通过智能技术生成

前言


本人选择并阅读的参考书为《计算机网络——自顶向下方法第七版》,因此本人将尝试以书中的顺序来梳理自己的学习笔记。同时本人还借鉴了一些课程课件中的知识内容,也将一并与书本内容结合进行归纳。

网络层:控制平面

  • 控制平面作为一种网络范围的逻辑
    • 控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报
    • 控制网络层组件和服务如何配置和管理

5.1 控制平面概述

  • 转发表(在基于目的地转发的场景中)和流表(在通用转发的场景中)是链接网络层的数据平面和控制平面的首要元素
  • 在本章中将要讲解这些转发表和流表是如何计算、维护和安装的:
    • 每路由器控制:每台路由器有一个路由选择组件,用于与其他路由器中的路由选择组件通信,以计算其转发表的值(OSPF & BGP)
    • 逻辑集中式控制:某一集中控制器经一种定义良好的协议与每台路由器中的一个控制代理(CA)进行交互,以配置和管理该路由器的转发表。(CA一般具有最少的功能,其任务是与控制器通信并且按控制器命令行事)
      在这里插入图片描述

“逻辑集中式”控制意味着路由选择控制服务位于单一的集中服务点那样获取它们,即使该服务出于容错和性能扩展性的原因,很可能经由多个服务器实现

5.2 路由选择算法

  • 路由选择算法(routing algorithm),其目的是从发送方到接收方的过程中确定一条通过路由器网络的好的路径(等价于路由)
  • 无论网络控制平面采用每路由控制方法还是采用逻辑集中式控制方法,必定总是存在一条定义良好的一连串路由器,使得分组从发送主机到接受主机跨越网络“旅行”
  • 在这里插入图片描述
  • 图中的节点表示路由器,这是做出分组转发决定的点;连接这些节点的边表示这些路由器之间的物理链路。一条边还有一个值表示它的开销
  • 路由选择算法的天然目标是找出从源到目的地间最低开销路径,若在图中的所有边具有相同的开销,则最低开销路径也就是最短路径(shortest path),即在源和目的地之间的具有最少链路数量的路径

路由选择算法的一种分类方式是根据该算法是集中式还是分散式来划分

  • 集中式路由选择算法(centralized routing algorithm)用完整的、全局性的网络知识计算出从源到目的地之间的最低开销路径。因此它要求在真正开始计算之前,就要以某种方式获得信息
  • 分散式路由选择算法(decentralized routing algorithm)中,路由器以迭代、分布式的方式计算出最低开销路径。没有节点拥有关于所有网络链路开销的完整信息。相反,每个节点仅有与其直接相连链路的开销知识即可开始工作。通过相邻路由器之间的交互式报文交换,也许更为天然地适合那些路由器直接交互的控制平面

路由选择算法的第二种广义分类方式是根据算法是静态的还是动态的进行分类

  • 静态路由选择算法(static routing algorithm)中,路由随时间的变化非常缓慢,通常是人工进行调整(如人为手工编辑一条链路开销)
  • 动态路由选择算法(dynamic routing algorithm)随着网络流量负载或拓扑发生变化而改变路由选择路径

路由选择算法的第三种分类方式是根据它是负载敏感的还是负载迟钝的进行划分

  • 负载敏感算法(load-sensitive algorithm)中,链路开销会动态地变化以反映出底层链路的当前拥塞水平
  • 当今的因特网路由选择算法(如RIP、OSPF和BGP)都是负载迟钝的(load-insensitive),因为某条链路的开销不明确地反映其当前(或最近)的拥塞水平

5.2.1链路状态路由选择算法

  • 通过让每个节点向网络中所有其他节点广播链路状态分组来完成,其中每个链路状态分组包含它所连接的链路的标识和开销,这经常由链路状态广播(link state broadcast)算法来完成
  • 节点广播的结果是所有节点都具有该网络的统一、完整的视图

5.2.2距离向量路由选择算法

  • 距离向量(Distance-Vector, DV)算法是一种迭代的、异步的和分布式的算法
    • 分布式的:是指每个节点都要从一个或多个直接相连邻居接收某些信息,执行计算,然后将其计算结果分发给邻居
    • 迭代的:是指此过程要一直持续到邻居之间无更多信息要交换为止
    • 异步的:是指它不要求所有节点相互之间步伐一致地操作

值得注意的是:DV算法中的一个不正确的节点计算值会扩散到整个网络

5.3 因特网中自治系统内部的路由选择:OSPF

因特网的问题:

  • 规模大:必须采取一些措施以减少像因特网这种大型网络中的路由计算的复杂性
  • 管理自治:ISP希望按自己的意愿运行和管理其网络,但是还要能将其与其他外部网络连接起来

这两个问题都可以通过将路由器组织进自治系统(Autonomous System , AS)来解决,一个自治系统由其全局唯一的AS号(ASN)所标识

  • 在相同AS中的路由器都运行相同的路由选择算法并且有彼此的信息。在一个自治系统内运行的路由选择算法叫作自治系统内部路由选择协议(intra-autonomous system routing protocol)

开放最短路优先(OSPF)

  • OSPF是一种链路状态协议,它使用洪泛链路状态信息和Dijkstra最低开销路径算法
  • OSPF不强制使用设置链路权值的策略(那是网络管理员的任务),而是提供了一种机制(协议),为给定链路权值集合确定最低开销路径的路由选择

OSPF的优点有:

  • 安全,能够鉴别OSPF路由器之间的交换(如链路状态更新),可以配置简单MD5鉴别
  • 允许多条相同开销的路径
  • 对单播与多播路由选择的综合支持
  • 支持在单个AS中的层次结构
    • 在每个区域内,一台或多台区域边界路由器负责为流向该区域以外的分组提供路由选择

5.4 ISP之间的路由选择:BGP

  • 当分组跨越多个AS进行路由时,我们需要一个自治系统间路由选择协议(inter-autonomous system routing protocol),所有的AS运行相同的AS间路由选择协议,称为边界网关协议(Broder Gateway Protocol, BGP)
  • 这个协议将因特网中数以千计的ISP黏合起来

5.4.1 BGP的作用

  • 对于位于相同AS中的目的地而言,在路由器转发表中的表项由AS内部路由选择协议所决定
  • 在BGP中,分组并不是路由到一个特定的目的地址,相反是路由到CIDR化的前缀,其中每个前缀表示一个子网或一个子网的集合
    • 一台路由器的转发表将具有形式为(x,l)的表项,其中前者是一个前缀(例如138.16.68/22),后者是该路由器的接口之一的接口号

作为一种AS间路由选择协议,BGP为每台路由器提供了一种完成以下任务的手段:

  1. 从邻居AS获得前缀的可达性信息
  2. 确定到该前缀的“最好的”路由

现在我们看一下BGP如何执行这两个任务

5.4.2 通告BGP路由信息

  • 对于每个AS,每台路由器要么是一台网关路由器(gateway router),要么是一台内部路由器(internal router)在这里插入图片描述
    在BGP中,每对路由器通过使用179端口的半永久TCP连接交换路由选择信息
    • 每条直接连接以及所有通过该连接发送的BGP报文,称为BGP连接(BGP connection)
      • 跨越两个AS的BGP连接称为外部BGP(eBGP)连接
      • 在相同AS中的两台路由器之间的BGP会话称为内部BGP(iBGP)连接
        在这里插入图片描述

5.4.3 确定最好的路由

当路由器通过BGP连接通告前缀时,它在前缀中包含一些BGP属性(BGP attribute),前缀及其属性称为路由(route)

  • 两个比较重要的属性是AS-PATHNEXT-HOP
    • AS-PATH属性包含了通告已经通过的AS的列表,为了生成AS-PATH的值,当一个前缀通过某AS时,该AS将其ASN加入AS-PATH中的现有列表
      • BGP路由器还使用AS-PATH属性来检测和防止通告环路;特别是,如果一台路由器在路径列表中看到包含了它自己的AS,它将拒绝该通告
    • 在AS间和AS内部路由选择协议之间提供关键链路方面,NEXT-PATH属性具有敏感而重要的作用
      • NEXT-HOP是AS-PATH起始的路由器接口的IP地址

1.热土豆路由选择(hot potato routing)

  • 使用热土豆路由选择,(从所有可能的路由中)选择的路由到开始该路由的NEXT-HOP路由器具有最小开销
    congyuxaide在这里插入图片描述
  • 热土豆路由选择依据的思想是:
    • 对于路由器,尽可能快地将分组送出其AS(更明确地说,用可能的最低开销),而不担心其AS外部到目的地的余下部分的开销
    • 它试图减小在它自己AS中的开销,而忽略在其AS之外的端到端开销的其他部分,因而是自私的算法
    • “烫手山芋”

2.路由选择算法

  • 路由被指派一个本地偏好(local preference)值作为其属性之一(除了AS-PATH和NEXT-HOP以外),一条路由的本地偏好可能由该路由器设置或可能由在相同AS中另一台路由器学习到,具有最高本地偏好值的路由将被选择
  • 从余下的路由中(所有都具有相同的最高本地偏好值),将选择具有最短AS-PATH的路由
  • 从余下路由中(所有都具有相同的最高本地偏好值和相同的AS-PATH长度),使用热土豆路由选择,即选择具有最靠近NEXT-HOP路由器的路由
  • 如果仍留下多条路由,该路由器使用BGP标识符来选择路由,因此BGP不再是一种自私的算法,它先查找具有短AS路径的路由

5.4.4 IP任播

BGP还常被用于实现IP任播(anycast)服务,该服务常用于DNS中,其动机为:

  1. 在许多分散的不同地理位置,替换不同服务器上的相同内容
  2. 让每个用户从最靠近的服务器访问内容
    在这里插入图片描述
  • 在IP任播配置阶段,CDN公司为它的多台服务器指派相同的IP地址,并且使用标准的BGP从这些服务器的每台来通告该IP地址
  • 当客户想向那个IP地址发送一个请求时,因特网路由器则向那个“最近的”服务器转发请求分组,最近的服务器是由BGP路由选择算法所定义的

5.5 SDN控制平面

SDN体系结构具有4个关键特征:

  • 基于流的转发:SDN控制的交换机的分组转发工作,能够基于运输层、网络层或链路层首部中任意数量的首部字段值进行
  • 数据平面与控制平面分离
    • 数据平面由网络交换机组成,交换机是相对简单(但快速)的设备,该设备在它们的流表中执行“匹配加动作”的规则
    • 控制平面由服务器以及决定和管理交换机流表的软件组成
  • 网络控制功能:位于数据平面交换机外部,软件在服务器上执行,该服务器与网络交换机截然分开并与之远离
    • 控制平面自身由两个组件组成:一个SDN控制器(或网络操作系统),以及若干网络控制应用程序
    • 实践中控制器仅是逻辑上集中的,通常在几个服务器上实现,这些服务器提供协调的、可可扩展的性能和高可用性
  • 可编程的网络:使用了由SDN控制器提供的API来定义和控制网络设备中的数据平面
    在这里插入图片描述

SDN表示了一种意义重大的网络功能的“分类”,即数据平面交换机、SDN控制器和网络控制应用程序是分离的实体,该实体可以由不同的厂商和组织机构所提供

5.5.1 SDN控制平面:SDN控制器和SDN网络控制应用程序

SDN控制平面大致划分为两个部分,即SDN控制器和SDN网络控制应用程序

在这里插入图片描述
控制器的功能可大致组织为3个层次:

  • 通信层:SDN控制器和受控网络设备之间的通信
    • 需要一个协议来传送控制器与这些设备之间的信息
    • 设备必须能够向控制器传递本地观察到的事件
    • 控制器和受控设备之间的通信跨越了一个接口,被称之为控制器的**“南向”接口**
  • 网络范围状态管理层:控制平面的终极目标是决定用于各种受控设备的流表,控制器也就可以维护这些表的拷贝
  • 网络控制应用程序层:控制器通过它的“北向”接口与网络控制应用程序交互,该API允许网络控制应用程序在状态管理层之间读/写网络状态和流表

SDN控制器被认为是“逻辑上集中”的,即该控制器可以被外部视为一个单一、整体的服务。但是在实践中这些服务和用于保持状态信息的数据库一般通过分布式服务器集合实现

5.5.2 OpenFlow协议

  • OpenFlow协议运行在SDN控制器和SDN控制的交换机或其他实现OpenFlow API的设备
  • 从控制器到受控交换机流动的重要报文有下列这些:
    • 配置:允许控制器查询并设置交换机的配置参数
    • 修改状态:增加/删除或修改交换机流表中的表项,并且设置交换机端口特性
    • 读状态:从交换机的流表和端口收集统计数据和计数器值
    • 发送分组:从特定的端口发送出一个特定的报文

  • 从受控交换机到控制器流动的重要报文有下列这些:
    • 流删除:通知控制器已删除一个流表项,例如由于超时,或作为收到“修改状态”的报文的结果
    • 端口状态:向控制器通知端口状态的变化
    • 分组入:将分组发送给控制器

5.6 ICMP:因特网控制报文协议

  • 因特网控制报文协议(ICMP),被主机和路由器用来彼此沟通网络层的信息,其最典型的用途是差错报告
  • ICMP报文有一个类型字段和编码字段,并且包含引起该ICMP报文首次生成的IP数据报的首部和前8个字节(以便发送方能确定引发该差错的数据报)

5.7 网络管理和SNMP

  • 网络管理包括了硬件、软件和人类元素的设置、综合和协调,以监视、测试、轮询、配置、分析、评价和控制网络及网元资源,用合理的成本满足实时性、运营性和服务质量的要求

5.7.1 网络管理框架

在这里插入图片描述

  • 管理服务器(manager server):一个应用程序,是执行网络管理活动的地方,它控制网络管理信息的收集、处理、分析和/或显示
  • 被管设备(managed device):在一个被管设备中,有几个所谓被管对象(managed object)。这些被管对象是被管设备中硬件的实际部分(例如,一块网络接口卡只是一台主机或路由器的一个组件)和用于这些硬件及软件组件的配置参数(例如,像OSPF这样的AS内部路由选择协议)
  • 管理信息库(Management Information Base,MIB):收集被管设备中的每个被管对象的关联信息
  • 网络管理代理(network management agent):运行在被管设备中的一个进程,该进程与管理服务服务器通信,在管理服务器的命令和控制下在被管设备中采取本地动作
  • 网络管理协议(network management protocol):该协议运行在管理服务器和被管设备之间,允许管理服务器查询被管设备的状态,并经过其代理间接地在这些设备上采取行动

5.7.2 简单网络管理协议

  • 简单网络管理协议(Simple Network Management Protocol)用于在管理服务器和代表管理服务器执行的代理之间传递网络管理控制和信息报文
    • SNMP最常使用的是请求响应模式
      • SNMP管理服务器向SNMP代理发送一个请求,代理接受到该请求后,执行某些动作,然后对该请求发送一个回答。请求通常用于查询(检索)或修改(设置)与某被管设备关联的MIB对象值
    • SNMP还会发送陷阱报文(trap message)
      • 陷阱报文用于通知管理服务器,一个异常情况(例如一个链路接口启动或关闭)已经导致了MIB值的改变
      • 陷阱报文是异步产生的,即它们不是为了响应接收到的请求而产生的,而是为了相应管理服务器要求通知的事件而产生的

在这里插入图片描述
尽管SNMP PDU能够通过许多不同传输协议运输,但SNMP PDU通常是作为UDP数据报的载荷进行传输的

5.8 小结

  • 控制平面是网络范围的逻辑,它不仅控制从源主机到目的主机沿着端到端路径在路由器之间如何转发数据报,而且控制网络层组件和服务器如何配置和管理

跳转

我们将以以下顺序进行总结:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值