PAT在Azure中的工作方式

时间:2018-10-22 16:20:12

标签: azure networking routing nat

我试图在Azure中理解outbound connections,有一个特定的观点确实让我感到困惑,

  

多个流,每个流到不同的目标IP地址,端口和   协议,共享一个SNAT端口

我无法理解以上几点,不同目标IP地址,端口和协议的多个流如何共享一个SNAT端口?

例如,

本地内部->内部全局-> Oustide全局

10.10.10.30:12345-> 64.56.12.3:5678-> 1.2.3.4:80

10.10.10.40:11111-> 64.56.12.3:5678-> 4.5.6.7:80

从4.5.6.7:80返回响应时,Azure如何知道它必须将相同的端口号发送给哪个内部IP?

1 个答案:

答案 0 :(得分:0)

  

多个流如何使不同的目标IP地址,端口和   协议共享一个SNAT端口?

对于每个outbound connection每个流使用一个SNAT端口到单个目标IP地址,端口。这表示除了源信息是从虚拟网络专用IP地址重写的,其他信息,从源端口到公用IP,SNAT端口,每个TCP流映射也将在使用一个SNAT端口时考虑目标IP地址和端口更改。

对于多个流,每个流分别一个不同的目标IP地址,端口和协议,共享一个SNAT端口,因为存在一个不同的目标IP地址,即5元组(同一源公共IP,SNAT端口,协议,不同的目标IP地址,端口)使流变得唯一,而无需其他源端口来区分流。

  

从4.5.6.7:80返回响应时,Azure如何知道   由于它们共享同一端口,因此必须发送哪个内部IP   数字?

在这种情况下,当从 4.5.6.7 返回的响应时,目标服务器 4.5.6.7 不知道内部IP 10.10.10.40:11111 ,因为它们被SNAT隐藏在VIP后面。因此,响应将发送到VIP和SNAT端口 64.56.12.3:5678 。系统将根据每个TCP流映射表(包括目标IP地址和端口)将VIP和SNAT端口转换为源IP和源端口 10.10.10.40:11111-> 64.56.12.3:5678-> 4.5.6.7:80