当前位置: 首页 > 网络应用技术

一篇文章允许您了解OpenStack网络

时间:2023-03-06 00:17:32 网络应用技术

  首先,OpenStack是用于管理大量VM的“上帝”,他的目的是管理大量VM,例如控制物理世界。同一网络可以彼此通信。不同组的VMS等同于在不同网络中无法相互通信。

  至于为什么他们要分组

  1.像物理服务器一样,根据不同机房的服务器,许多机器都连接到不同的网络。

  2.这是我可以将不同组的VM出售给不同的“用户”。这样,第1组的VM属于Zhang San,第2组的VM属于Li Si,因此它们彼此隔离并在不知不觉中孤立。因此,我可以成为云制造商,并提供云平台服务。

  实际上,这两个机室的服务器,网络希望连接到路由器以提供帮助。它在虚拟世界中也很相似。

  因此,从逻辑上讲,VM世界的网络就是这样。

  Zhang San的VM的网络正在与Li Si VM进行交互,或者Zhang San自己的两个独立网络。必须通过称为路由器的“虚拟路由器”来完成。

  上面的逻辑视图在物理上是这样:

  至于如何在网络电缆上运行多个虚拟网络。这是网络线上的一条消息,这意味着不同的武术。您可以回去查看VLAN/VXLAN分会。

  此外,您可以在这里看到虚拟网络中的“路由器”实际上不是特定的虚拟路由器设备,而只是“网络命名空间+转发规则”,并且将在下面详细介绍。

  假设您现在设计OpenStack的网络实现。

  从我们以前学到的OVS章节中,我们可以知道,为了实现上述OpenStack网络虚拟化的目的。最简单的实现是将OVS虚拟开关添加到每个物理服务器中。然后将每个VM连接到OVS端口,每个端口基于组以制作相应的VLAN标签。您可以达到基本要求。

  但是,实现此最初的1.0版本,有一个不是看涨的地方,也就是说,不可能为Vm设定安全组,这是成为云平台的一个好目标,该平台如何没有可以安全分组的能力(尽管在VM中,您可以设置Firewell或Iptables规则,但是在VM中,它已被出售给用户。您在房间的房间内运行不适合设置规则,并且可能与用户的相冲突自己的业务规则)。

  因此,第二版得到了改进。我们想在VM之外设置一个安全组:

  结果,我们在每个VM门上添加一个桥接网络桥梁。任何VM流量都将通过此桥。这样,通过在桥梁上添加iptables规则,可以实现为VM设置安全组的目的。(请注意,目前,VM的数据包尚未到达OVS,因此数据包仍然没有播放VLAN标签的原始消息,因此iPtables规则也易于实现)。

  这是我们的OpenStack Network 2.0版本。

  但是,实际上,如果您发现这种独立的幼苗OVS,则有两个部分转发规则:

  每次添加VM时,端口都会标记,插入虚拟网络电缆和其他配置操作。该逻辑的一部分相对固定,并且不会发生太大变化。

  这部分发生了很大变化。有时,物理网络,我们必须去GRE,有时去VLAN,有时甚至是VXLAN。

  通过这种方式,这两种类型的OV的规则不好(openflow的所有重新发布),以及程序员的“分支表”的想法(或者当我们编写代码时,“绘图函数”的逻辑),让1个独奏成多个VOS。分别进行不同的事物。

  因此,当我们到达3.0版时,此版本更常见。它基本上可以更接近实际的OpenStack网络。但是,在网络节点部分中,您必须加强它。它是我们的VM,除了相互访问(流量仍在几个物理服务器之间),您必须访问外部网络(流量运行室在外面)。因此,我们必须继续增强VM访问外部网络的能力:

  这样,它几乎是4.0。我们稍后介绍的OpenStack网络基于此版本。在OpenStack网络中,对于各种OVS,Bridge和Interfaces。不像上面的随意。

  使用上述VM设置虚拟网络的模型,必须自动化它(即创建每个VM,为其设置支持的虚拟网络电缆连接)。这些计算节点。如下:

  因此,根据OpenStack的官方体系结构,它需要3个节点:管节点,计算节点,网络节点。

  在每个节点上,部署了一堆代理以接收老板的控制命令。老板是主节点。

  注意:也提到了前几章。分布式系统和可靠的控件需要一个“代理”,例如RabbitMQ(OPNSTACK选择了此),ETCD(Kubernetes选择了此),Zookeeper(Hadoop选择了此)

  (1)首先,顶级红线是用于控制代理的“主要控制逻辑”,称为管理表面网络。

  (2)然后中间有一条绿线,即VM在该网络电缆上发送了大量的“武术”数据包,即在VM之间通信的网络,必须采用数据。数据量非常大。引用到数据表面。

  为了确保管理表面和数据表面是孤立的,它不会互相影响(即:VM疯狂,不要急于经理的消息)。在每个物理服务器上,有2个网卡,一个是用于采用管理网络电缆,其中一个用于吸收数据网络电缆。

  (3)接下来是左下角的深绿色线。VM用于访问计算机房间的外部网络。就一个网络节点,还有一个其他网络卡。

  (4)最后,紫色线。每次登录到主节点,您可以手动控制命令控件。

  在这里,我们打开一个OpenStack计算节点以查看其网络结构。在一年中,当我学习了一个操作系统网络时,我看到了一个信息并在学习OS网络时为我提供了帮助。

  根据之前的“设计思想”,您应该能够理解上面图片的网络逻辑。在命名中,内部OVS称为Br-i。该隧道称为BR-TUN。如果您有一个环境,则检查节点并使用各种网络命令(IP,OVS-VSCTL,BRCTL等),您可以确认它。

  同样,网络节点,网络组成如下:

  其中,上部红色虚线表示网络名称空间。DNSMASQ是DHCP服务器(自动分配IP程序以将IP地址分配给VM)。

  该节点还使用各种网络命令检查确认。

  PS,因为网络节点上有许多网络名称空间,请记住使用IP NetN Exec命令输入相应的NS来查询此虚拟空间的详细信息。

  除了其自己的虚拟网络中的IP外,VM还可以具有浮动IP(注意:相应的云制造商,通常称为EIP)。LET查看实现的“浮动IP”的实现。

  首先,浮动IP是物理网络世界,即OpenStack的外部网络。它是一个真实的IP地址(与VM不同,即您的虚拟IP)。

  如上图所示,对于浮动IP,我摘要的摘要是VM的名称。

  当您从外部网络访问此“浮动IP”时,相当于访问此vm。

  例如:“大师级监护人”这个名字很大。当您报告要找到“国民警卫队的大师”时,每个人都知道您正在寻找特定的人。但是,这个“监护人国立大学硕士”的名称可以从一个人转移到另一个人。

  与云制造商的EIP相对应,是否易于理解?

  我们关注网络节点的名称空间。(该示例的浮动IP是192.168.101.3)。如下所示:

  在网络节点中,查询NS。

  查找相应的路由器NS(上面的Pentagram),然后在内部检查网卡信息:

  可以看出,有一张名为QG-XX的网卡,它具有此浮动IP地址。

  然后,我们在此NS中检查Iptables规则:

  您会发现有两个规则:

  第1条是SNAT规则,这意味着要替换源IP地址。特定内容为:如果源IP为172.17.17.2(VM),则将源IP替换为192.168.101.3(floatingip)。

  第2条是DNAT规则,它是替换目标IP地址。特定内容是:如果目标IP为192.168.101.3(浮动IP),则目标IP替换为172.17.17.2(vm)。

  这样,数据包就不会传输到此VM。

  因此,一旦VM具有FloatingIP(也称为EIP),则可以通过外部网络访问或直接访问外部网络。

  但是,真正的外部IP可能受到限制,并用于节省一些用途。这具有以下SNAT和DNAT函数。

  如果是VM,我想访问外部网络,但不能分配浮动。您目前可以使用SNAT。

  仍然在上一节中,在此NS中查询网卡信息,您可以看到有一个101.2 IP。

  让我们在此NS中检查Iptables规则:

  您会发现这样的规则:

  规则是IP的所有源均为172.17.17.0/24消息(即网络中的所有VM),这意味着替换源IP地址。

  因此,一旦设置了虚拟网络设置SNAT函数,该网络中的所有VM都可以访问外部网络。每个人都共享外部导出IP地址(本质上是EIP),这意味着节省某些用途。

  缺点是您只能从内部(虚拟网络)访问外部(外部网络),并且无法访问内部(毕竟,此IP由每个人共享,而不是某个VM)。

  根据保存某些用途的原则(即,许多VM共享外部IP)。如果要访问外部内部VM,则也可以使用DNAT函数。

  就原则而言,您应该考虑将一个添加到NS,并且根据不同的端口,转发了不同IP地址的DNAT规则。

  这种节省资金方法的缺点是:您只能指定相应的目标端口。例如,外部端口80分配给VM1职业。然后不能使用80,只能犯错,它只能被划分并使用外部数字81(或其他)。

  您必须损失的钱必须丢失,否则,您可以为每个VM购买EIP。

  OpenStack中的路由器用于将“一个网络”连接到“另一个网络”。它可以是两个虚拟网络,也可以是一个虚拟网络+1个实际的外部网络。

  路由器本质上是一个网络名称空间。同一章介绍了浮动IP。该NS是一个虚拟的“公交站”。所有网络连接都需要转到此运输站进行“休息和打扮”,然后转到眼网。

  请注意,在同一用户的两个网络互连以及两个不同用户的网络互连中,相同的技术技术是相同的。区别是,如果您是不同的用户,则需要控制权威,否则Zhang SAN可以随便转到李西的网络。

  与云制造商相对应的路由器概念通常称为“ VPC互连”。各种产品,例如先前的“ VPC对等”,当前的“云公司网络”,“ Corporate Route”,“ Cloud Connection”等等。

  元数据服务是允许每个VM询问上帝(OpenStack Platform):“您在文件上写了什么?”这是一个非常有趣的功能。

  您(VM)问上帝,您总是知道上帝在哪里?

  询问上帝的方法:

  你可以尝试一下。如果发现可以访问此IP,则意味着您可以证明您的计算机是虚拟VM,而不是物理机器。

  例如,VM问:出生后的启动脚本是什么?

  询问您的“用户数据信息”

  此功能仍然更有用,尤其是在执行VM自动化时(PS,您可以检查一个称为Cloud-Init的事物)。

  元数据的特征应来自AWS.Openstack与AWS兼容的“询问上帝”的功能(当然,它必须通过此功能认可或有用)。它还支持此元数据服务。

  我们知道创建和管理VM组件称为Nova。也就是说,元数据的特征是从虚拟世界(In VM)访问物理世界。在上述介绍之后,在这种情况下,它必须是一个“运输站”。

  让我们看一下VM的内部并访问169.254.169.254,消息去了哪里:

  敲击VM:

  您可以看到,在访问“上帝”时,信息传达给VM Network的网关IP(172.17.17.1)。

  那么网关IP在哪里?在网络节点的命名空间中:

  其中有一张电话卡,称为:

  让我们看一下169.254的数据包。在这个“运输站”之后,它如何“控制”。

  可以看出,目标地址为169.254数据包,将转移到本地端口9697。

  那么谁在听当地的9697港口(这个名称空间)?答案是上帝的经纪人,一个经纪人在这里窃听。

  查看此过程编号,特定命令:。

  可以看出,有一个代理程序主管9697港口,并将“接触上帝的机会”转移到当地的Unix域插座的囚犯(即代理人)。

  使用

  或者

  查询监视本地UNIX域插座的过程ID

  然后看看这个过程ID是否是上帝的代理:

  从逻辑上讲,总体过程如下:

  有关详细信息,请参阅该图:

  因此,关键是命名空间运输站。

  附件,本段中的参考链接:

  http://niusmallnan.com/_build/html/_templates/openstack/metadata_server.html.html

  http://techbackground.blogspot.com/2013/06/metadata-dia-quantum-rtml.html

  可以在上面的介绍中可以看出,所有VM虚拟机必须通过网络节点才能访问外部网络。在这种方式上也有不良位置。1是网络节点网络流量的压力;2是,一旦网络节点异常,将会影响大量的VM。判断的逻辑:

  答案是为了减少网络节点的负载并提高可伸缩性,OpenStack在JUNO版本中引入了DVR特性,并在计算节点上部署了DVR。计算节点上的VM使用floatingip访问Internet。您不必传递网络节点,您可以直接从计算节点的DVR访问它。

  通过这种方式,网络节点只需要处理SNAT(在没有浮动IP的情况下使用浮动IP和外部通信)处理SNAT,这大大降低了负载和整个系统对网络节点的依赖性。

  如果特定计算节点的条件判断是由OpenFlow规则控制的。这太详细了,没有详细的研究。您可以去看相应的文章:

  https://www.cnblogs.com/sammyliu/p/4713562.html

  https://docs.openstack.org/ocata/networking-guide/deplay-ovs-dr.html

  因此,您可以看到原始网络节点的路由器现在已散布到各种计算节点。事实证明,一个人(网络节点的路由器)正在工作,现在它散布到许多人(每个计算的路由器)节点)。它确实是一个分布式路由器。

  基本上,OpenStack的网络实现是所有当前“网络虚拟化零件”的集成,包括:OVS交换机,桥梁网络桥梁,VETH网络电缆,Tap Network电缆,Tap Network电缆,补丁网络电缆,名称空间空间,Iptables规则等。教师Tang的最复杂的网络实现(因此,本文已被拖到最后)。如果您可以理解OpenStack的网络,那么其他云平台的网络也应通过分析来理解。

  最后,基本的云网络相关课程只能在这里教授。所有人都可以成为参赛者 - 级别的导师,也不负责网络开发。因此,如果您继续研究云网络和甚至开始设计网络虚拟化方案,您也必须继续自己练习。

  注意:由于作者在此阶段主要关注Yun的相关业务(Kubernetes群集),因此OpenStack网络信息不是最新的。要理解。如果您想设计,则必须深入研究自己,因此,根据了解OpenStack网络的原则,本文仍然足够。

  原始:https://juejin.cn/post/7112733723895791653