参考链接
NAT vs. NAPT: What’s the Difference?
IPv6 Network Prefix Translation (NPt) | pfSense Documentation (netgate.com)
趣谈NAT/NAPT的原理,这篇不可不读! - 知乎 (zhihu.com)
NAT (Network Address Translation)
NAT说明
NAT(网络地址转换)的功能主要是通过修改 IP 数据包标头中的网络地址信息来重新映射 IP 地址。它广泛用于路由器中,将私有地址转换为单个公共地址,确保私有网络内多个设备的无缝互联网连接。NAT 是一种工具,用于在每个设备的唯一公有 IP 不切实际或不必要的情况下保留公有 IP 地址。
NAT 更侧重于转换 IP 地址,而不太关心通过其的流量的具体情况。它在操作方面更简单,并保持了将私有网络地址转换为公共网络地址以进行 Internet 通信的基本要求。NAT 在个人会话差异化不是优先事项的网络中非常有效。
NAT 的基本原理是转换一对一或多对一 IP 地址。这意味着它可以将多个私有地址转换为单个公共地址,也可以将特定的公共地址分配给特定的私有地址。这是网络中的一项基本技术,可在使用有限的公有 IP 地址池的同时促进外部访问。
NAT工作原理
- 当内网主机需要访问公网设备时,NAT的设备需要从地址池中挑选一个空闲的公网IP地址,建立与内网主机报文源ip地址间的一个NAT转换表项(正反向)。
- 根据这个表项然后把报文的私有源IP改成公网IP然后发送出去
- NAT设备收到公网主机的回应报文后,根据其目的IP地址查找反向的NAT表项,依据查表结果将报文转换后向内网主机的发送
NAPT (Network Address Port Translation)
NAPT介绍
NAPT(网络地址端口转换)是 NAT 的一个子类型,它还通过将端口号与 IP 地址一起转换来扩展此功能。这意味着 NAPT 不仅将私有 IP 地址转换为公共 IP 地址,而且还跟踪端口号以区分多个 Internet 会话。它特别适用于通过单个公有 IP 处理大量设备的流量,管理地址和端口信息以促进互联网连接。
另一方面,NAPT 更加复杂,因为它同时处理 IP 地址和端口号。这种复杂性允许对 Internet 流量进行更高效、更详细的管理,因为它可以通过使用不同的端口号处理来自单个 IP 地址的多个连接。NAPT 的附加转换层使其在复杂的网络场景中更加通用
NAPT 的运作更加动态。它不仅执行 IP 地址转换,还修改端口号,从而实现多对多转换功能。NAPT 的这一功能使其能够管理和区分源自同一设备的多个会话或连接,从而更有效地处理复杂的网络流量场景。
NAPT,网络端口地址转换,它是属于一种多对一的地址转换,它通过使用“ip地址+端口号”的形式进行转换,使多个内网的用户可以共用一个公网的IP地址来访问外网。
NAPT工作原理
- 当内网主机需要访问公网设备时,NAT设备从地址池中选取一对空闲的“公网ip地址+端口号”,建立与内网报文“源ip地址+源端口号”间的NAPT转换表项(正反向)。
- 根据表项把报文“源ip和源端口”改成“公网ip和端口”后转发出去。
- NAT设备收到公网主机的回应报文后,根据其“目的IP地址+目的端口号”查找反向NAPT表项,依据查表结果将报文转换后向私网主机发送。
NAT实现主要包括: Easy IP、地址池NAT(NAPT). NAT Server和静态NAT/NAPT
Easy IP
Easy IP方式可以利用访问控制列表来控制哪些内部地址可以进行地址转换。Easy IP方式特别适合小型局域网访问Internet 的情况。这里的小型局域网主要指中小型网吧、小型办公室等环境.一般具有以下特点:内部主机较少、出接口通过拨号方式获得临时公网IP 地址以供内部主机访问Internet。
NAT Server
当外网用户访问内网服务器时,NAT Server通过事先配置好的“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,将服务器的“公网IP 地址+端口号”,根据映射关系替换成对应的“私网IP地址+端口号”。
静态NAT
是指在进行NAT转换时,内部网络主机的IP 同公网IP 是- -对静态绑定的,静态NAT中的公网IP只会给唯一且固定的内网主机转换使用。
静态NAPT
是指“内部网络主机的IP+协议号+端口号”同“公网IP+协议号+端口号”是一对一静态绑定的,静态NAPT中的公网IP可以为多个私网IP使用。
Network Prefix Translation (NPT)
网络前缀转换(简称NPT)的工作方式类似于 1:1 NAT。NPT有几个用途,但许多人质疑它的实际用途。跟 NPT“私有” IPv6 空间 () 可以在 LAN 上使用,并且可以 由 NPT转换为公共的路由 IPv6 前缀,因为它来来去去 一个 WAN。这种做法的效用是值得商榷的。一种用途是避免对 LAN 重新编号 如果外部提供商发生变化,但是由于任何外部查找 旧的前缀也必须进行调整,它的有用性可以是两种方式, 尤其是当配置必须考虑避免 VPN 隧道空间中的冲突时。
IPv6 NPT规则
ip6tables -t nat -A POSTROUTING -o eth0.99 -j NETMAP --to 2607:xxx::/64 -s fda3:xxx::/64
ip6tables -t nat -A PREROUTING -i eth0.99 -j NETMAP -d 2607:xxx::/64 --to fda3:xxx::/64