精华内容
下载资源
问答
  • 计算机网络(九) 学习计算机网络过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。 —— 网络层 —— 文章目录计算机网络(九)—— 网络层 ——上接《计算机网络 网络层(二)》4. ...

    计算机网络(九)

    学习计算机网络过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。

    —— 网络层 ——

    上接《计算机网络 网络层(二)》

    计算机网络 网络层(二)》

    4. 网际控制报文协议 ICMP

    • 为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。
    • ICMP 是互联网的标准协议。
    • ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
    • 但 ICMP 不是高层协议(看起来好像是高层协议,因为 ICMP 报文是装在 IP 数据报中,作为其中的数据部分),而是 IP 层的协议。

    网络层

    4.1 ICMP 报文的种类

    • ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
    • ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型代码检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
    4.1.1 ICMP 差错报告报文共有 4 种
    • 终点不可达
    • 时间超过
    • 参数问题
    • 改变路由(重定向)(Redirect)

    ICMP 差错报告报文的数据字段的内容
    网络层
    不应发送 ICMP 差错报告报文的几种情况

    • 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
    • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
    • 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
    • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
    4.1.2 ICMP 询问报文有两种
    • 回送请求和回答报文
    • 时间戳请求和回答报文

    下面的几种 ICMP 报文不再使用:

    • 信息请求与回答报文
    • 掩码地址请求和回答报文
    • 路由器询问和通告报文
    • 源点抑制报文

    4.2 ICMP 的应用举例

    4.2.1 PING (Packet InterNet Groper)
    • PING 用来测试两个主机之间的连通性。
    • PING 使用了 ICMP 回送请求与回送回答报文。
    • PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。

    网络层

    4.2.2 Traceroute 的应用举例
    • 在 Windows 操作系统中这个命令是 tracert。
    • 用来跟踪一个分组从源点到终点的路径。
    • 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。

    网络层

    5. 互联网的路由选择协议

    5.1 有关路由选择协议的几个基本概念

    • 理想的路由算法

      • 算法必须是正确的和完整的。
      • 算法在计算上应简单。
      • 算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。
      • 算法应具有稳定性。
      • 算法应是公平的。
      • 算法应是最佳的。
    • 不存在一种绝对的最佳路由算法。

    • 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。

    • 实际的路由选择算法,应尽可能接近于理想的算法。

    • 路由选择是个非常复杂的问题

    • 它是网络中的所有结点共同协调工作的结果。

    • 路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。

    5.1.1 从路由算法的自适应性考虑
    • 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
    • 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。
    5.1.2 分层次的路由选择协议
    • 互联网采用分层次的路由选择协议。这是因为:
      • (1) 互联网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使互联网的通信链路饱和。
      • (2) 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到互联网上。
    5.1.3 自治系统 AS (Autonomous System)
    • 自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
    • 现在对自治系统 AS 的定义是强调下面的事实:尽管一个 AS 使用了多种内部路由选择协议和度量,但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略

    网络层

    5.1.4 互联网有两大类路由选择协议
    • 内部网关协议 IGP (Interior Gateway Protocol)
      • 在一个自治系统内部使用的路由选择协议。
      • 目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。
    • 外部网关协议 EGP (External Gateway Protocol)
      • 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。
      • 在外部网关协议中目前使用最多的是 BGP-4。
        网络层
    • 内部网关协议 IGP:具体的协议有多种,如 RIP 和 OSPF 等。
    • 外部网关协议 EGP:目前使用的协议就是 BGP。
      网络层

    5.2 内部网关协议 RIP

    • 工作原理
      • 路由信息协议 RIP (Routing Information Protocol) 是内部网关协议 IGP 中最先得到广泛使用的协议。
      • RIP 是一种分布式的、基于距离向量的路由选择协议
      • RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。

    “距离”的定义

    • 从一个路由器到直接连接的网络的距离定义为 1。

    • 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。

    • RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。

    • 这里的“距离”实际上指的是“最短距离”。

    • RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。

    • RIP 允许一条路径最多只能包含 15 个路由器。

    • “距离”的最大值为 16 时即相当于不可达。可见 RIP 只适用于小型互联网。

    • RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。

    5.2.1 RIP 协议的三个特点
    • (1) 仅和相邻路由器交换信息。
    • (2) 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
    • (3) 按固定的时间间隔交换路由信息,例如,每隔 30 秒。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
    5.2.2 2. 距离向量算法
    • 路由器收到相邻路由器(其地址为 X)的一个 RIP 报文:

      • 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
      • 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
      若项目中的目的网络不在路由表中,则把该项目加到路由表中。
          	 否则
            	   	若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目。
            	      	否则 
          	            	若收到项目中的距离小于路由表中的距离,则进行更新,
         	       否则,什么也不做。
      
      • 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)。
    • 距离向量算法的基础就是 Bellman-Ford 算法(或 Ford-Fulkerson 算法)。

    • 这种算法的要点是这样的:
      设X是结点 A 到 B 的最短路径上的一个结点。
      若把路径 A→B 拆成两段路径 A→X 和 X→B,则每一段路径 A→X 和 X→B 也都分别是结点 A 到 X 和结点 X 到 B 的最短路径。

    5.2.3 RIP2 协议的报文格式

    网络层

    • RIP2 报文由首部和路由部分组成。
    • RIP2 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。
    • 路由标记填入自治系统的号码,这是考虑使RIP 有可能收到本自治系统以外的路由选择信息。
    • 再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。
    • 一个 RIP 报文最多可包括 25 个路由,因而 RIP 报文的最大长度是4  20  25  504 字节。如超过,必须再用一个 RIP 报文来传送。
    • RIP2 具有简单的鉴别功能
      • 若使用鉴别功能,则将原来写入第一个路由信息(20字节)的位置用作鉴别。
      • 在鉴别数据之后才写入路由信息,但这时最多只能再放入 24 个路由信息。
    5.2.4 RIP 协议的特点和优缺点
    • RIP协议特点:好消息传播得快,坏消息传播得慢
    • RIP存在的一个问题:当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器。
    • 优点:
      • 实现简单,开销较小。
    • 缺点:
      • RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
      • 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。
      • “坏消息传播得慢”,使更新过程的收敛时间过长。

    5.3 内部网关协议 OSPF

    • 开放最短路径优先 OSPF (Open Shortest Path First)是为克服 RIP 的缺点在1989年开发出来的。
    • OSPF 的原理很简单,但实现起来却较复杂。
    5.3.1 1. OSPF 协议的基本特点
    • “开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
    • “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法 SPF
    • 采用分布式的链路状态协议 (link state protocol)。
    • 注意:OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。

    三个要点:

    • 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法
    • 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息
    • “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
    • 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
    5.3.1 链路状态数据库 (link-state database)
    • 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。
    • 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
    • OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。
    • OSPF 的更新过程收敛得快是其重要优点。
    5.3.2 OSPF 的区域 (area)
    • 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域
    • 每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。
    • 区域也不能太大,在一个区域内的路由器最好不超过 200 个。

    OSPF 划分为两种不同的区域
    网络层

    • OSPF 不用 UDP 而是直接用 IP 数据报传送。
    • OSPF 构成的数据报很短。这样做可减少路由信息的通信量。
    • 数据报很短的另一好处是可以不必将长的数据报分片传送。
    • 但分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
    5.3.2 OSPF 的其他特点
    • OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
    • 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。
    • 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
    • 支持可变长度的子网划分和无分类编址 CIDR。
    • 每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
    • OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
    • 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多
    • OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。
    OSPF 的五种分组类型

    网络层

    • 类型1,问候 (Hello) 分组。
    • 类型2,数据库描述 (Database Description) 分组。
    • 类型3,链路状态请求 (Link State Request) 分组。
    • 类型4,链路状态更新 (Link State Update) 分组,
      用洪泛法对全网更新链路状态。
    • 类型5,链路状态确认 (Link State Acknowledgment)
      分组。

    OSPF 的基本操作

    网络层

    5.4 外部网关协议 BGP

    • BGP 是不同自治系统的路由器之间交换路由信息的协议。

    • BGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),即 RFC 4271 ~ 4278。

    • 可以将 BGP-4 简写为 BGP。

    • 互联网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。

    • 当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价是不太可能的。

    • 比较合理的做法是在 AS 之间交换“可达性”信息。

    • 自治系统之间的路由选择必须考虑有关策略。

    • 因此,边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。

    发言人:

    • 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” (BGP speaker) 。
    • 一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。

    BGP 交换路由信息:

    • 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。
    • 使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。
    • 使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站(neighbor)对等站(peer)
      网络层
    5.4.1 BGP 协议的特点
    • BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
    • 每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
    • BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
    • 在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处
    5.4.2 BGP-4 共使用四种报文
    • (1) 打开 (OPEN) 报文,用来与相邻的另一个BGP发言人建立关系。
    • (2) 更新 (UPDATE) 报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
    • (3) 保活 (KEEPALIVE) 报文,用来确认打开报文和周期性地证实邻站关系。
    • (4) 通知 (NOTIFICATION) 报文,用来发送检测到的差错。

    网络层

    5.5 路由器的构成

    • 路由器是一种典型的网络层设备。
    • 路由器是互联网中的关键设备。
    • 路由器的主要作用是:
      • 连通不同的网络。
      • 选择信息传送的线路。选择通畅快捷的近路,能大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,提高网络系统畅通率,从而让网络系统发挥出更大的效益来。
    5.5.1 路由器的结构
    • 路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。
    • 下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。
    • 路由器的转发分组正是网络层的主要工作。
      网络层
    • 整个的路由器结构可划分为两大部分:
      • 路由选择部分
      • 分组转发部分
    • 路由选择部分
      • 也叫作控制部分,其核心构件是路由选择处理机。
      • 路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
    • 分组转发部分:
      • 交换结构 (switching fabric):又称为交换组织,其作用是根据转发表 (forwarding table) 对分组进行处理。
      • 一组输入端口
      • 一组输出端口
        (请注意:这里的端口就是硬件接口)
    5.5.2 “转发”和“路由选择”的区别
    • 转发”(forwarding) 就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
    • 路由选择”(routing) 则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由。
    • 路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
    • 在讨论路由选择的原理时,往往不去区分转发表和路由表的区别。
    5.5.3 输入端口对线路上收到的分组的处理
    • 路由器的输入端口里面装有物理层、数据链路层和网络层的处理模块。
    • 数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。
    • 输入端口中的查找和转发功能在路由器的交换功能中是最重要的

    网络层

    5.5.4 交换结构
    • 交换结构是路由器的关键构件。
    • 正是这个交换结构把分组从一个输入端口转移到某个合适的输出端口。
    • 实现交换有多种方法。常用交换方法有三种:
      • 通过存储器
      • 通过总线
      • 通过纵横交换结构

    通过存储器

    • 当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。
    • 路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。
    • 若存储器的带宽(读或写)为每秒 M 个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于 M/2。

    通过总线

    • 数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。
    • 因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。
    • 现代的技术已经可以将总线的带宽提高到每秒吉比特的速率,因此许多的路由器产品都采用这种通过总线的交换方式。

    通过纵横交换结构 ( crossbar switch fabric)

    • 这种交换结构常称为互连网络 (interconnection network)。
    • 它有2N条总线,可以使N个输入端口和N个输出端口相连接。
    • 当输入端口收到一个分组时,就将它发送到与该输入端口相连的水平总线上。
    • 若通向所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与水平总线接通,然后将该分组转发到这个输出端口。
    • 但若该垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。

    网络层

    后续内容查看《计算机网络 网络层(四)》

    《计算机网络 网络层(四)》

    展开全文
  • 如果您托管的OpenStack虚拟实例需要网络连接,则必须创建一个网络。... 在本文中,我们将解释这些属性指示的四种网络类型以及如何配置它们,并简要解释一些典型的用例。 其中一些练习适用于租户,而...

    如果您托管的OpenStack虚拟实例需要网络连接,则必须创建一个网络。 有多种类型的网络,为了做出正确的选择,您至少需要了解两个非常重要的网络属性:“ router:external”和“ shared”。 除非您知道这些属性及其组合的含义,否则很难做出最佳的网络选择。

    在本文中,我们将解释这些属性指示的四种网络类型以及如何配置它们,并简要解释一些典型的用例。 其中一些练习适用于租户,而其他练习仅适用于管理员。 给出了在KVM托管的Red HatRDO多合一 OpenStack实例上完成该练习的示例。 这已经在Red Hat OpenStack Platform 8、9、10以及RDO Mitaka和Newton上进行了测试。

    四种类型的解释

    下表概述了我们要创建的网络类型及其名称。

    router-external 共享 网络类型 在这个练习中的名字 描述
    false vxlan private1-demo 典型的租户网络,仅可由租户成员使用。 通常为叠加层(vxlan,gre)。
    false 真正 vxlan admin1共用 可以由多个租户与RBAC共享使用权。 通常为叠加层(vxlan,gre)。
    true 平面 外部1 典型的外部网络,范围是所有租户。 只能由管理员创建。 租户连接其路由器以进行外部访问。 通常为“扁平”或“ VLAN”网络。
    true 真正 平面 外部2共享 范围是所有租户。 只能由管理员创建。 租户可以直接连接到它。 通常称为“提供者”网络,为“扁平”或“ VLAN”。

    逻辑网络拓扑

    pasted_image_0.png

    OpenStack多合一构建

    多实例实例方便理解不需要单独角色的新概念。 故障排除和配置已大大简化,这就是我们将在示例中使用的内容。 如果您有Red Hat订阅,则可以按照以下说明进行操作 。 您还可以注册进行60天的Red Hat OpenStack Platform评估。

    对于RDO实例,请转到此处以获取快速安装指南,并确保在此页面上启用其他存储库。

    当您的packstack构建完成时,以root用户身份登录并运行以下命令以验证您的OpenStack部署是否正常工作:

    
    
       
    . ./keystonerc_admin
    openstack catalog list
    neutron agent-list
    nova service-list
    nova boot --flavor m1.tiny --image cirros --nic net-name=private admin01

    一旦建立了OpenStack的运行状况,请删除刚刚创建的虚拟实例以及由packstack安装创建的“公共”和“私有”网络(及其子网)以及“ router1”。

    KVM主机配置

    此练习的KVM主机将具有三个网络:

    Linux bridge name KVM网络名称, VM nic 目的
    virbr0 默认值eth0 直接访问OpenStack虚拟主机。
    virbr1 外部1,eth1 通过SNAT或浮动IP对实例进行外部访问。
    virbr2 外部2,eth2 竖立外部访问。

    您的KVM主机可能已经在eth0上带有带有网桥virbr0的默认网络。 我们将定义然后创建其他两个外部网络。 确保以root身份执行此操作:

    
    
       
    cat > /tmp/external1.xml << EOF
    <network>
     <name>external1</name>
     <forward mode='nat'>
       <nat>
         <port start='1024' end='65535'/>
       </nat>
     </forward>
     <bridge name='virbr1' stp='on' delay='0'/>
     <mac address='52:54:00:73:a0:8e'/>
     <ip address='172.16.0.1' netmask='255.255.255.192'>
     </ip>
    </network>
    EOF

    cat > /tmp/external2.xml << EOF
    <network>
     <name>external2</name>
     <forward mode='nat'>
       <nat>
         <port start='1024' end='65535'/>
       </nat>
     </forward>
     <bridge name='virbr2' stp='on' delay='0'/>
     <mac address='52:54:00:61:98:8c'/>
     <ip address='172.16.0.65' netmask='255.255.255.192'>
     </ip>
    </network>
    EOF

    现在创建这些网络并启动它们:

    
    
       
    virsh net-define /tmp/external1.xml; virsh net-define /tmp/external2.xml
    virsh net-autostart external1; virsh net-autostart external2
    virsh net-start external1; virsh net-start external2

    现在,将VNIC添加到每个外部网络的OpenStack多合一实例中。 从KVM主机执行此操作:

    
    
       
    dom=<your Red Hat Enterprise Linux or RDO instance name from ‘virsh list’>
    virsh attach-interface --domain $dom --type network --source external1 --model virtio --config --live
    virsh attach-interface --domain $dom --type network --source external2 --model virtio --config --live  

    验证KVM主机

    
    
       
    $ virsh net-list
    Name              State   Autostart Persistent
    ----------------------------------------------------------
    default           active yes        yes
    external1         active yes        yes
    external2         active yes        yes

    $ brctl show
    bridge name    bridge id    STP enabled    interfaces
    virbr0    8000.525400ce5983    yes    virbr0-nic
    virbr1    8000.52540073a08e    yes    virbr1-nic
    virbr2    8000.52540061988c    yes    virbr2-nic
     
    $ route
    Kernel IP routing table
    Destination  Gateway      Genmask      Flags Metric Ref Use Iface
    172.16.0.0   0.0.0.0      255.255.255.192 U 0   0     0 virbr1
    172.16.0.64  0.0.0.0      255.255.255.192 U 0   0     0 virbr2
    192.168.122.0  0.0.0.0            255.255.255.0     U      0          0          0 virbr0

    OpenStack多合一配置

    我们需要对packstack交付的Neutron配置进行一些更改,以删除单个Linux网桥“ br-ex”,并重新添加新的网桥br-ex和br-ex2以及将连接到其上的扁平网络:

    
    
       
    yum install crudini -y
    crudini --set /etc/neutron/l3_agent.ini DEFAULT external_network_bridge #blank this
    crudini --set /etc/neutron/l3_agent.ini DEFAULT gateway_external_network_id  #blank this
    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers  vxlan,flat
    crudini --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 network_vlan_ranges physnet1,physnet2
    crudini --set /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs bridge_mappings physnet1:br-ex,physnet2:br-ex2

    请注意,使用“扁平”网络时,您要如何称呼network_vlan_ranges取决于您。 创建外部网络时,它们将是“ --provider:physical_network”名称。 您也可以选择外部网桥名称(br-ex *)。

    现在,为Open vSwitch创建接口配置:

    
    
       
    cat >  /etc/sysconfig/network-scripts/ifcfg-br-ex << EOF
    DEVICE=br-ex
    ONBOOT=yes
    HOTPLUG=no
    NM_CONTROLLED=no
    PEERDNS=no
    DEVICETYPE=ovs
    TYPE=OVSBridge
    BOOTPROTO=static
    IPADDR=172.16.0.1
    NETMASK=255.255.255.192
    EOF

    cat >  /etc/sysconfig/network-scripts/ifcfg-eth1 << EOF
    DEVICE=eth1
    ONBOOT=yes
    HOTPLUG=no
    NM_CONTROLLED=no
    PEERDNS=no
    DEVICETYPE=ovs
    TYPE=OVSPort
    OVS_BRIDGE=br-ex
    BOOTPROTO=none
    EOF

    cat >  /etc/sysconfig/network-scripts/ifcfg-br-ex2 << EOF
    DEVICE=br-ex2
    ONBOOT=yes
    HOTPLUG=no
    NM_CONTROLLED=no
    PEERDNS=no
    DEVICETYPE=ovs
    TYPE=OVSBridge
    BOOTPROTO=static
    IPADDR=172.16.0.65
    NETMASK=255.255.255.192
    EOF

    cat >  /etc/sysconfig/network-scripts/ifcfg-eth2 << EOF
    DEVICE=eth2
    ONBOOT=yes
    HOTPLUG=no
    NM_CONTROLLED=no
    PEERDNS=no
    DEVICETYPE=ovs
    TYPE=OVSPort
    OVS_BRIDGE=br-ex2
    BOOTPROTO=none
    EOF

    验证Open vSwitch外部网桥

    完成这些配置步骤后,您将需要重新引导虚拟主机。 重新启动后,创建的网桥应如下所示:

    
    
       
    ovs-vsctl list-ports br-ex

    eth1
    phy-br-ex

    ovs-vsctl list-ports br-ex2

    eth2
    phy-br-ex2

    中子网络,子网和路由器

    最后,我们准备好开始业务并创建我们一直在谈论的网络。 以下一系列命令将创建网络,子网,路由器,安全组规则,实例和浮动IP。 完成后,您将可以使用四种不同类型的网络。

    外部网络

    以下系列创建了我们的外部网络。 请注意,两个网络都使用“ router:external = true”,并且都使用“ network_type = flat”,但是每个网络都位于不同的physical_network上,第二个网络具有“ --shared”属性:

    
    
       
    . ~/keystonerc_admin
    neutron net-create external1  --router:external=True  --provider:network_type=flat  --provider:physical_network=physnet1

    neutron subnet-create --name external1-subnet --disable-dhcp external1 172.16.0.0/26 --allocation-pool start=172.16.0.2,end=172.16.0.62

    neutron net-create external2-shared --shared --router:external=True --provider:network_type=flat --provider:physical_network=physnet2  

    neutron subnet-create external2-shared --name external2-shared-subnet --allocation-pool\
     start=172.16.0.66,end=172.16.0.126  --gateway 172.16.0.65 172.16.0.64/26

    租户网络和路由器

    租户网络是您可以在其中创建自己的私有rfc 1918地址空间的地方。 租户可以预配置网络,子网和路由器的任意组合,以满足其需求。 他们可以定义自己的广播域,并确定可以通过浮动IP地址从外部访问哪些实例。

    以下内容将创建专用或“租户”网络和子网。 它还创建了一个路由器,将其连接到外部网络external1。请注意,我们正在切换到这些网络的'demo'项目:

    
    
       
    . ~/keystonerc_demo
    neutron net-create private1-demo

    neutron subnet-create private1-demo 10.0.1.0/24 --name private1-demo-subnet    

    请注意,默认情况下使用以下内容创建了该网络:

    
    
       
    neutron net-show -c 'router:external' -c shared private1-demo
    +-----------------+-------+
    | Field           | Value |
    +-----------------+-------+
    | router:external | False |
    | shared          | False |
    +-----------------+-------+

    neutron router-create router1-demo

    neutron router-gateway-set router1-demo external1

    neutron router-interface-add router1-demo private1-demo-subnet

    路由器网关应该可ping通。 执行此命令并ping它返回的网关IP:

    
    neutron router-list -c external_gateway_info | grep -o "172.16.0.[0-9]*" 
    

    安全组规则,虚拟实例和浮动IP

    在创建虚拟实例之前,让我们在默认安全组中打开ICMP和SSH的端口,以便我们能够连接到它们:

    
    
       
    . ~/keystonerc_demo
    neutron security-group-rule-create --direction ingress \
       --ethertype IPv4 --protocol tcp --port-range-min 22 \
       --port-range-max 22 default

    neutron security-group-rule-create --direction ingress \
       --ethertype IPv4 --protocol icmp default

    nova boot --flavor m1.tiny --image cirros --nic\
     net-id=$(neutron net-show private1-demo -c id -f value) demo01-private1

    nova floating-ip-create external1

    nova floating-ip-associate demo01-private1 $(neutron floatingip-list -c floating_ip_address -f value)

    nova list  #the floating IP should be pingable and you should be able to ssh to this instance through it.

    你刚才做了什么? 您创建了具有以下特征的外部网络和私有租户网络上的实例:

    出站访问:此实例可以通过其路由器(router1-demo)访问external1网络。 其源地址将为其浮动IP地址的源地址“ SNAT ed”。 “ SNATing”发生在路由器名称空间中。 但是,如果该实例没有浮动IP,则它仍将具有external1网络访问权限。 在这种情况下,路由器会将源地址SNAT为其自己的公用IP地址。

    入站访问:此实例通过其浮动IP地址为外界所知,router1-demo将响应该实例的ARP请求。 该IP是路由器名称空间中的本地IP地址的DNAT

    注意:要查看这些NATing规则将其从路由器名称空间中转储出来:

    
    
       
    . ~/keystonerc_demo
    ip netns exec qrouter-$(neutron router-show router1-demo -c id -f value) iptables -S -t nat

    租户网络访问:此实例与private1-demo网络上的任何其他实例在同一广播域中。 因为vxlan覆盖网络抽象了基础物理网络,所以此广播域跨托管这些实例的计算节点扩展。

    从Horizo​​n控制台查看网络拓扑

    
    
       
    . ~/keystonerc_admin
    echo $OS_AUTH_URL
    echo $OS_USERNAME
    echo $OS_PASSWORD

    将浏览器指向上面的URL。 从〜/ keystonerc_admin使用OS_USERNAME和OS_PASSWORD登录。 从“项目”选项卡中选择“演示”项目(您需要首先将admin添加为演示项目的成员)。 现在选择“网络/网络拓扑”。 在这里,您将看到我们创建的网络; 请务必尝试两个视图-拓扑和图形。 当我们试图了解我们在做什么时,请将此视图摆在您面前。

    共享租户网络

    可以使用“ --shared”属性创建一个租户网络,该属性允许其他租户将自己的实例附加到该网络。 默认情况下,只有管理员租户可以创建共享租户网络,但其他租户也可以使用RBAC来创建共享租户网络。 请参阅网络的基于角色的访问控制 。 当两个或多个项目的实例受益于相同的广播域,从而避免了与浮动IP地址共享的需要时,这种类型的网络可能会很有用。

    
    
       
    . ~/keystonerc_admin
    nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 #allow icmp through default security group

    nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 #allow ssh through default security group

    neutron net-create --shared --router:external=false admin1-shared

    neutron subnet-create admin1-shared 10.0.9.0/24 --name admin1-shared-subnet  

    现在,从admin项目在共享租户网络上创建一个实例:

    
    
       
    nova boot --flavor m1.tiny --image cirros --nic\
     net-id=$(neutron net-show admin1-shared -c id -f value) admin01-admin1-shared

    现在,通过演示项目在共享租户网络上创建一个实例:

    
    
       
    . ~/keystonerc_demo
    nova boot --flavor m1.tiny --image cirros --nic\
     net-id=$(neutron net-show admin1-shared -c id -f value) demo02-admin1-shared

    你刚才做了什么? 如果使用Horizo​​n中的instance / console选项登录到这些实例中的任何一个,则即使它们位于不同的项目中,也会注意到它们位于同一子网中。 这种类型的网络对于在项目之间共享实例很有用。 这样做的唯一其他选择是使用浮动IP。 默认情况下,任何租户都可以查看并加入共享网络(admin1共享)。 请注意,除非您添加路由器并将网关设置为external1,否则无法从该网络访问外部网络。

    共享的外部网络

    在共享的外部网络上,租户可以将其实例直接连接到外部网络,并获得自动分配的浮动IP地址。 我们将使用上面已经创建的external2共享网络。

    
    
       
    . ~/keystonerc_demo
    nova boot --flavor m1.tiny --image cirros --nic net-name=external2-shared demo03-external2-shared

    nova console-log demo03-external2-shared

    您可能会从控制台日志输出中注意到实例未能与元数据服务联系:

    
    
       
    checking http://169.254.169.254/2009-04-04/instance-id
    failed 1/20: up 3.03. request failed
    failed 2/20: up 8.09. request failed
    failed 3/20: up 11.09. request failed
    etc…

    您可能可以ping通该实例,但是如果您希望external2共享上的实例可以访问元数据服务,则可以在/etc/neutron/dhcp_agent.ini中进行设置:

    
    
       
    crudini --set /etc/neutron/dhcp_agent.ini DEFAULT enable_isolated_metadata True

    systemctl restart neutron-dhcp-agent

    这是必需的,因为您没有通过路由器连接到该网络,通常这是元数据服务访问的来源。 现在重新启动实例,并再次检查控制台日志:

    
    
       
    nova reboot demo03-external2-shared

    nova console-log dem03-external2-shared

    现在,您应该在日志中看到以下内容:

    
    
       
    checking http://169.254.169.254/2009-04-04/instance-id
    successful after 1/20 tries: up 2.04. iid=i-000000ef

    我们刚刚做了什么? 通过在此共享的外部网络上创建实例,您无需使用路由器进行外部访问。 此外,默认情况下,您获得的金额等于浮动IP。 最后,广播域是外部子网。 因此,无论租户如何,该子网上的任何实例都在同一广播域中,这与我们之前看过的共享租户网络的特征相同。 如果租户仅通过在其专用网络上浮动IP来访问实例,则使用共享的外部网络可能会更好。

    为正确的工作使用正确的网络属性

    通过了解这四种类型的网络的特性,您将在利用Neutron的灵活性方面有了一个良好的开端。 例如,浮动IP可能成为一种稀缺的IPv4资源。 解决方法是,您可以依赖NAT或使用共享的专用网络来避免麻烦。 通过了解您的用例,您将能够为自己和/或客户选择正确的网络类型。

    本文最初是在Red Hat博客上发布的,是Red Hat 技术客户经理 (TAM)系列文章的一部分。

    翻译自: https://opensource.com/article/17/4/openstack-neutron-networks

    展开全文
  • OSPF协议简介: O SPF O = open 开放 SPF = shortest path first 最短路径优先 cost=metric ...它是链路状态路由协议,直接传路由,传的是LSA LSA:link state advertisement,即,链路状态通告 ...

    OSPF协议简介:

    O SPF
    O = open 开放
    SPF = shortest path first 最短路径优先
    cost=metric
    OSPF = 开放性的最短路径优先协议
    如果到达一个目的地有多条路径,那么它会计算出一个最优最短的路径

    OSPF的特点

    • 它是链路状态路由协议,不直接传路由,传的是LSA
      LSA:link state advertisement,即,链路状态通告
    • 开放性的协议(RFC 2328)
    • 可扩展性比较好,收敛速度(计算路由的速度)比较快
    • 独立传输,IP层之上就直接是OSPF,对应的协议号是89
    • 增量更新
    • 支持VLSM,说明OSPF是无类的路由协议,传递路由信息的时候带掩码
    • 支持手动的路由汇总,只支持在特定位置手动汇总
    • 支持认证
    EIGRP协议(距离矢量路由协议)的拓扑表相比较于OSPF协议,它的拓扑表不全,EIGRP只知道邻居到目的网络的距离,并不知道邻居到距离网络之间有多少个路由器,而运行OSPF的每个路由器都会知道整个详细的拓扑。

    图1

    1. 运行OSPF协议的路由器收集整个网络的路由器传来的LSA
    2. 收集到整个网络的路由器传来的LSA以后,生成LSDB(link state database 链路状态数据库)
    3. 路由器根据LSDB,通过DIJKSTRA算法算出一个最短路径树(SPF tree)
    4. 把最短的路径加入到路由表

    OSPF的操作

    • 建立邻居关系
    • 建立邻接关系
      邻接关系是比邻居关系更好的一种关系
    • 只有邻接关系才可以传递LSA
    • LSA会泛洪,所有运行了OSPF的设备会将LSA收集起来,形成LSDB
    • 使用SPF算法计算LSDB中的信息,生成最短路径树
    • 选择最短路径加入路由表

    OSPF的区域化结构

    OSPF采用层次化设计,区域的设计方式(支持层次化的网络架构)
    OSPF分为两层:
    • 骨干区域(区域0),一个网络中骨干区域只能有一个
    • 非骨干区域,所有的非骨干区域必须要和区域0相连
    OSPF划分区域的原因:
    • OSPF通过LSA泛洪传递路由,如果网络足够大,泛洪会造成网络的拥堵,链路负载比较大
      所以要划分区域,遏制LSA的泛洪,同时LSA是分种类的
    • 有些LSA只能在区域内泛洪

    图2
    骨干路由器:处于区域0的路由器和有接口与区域0的路由器建立邻居关系的路由器
    内部路由器:处在非骨干区域的路由器

    ABR:区域边界路由器,该路由器至少连接两个区域,必须要和区域0相连
    ASBR:自治系统边界路由器!!!该路由器是两个自治系统的边界,相当于该自治系统连接外部自治系统的一个出口
    通过ASBR可以把外部的路由器引入,称为外部路由引入(华为的习惯性叫法)
    思科把上述方式称为路由的重分布
    习惯上说某个接口属于某个区域,而不是整个设备属于某个区域

    OSPF的缺点 :

    • 如果有超过一个区域需要配置,则必须有一个区域是区域0
    • 所有的区域必须和区域0相连
    • 区域0必须是连续的
    单区域OSPF的缺点
    • 每台路由器都要有全部的LSA
    • 路由表会非常庞大(比较大的网络)
    多区域OSPF的优点:
    • SPF算法只会在区域内计算,只有ABR需要计算两个区域的路由
    • 如果使用了汇总的话,路由表就会变小

    OSPF网络类型

    • 点到点网络!!!
    • BMA网络!!!
    • 非广播网络(NBMA网络)
    • 点到多点网络
    • 点到多点非广播(思科中多出来的一种类型)
    • 环回网络(环回接口的默认网络类型是LOOPBACK,修改换环回接口的网络类型只能修改为P2P的网络类型)
    OSPF会根据二层协议来判断网络类型是什么
    • 如果二层是PPP协议或者HDLC协议,OSPF就会认为该接口网络类型是P2P网络
    • 如果二层协议是以太网协议,OSPF就会认为该接口网络类型是BMA网络
    • 如果二层协议是frame relay协议,OSPF就会认为该接口网络类型是NBMA网络
    s接口叫做serial串行接口,广域网线路

    默认情况下,serial接口采用的是二层协议HDLC(高级数据链路层协议)

    展开全文
  • Neutron是OpenStack中负责提供网络服务的组件,基于软件定义网络的思想,实现了网络虚拟化下的资源管理,即:网络即服务。 【功能】 ·二层交换 Neutron支持多种虚拟交换机,一般使用Linux Bridge和Open ...

    【概述】

    Neutron是OpenStack中负责提供网络服务的组件,基于软件定义网络的思想,实现了网络虚拟化下的资源管理,即:网络即服务

       

    【功能】

    ·二层交换

    Neutron支持多种虚拟交换机,一般使用Linux Bridge和Open vSwitch创建传统的VLAN网络,以及基于隧道技术的Overlay网络,如VxLAN和GRE(Linux Bridge只支持VxLAN)。

       

    ·三层路由

    Neutron从J版本开始,正式加入了DVR(Distributed Virtual Router)服务,将原本集中在网络节点上的部分服务分散到了计算节点上。

    通过namespace中使用ip route或者iptables实现路由或者NAT,也可以通过openflow给OVS下发流表来实现。

       

    ·负载均衡

    关于LBaaS的相关内容,可以参照:https://www.cnblogs.com/liuxia912/p/11209968.html

       

    ·防火墙

    Neutron有两种方式来保证网络的安全性,分别为防火墙和安全组,均使用iptables实现,前者限制路由器的报文,后者限制进出虚机的报文。

       

    【架构】

     

    ·neutron Server

    守护进程和一些插件,可以安装在网络节点,也可以安装在控制节点。

    neutron-server提供API接口,并把API的调用请求传给已经配置好的插件进行后续处理。

       

    ·neutron L2 agent

    为虚拟机提供2层交换服务,传输以MAC地址为基础。

       

    ·neutron L3 agent

    为虚拟机访问外部网络提供三层转发服务,负责路由浮动IP分配地址转换安全组管理

    通过iptables实现安全组,路由和地址转换。

    每个虚拟路由运行在一个network namespace中,每个namespace由qroute -< router -< UUID命名。

       

    ·neutron-dhcp-agent

    为虚拟机提供DHCP服务。

       

    【创建虚拟机的网络过程】

     

     

    1. nova-compute向Neutron Server发送一个请求虚拟机IP地址的请求

    2. Neutron Server收到请求后为虚拟机创建MAC和IP地址,并存储到数据库中

    3. Neutron Server将信息发送给DHCP-agent

    4. DHCP-agent收到信息后将对应信息发送给dnsmasq,dnsmasq将信息保存起来

    5. nova创建虚机后会初始化MAC地址

    6. 当虚机启动的时候,默认的ip地址是0.0.0.0,会发送一个广播,dnsmasq会监听到虚拟机发送的报文,然后将对应MAC地址的IP地址返回给虚拟机,这样虚拟机启动完成后就会有IP地址了

       

    【网络虚拟化】

    网络(network)是一个隔离的二层网段,类似于物理网络中的LAN(VLAN)。

    具体一点,它是为创建它的租户保留的一个广播域

    端口和子网始终被分配给某个特定的网络。

       

    跨网络的子网之间的流量必须走L3 Vritual Router

    每个网络使用自己的DHCP Agent,每个DHCP Agent在一个Network namespace内。

    不同网络内的IP可以重复。

       

    根据创建网络的用户,Neutron L2 network 可以分为:

    Provider network: 管理员创建的和物理网络有直接映射关系的虚拟网络。

    Tenant network: 租户(普通用户)创建的网络,物理网络对创建者透明,配置由 Neutron 的配置决定。

       

    Provider Network 是由 OpenStack 管理员创建的,直接对应于数据中心的已有物理网络的一个网段。这种网络有三个和物理网络有关属性:

    provider:network_type (网络类型,包括 vxlan, gre, vlan, flat, local)

    provider:segmentation_id (网段 ID, 比如 VLAN 的 802.1q tag, GRE 网络的 Tunnel ID, VXLAN 网络的 VNI)

    provider:physical_network (物理网络的逻辑名称,比如 physnet1, ph-eth1, etc)

       

       

    【虚拟网络类型】

    ·Local

    本地的Linux Bridge,除了虚拟机的网卡,不连接其他的网络设备,实际场景使用较少。

       

    ·Flat

    不带vlan tag的网络,相当于local网络的Linux Bridge连接到一个物理网卡,该网络中的instance可以于网络中的instance通信。

    所有的租户都在同一个网络内,没有进行网络隔离容易产生广播风暴

    可以跨节点,实际场景也较少。

    neutron net-create NAME --provider:network_type flat \

            --provider:physical_network PHYS_NET_NAME

       

    ·VLAN

    基于物理Vlan网络实现,共享同一个物理网络的多个Vlan网络是相互隔离的,甚至可以使用重叠的IP空间。

    每个支持VLAN network的物理网络可以被视为一个分离的VLAN trunk,使用一组独占的vlan id。(有效段为1~4096

    私有云网络应用较多。

    neutron net-create NAME --provider:network_type vlan \

            --provider:physical_network PHYS_NET_NAME \

            --provider:segmentation_id VID

       

    ·VXLAN

    基于隧道技术的 overlay 网络,通过唯一的 VNI 区分于其他的 vxlan 网络,不和具体的物理网络绑定

    在 vxlan 中,数据包通过 VNI 封装成UDP包进行传输,因为二层的包通过封装在三层传输,能够克服vlan和物理网络基础设施的限制。

    neutron net-create NAME --provider:network_type vxlan \

            --provider:segmentation_id TUNNEL_ID

       

    ·GRE

    与vxlan类似的一种overlay网络,使用IP包进行封装。
    GRE 封装的数据包基于 IP 路由表来进行路由,因此 GRE network 不和具体的物理网络绑定。(基于隧道)

    neutron net-create NAME --provider:network_type gre \

            --provider:segmentation_id TUNNEL_ID

       

    【虚拟网络类型特点以及应用场景】

    模式

    原理

    优点

    缺点

    vlan

    划分vlan,使用vlan_id隔离广播域

    适合小规模网络部署
    大二层广播通讯方式
    可以不需要网络节点

    必须和物理交换机的vlan_id绑定,最多只能有4096个
    存在二层通讯的广播风暴问题
    基于IP地址的子网划分问题

    GRE

    和vlan模式不同的.是vlan id 会被转换成gre id,外面在封IP.通过隧道转发出去.

    2层的包,通过IP来转发.物理层的3层通信,虚拟上的2层通信.

    gre id 可以有1600W个
    没有广播风暴

    没有mac地址表过大的问题,物理交换机,只需要记住一个eth0的mac地址

    3层网络的通信

    两个阶段需要建隧道,方案不成熟

    VXLAN

    相比较于gre,不使用隧道

    本质: 2层的包+封装vxlan id + 组播地址+ + udp报头 + ip 报头+数据包

    不需要建隧道,使用udp

    方便的安全策略

    和gre id一样,也有1600W可以使用

      

       

       

    【参考】

    https://www.jianshu.com/p/de03140fc60e

    https://www.ait24.com/1066.html

    https://www.ait24.com/1139.html

    http://www.mamicode.com/info-detail-1749637.html

    转载于:https://www.cnblogs.com/liuxia912/p/11218085.html

    展开全文
  • 无线传感器网络复习大纲

    千次阅读 多人点赞 2019-04-30 10:31:40
    第一章 考点: 无线传感器网络组成部分,概念、特点(了解) 分布式特点(了解) 实时性、时效性(了解) ...无线传感器概念:无线传感器网络是一种特殊的无线通信网络,它是由许多个传感器节点通过无线...
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些...Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...
  • Q:OpenStack的网络类型有哪些? A: 典型的OpenStack网络可以分为3个网络,各个网络各司其职。 1) 内部网络。即是OpenStack平台的物理节点之间互相通信的网络,该网络一般数据量理论上不会太多,基本为OpenStack...
  • 2019工程伦理慕课答案(2019秋)习题及期末答案

    万次阅读 多人点赞 2019-11-08 18:19:53
    下列哪一项不是工程与技术的区别 内容和性质 目的 活动主体 任务、对象和思维方式 单选题 (1/1 point) 下列哪一项不是工程活动的特征 自主性 创造性 社会性 确定性 多选题 (1points) ...
  • Java面试题大全(2020版)

    万次阅读 多人点赞 2019-11-26 11:59:06
    本套Java面试题大全,全的能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...
  • 2020网络安全NISP一级(模拟题五)

    千次阅读 2020-10-25 15:40:23
    目前,我国对网络安全形势高度重视,以下关于网络安全形势的描述中,错误的是( ) A.我国的网络安全态势非常好,面临任何攻击的威胁;B.高级持续性威胁常态化,我国面临的攻击十分严重;C.大量联网智能设备遭受...
  • 计算机网络笔记整理

    千次阅读 多人点赞 2018-05-24 16:18:42
    网络层次划分2. OSI七层网络模型3. IP地址4. 子网掩码及网络划分5. ARP/RARP协议6. 路由选择协议7. TCP/IP协议8. UDP协议 9. DNS协议10. NAT协议11. DHCP协议12. HTTP协议13. 一个举例 计算机网络学习的核心内容...
  • 常见的五种神经网络系列第三篇,主要介绍循环神经网络,由于循环神经网络包含的内容过多,分位上下两篇进行介绍,本文主要是循环神经网络(上)篇,主要介绍以下内容: 循环神经网络概述 如何给神经网络增加记忆...
  • 2020网络安全NISP一级(模拟题六)

    千次阅读 2020-10-25 15:45:28
    2020国家信息安全水平考试NISP一级(模拟题六) 国家信息安全水平考试NISP一...蜜罐技术是一种主动防御技术,是入侵检测技术的一个重要发展方向,以下关于蜜罐特点的描述正确的是( ) A.相对于其他安全措施,蜜...
  • 网络安全知识竞赛选择题(1-30题)

    万次阅读 2019-04-14 23:59:33
    1.使网络服务器中充斥着大量要求回复的信息,消耗带宽,导致网络或系统停止正常服务,这属于什么攻击类型? (A) A、拒绝服务 B、文件共享 C、BIND漏洞 D、远程过程调用 2.为了防御网络监听,最常用的方法是(B) A、采用...
  • 原文:openstack-install-guide-yum-icehouse.pdf/7. Add a networking service/Networking concepts ... 网络基础设施(VNI),和物理网络基础设施(PNI)。 OpenStack的Neutron允许租户创建虚拟网络拓扑结构,包含
  • 随着神经网络的不断发展,越来越多的人工神经网络模型也被创造出来了,其中,具有代表性的就是前馈型神经网络模型、反馈型神经网络模型以及图网络. 1.前馈型神经网络模型 前馈神经网络(FeedforwardNeuralNetwork...
  • js面试题

    千次阅读 多人点赞 2019-04-09 19:42:32
    JavaScript 由以下三部分组成: ECMAScript(核心):JavaScript 语言基础 DOM(文档对象模型):规定了访问 HTML 和 XML 的接口 BOM(浏览器对象模型):提供了浏览器窗口之间进行交互的对象和方法 JS 的基本数据...
  • 文件存储前言文件存储内存内部存储外部存储内部存储操作API读写操作外部存储操作公共目录私有目录私有文件私有缓存 前言 众所周知,数据存储在每个应用中都会用到,那所用到的技术应该怎么选呢,这里Android给...
  • 2021年前端面试题及答案

    万次阅读 多人点赞 2020-02-11 19:29:34
    前端设计模式 前端常见的设计模式主要有以下几种,具体设计模式查看这篇文章。 1. 单例模式 2. 工厂模式 3. 策略模式 4. 代理模式 5. 观察者模式 6. 模块模式 7. 构造函数模式 8. 混合模式 前端安全性问题 这个是老...
  • 在机器学习和认知科学领域,人工神经网络(英文:artificial neural network,缩写ANN),简称神经网络(英文:neural network,缩写NN)或类神经网络,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)...
  • 传输层的流量控制 正确答案是:A 你的答案是:A 此题得分:2 16 2分 防火墙是位于内部网络与外部网络之间的网络安全系统,防火墙的作用包括 A.支持虚拟专用网VPN;B.禁止未授权数据包进出内网;C.数据加密;D....
  • 网络安全基础》——习题集

    万次阅读 多人点赞 2020-01-02 11:26:06
    #《网络安全基础》——习题集 一、 选择题: 1、TCP/IP 体系结构中的TCP 和IP 所提供的服务...2、下列哪个攻击网络层() A.IP 欺诈 B. Teardrop C. Smurf D. SQL 注入 3、ARP 协议是将 __ 地址转换成 __的协议 ...
  • 前端面试题

    万次阅读 多人点赞 2019-08-08 11:49:01
    以下哪个单词不属于javascript保留字:(B) 67 请选择结果为真的表达式:(C) 68 Javascript中, 如果已知HTML页面中的某标签对象的id=”username”,用____document.getElementById(‘username’)___ _方法...
  • 软件测试面试题汇总

    万次阅读 多人点赞 2018-09-27 12:31:09
    、测试活动中,如果发现需求文档完善或者准确,怎么处理? ........................................................ 8 20 、阶段评审与项目评审有什么区别? ..............................................
  • 前端面试锦集

    千次阅读 多人点赞 2019-07-20 13:41:45
    使用方式就赘述了,但是要注意JSONP只支持GET请求,支持POST请求。 2、代理: 例如www.123.com/index.html需要调用www.456.com/server.php,可以写一个接口www.123.com/server.php,由这个接口在后端去调用...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    测试开发笔记 第一章 测试基础 7 ...3外部测试: 10 验收测试:(在系统测试之后) 11 回归测试: 11 4.测试过程(干什么,怎么干) 12 5.各阶段输入、输出标准以及入口、出口准则:(测试阶段过程要素) 1...
  • 第四级:信息系统受到破坏后,会对国家安全造成特别严重损害 正确答案是:D 你的答案是:D 此题得分:2 27 2分 网络安全系统中,网络安全设备是必不可少的,下列设备中不属于网络安全设备的是( ) A.防火墙;B....
  • 人工神经网络的基本特征有哪些?

    千次阅读 2020-04-05 20:25:26
    它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑神经网络处理、记忆信息的方式进行信息处理。人工神经网络具有四个基本特征: (1)非线性 非线性关系是自然界的普遍特性。大脑的智慧就是一种非线性...
  • 测试开发需要学习的知识结构

    万次阅读 多人点赞 2018-04-12 10:40:58
    “黑盒”法着眼于程序外部结构、考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况...
  • 计算机网络:第七章 网络安全

    千次阅读 多人点赞 2018-11-30 18:36:00
    1、计算机网络面临的安全性威胁和计算机网络安全的主要问题; 2、对称密钥密码体制和公钥密码体制的特点; 3、数字签名与鉴别的概念; 4、网络层安全协议IPsec协议族和运输层安全协议SSL/TLS的要点; 5、应用层电子...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,944
精华内容 32,377
关键字:

以下不属于外部网络类型的是