1. Network Address Translation(网络地址转换)概述
- 实现私有地址到公网地址的转换功能(私网地址无法在公网上路由)和隐藏私有地址(安全)
- NAT 一般部署在接入公网的网关设备上
- 对「IP Header」和「TCP/UDP Header」信息进行转换
2. 实现方式
1)动态地址池/静态
- 实现私有地址和公有地址的一对一、静态转换、动态转换
- 一个公网 IP 只能分配给唯一且固定的内网主机「既转换 IP 地址,也转换 TCP/UDP 协议的端口号」
- 实现多对一 、端口多路复用(PAT、NAPT)
- 根据报文的目的 IP 地址和端口号查找地址转换表项(静态 / Easy NAT 表项)
4)双出口并对外提供web服务
双出口并对外提供web服务.pdf3. NAT ALG 穿越
点到点网络的 NAT 穿越技术,主要解决 NAT 对应用层协议无法转换(无感知)的问题(例如 FTP 协议等,由于 NAT 只能对 IP 报文的头部地址和 TCP/UDP 头部的端口信息进行转换,所以这种特殊协议的报文不能被 NAT 转换)
1)NAT ALG 原理
NAT ALG 利用带有 ALG 功能的 NAT 设备对特定应用层协议的支持,当设备检测到新的连接请求时,先根据传输层端口信息判断是否为已知应用类型。如果判断为已知应用,则调用该应用协议的 ALG 功能对报文的深层内容进行检查。若发现任何形式表达的 IP 地址和端口信息,NAT 都会将这些信息同步进行转换,[并为这个新的连接建立一个附加的转换表项]
2)支持的NAT ALG穿越协议
支持的应用协议 | 做NAT转换的字段 |
---|---|
DNS | Response 报文中的 IP 和 Port |
FTP | - Port Request 报文中载荷里的 IP 和 Port - Passive Response 报文中载荷里的 IP 和 Port |
SIP | - Request line - From - To - Contact - Via - O - Message body 的 C 字段地址和 M 字段的端口 - record-router |
RTSP | Setup/Reply OK 报文中的端口字段 |
PPTP | 分 PPTP Client 在私网还是 PPTP Server 在私网两种场景 - PPTP Client 在私网:PPTP Server 在外网时,仅对 Client-Call-ID 进行端口替换 - PPTP Server 在私网:PPTP Client 在外网时,仅对 Server-Call-ID 进行端口替换 |