计算机网络之网络层:控制平面

五.网络层:控制平面

5.1 概述

转发表(在基于目的地的转发场景中)和流表(在通用转发的场景中)示的计算、安装、和维护有二种可能的方法

  • 每路由器控制:每台路由器有一个路由选择组件,用于与其它路由器中的路由选择组件通信,以计算转发表的值
  • 逻辑集中式控制:有一台逻辑集中式控制器负责计算并分发转发表以供每台路由器使用

5.2 路由选择算法

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

  • 集中式路由选择算法:用完整的、全局性的网络知识计算出从源到目的地之间的最低开销路径。也就是说,该算法以所有节点之间的连通性及所有链路的开销为输入。这就要求该算法在真正开始计算以前,要以某种方式获得这些信息。计算本身可在某个场点(例如逻辑集中式控制器)进行,或在每台路由器的路由选择组件中重复进行。然而,这里的主要区别在于,集中式算法具有关于连通性和链路开销方面的完整信息。具有全局状态信息的算法常被称作链路状态 (Link State , LS) 算法 因为该算法必须知道网络中每条链路的开销。
  • 分散式路由选择算法:路由器以迭代、分布式的方式计算出最低开销路径。没有节点拥有关于所有网络链路开销的完整信息。相反,每个节点仅有与其直接相连链路的开销知识即可开始工作。然后,通过迭代计算过程以及与相邻节点的信息交换,一个节点逐渐计算出到达某目的节点或一组目的节点的最低开销路径。距离向量 (Distance-Vector, DV) 算法是一种分散式路由选择算法,之所以叫作 DV 算法,是因为每个节点维护到网络中所有其他节点的开销(距离)估计的向量。这种分散式算法,通过相邻路由器之间的交互式报文交换,也许更适合那些路由器直接交互的控制平面

链路状态路由选择算法、距离向量路由选择算法的具体原理见书上

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

        在5.2中所述的路由选择算法里,把网络只看作一个互联路由器的集合。在因特网中,这种一组执行同样路由选择算法的同质路由器集合有一点简单化,有以下二个重要原因:

  • 规模。当今的因特网由数亿台主机组成,规模太大
  • 管理自治。因特网是ISP的网络,其中每个ISP都有它自己的路由器网络。ISP通常希望按自己的意愿运行路由器,或对外部隐藏其网络的内部组织面貌。

自治系统(Autonomous System,AS):AS 由一组通常处在相同管理控制下的路由器组成。通常在一个 ISP 中的路由器以及互联它们的链路构成一个AS。然而,某些 ISP 将它们的网络划分为多个 AS 。特别是,某些一级 ISP 在其整个网络中使用一个庞大的 AS,而其他 ISP 则将它们的 ISP 拆分为数十个互联的 AS 。一个自治系统由其全局唯一的 AS 号所标识。就像 IP 地址那样,AS 号由 ICANN 区域注册机构所分配。

开放最短路优先 (OSPF)

        OSPF 路由选择被广泛用千因特网的 AS 内部路由选择。OSPF 是一种链路状态协议,它使用洪泛链路状态信息和 Dijkstra 最低开销路径算法。使用 OSPF,每台路由器构建了一幅关于整个自治系统的完整拓扑图。于是, 每台路由器在本地运行 Dijkstra 的最短路径算法,以确定一个以自身为根节点到所有子网的最短路径树。各条链路开销是由网络管理员配置的。

OSPF的优点

  • 安全
  • 多条相同开销的路径。当到达某目的地的多条路径具有相同的开销时, OSPF 允许使用多条路径
  • 多单播和多播路由选择的综合支持
  • 支持在单个AS中的层次结构。一个 OSPF 自治系统能够层次化地配置多个区域,每个区域都运行自己的 OSPF 链路状态路由选择算法,区域内的每台路由器都向该区域内的所有其他路由器广播其链路状态。在每个区域内,一台或多台区域边界路由器负责为流向该区域以外的分组提供路由选择。最后,在 AS 中只有一个 OSPF 区域配置成主干区域。主干区域的主要作用是为该 AS 中其他区域之间的流量提供路由选择。该主干总是包含本 AS 中的所有区域边界路由器、并且可能还包含了一些非边界路由器。在AS 中的区域间的路由选择要求分组先路由到一个区域边界路由器(区域内路由选择 ),然后通过主干路由到位于目的区域的区域边界路由器,进而再路由到最终目的地。

注意

使用 OSPF 时,路由器向自治系统内所有其他路由器广播路由选择信息,而不仅仅是 向其相邻路由器广播。

OSPF 通告包含在 OSPF 报文中,该 OSPF 报文直接由 IP 承载,对 OSPF 其上层协议的值为 89 。因此 OSPF 协议必须自己实现诸如可靠报文传输、链路状态广播等功能。

5.4 ISP之间的路由选择:BGP

        因为 AS 间路由选择协议涉及多个 AS 之间的协调,所以 AS 通信必须运行相同的 AS 间路由选择协议。在因特网中,所有的 AS 运行相同的 AS 间路由选择协议,称为边界网关协议。BGP 无疑是所有因特网协议中最为重要的,因为正是这个协议将因特网中数以千计的 ISP 黏合起来。

5.4.1 BGP的作用

        对于位于相同 AS 中的目的地而言,在路由器转发表中的表项由 AS 内部路由选择协议所决定。而对于位于该 AS 外部的目的地而言,由BGP所决定。

为了路由到AS外部的目的地,BGP提供了以下二种手段:

  • 从邻居 AS 获得前缀的可达性信息。特别是, BGP 允许每个子网向因特网的其余部分通告它的存在。一个子网高声宣布“我存在,我在这里”,而 BGP 确保在因特网中的所由 AS 知道该子网。如果没有 BGP 的话,每个子网将是隔离的孤岛。
  • 确定到该前缀的“最好的“路由。一台路由器可能知道两条或更多条到特定前缀的不同路由,为了确定最好的路由,该路由器将本地运行 BGP 路由选择过程(使用它经过相邻的路由器获得的前缀可达性信息) 该最好的路由将基于策略以及可达性信息来确定。

接下来钻研如何执行这二个任务

5.4.2 通告BGP路由信息

eBGP:跨越两个 AS 的 BGP 连接称为外部 BGP 接。

iBGP:而在相同 AS 中的两台路由器之间的 BGP 会话称为内部 BGP 连接。

        如果上图中所有路由器通告对于前缀 x 的可达性信息。网关路由器 3a 先向网关路由器 2c 发送 eBGP 报文 "AS3x"。网关路由器 2c 然后向 AS2 中的所有其他路由器(包括网关路由器 2a) 发送 iBGP 报文 "AS3x"。网关路由器 2a 接下来向网关路由器 1c 发送一个 eBCP 报文"AS2 AS3 x"。最后,网关路由器 1c 使用 iBGP 向 AS1 中的所有路由器发送报文 "AS2 AS3 x",在这个过程完成后,在 AS1 和 AS2 中的每个路由器都知道了 x 的存在并且也都知道了通往 x 的 AS 路径。

        在真实的网络中,从某个给定的路由器到某个给定的目的地可能有多条不同的路径,每条通过了不同的 AS 序列。例如,上图所示的网络,从 AS1 到 x 有两条路径:经过路由器 le 的路径 "AS2 AS3 x";以及经过路由器 1d 的新路径 "AS3 x"。

5.4.3 确定最好的路由

一个给定的路由器到一个目的子网可能有多条路径,如何从这多条路径中确定一个最好的路由呢?

在解决这个关键问题之前,先引入几个BGP术语。当路由器通 BGP 连接通告前缀时,它在前缀中包括 BGP 属性。BGP 术语来说,前缀及其属性称为路由。两个较为重要的属性是 AS-PATH和 NEXT-HOP。

  • AS-PATH:AS-PATH属性包含了通告已经通过的 AS 的列表
  • NEXT-HOP:NEXT-HOP是 AS-PATH 起始的路由器接口的 IP 地址。通过5.4.2中的例子可以看到,对于AS1中的所有路由器到AS3中的x有二个路由,所以有二个 AS-PATH 。基于这二个 AS-PATH,其 NEXT-HOP 就如图中所展示的那样。

1.热土豆路由选择

使用热土豆路由选择的路由到开始该路由的NEXT-HOP路由器具有最小开销。

在路由器转发表中增加AS外部目的地的步骤:

步骤一:从AS间协议学到经多个网关可达子网 x

步骤二:使用来自AS内部协议的路由选择信息,以决定到达每个网关的最低开销路径的开销

步骤三:使用热土豆路由选择算法,选择具有最小最低开销的网关

步骤四:从转发表确定通往最低开销网关的接口I。在转发表中加入表项(x,I)

2.路由器选择算法

        在实践中, BGP 使用了一种比热土豆路由选择更为复杂但却结合了其特点的算法。对于任何给定的目的地前缀,进入 BGP 的路由选择算法的输入是到某前缀的所有路由的集合,该前缀是已被路由器学习和接受的。如果仅有一条这样的路由,BGP 则显然选择该路由。如果到相同的前缀有两条或多条路由,则顺序地调用下列消除规则直到余下一条路由:

  1. 路由被指派一个本地偏好值作为其属性之一。一条路由的本地偏好可能由该路由器设置或可能由在相同 AS 中的另一台路由器学习到。本地偏好属性的值是一种策略决定,它完全取决于该 AS 的网络管理员。具有最高本地偏好值的路由将被选择。
  2. 从余下的路由中 (所有都具有相同的最高本地偏好值) ,将选择具有最短 AS - PATH 的路由。 如果该规则是路由选择的唯一规则,则 BGP 将使用距离向量算法决定路径,其中距离测度使用 AS 跳的跳数而不是路由器跳的跳数。
  3. 从余下的路由中(所有都具有相同的最高本地偏好值和相同的 AS- PATH 长度)使用热土豆路由选择,即选择具有最靠近 NEXT-HOP 路由器的路由。
  4. 如果仍留下多条路由,该路由器使用 BGP 标识符来选择路由。

本地偏好值由本地AS的路由选择策略所决定。路由选择策略见书上的 5.4.5 小节

5.5 SDN控制平面

        在 SDN 文献中所使用的术语,将网络的转发设备称之为分组交换机,因为能够根据网络层源/目的地址、链路层源/目的地址以及运输层、网络层和链路层中分组首部字段做出转发决定。

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

基于流的转发:SDN 控制的交换机的分组转发工作,能够基于流表中的运输层、网络层或链路层首部中任意数量的首部字段值进行。传统方法中IP数据报的转发仅依据数据报的目的IP地址进行。

数据平面与控制平面分离:数据平面由网络交换机组成,交换机是相对简单的设备,该设备在它们的流表中执行"匹配加动作"的规则。控制平面由服务器以及决定和管理交换机流表的软件组成。

网络控制功能:控制平面自身由两个组件组成: SDN 控制器(或网络操作系统),以及若干网络控制应用程序。控制器维护准确的网络状态信息(例如,远程链路、交换机和主机的状态);为运行在控制平面中的网络控制应用程序提供这些信息;提供方法,这些应用程序通过这些方法能够监视、编程和控制下面的网络设备。

可编程的网络:通过运行在控制平面的网络控制应用程序,该网络是可编程的。

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

        SDN 控制平面大体划分为两个部分,即 SDN 控制器和 SDN 网络控制应用程序。先来仔细考察控制器。下图提供了一个通用 SDN 控制器的更为详尽的视图。控制器的功能可大体组织为三个层次。我们以一种非典型的自底向上方式考虑这些层次:

  • 通信层:通信层负责 SDN 控制器和受控网络设备之间的通信,其内部是用于通信的通信协议,如OpenFlow协议
  • 网络范围状态管理层:SDN 控制平面所做出的最终控制决定(例如配置所有交换机的流表以取得所希望的端到端转发,实现负载均衡,或实现一种特定的防火墙能力),将要求控制器具有有关网络的主机、链路、交换机和其他 SDN 控制设备的最新状态信息。交换机的流表包含计数器,其值也可以由网络控制应用程序很好地使用;因此这些值应当为应用程序所用。既然控制平面的终极目标是决定用于各种受控设备的流表,控制器也就可以维护这些表的拷贝。这些信息都构成了由 SDN 控制器维护的网络范围状态的例子。
  • 对于网络控制应用程序层的接口:控制器通过它的北向接口与网络控制应用程序交互。该 API 允许网络控制应用程序在状态管理层之间读/写网络状态和流表。当状态改变事件出现时,应用程序能够注册进行通告。可以提供不同类型的 API,我们将看到两种流行 SDN 控制器使用 REST 请求响应接口与它们的应用程序进行通信。

SDN控制器只是逻辑上集中,然而 ,出于故障容忍、高可用性或性能等方面的考虑,SDN控制器在物理上并不是集中的。

5.5.2 OpenFlow协议

        OpenFlow 协议运行在 SDN 控制器和 SDN 控制的交换机或其他实现 OpenFlow API 的设备之间 。OpenFlow 协议运行在 TCP 之上,使用 6653 的默认端口号。从控制器到受控交换机流动的重要报文有下列这些:

  • 配置:该报文允许控制器查询并设置交换机的配置
  • 修改状态:该报文由控制器所使用,以增加或删除或修改交换机流表中的表项,且设置交换机端口特性
  • 读状态:该报文被控制器用于从交换机的流表和端口收集统计数据和计数器值
  • 发送分组:该报文被控制器用于在受控交换机从特定的端口发送出 个特定的 报文

从受控交换机到控制器流动的重要报文有下列这些:

  • 流删除:该报文通知控制器已删除 个流表项,例如由于超时,或作为收到“修改 状态"报文的结果
  • 端口状态:交换机用该报文向控制器通知端口状态的变化
  • 分组入:一个分组到达交换机端口,并且不能与任何流表项匹配,那 么这个分组将被发送给控制器进行额外处理 匹配的分组也被发送给控制器,作为 匹配时所采取的一个动作 “分组入“报文被用于将分组发送给控制器

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真滴book理喻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值