OpenStack网络指南(5)网络地址转换(Network address translation)
来源:互联网 发布:腾讯云域名没有备案 编辑:程序博客网 时间:2024/04/30 22:07
网络地址转换(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/8172.16.0.0/12192.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元数据服务。 在OpenStack部署中,没有具有此IP地址的主机。 相反,OpenStack使用DNAT来更改这些数据包的目标IP,以便它们到达元数据服务正在监听的网络接口。
One-to-one NAT
在一对一NAT中,NAT路由器维护私有IP地址和公共IP地址之间的一对一映射。 OpenStack使用一对一NAT来实现浮动IP地址。
0 0
- OpenStack网络指南(5)网络地址转换(Network address translation)
- 网络地址转换(NAT,Network Address Translation)
- NAT(Network Address Translation,网络地址转换)
- NAT(Network Address Translation,网络地址转换)
- 网络地址转换(NAT,Network Address Translation)
- 网络地址转换(NAT,Network Address Translation)
- NAT(Network Address Translation)
- Win8.1系统下VirtualBox的各种网络配置方法——Network Address Translation (NAT)(网络地址转换)
- NAT(Network Address Translation)介绍
- OpenStack网络指南(9)地址范围(Address scopes)
- NAT(network address translation) tcp udp 打洞
- NAT Network Address Translation
- NAT Network Address Translation
- NAT (Network Address Translation)
- Network Address Translation
- How Network Address Translation Works
- OpenStack网络指南(6)OpenStack网络
- OpenStack网络指南(4)网络命名空间(Network namespaces)
- xutil的使用,浅谈xUtils3的基本使用方法
- Git简明教程
- 配置Tomcat时web.xml、server.xml和content.xml自动还原问题
- Linux终端中文显示乱码
- 位运算符与移位运算符
- OpenStack网络指南(5)网络地址转换(Network address translation)
- OJ 2014: C语言实验——圆周率
- iOS Xcode制作模板类
- 【JZOJ 4931】 A
- PID 调试技巧
- linux命令笔记
- 无向图的几个基本算法应用
- 序(一)
- Java中int,Integer,equals,==的区别