目录
对IP地址进行转换的技术被称为NAT。使用NAT 可以解决IP环境中潜在的各种问题,如可以节约数量趋于不足的IP地址,或者可以在具有同一网络地址的系统之间进行通信。NAT需要使用一种名为NAT表的内存中的映射表将转换前后的IP地址和端口号关联起来进行管理。NAT需要配合NAT表一起使用。
NAT包括广义的NAT和狭义的NAT。广义的NAT是指对IP地址进行转换的整个技术。
静态NAT需要以1:1的方式将内部和外部的IP地址关联起来再进行转换。也可以将其称为1:1NAT,狭义的NAT就是指这种静态NAT。
静态NAT中预先准备了一条NAT登记项,用于对NAT表中内部的IP地址和外部的IP地址进行唯一关联。从内部访问外部时,就需要根据这条NAT登记项对发送方IP地址进行转换;相反地,从外部访问内部时,则需要对接收方IP地址进行转换。静态NAT可以用于将服务器公布到互联网的情形,也可以用于特定的终端使用特定的IP地址与互联网进行传输的情形。
NAPT(网络地址端口转换)需要以n:1的方式将内部和外部的IP地址关联起来再进行转换。虽然也可称其为IP伪装或PAT,但是指代的都是同一种处理。
NAPT会动态添加/删除在NAT表中对内部的IP地址+端口号和外部的IP地址+端口号进行唯一关联的NAT登记项。从内部访问外部时,不仅需要转换发送方IP地址,还需要转换发送方端口号。由于需要通过查看哪台终端使用哪个端口号的方式来分配数据包,因此可以转换为n:1的形式。
家庭中使用的宽带路由器和进行网络共享的智能手机就是使用NAPT对个人电脑和互联网进行连接的。最近,不仅个人电脑可以进行这样的处理,智能手机和平板电脑以及家用电器等很多设备都具有IPv4地址,因此都可以与互联网进行连接。如果逐一为每台设备分配一个全球唯一的全局IPv4地址,没一会儿地址就得被用光了。因此,需要NAPT来节约全局IPv4地址。
CGNAT(电信级NAT)是一种为了能够在电信运营商和ISP中使用而对NAPT进行了扩展的功能。这些运营商需要数十万到数百万规模的用户提供高效且集成度高的互联网连接服务,因此CGNAT在前面讲解的NAPT的基础上进行了扩展,在其中添加了端口分配功能+EIM/EIF功能(全锥形NAT)+连接限制功能等电信运营商和ISP需要具备的功能。
NAPT是一种使用端口号以n:1的形式将内部和外部的IP地址关联起来并进行转换的技术。但是,到了电信运营商这种规模,理所当然,只有一个外部IPv4地址是远远不够的。每个IPv4地址可以为用户分配的端口号数量是64512个。如果数十万用户一起使用,端口号就会在瞬间耗尽,从而导致无法分配IP地址。如果无法分配地址,那么就无法进行通信。因此CGNAT会将外部的IP地址汇总成多个IP地址,并将它们以n:n的方式关联起来。
CGNAT可以根据如何分配IP地址池和与之关联的端口号分为静态分配+PBA(端口数据块分配)和动态分配3种。采用哪种分配方式,取决于表示可以容纳多少用户的聚合效率和识别用户的日志输出量这两个方面。
静态分配
静态分配是一种静态为用户分配预先准备好数量的端口号的方法。无论用户的使用状况如何,都会以“从这里到那里的部分分给这个用户用”的方式分配端口号。静态分配与PBA和动态分配相比,虽然聚合效率差,但是不需要获取日志。
PBA
PBA是一种位于静态分配与动态分配中间位置的分配方法,用于将指定的端口数据块(端口的范围)动态分配给用户。虽然与静态分配相比,PBA的聚合效率更高,但是需要获取日志;此外,与动态分配相比,虽然聚合效率更低,但是可以减少输出日志的数量。
动态分配
动态分配是一种为用户动态分配端口号的方法。由于可以对分配的所有端口好进行高效利用,因此可以提高聚合效率;但是,由于需要以日志的方式记录何时+由谁(哪一个私有IPv4地址)在使用哪一个全局IPv4地址和端口号,因此会输出大量的日志。
EIM(端点独立映射)是一种即使接收方不同,也可以在一段时间内持续地为相同的发送方IP地址和发送方端口号的通信分配相同的地址池和端口号的功能。此外,EIF(端点独立过滤器)则是一种可以在一段时间内接受EIM分配的地址池和端口号的入站请求(来自互联网的通信)的功能。启用EIM和EIF的NAT被称为全锥形NAT。
最近的在线竞技游戏采用的是在服务器端匹配对手之后,进行P2P通信的方式。由于NAT下属的用户终端只具有私有IPv4地址,因此无法通过互联网直接进行P2P的通信。但是,如果使用全锥形NAT,就可以在一段时间内分配相同的发送方IPv4地址和发送方端口号,并在一段时间内允许它们进行通信。因此,就好像该用户终端拥有一个全局IPv4地址一样,可以进行集成度的处理,进行P2P的通信。
NAT回环是一种在同一CGNAT设备下的用户终端之间,使用全局IPv4地址实现回传通信的功能。其基本概念和前面讲解的全锥形NAT没有太大区别。全锥形NAT是假设与CGNAT设备外部的终端进行通信,而NAT回环则是假设与同一CGNAT设备下的终端进行通信。
连接限制
连接限制是一种限制一台用户终端可使用的端口数量的功能。如果一台用户终端挥霍无度地使用端口,那么无论有多少端口都是不够用的。因此,需要对一台用户终端可使用的端口数量进行限制,尽可能让所有用户可以公平地使用端口。