设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 753|回复: 1
收起左侧

OpenStack|覆盖(隧道)协议、网络命名空间、网络地址转换

[复制链接]
发表于 2017-12-21 20:47:33 | 显示全部楼层 |阅读模式
接上回说:
网络基础
网络组件
覆盖(隧道)协议

隧道是使得有效载荷的传输在不兼容的传送网络上可行的机制。 它允许网络用户访问被拒绝或不安全的网络。 可以采用数据加密来传输有效载荷,确保封装的用户网络数据表现为公开的,即使其是私有的并且可以容易地通过冲突网络。
○ 通用路由封装(GRE )
通用路由封装(GRE)是一种在IP上运行的协议,在传送和有效载荷协议兼容但有效载荷地址不兼容时使用。 例如,有效载荷可能认为它正在数据链路层上运行,但它实际上正在使用IP上的数据报协议在传输层。
○ 虚拟可扩展局域网(VXLAN)
VXLAN的目的是提供可扩展的网络隔离。 VXLAN是第3层网络上的第2层覆盖方案。 它允许覆盖2层网络分布在多个3层网络域上。 每个覆盖层被称为VXLAN分段。 只有同一VXLAN段内的虚拟机才能通信。
网络命名空间

命名空间是一种用于定义特定标识符集合的方式。 使用命名空间,可以在不同的命名空间中多次使用相同的标识符。 您还可以将标识符集限制为对特定进程可见。
例如,Linux为网络和进程提供命名空间等。 如果进程在进程命名空间中运行,则它只能查看同一命名空间中的其他进程并与其通信。 因此,如果特定进程命名空间中的shell运行ps waux,它将只显示同一命名空间中的其他进程。
Linux网络命名空间
在网络命名空间中,作用域“标识符”是网络设备;因此给定的网络设备(如eth0)存在于特定的命名空间中。 Linux使用默认网络命名空间启动,因此如果您的操作系统没有做任何特殊操作,那就是所有网络设备所在的位置。但也可以创建更多的非默认命名空间,并在这些命名空间中创建新设备,或者将现有设备从一个命名空间移动到另一个命名空间。 每个网络命名空间也有自己的路由表,事实上这是命名空间存在的主要原因。
路由表由目的地IP地址是关键所在,因此如果您希望相同的目标IP地址在不同时间表示不同的东西,那么网络命名空间是您需要的 - 这是OpenStack Networking需要的功能,它提供重叠的IP地址在不同的虚拟网络。 每个网络命名空间也有自己的一套iptables(用于IPv4和IPv6)。因此,您可以对不同命名空间中具有相同IP地址的流以及不同的路由应用不同的安全性。 任何给定的Linux进程在特定的网络命名空间中运行。
默认情况下,这是从其父进程继承的,但具有正确功能的进程可以切换到不同的命名空间;在实践中,这主要是使用ipnetns exec NETNS COMMAND...调用完成的。
虚拟路由和转发(VRF)
虚拟路由和转发是一种IP技术,允许路由表的多个实例在同一路由器上同时共存。 它是上述网络命名空间功能的另一个名称。
网络地址转换

网络地址转换(NAT)是在分组在传输过程中修改IP分组的报头中的源或目的地地址的过程。 一般来说,发送方和接收方应用程序不知道IP分组正在被操纵。
NAT通常由路由器实现,因此我们将引用执行NAT的主机作为NAT路由器。 但是,在OpenStack部署中,它通常是实现NAT功能的Linux服务器,而不是硬件路由器。 这些服务器使用iptables软件包来实现NAT功能。
NAT有多种变体,这里我们介绍OpenStack部署中常见的三种类型。
SNAT
在源网络地址转换(SNAT)中,NAT路由器修改IP分组中发送方的IP地址。 SNAT通常用于使具有专用地址的主机与公共Internet上的服务器通信。 RFC 1918保留以下三个子网作为私有地址: 10.0.0.0/8; 172.16.0.0/12 ;192.168.0.0/16 这些IP地址不可公开路由,这意味着公共Internet上的主机不能向这些地址中的任何地址发送IP包。私有IP地址在住宅和企业环境中广泛使用。
通常,在具有专用IP地址的主机上运行的应用程序将需要连接到公共Internet上的服务器。一个例子是想要访问诸如www.openstack.org的公共网站的用户。如果IP数据包到达以www.openstack.org为网络服务器的私有IP地址作为源,则Web服务器不能将数据包发送回发送者。SNAT通过将源IP地址修改为可在公共Internet上路由的IP地址来解决此问题。
SNAT有不同的变体。在OpenStack部署使用的形式中,发送方和接收方之间的路径上的NAT路由器将使用路由器的公共IP地址替换数据包的源IP地址。路由器还将源TCP或UDP端口修改为另一个值,并且路由器维护发送方的真实IP地址和端口以及修改的IP地址和端口的记录。当路由器收到具有匹配的IP地址和端口的数据包时,它将它们转换回专用IP地址和端口,并且转发数据包。 因为NAT路由器修改端口以及IP地址,所以这种形式的SNAT有时被称为端口地址转换(PAT)。它有时也称为NAT过载。 OpenStack使用SNAT使实例内运行的应用程序连接到公共Internet。
DNAT
在目的地网络地址转换(DNAT)中,NAT路由器修改IP分组报头中的目的地的IP地址。 OpenStack使用DNAT将数据包从实例路由到OpenStack元数据服务。 在实例中运行的应用程序通过向IP地址为169.254.169.254的Web服务器发出HTTP GET请求来访问OpenStack。
One-to-one Net
在一对一NAT中,NAT路由器维护私有IP地址和公共IP地址之间的一对一映射。 OpenStack使用一对一NAT来实现浮动IP地址。
⊕资料来源于网络

                               
登录/注册后可看大图



发表于 2017-12-21 21:37:10 | 显示全部楼层
感谢楼主分享!
沙发 2017-12-21 21:37:10 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-26 12:02 , Processed in 0.056083 second(s), 9 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表