R1
基于每路由器控制的控制平面意味着什么?在这种情况下,当我们说网络控制平面和数据平面是“整体地”实现时,是什么意思?
每路由器控制是指每台路由器都运行一个路由算法; 转发和路由功能都限制在每个路由器内。 每个路由器都有一个路由组件,该组件与其他路由器中的路由组件通信以计算其转发表的值。 在这种情况下,我们说网络控制和数据平面是整体实现的,因为每个路由器都作为独立的实体运行,实现自己的控制和数据平面。
R2
基于逻辑上集中控制的控制平面意味着什么?在这种情况下,数据平面和控制平面是在相同的设备或在分离的设备中实现的吗?请解释。
逻辑集中控制意味着逻辑中央路由控制器计算并分发供每个路由器使用的转发表,并且与每个路由器控制不同,每个路由器不计算其转发表。 在逻辑集中控制的情况下,数据平面和控制平面在不同的设备中实现; 控制平面在中央服务器或多台服务器中实现,数据平面在每个路由器中实现。
R3
比较和对照集中式和分布式路由选择算法的性质。给出一个路由选择协议的例子,该路由选择协议采用分布式方法和集中式方法。
集中式路由算法通过使用有关网络的完整的全局知识来计算源和目的地之间的最低成本路径。 该算法需要完全了解所有节点之间的连接性和所有链路的成本。 实际计算可以在一个站点运行,也可以在每个路由器的路由组件中重复进行。
分布式路由算法由路由器以迭代、分布式方式计算租赁成本路径。 使用去中心化算法,没有节点拥有有关所有网络链路成本的完整信息。 每个节点开始时只知道自己直连链路的成本,然后通过迭代计算过程和与相邻节点交换信息,节点逐渐计算到一个目的地或一组目的地的最低成本路径 。
OSPF协议是集中式路由算法的一个例子,BGP是分布式路由算法的一个例子
R4
比较和对照链路状态和距离矢量这两种路由选择算法。
链路状态算法(LS):使用有关网络的完整全局知识计算源和目标之间的最低成本路径。
距离矢量路由(DV):最小成本路径的计算以迭代、分布式的方式进行。 节点只知道它应该将数据包转发到的邻居,以便沿着成本最低的路径到达给定的目的地,以及从自身到目的地的该路径的成本
R5
在距离矢量路由选择中的“无穷计数”是什么意思?
无穷计数问题是指距离向量路由问题。 该问题意味着当链路成本增加时,距离矢量路由算法需要很长时间才能收敛。
例如,考虑一个由三个节点 x、y 和 z 组成的网络。 假设最初链路成本为 c(x,y)=4、c(x,z)=50 和 c(y,z)=1。 距离矢量路由算法的结果表明,z 到 x 的路径为 z → y → x z \to y \to x z→y→x,成本为 5(=4+1)。 当链路 (x,y) 的成本从 4 增加到 60 后, 结点y到x的最短路, 使用了z到x的最短路, 而z到x的最短路又是通过y之前的链路状态计算出来的, 所以每次交换后, y更新到x的距离, z根据y的更新也更新到x的距离
z中的路由表始终保存的是初始到x的最短路径5, 由于y到x的路径不断增大, 所以z始终不会更新该条路由, 体现在下表最右列
自链路状态改变后的交换次数 | y收到z的新向量后的DV表 | z收到y的新向量后的DV表 |
---|---|---|
链路改变前 | d[y][x] = w[y][x] = 4 | d[z][x] = w[z][y] + d[y][x] = 1 + 4 = 5 |
0-1 | d[y][x] = min(w[y][x], w[y][z] + d[z][x]) = min(60, 1 + 5) = 6 | d[z][x] = min(w[z][x], w[z][y] + d[y][x]) = min(50, 1 + 6) = 7 |
2-3 | d[y][x] = min(w[y][x], w[y][z] + d[z][x]) = min(60, 1 + 7) = 8 | d[z][x] = min(w[z][x], w[z][y] + d[y][x]) = min(50, 1 + 8) = 9 |
… | … | … |
40-41 | d[y][x] = min(w[y][x], w[y][z] + d[z][x]) = min(60, 1 + 45) = 46 | d[z][x] = min(w[z][x], w[z][y] + d[y][x]) = min(50, 1 + 46) = 47 |
42-43 | d[y][x] = min(w[y][x], w[y][z] + d[z][x]) = min(60, 1 + 47) = 48 | d[z][x] = min(w[z][x], w[z][y] + d[y][x]) = min(50, 1 + 48) = 49 |
44-45 | d[y][x] = min(w[y][x], w[y][z] + d[z][x]) = min(60, 1 + 49) = 50 | d[z][x] = min(w[z][x], w[z][y] + d[y][x]) = min(50, 1 + 50) = 50 z到x的距离正确 |
47-48 | d[y][x] = min(w[y][x], w[y][z] + d[z][x]) = min(60, 1 + 50) = 51 y到x的距离正确 |
对于结点z来说, 它用于接收到的来自y的DV从错误的6到正确的合理的50直接会经过44次与y的路由交换, 此后节点 z 才能意识到其到 x 的新的最低成本路径是通过其到 x 的直接链路 ,因此 y 也会意识到到 x 的最低成本路径是通过 z
R6
每个自治系统使用相同的AS内部路由选择算法是必要的吗?说明其原因。
不是必要的。每个 AS 都拥有 AS 内路由的管理自治权。
R7
为什么在因特网中用到了不同的AS间与AS内部协议?
政策:在自治系统中,政策问题占主导地位。 源自给定 AS 的流量不能通过另一个特定 AS,这可能很重要。 类似地,给定的 AS 可能想要控制它在其他 AS 之间承载的传输流量。 在 AS 内,一切名义上都处于相同的管理控制之下,因此策略在选择 AS 内的路由时发挥的作用要小得多。
规模:路由算法及其数据结构扩展以处理大量网络之间的路由的能力是 AS 间路由的关键问题。 在 AS 内,可扩展性不太值得关注。 一方面,如果单个管理域变得太大,总是可以将其划分为两个AS,并在两个新AS之间执行AS间路由。
性能:由于 AS 间路由是如此面向策略,因此所使用的路由的质量(例如性能)通常是次要考虑的(即,满足某些策略标准的更长或成本更高的路由很可能会被优先考虑) 路线较短但不符合该标准)。 事实上,我们看到在 AS 中,甚至不存在与路由相关的成本概念(除了 AS 跳数)。 然而,在单个 AS 内,此类策略问题并不那么重要,这使得路由可以更多地关注路由上实现的性能水平。
R8
是非判断题:当一台OSPF 路由器发送它的链路状态信息时,它仅向那些直接相邻的节点发送。解释理由。
❌
通过 OSPF,路由器将其链路状态信息广播到其所属自治系统中的所有其他路由器,而不仅仅是其邻居路由器。 这是因为使用 OSPF 时,每个路由器都需要构建整个 AS 的完整拓扑图,然后在本地运行 Dijkstra 的最短路径算法来确定其到同一 AS 中所有其他节点的最低成本路径。
R9
在OSPF自治系统中区域表示什么?为什么引入区域的概念?
OSPF 自治系统中的区域是指一组路由器,其中每个路由器将其链路状态广播给同一组中的所有其他路由器。 OSPF AS 可以分层配置为多个区域,每个区域运行自己的 OSPF 链路状态路由算法。 在每个区域内,一个或多个区域边界路由器负责路由区域外的数据包。
引入区域概念是出于可扩展性的原因,即我们希望为大规模 OSPF AS 构建分层路由,而区域是分层路由中的重要构建块。
R10
定义和对比下列术语:子网、前缀和 BGP路由。
子网是较大网络的一部分; 子网不包含路由器; 它的边界由路由器和主机接口定义。
前缀是 CDIR 化地址的网络部分; 它的书写形式为 a.b.c.d/x ; 一个前缀覆盖一个或多个子网。
当路由器在 BGP 会话中通告前缀时,它会在前缀中包含许多 BGP 属性。 在 BGP 术语中,前缀及其属性就是 BGP 路由(或简称为路由)。
R11
BGP是怎样使用NEXT-HOP属性的?它是怎样使用AS-PATH属性的?
路由器使用AS-PATH属性来检测和防止循环通告; 他们还使用它在通往同一前缀的多个路径中进行选择。 NEXTHOP 属性指示沿着通告路径(在接收通告的 AS 之外)到给定前缀的第一台路由器的 IP 地址。 在配置其转发表时,路由器使用 NEXT-HOP 属性。
R12
描述一个较高层ISP的网络管理员在配置BGP时是如何实现策略的。
第 1 层 ISP B 可能不会在其他两个第 1 层 ISP(例如 A 和 C)之间承载传输流量,而 B 与这两个 ISP 具有对等协议。 为了实现该策略,ISP B 不会向 A 发布经过 C 的路由; 并且不会向 C 通告经过 A 的路由。
R13
是非判断题:当BGP路由器从它的邻居接收到一条通告的路径时,它必须对接收路径增加上它自己的标识,然后向其所有邻居发送该新路径。解释理由。
❌
BGP 路由器可以选择不将自己的身份添加到接收到的路径中,然后将该新路径发送到其所有邻居,因为 BGP 是基于策略的路由协议。 这可能会发生在以下场景中。 接收到的路径的目的地是其他 AS,而不是 BGP 路由器的 AS,并且 BGP 路由器不想充当传输路由器。
R14
描述SDN控制器中的通信层、网络范围状态管理层和网络控制应用程序层的主要任务。
通信层负责SDN控制器和那些受控网络设备之间通过OpenFlow等协议进行通信。 通过这一层,SDN 控制器控制远程 SDN 交换机、主机或其他设备的操作,并且设备将本地观察到的事件(例如,指示链路故障的消息)传送给控制器。
网络范围的状态管理层提供有关网络主机、链路、交换机和其他 SDN 控制设备状态的最新信息。 控制器还维护各种受控设备的流表的副本。
网络控制应用层代表SDN控制平面的大脑。 该层的应用程序使用SDN控制器提供的API来指定和控制网络设备中的数据平面。 例如,路由网络控制应用程序可能会确定源和目的地之间的端到端路径。 另一个网络应用程序可能执行访问控制。
R15
假定你要在SDN控制平面中实现一个新型路由选择协议。你将在哪个层次中实现该协议?解释理由。
我会在 SDN 的网络控制应用层实现一个新的路由协议,因为路由协议在这一层确定源和目的地之间的端到端路径。
R16
什么类型的报文流跨越SDN控制器的北向和南向API?谁是从控制器跨越南向接口发送的这些报文的接收者?谁是跨越北向接口从控制器发送的这些报文的接收者?
以下是通过 SDN 控制器南向从控制器流向受控设备的消息类型列表。 这些消息的接收者是受控分组交换机。
- 配置。 该消息允许控制器查询和设置交换机的配置参数。
- 修改状态。 控制器使用此消息来添加/删除或修改交换机流表中的条目,以及设置交换机端口属性。
- 读状态。 控制器使用此消息从交换机的流表和端口收集统计信息和计数器值。
- 发送数据包。 控制器使用此消息从受控交换机的指定端口发送特定数据包。
还有网络控制应用程序(作为发送方)通过北向接口发送到控制器的消息,例如,读取/写入控制器状态管理层内的网络状态和流表的消息。
R17
描述两种从受控设备到控制器发送的OpenFlow 报文(由你所选)类型的目的。
描述两种从控制器到受控设备发送的OpenFlow报文(由你所选)类型的目的。
从受控设备到控制器的两种类型的消息:
- 流删除消息。 其目的是通知控制器流表条目已被删除,例如由于超时或作为接收到的修改状态消息的结果。
- 端口状态消息。 其目的是通知控制器端口状态的变化。
从控制器到受控设备的两种类型的消息:
- 修改状态。 目的是添加/删除或修改交换机流表中的条目,以及设置交换机端口属性。
- 读状态。 目的是从交换机的流表和端口收集统计数据和计数器值。
R18
在OpenDaylight SDN控制器中服务抽象层的目的是什么?
服务抽象层允许内部网络服务应用程序相互通信。 它允许控制器组件和应用程序调用彼此的服务并订阅它们生成的事件。 该层还为通信层的具体底层通信协议提供了统一的抽象接口,包括OpenFlow和SNMP。
R19
列举4种不同类型的ICMP报文。
回显回复(对 ping),类型 0,代码 0
目标网络无法访问,类型 3 代码 0
目标主机无法访问,类型 3,代码 1。
源抑制(拥塞控制),类型 4 代码 0。
R20
在发送主机执行Traceroute程序,收到哪两种类型的ICMP报文?
发送主机每发送一个IP包, 会受到一个ICMP 警告消息(类型 11 代码 0)指示TTL过期
特殊的情况是, IP包到达目的主机, 但是由于设置的接收方UDP端口不可达, 所以目的主机会返回目标端口不可达 ICMP 消息(类型 3 代码 3)。
R21
在SNMP环境中定义下列术语: 管理服务器、被管设备、网络管理代理和MIB。
管理服务器是一个应用程序,通常有人在环路中,在网络运营中心的集中式网络管理站中运行。 它控制网络管理信息的收集、处理、分析和/或显示。 在管理服务器中发起操作以控制网络行为,网络管理员使用管理服务器与网络设备进行交互。
受管设备是驻留在受管网络上的网络设备(包括其软件)。
受管设备可能是主机、路由器、交换机、中间盒、
调制解调器、温度计或其他网络连接设备。
网络管理代理是在受管设备中运行的进程,它与管理服务器通信,在管理服务器的命令和控制下在受管设备上采取本地操作。
管理信息库 (MIB) 收集与受管网络中的那些受管对象相关的信息。
MIB 对象可能是一个计数器,例如由于 IP 数据报头中的错误而在路由器处丢弃的 IP 数据报的数量,或者在主机处接收到的 UDP 段的数量,或者诸如特定设备是否处于运行状态等状态信息。 正常运行。
R22
SNMP GetRequest和 SetRequest报文的目的是什么?
GetRequest 是从管理服务器发送到代理的一条消息,用于请求代理受管设备上的一个或多个 MIB 对象的值。 SetRequest 是管理服务器用来设置受管设备中一个或多个 MIB 对象的值的消息
R23
SNMP陷阱报文的目的是什么?
SNMP 陷阱消息是作为对受管设备上发生的事件的响应而生成的,设备的管理服务器需要通知该事件。 它用于通知管理服务器导致 MIB 对象值发生更改的异常情况(例如,链路接口打开或关闭)。