时间:2023-08-04 23:24:02 | 来源:网站运营
时间:2023-08-04 23:24:02 来源:网站运营
浅谈内网穿透:内网穿透,也叫NAT穿透,进行NAT穿透是为了使具有某一个特定源ip地址和源端口号的数据包不被NAT设备屏蔽而正确路由到内网主机。服务器Server1 :3.3.3.3“3.3.3.3”、“4.4.4.4”、“5.5.5.5”都是公网ip可以在互联网中相互访问。
服务器Server1 :4.4.4.4
NAT网关:5.5.5.5、192.168.0.1
内网设备PC1:192.168.0.5
当PC1的10000端口访问Server1的111端口时,PC1发出的数据包中ip和端口情况为192.168.0.5:10000 => 3.3.3.3:100;以上便是192.168.0.5:10000和3.3.3.3:100之间借助NAT通信的过程。
当数据包到达NAT网关后,NAT网关发出的数据包为5.5.5.5:20000 => 3.3.3.3:100;
Server1接收到NAT网关发来的数据包后,发出响应包3.3.3.3:100 => 5.5.5.5:20000;
NAT网关接收到响应包后,通过查询NAT表,向PC1发出3.3.3.3:100 => 192.168.0.5:10000;
例如,Server2主动向NAT网关发出数据包4.4.4.4:101 => 5.5.5.5:20000,会被NAT网关转换为4.4.4.4:101 => 192.168.0.5:10000发送给PC1。这种NAT被称为“全锥形NAT”。地址受限锥形NAT
在以上的场景中,由于192.168.0.5:10000和3.3.3.3:100之间的通信,192.168.0.5:10000和5.5.5.5:20000建立了映射关系,但是只允许Server1可以借助这条映射和192.168.0.5:10000通信,Server2发来的数据包4.4.4.4:101 => 5.5.5.5:20000会被丢弃。端口受限锥形NAT
例如,仅允许Server1的100端口可以借助192.168.0.5:10000和5.5.5.5:20000之间的映射关系和192.168.0.5:10000通信。Server1其他端口发出的数据包3.3.3.3:101 => 5.5.5.5:20000会被NAT网关丢弃。注意:在受限锥形NAT中,禁止被限制对象主动和内网通信。例如Server2无法主动发送数据包到PC1的10000端口,但是PC1向Server2主动发起通信请求不受影响。
例如,192.168.0.5:10000和Server1、Server2的不同端口通信时,都会被转换成3.3.3.3:20000。而在对称NAT中,内网同一ip的同一端口和外部通信时,建立的映射关系是一对多的。
例如,192.168.0.5:10000和3.3.3.3:100通信时,会被转换为3.3.3.3:20000,和3.3.3.3:101通信时,会被转换为3.3.3.3:20001。
服务器Server1 :3.3.3.3需要借助内网穿透技术实现PC1和PC2之间的通信。
服务器Server1 :4.4.4.4
NAT网关1:5.5.5.5、192.168.0.1
内网设备PC1:192.168.0.5
NAT网关2:6.6.6.6、192.168.1.1
内网设备PC2:192.168.1.7
辅助服务器Server3 : 7.7.7.7
a. PC1使用10000端口和Server3建立连接;方案二:
b. Server3收到PC1的连接请求,获得PC1和NAT网关1之间的映射关系为192.168.0.5:10000 <=> 5.5.5.5:20000;
c. PC2和Server3建立连接,接收Server3发来的映射信息;
d. PC2直接向5.5.5.5:20000发起连接请求;
e. PC1同意PC2发来的连接请求,连接建立完毕。
a. PC1使用10000端口和Server3建立连接;在对称NAT中,由于和不同地址建立的映射端口不同,无法实现内网穿透。
b. PC2使用10000端口和Server3建立连接;
c. Server3收到连接请求,获得关系192.168.0.5:10000 <=> 5.5.5.5:20000、192.168.1.6:10000 <=> 6.6.6.6:20000;
d. PC1通过10000端口向6.6.6.6:20000发起连接请求。PC1的连接请求会被NAT网关2丢弃,但是在NAT网关1中,PC1和6.6.6.6:20000之间的通信已经被允许。;
e. PC2直接向5.5.5.5:20000发起连接请求;
f. 请求顺利到达PC1,PC1同意PC2发来的连接请求,连接建立完毕。
关键词:浅谈