《计算机网络 自顶向下方法》笔记 第五章 网络层:控制平面

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

5.1 概述

转发表和流表计算,维护,安装的两种方法:
每路由器控制:在每路由器中运行一种路由选择算法的情况,每台路由器中都包含转发和路由选择功能。每台路由器都有一个路由选择组件,用于与其它路由器中的路由选择组件通信,以计算其转发表的值

逻辑集中式控制:逻辑集中式控制器计算并分发转发表以供每台路由器使用。该控制器经一种定义良好的协议与每台路由器中的一个控制代理 CA进行交互,以配置和管理该路由器的转发表。CA一般具有最少的功能,其任务是与控制器通信并且按控制器命令行事
在这里插入图片描述
逻辑集中式控制意味着就像路由器控制服务位于单一的集中服务点那样获取它们,即使该服务器出于容错和性能扩展的原因,很可能经由多个服务器实现。SDN采用了逻辑集中控制器的概念

5.2 路由选择算法

路由选择算法:其目的是从发送方到接收方的过程中确定一条通过路由器网络的好的路径(等价于路由)。通常,一条好的路径指具有最低开销的路径。无论网络控制平面采用每路由器控制方法,还是采用逻辑集中式控制方法,必定总是存在一条定义良好的一连串路由器,使得分组从发送主机到接收主机跨越网络传输

在这里插入图片描述
一条边的开销可以反映出对应链路的物理长度(越洋链路比陆地链路的开销高),它的链路速度,或与该链路相关金钱上的开销。
用c(x,y)表示x到y之间的开销,给定任意两个节点,通常这两个节点间有许多路径,每条路径都有一个开销,这些路径中的一条或多条是最低开销路径,即最低开销路径问题就是找出源和目的地之间具有最低开销的一条路,最低开销路径也就是最短路径,即源到目的地之间有最少链路数量的路径

路由选择算法的一种分类是根据算法是集中式还是分散式划分:
集中式路由选择算法:用完整的,全局性的网络知识计算出从源到目的地之间的最低开销路径。该算法以所有节点之间的连通性以及所有链路的开销为输入,要求在开始计算前,要以某种方式获得需要的信息。集中式路由选择算法具有关于连通性和链路开销方面的完整信息。具有全局状态信息的算法常被称为链路状态算法 LS,因为该算法需要知道网络中每条链路的开销

分散式路由算法:路由器以迭代,分布式的方式计算出最低开销路径,没有节点拥有关于网络链路开销的完整信息。每个节点仅有与其直接相连的链路的开销知识即可开始工作。通过迭代计算过程以及相邻节点的信息交换,一个节点逐渐计算出到达某目的节点或一组目的节点的最低开销路径。分散式路由算法中的距离向量算法 DV是重点

路由选择算法的第二种分类方式根据算法是动态还是静态:
静态路由选择算法:路由随时间的变化非常缓慢,通常是人工进行调整(如人为手工编辑一条链路开销)

动态路由选择算法:随着网络流量负载或拓扑发生变化而改变路由选择路径。虽然动态算法易于对网络的变化做出反应,但也更容易受诸如路由循环,路由震荡之类问题的影响

路由选择算法的第三种分类方式根据它是负载敏感还是负载迟钝:
负载敏感算法:链路开销会动态地变化以反映出底层链路地当前拥塞水平。如果当前拥塞地一条链路与高开销相联系,则路由选择算法趋向于绕开该拥塞链路来选择路由

负载迟钝算法:当今地路由选择算法都是负载迟钝地,因为某条链路的开销不明确地反应当前或最近的拥塞水平

5.2.1 链路状态路由选择算法

在链路状态算法中,网络拓扑和所有的链路开销都是已知的,也就是说也用作LS算法的输入。实践中这是通过让每个节点向网络中所有其它节点广播链路状态分组来完成的,其中每个链路状态分组包含它所连接的链路的标识和开销,由链路状态广播完成。节点广播的结果是所有节点都具有该网络的统一,完整的视图。于是每个节点都能像其它节点一样,运行LS算法并计算出低开销路径集合

LS算法可以由迪杰斯特拉算法实现,它计算从某节点到网络中所有其它节点的最低开销路径。迪杰斯特拉算法是迭代算法,其性质是经算法的第k次迭代后,可知道到k个目的节点的最低开销路径

5.2.2 距离向量路由选择算法

距离向量算法是一种迭代的,异步的,自我终止的,分布式的算法。说它是迭代的,由于它在计算时,一直持续到邻居之间无更多信息要交换为止。说它是异步的,由于它不要求所有节点相互之间步伐一致的操作。说它是自我终止的,由于其不需要应该停止的信号就可以自己停下。说它是分布式的,因为每个节点都要从一个或者多个直接相连邻居接收某些信息

节点具有的唯一信息是它到直接相连的邻居的链路开销和它从这些邻居接收到的信息,每个节点等待来自任何邻居的更新,当接收一个更新时计算它的新距离向量并向它的邻居分布其距离向量。DV算法被用于众多路由器选择协议中,包括因特网的RIP,BGP,ISO IDRP等

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

从所有路由器执行相同的路由选择算法以计算穿越整个网络的路由选择路径的意义上来说,一台路由器很难同另一台路由器区别开。在实践中,该模型和这种一组执行同样路由选择算法的同质路由器的集合的观点有一点简单化,有如下两个重要原因:
1,规模,随着路由器的数目增多,涉及路由选择信息的通信,计算和存储的开销将高的不可实现。在如此大量的路由器中迭代的距离向量算法将肯定永远无法收敛,必须采取一些措施以减少像因特网这种大型网路中的路由计算的复杂性

2,管理自治,因特网是ISP网络,其中每个ISP都有它自己的路由器网络,ISP通常希望按自己的意愿运行路由器(在自己的网络中运行它所选择的某种算法,或对外隐藏其网络内部组织面貌),一个组织应当能够按自己的愿望运行和管理网络,还要将其网络与其它外部网络连接起来

这两个问题都可以通过将路由器组织进自治系统 AS来解决,其中每个AS由一组通常处在相同管理下的路由器组成,通常在一个ISP中的路由器以及互联它们的链路构成一个AS。一个自治系统由其全局唯一的AS号所标识,AS号由ICANN区域注册机构分配

在相同AS中的路由器都运行相同的路由选择算法并且有彼此的信息,在一个自治系统内运行的路由选择算法叫作自治系统内部路由选择协议

开放最短路优先 OSPF:OSPF路由选择及其关系密切的协议IS-IS都被广泛应用于因特网的AS内部路由选择。OSPF中的O指open该路由选择协议规范是公众可用的

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

使用OSPF时,路由器向自治系统内的所有其它路由器广播路由信息,而不仅仅是向其相邻路由器广播,每当一条链路的状态发生变化时(开销的变化/中断状态的变化),路由器就会广播链路状态信息。即使链路状态未发生改变,它也要周期性地广播链路状态

OSPF的优点:1,安全,能够鉴别OSPF路由器之间的交换(如链路状态更新),使用鉴别,仅有受信任的路由器能参与一个AS的OSPF协议。2,多条相同开销的路径,当到达某目的地多条路径具有相同的开销时,OSPF允许使用多条路径,即当存在多条相等开销的路径时,无须仅选择单一的路径承载全部的流量。3,对单播与多播路由选择的综合支持。4,支持在单个AS中的层次结构,一个OSPF自治系统能够层次化的配置多个区域,每个区域都运行自己的OSPF链路状态路由选择算法,区域内的每台路由器都向该区域内的所有其它路由器广播其链路状态

5.4 ISP之间的路由选择:BGP

OSPF是一个AS内部路由选择协议,当在相同AS内的源和目的地之间进行多个分组时,分组遵循的路径完全由AS内路由选择协议所决定。然而,当分组跨越多个AS进行路由时,比如从A市某用户的智能手机到位于B市的数据中心,我们需要一个自治系统间路由协议

因为AS路由间路由选择协议涉及到多个AS之间的协调,所以AS通信必须运行相同的AS间路由选择协议。在因特网中,所有的AS运行相同的AS间路由选择协议,称为边界网关协议 BGP,BGP是一种分布式和异步的协议,BGP协议将成千的ISP粘合起来

5.4.1 BGP的作用

对于位于相同AS中的目的地而言,在路由器转发表中的表项由AS内部路由选择协议所决定,而BGP处理位于不同AS间的路由选择
在BGP中,分组并不是路由到一个特定的目的地址,相反是路由到CDIR的前缀,其中每个前缀表示一个子网或一个子网的集合

作为一种AS间的路由选择协议,BGP为每台路由器提供了一种完成以下任务的手段:
1,从邻居AS获得前缀的可表达信息:BGP允许每个子网向因特网的其余部分通告它的存在,BGP确保在因特网中的所有AS知道该子网。如果没有BGP的话,每个子网将是隔离的孤岛,即它们是孤独的存在,不为因特网其余部分所知或所达
2,确定到该前缀的‘最好的’路由:一台路由器可能知道两条或更多条到特定前缀的不同路由,为了确定最好的路由,该路由器将本地运行一个BGP路由选择过程

5.4.2 通告BGP路由信息

路由器分为网关路由器内部路由器,网关路由器是一台位于AS边缘的路由器,它直接连接到其它AS中的一台或多台路由器。内部路由器仅连接在它自己AS中的主机和路由器

在BGP中,每对路由器通过使用179端口的半永久TCP连接交换路由选择信息,每条直接连接以及所有通过该连接发送的BGP报文,称为BGP连接。此外,跨越两个AS的BGP连接称为外部BGP eBGP,而在相同AS中的两台路由器之间存在的BGP会话称为内部BGP iBGP

5.4.3 确定最好的路由

引入几个BGP术语,1,当路由器通过BGP连接通告前缀时,它在前缀中包括一些BGP属性。用BGP术语说,前缀及其属性称为路由。两个较为重要的属性是 AS-PATHNEXT-HOP
AS-PATH:包含了通告已经通过的AS的列表,且BGP路由器还是用了AS-PATH属性来检测和防止通告环路,特别是,如果一台路由器在路径列表中看到包含了它自己的AS,它将拒绝该通告
NEXT-HOP:是AS-PATH起始的路由器接口的IP地址

热土豆路由选择:使用热土豆路由选择,从所有可能的路由中选择的路由到开始该路由的NEXT-HOP路由器具有最小开销。分组被类比为烫手的热土豆,因为它烫手,要尽可能快地将它传给下一个人(另一个AS)。热土豆路由选择是自私的算法,即它试图减小在它自己AS中的开销,而忽略在其AS外的端到端开销的其它部分。注意到使用热土豆选择,对于在相同AS中的两台路由器,可能对相同的前缀选择两条不同的AS路径

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

如果到相同的前缀有两条或多条路由,则顺序地调用下列消除规则直到余下一条路由:
1,路由被指派一个本地偏好值作为其属性之一,它完全取决于AS的网络管理员,具有本地偏好值的路由将被选择
2,从余下的路由中(所有都具有相同的最高本地偏好值),将选择具有有最短AS-PATH的路由
3,从余下的路由中(所有具有相同的最高本地偏好值和相同的AS-PATH长度),使用热土豆路由选择,即选择具有最靠近NEXT-HOP路由器的路由
4,如果仍留下多条路由,该路由器使用BGP标识符来选择路由

5.4.4 IP任播

除了作为因特网的AS间路由选择协议外,BGP还常用于IP任播服务,该服务常用于DNS中。如一个CDN能够更换位于不同国家,不同服务器上的视频和其它对象。类似地,DNS系统能够在遍及全世界的DNS服务器上复制DNS记录。当一个用户要访问该复制的内容,可以将用户指向具有该复制内容的‘最近的’服务器。

当该客户想向某个IP地址发送一个请求时,因特网路由器则向哪个‘最近的’服务器转发该请求分组,最近的服务器是由BGP路由选择算法所定义的
实践中CDN通常不使用IP任播,因为BGP路由选择变化能够导致相同的TCP连接发送不同实例。但IP任播被DNS广泛应用于DNS请求指向最近的根DNS服务器

5.4.5 路由选择策略

当某路由器选择到目的地的一条路由时,AS路由选择策略能够胜过所有其它考虑,例如最短AS路径或热土豆路由选择。在路由选择算法中,实际上首先根据本地偏好值选择路由,本地偏好值由本地AS的策略所决定

5.5 SDN控制平面

SDN控制平面,即控制分组在网络的SDN使能设备中转发的网络范围逻辑

在这里插入图片描述

SDN体系结构具有四个关键特征:
1,基于流的转发:SDN控制的交换机的分组转发工作,能够基于运输层,网络层或链路层首部中任意数量的首部字段值进行。传统方法中IP数据报的转发仅依据数据报的目的IP地址进行。SDN控制平面的工作是计算,管理和安装所有网络交换机中的流表项

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

3,网络控制功能:位于数据平面交换机外部:SDN中的S代表软件,这个软件在服务器上执行,该服务器与网络交换机分开且远离。控制平面自身由两个平面组件组成:一个SDN控制器或网络操作系统,以及若干网络控制应用程序。控制器维护准确的网络状态信息(如远程链路,交换机和主机的状态)为运行在控制平面的网络控制应用程序提供这些信息,提供方法,这些应用程序通过这些方法能够监视,编程和控制下面的网络设备

4,可编程的网络:通过运行在控制平面中的网络控制应用程序,该网络是可编程的。这些应用程序代表了SDN控制平面的‘智力’,使用了由SDN控制器提供的API来定义和控制网络设备中的数据平面

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

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

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

控制器的功能可大体组织为3个层次:
1,通信层:SDN控制器和受控网络设备之间的通信。如果SDN控制器要控制远程的SDN使能的交换价,主机或其它设备的运行,需要一个协议来传送控制器与这些设备之间的信息。此外,设备还需要能向控制器传递本地观察到的事件(如一个设备刚刚加入了网络)这些事件向SDN控制器提供该网络状态的最新视图。这个协议构成了控制器体系结构的最底层。
OpenFlow它是一种提供这种通信功能的特定协议,OpenFlow在大多数SDN控制器中得到了实现

2,网络范围状态管理层:由SDN控制平面所做出的最终控制决定(如配置所有交换机的流表以取得所希望的端到端转发,实现负载均衡,或实现一种特定防火墙),将要求控制器具有相关网络的主机,链路,交换机和其它SDN控制设备的最新状态信息

3,对于网络控制程序层的接口:API允许网络控制层应用在状态管理层之间读/写网络状态和流表。当状态改变事件出现时,应用程序能够注册进行通告

SDN控制器被认为是逻辑上集中的,即该控制器可以被外部视为一个单一,整体的服务,然而由于故障容忍,高可用性或性能方面的问题,在实践中这些服务和用于保持状态信息的数据库一般通过分布式服务器集合实现

5.5.2 OpenFlow协议

OpenFlow协议运行在SDN控制器和SDN控制的交换机或其它OpenFlow API的设备之间。OpenFlow协议运行在TCP之上,使用6653的默认端口号,从控制器到受控交换机流动的重要报文报有:
配置,修改状态,读状态,发送分组,流删除,端口状态,分组入

5.5.3 数据平面和控制平面交互的例子

在这里插入图片描述

SDN使能的ISP能够容易地将最低开销路径地路由选择转变为更加定制的路由选择方法。因为控制器能随心所欲地定制流表,因此能够实现它喜欢的任何形式的转发,即只是通过改变它的应用控制软件

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

因特网控制报文协议 ICMP:被主机和路由器用来彼此沟通网络层的信息ICMP最典型的用途是差错报告。ICMP常被认为是IP的一部分,但从体系结构上讲它位于IP之上,因为ICMP报文就是承载在IP分组中的。这就是说,ICMP报文是作为IP有效载荷承载的,就像TCP与UDP报文段作为IP有效载荷被承载一样。

ICMP是源抑制报文,这种报文在实践中很少使用。其最初的目的是执行拥塞控制,即使得拥塞的路由器向一台主机发送一个ICMP源抑制报文,以强制该主机减小其发送速率

在这里插入图片描述

5.7 网络管理和SNMP

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

5.7.1 网络管理框架

管理服务器:管理服务器是一个应用程序,通常有人的参与,并运行在网络运营中心 NOC的集中式网络管理工作站上。它控制网络管理信息的收集,处理,分析,,显示。在这里发起控制网络行为的动作,人类管理员与网络设备打交道

被管设备:位于被管理的网络中,被管设备可以是一台主机,路由器,交换机,中间盒,调制解调器或其它联网的设备。在一个被管设备中,有几个所谓的被管对象,这些被管对象是被管设备中硬件的实际部分(如,路由器的一个组件)和用于这些硬件及软件组件的配置参数

管理信息库 MIB:一个被管设备中每个被管对象的关联信息收集在管理信息库。一个MIB对象可以是,一台主机接收到的UDP报文段的数量等

网络管理代理:每个设备中都有网络管理代理,它是运行在被管设备中的一个进程,该进程与管理服务器通信,在管理服务器的命令和控制下在被管设备中采取本地动作

网络管理协议:该协议运行在管理服务器和被管设备之间,允许管理服务器查询被管设备的状态,并经过其代理间接地在这些设备上采取行动。网络管理协议自己不能管理网络,恰恰相反,它为网络管理员提供了一种能力,使他们能够管理网络

在这里插入图片描述

5.7.2 简单网络管理协议

简单网络管理协议 SNMP:SNMP是一个应用层协议,用于在管理服务器和代表管理服务器执行地代理之间传递网络管理控制和信息报文

SNMP最常用的是请求响应模式,其中SNMP管理服务器向SNMP代理发送一个请求,代理接收到该请求后,执行某些动作,然后对该请求发送一个回答。通常用于查询,检索,或修改,设置与某被管理设备的MIB对象值

SNMP第二种常用的是代理向管理服务器发送的一种非请求报文,该报文称为陷阱报文。陷阱报文用于通知管理服务器,一个异常情况已经导致了MIB对象值的改变

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值