Nat的类型分类
摘要: 根据路由器对待outbound流量及inbound流量的不同态度,可以区分出四种不同的Nat类型。
当Client和Server进行通信时,Client会自动在本地绑定一个高位端口,双方的通信实际上是(Client IP, Client Port) <---> (Server IP, Server Port)
这一对Endpoint之间的通信。
当Client处于Nat设备后时,Client IP对Server而言是不可达的,双方的同行必须经过Nat设备的转发,即(Client IP, Client Port) <---> (Router IP, Router Port) <---> (Server IP, Server Port)
就像是防火墙规则由入网规则和出网规则共同组成一样,Nat的类型也由两方面规则共同决定,分别是Mapping Behavior(类似于出网规则)和Filter Behavior(类似于入网规则)。
Mapping Behavior
Mapping Behavior控制的是(Client IP, Client Port) <---> (Router IP, Router Port)
这对映射关系。具体而言,一共有三种不同给规则。
- Endpoint Independent:对于同一个内网IP,无论连接的另一方的IP如何变化,路由器为此内网IP打开的公网IP:Port不发生变化;
- Address Dependent Mapping:对于同一个内网IP,只要连接的另一方的IP不改变,路由器为此内网IP打开的公网IP:Port不发生变化;
- Address And Port Dependent Mapping:对于同一个内网IP,只要连接的另一方的IP或Port有一个改变,路由器为此内网IP打开的公网IP:Port就会发生变化。
考虑一个场景,内网设备先通过(100.0.0.0, 55555)和服务器(1.1.1.1:1111)建立连接,再通过(100.0.0.0, 55555)和服务器(2.2.2.2:2222)建立连接,如果两次连接中,内网IP和路由器IP的映射关系不发生变化,则Mapping Behavior是Endpoint Independent,即,只要内网Endpoint不变,则内网IP和路由IP的映射关系不变。
再考虑一个场景,内网设备先通过(100.0.0.0, 55555)和服务器(1.1.1.1:1111)建立连接,再通过(100.0.0.0, 55555)和服务器(1.1.1.1:2222)建立连接,如果两次连接中,内网IP和路由器IP的映射关系不发生变化,则Mapping Behavior是Address Dependent Mapping,否则是Address And Port Dependent Mapping。这二者的区别在于,当连接的另一方仅端口变化时,内网IP和路由器IP的映射关系是否改变。
Filter Behavior
Filter Behavior控制的是(Router IP, Router Port) <---> (Server IP, Server Port)
间的数据。具体而言,也一共有三种不同的规则。
- Endpoint Independent:只要存在
(Client IP, Client Port) <---> (Router IP, Router Port)
这样的映射关系,任意发给(Router IP, Router Port)的报文均会被转发给(Client IP, Client Port); - Address Dependent Mapping:只有来自过去一段时间内与(Client IP, Client Port)通信过的Server IP的报文才会被Router转发给(Client IP, Client Port);
- Address And Port Dependent Mapping:只有来自过去一段时间内与(Client IP, Client Port)通信过的(Server IP, Server Port)的报文才会被Router转发给(Client IP, Client Port);
总结
3种Mapping Behavior和3种Filter Behavior可以组合出9种类型的Nat,但只有其中的4种有实际意义。
Mapping Behavior | Filter Behavior | Name |
---|---|---|
Endpoint Independent | Endpoint Independent | Full Cone NAT |
Endpoint Independent Mapping | Address Dependent Filtering | Restricted Cone NAT |
Endpoint Independent Mapping | Address and Port Dependent Filtering | Port Restricted Cone NAT |
Address And Port Dependent Mapping | Address And Port Dependent Mapping | Symmetric NAT |
PS:Full Cone NAT、 Restricted Cone NAT、Port Restricted Cone NAT和Symmetric NAT是RFC3489中的定义,已经被RFC5769中的Mapping Behavior和Filter Behavior取代。
- 原文作者:Azlith
- 原文链接:https://blog.azlith.com/archives/35/286/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。