NAT
网络地址转换(NAT)技术的理论部分可以看博客——网络层——NAT。NAT 的功能大致为:在局域网中组织会为内部主机分配私有地址,当内部主机发送数据包到外部网络时私有地址就会自动转换为公有 IP 地址,公有 IP 地址返回的流量的目的地址也会自动转换为内部私有地址。NAT 通常工作在末节网络的边界。
在 NAT 术语中,NAT 转换后的地址称之为全局地址,NAT 转换前的地址为本地地址。内部本地地址是需要进行 NAT 转换的主机的私有地址,外部本地地址是与 ISP 相连的路由器接口的地址,这会是个公有地址。进行 NAT 转换时,内部本地地址将会转换为内部全局地址,外部全局地址会成为目的地址。
地址类型 |
含义 |
内部本地地址 |
转换前的内部源地址 |
外部本地地址 |
转换后的目标地址 |
内部全局地址 |
转换后的源地址 |
外部全局地址 |
转换前的外部目标地址 |
相关视频讲解:
C++架构师学习地址:C/C++Linux服务器开发高级架构师/Linux后台架构师
NAT 的优缺点
优点
- 允许内网使用私有地址,从而节省了 ISP 分配的公网地址;
- 增强了与公有网络连接的灵活性;
- 在内网使用私有地址,可以让公有地址的更换提供方便;
- 隐藏内网的 IP 地址的细节。
缺点
- NAT 转换有一定的时间开销,会使性能下降;
- 基于端到端的功能可能无法实现;
- 由于更改了 IP 地址,端到端的 IP 地址因此无法追踪;
- 修改了报头的值,导致数据包的完整性检查失败;
- TCP 连接可能因此中断。
NAT 的类型
静态 NAT
静态 NAT 实现本地地址和全局地址的一对一映射,这些映射由网络管理员进行配置。当配置静态 NAT 的设备向互联网发送流量时,内部本地地址会被转换为已配置的内部全局地址,内部全局地址是共有的 IPv4 地址。很显然,静态 NAT 并不能节省共有 IP 地址的使用。
例如有如图所示拓扑,可用的公网地址有 170.168.2.2、170.168.2.3、170.168.2.4,则 NAT 转换表可能是: