在VPN隧道内部和外部连接时会发生什么

从信件到Tucha技术支持,这些文章诞生了。 因此,最近有一位客户与我们联系,要求澄清在用户办公室与云环境之间的VPN隧道内部连接以及在VPN隧道外部连接时发生的情况。 因此,下面的全文是一封真实的信,我们根据他的问题发给其中一位客户。 当然,我们更改了IP地址,以免使客户端匿名。 但是,是的,Tucha技术支持确实以其全面的答案和内容丰富的信函而闻名。 :-)

当然,我们知道对于许多人来说,这篇文章不是启示。 但是,由于不定期出现在Habr上的有关初学者的文章,并且由于该文章是写给真实客户的真实来信,因此我们仍将在此处共享此信息。 很可能对某人有用。
因此,我们详细说明了如果通过站点到站点网络连接云服务器和办公室之间会发生什么情况。 请注意,在这种情况下,部分服务仅可从办公室使用,而部分服务可从Internet的任何地方使用。

我们将立即说明,我们的客户希望他可以通过RDP从任何地方访问服务器192.168.A.1 ,并连接到AAA2:13389 ,并且仅从通过以下方式连接的办公室(192.168.B.0 / 24)连接到其他服务虚拟专用网 此外,客户端最初配置为办公室中的机器192.168.B.2也可以通过RDP从任何地方访问,并连接到BBB1:11111 。 我们帮助组织了云与办公室之间的IPSec连接,客户的IT专家开始询问有关在这种情况下会发生什么的问题。 为了回答所有这些问题,实际上,我们在下面给他写了所有您可以阅读的内容。


现在更详细地考虑这些过程。


第一名


当某物从192.168.B.0 / 24发送到192.168.A.0 / 24或从192.168.A.0 / 24发送到192.168.B.0 / 24时 ,它进入了VPN。 也就是说,此数据包被额外加密并在BBB1AAA1之间传输,但是192.168.A.1恰好看到了来自192.168.B.1的数据包。 他们可以通过任何协议相互通信。 返回响应也以相同的方式通过VPN传输,这意味着从192.168.A.1192.168.B.1的数据包将作为ESP数据报从AAA1发送到BBB1 ,路由器将在另一侧部署该数据包,从中获取该数据包并将其发送到192.168.B.1作为来自192.168.A.1的数据包。

具体示例:

1) 192.168.B.1访问192.168.A.1 ,要与192.168.A.1建立TCP连接:3389 ;

2) 192.168.B.1192.168.B.1发送请求建立连接:55555 (他选择要反馈的端口,以下我们将使用数字55555作为系统在生成TCP-时选择的端口号的示例)连接)到192.168.A.1:3389 ;

3)在地址为192.168.B.1的计算机上运行的操作系统决定将此数据包传输到路由器的网关地址(在本例中为192.168.B.254 ),因为192.168.A.1还有其他更具体的路由,因此,它不会沿默认路由(0.0.0.0/0)传递数据包;

4)为此,她尝试在ARP协议的缓存表中找到IP地址192.168.B.254的MAC地址。 如果未找到,它将从地址192.168.B.1向网络192.168.B.0 / 24发送广播请求对象。 192.168.B.254将其MAC地址发送回给它时,系统会为其发送一个以太网数据包并将此信息存储在其缓存表中;

5)路由器接收到该数据包并决定将其发送到何处:它具有以下策略:它应通过BBB1AAA1之间的VPN连接传输192.168.B.0 / 24192.168.A.0 / 24之间的所有数据包;

6)路由器生成从BBB1AAA1的ESP数据报;

7)路由器决定将该数据包发送给谁,因为它没有比0.0.0.0/0更具体的AAA1路由,所以将其发送到BBB254 (Internet提供商的网关);

8)以与上述相同的方式,找到BBB254的MAC地址并将数据包发送到Internet提供商的网关;

9)互联网提供商通过其网络从BBB1AAA1传输ESP数据报;

10) AAA1上的虚拟路由器接收此数据报,对其进行解密,并从192.168.B.1:55555接收一个针对192.168.A.1:3389的数据包;

11)虚拟路由器检查应将其发送给谁,在路由表中找到网络192.168.A.0 / 24并将其直接发送到192.168.A.1 ,因为它具有接口192.168.A.254 / 24

12)为此,虚拟路由器找到192.168.A.1的MAC地址,并通过虚拟以太网将该数据包传递给它;

13) 192.168.A.1在端口3389上收到此数据包,同意建立连接并形成一个数据包,以响应从192.168.A.1:3389192.168.B.1:55555的问题

14)他的系统将此数据包发送到虚拟路由器的网关地址(在本例中为192.168.A.254 ),因为它没有针对192.168.B.1的其他更特定的路由,因此,它必须沿该路由传输数据包默认值(0.0.0.0/0);

15)以与以前的情况相同的方式,在地址为192.168.A.1的服务器上运行的系统会找到MAC地址192.168.A.254 ,因为它与接口192.168.A.1 /在同一网络上24 ;

16)虚拟路由器接收此数据包并决定将其发送到何处:它具有以下策略:它应通过AAA1BBB1之间的VPN连接传输192.168.A.0 / 24192.168.B.0 / 24之间的所有数据包;

17)虚拟路由器生成从AAA1BBB1的ESP数据报;

18)虚拟路由器决定应将此数据包发送给谁,然后将其发送到AAA254 (Internet提供商的网关,在这种情况下,这也是我们),因为到BBB1的路由比0.0.0.0/0更具体;

19)互联网提供商通过其网络从AAA1BBB1传输ESP数据报;

20) BBB1上的路由器接收到该数据报,对其进行解密,并从192.168.A.1:3389接收一个针对192.168.B.1:55555的数据包;

21)他知道应该将其传输到192.168.B.1 ,因为他和他在同一个网络上,因此,他在路由表中有一个相应的条目,迫使他为整个192.168.B.0 /发送数据包直接24个

22)路由器找到192.168.B.1的MAC地址并发送此数据包;

23)地址为192.168.B.1的计算机上的操作系统从192.168.A.1:3389接收到192.168.B.1:55555的数据包,并启动以下步骤以建立TCP连接。

这个示例非常简洁,简单(您可以在此处回忆很多细节)描述了2-4级时发生的情况。 不考虑1、5-7级。

第二位置


如果从192.168.B.0 / 24AAA2专门发送了某些内容,则该内容不会直接转到VPN。 也就是说,如果来自地址192.168.B.1的用户访问AAA2:13389 ,则此数据包将从地址BBB1磨损,传递到AAA2 ,然后路由器在此处接收并将其发送到192.168.A.1192.168.A.1192.168.B.1一无所知,他看到了来自BBB1的数据包,因为他理解了。 因此,此请求的答案沿一般路线进行,从地址AAA2BBB1完全相同 ,该路由器将此答案提供给192.168.B.1 ,从AAA2中看到答案,并向其寻址。

具体示例:

1) 192.168.B.1地址AAA2 ,要与AAA2建立TCP连接:13389 ;

2) 192.168.B.1发送一个建立连接的请求,该连接从192.168.B.1:55555 (此数字,如前面的示例,可能有所不同)到AAA2:13389

3)在地址为192.168.B.1的计算机上运行的操作系统决定将此数据包传输到路由器的网关地址(在本例中为192.168.B.254 ),因为它没有其他更具体的AAA2路由,这意味着它将沿着默认路由(0.0.0.0/0)发送数据包;

4)为此,正如我们在前面的示例中提到的,她尝试在ARP协议的缓存表中查找IP地址192.168.B.254的MAC地址。 如果未找到,它将从地址192.168.B.1向网络192.168.B.0 / 24发送广播请求对象。 192.168.B.254向其发送回其MAC地址时,系统会为其发送一个以太网数据包,并将此信息存储在其缓存表中;

5)路由器接收到该数据包并决定将其发送到何处:它具有以下策略:必须将所有从192.168.B.0 / 24的数据包转发(替换为返回地址)到其他Internet节点;

6)由于此策略意味着返回地址必须与该数据包将通过其传输的接口上的最低地址一致,因此路由器首先决定应将该数据包确切地传输给谁,并且如上例所示,他应将其发送给BBB254 (Internet服务提供商网关),因为它没有比0.0.0.0/0更具体的到AAA2的路由;

7)因此,路由器将替换数据包的返回地址,此后将数据包从BBB1:44444 (端口号,当然可能有所不同)更改为AAA2:13389

8)路由器记住它所做的事情,这意味着当收到AAA2: 13389BBB1:44444响应时,它将知道它将接收者的地址和端口更改为192.168.B.1:55555

9)现在,路由器必须通过BBB254将其传输到Internet提供商的网络,因此,按照我们已经提到的相同方式,它找到BBB254的MAC地址并将数据包发送到Internet提供商的网关;

10)互联网提供商在其网络上将数据包从BBB1传输到AAA2

11) AAA2上的虚拟路由器在端口13389上接收到此数据包;

12)虚拟路由器上有一条规则,规定从任何发件人到此端口的数据包都应发送到192.168.A.1:3389

13)虚拟路由器在路由表中找到网络192.168.A.0 / 24 ,并将其直接发送到192.168.A。 1,因为它具有接口192.168.A.254 / 24

14)为此,虚拟路由器找到192.168.A.1的MAC地址,并通过虚拟以太网将该数据包传递给它;

15) 192.168.A.1在端口3389上接收到此数据包,同意建立连接并在BBB1:44444上响应192.168.A.1:3389形成数据包;

16)他的系统将此数据包发送到虚拟路由器的网关地址(在本例中为192.168.A.254 ),因为它没有针对BBB1的其他更特定的路由,因此,它必须沿默认路由(0.0。 0.0 / 0);

17)以与以前的情况相同的方式,在地址为192.168.A.1的服务器上运行的系统会找到MAC地址192.168.A.254 ,因为它与接口192.168.A.1处于同一网络上/ 24 ;

18)虚拟路由器接受此数据包。 应当注意,他记得他收到了来自AAA2:13389的BBB1:44444的数据包, 并将接收者地址和端口更改为192.168.A.1:3389 ,因此,他将数据包从192.168.A.1:3389更改为BBB1:44444 AAA2上的发件人地址:13389 ;

19)虚拟路由器决定应将此数据包发送给谁,因为它没有比0.0.0.0/0更具体的BBB1路由,所以将其发送到AAA254 (Internet提供商的网关,在这种情况下,也是我们)。

20)Internet提供商在其网络上将数据包从AAA2传输到BBB1

21) BBB1上的路由器接收到此数据包,并回想起它从192.168.B.1:55555发送数据包到AAA2:13389时 ,将其地址和发送方端口更改为BBB1:44444 ,这意味着这是需要传输的答案在192.168.B.1:55555上 (实际上,还有其他几条支票,但我们不进行讨论);

22)他知道应该将它们直接发送到192.168.B.1 ,因为他和他在同一个网络上,因此,他在路由表中有一个对应的条目,迫使他为整个192.168.B.0 / 24发送数据包直接

23)路由器找到192.168.B.1的MAC地址并发送此数据包;

24)地址为192.168.B.1的计算机上的操作系统从AAA2:13389接收到192.168.B.1:55555的数据包,并启动以下步骤以建立TCP连接。

应该注意的是,在这种情况下,地址为192.168.B.1的计算机对地址为192.168.A.1的服务器一无所知 ,它仅与AAA2通信。 同样,地址为192.168.A.1的服务器对地址为192.168.B.1的计算机一无所知。 他认为他们是从地址BBB1与他建立联系的,因此,他一无所知。

还应注意,如果此计算机访问AAA2:1540 ,将不会建立连接,因为即使在虚拟网络192.168.A.0中的任何服务器上,也未在虚拟路由器上配置到端口1540的连接转发配置/ 24 (例如,在地址为192.168.A.1的服务器上),并且某些服务正在等待此端口上的连接。 如果绝对需要使用地址192.168.B.1的计算机用户建立与此服务的连接,则他必须使用VPN,即 直接通过192.168.A.1:1540与我们联系。

应该强调的是,任何与AAA1建立连接的尝试(除了来自BBB1的IPSec连接都不会成功。除与端口13389的连接之外,与AAA2建立连接的任何尝试都将失败。
还要注意,如果其他人呼叫AAA2 (例如UDP),则第10-20段中指示的所有内容也将适用于他。 之前和之后发生的情况取决于其背后的确切内容。我们不拥有此类信息,因此,我们建议您向该地址的地址咨询网站管理员。

第三位置


反之亦然,如果某物从192.168.A.1发送到某个配置为内部转发到BBB1的端口(例如11111),它也不会进入VPN,而是从AAA1调皮到BBB1 ,并且已经有人将其传输到192.168.B.2:3389中的某个位置。 他看到的不是来自192.168.A.1的包,而是来自AAA1的包 。 并且,当192.168.B.2应答时,数据包从BBB1转到AAA1 随后到达连接发起方-192.168.A.1

具体示例:

1) 192.168.A.1地址为BBB1 ,要与BBB1建立TCP连接:11111 ;

2) 192.168.A.1BBB1:11111上发送从192.168.A.1:55555建立连接的请求(此数字,如上例所示,可能有所不同);

3)在地址为192.168.A.1的服务器上运行的操作系统决定将此数据包传输到路由器的网关地址(在本例中为192.168.A.254 ),因为它没有针对BBB1的其他更具体的路由,因此,它将沿着默认路由(0.0.0.0/0)发送数据包;

4)为此,正如我们在前面的示例中提到的,她尝试在ARP协议的缓存表中查找IP地址192.168.A.254的MAC地址。 如果未找到,它将从地址192.168.A.1向网络192.168.A.0 / 24发送广播请求对象。 当192.168.A.254向其发送回其MAC地址时,系统将为其发送以太网数据包,并将此信息输入其高速缓存表;

5)虚拟路由器接收到该数据包并决定将其传输到何处:它具有一项策略,必须将所有从192.168.A.0 / 24的数据包转发(替换为返回地址)到其他Internet节点;

6)由于此策略假定返回地址必须与该数据包将通过其传输的接口上的最低地址一致,因此虚拟路由器首先决定应将该数据包确切地传输给谁,并且如上例所示,他应将其发送给谁在AAA254 (Internet提供商的网关,在这种情况下,这也是我们)上,因为到BBB1的路由比0.0.0.0/0更具体;

7)这意味着虚拟路由器将替换数据包的返回地址,因此它是从AAA1:44444 (端口号,当然可能有所不同)到BBB1:11111的数据包

8)虚拟路由器记住了他所做的事情,因此,当从BBB1:11111收到AAA1 :44444响应时,他会知道他应该将接收者的地址和端口更改为192.168.A.1:55555

9)现在,虚拟路由器必须通过AAA254将其传输到Internet提供商的网络,这意味着,正如我们已经提到的,它找到AAA254的MAC地址并将数据包发送到Internet提供商的网关;

10)互联网提供商在其网络上将数据包从AAA1传输到BBB1

11) BBB1上的路由器在端口11111上收到此数据包;

12)虚拟路由器上有一条规则,规定从任何发件人接收到此端口的数据包都应传输到192.168.B.2:3389

13)路由器在路由表中找到网络192.168.B.0 / 24 ,并将其直接发送到192.168.B.2 ,因为它具有接口192.168.B.254 / 24

14)为此,虚拟路由器找到192.168.B.2的MAC地址,并通过虚拟以太网将该数据包传递给它;

15) 192.168.B.2在端口3389上接收到此数据包,同意建立连接并形成一个数据包,以响应192.168.B.2:3389AAA1:44444的请求;

16)他的系统将此数据包发送到路由器的网关地址(在本例中为192.168.B.254 ),因为它没有AAA1的其他更特定的路由,因此,它必须沿默认路由(0.0.0.0)传递数据包。 / 0);

17)与以前的情况相同,在地址为192.168.B.2的计算机上运行的系统会找到MAC地址192.168.B.254 ,因为它与接口192.168.B.2在同一网络上/ 24 ;

18)路由器接受此数据包。 应当注意,他记得他收到了来自BBB1:11111AAA1的数据包,并将接收者地址和端口更改为192.168.B.2:3389 ,因此,他将发件人地址更改为AAA1:44444的192.168.B.2:3389的数据包。在BBB1:11111 ;

19)路由器决定将该数据包转发给谁。他将其发送到BBB254(Internet提供商的网关,我们不知道其确切地址),因为与AAA1相比,它没有比0.0.0.0/0 更具体的路由

20)互联网服务提供商传递他们的网络封装BBB1AAA1 ;

21),虚拟路由器AAA1接受程序包和回忆,当他路过一个包的192.168.A.1:55555BBB1:11111,他改变了他的地址和端口AAA1:44444。因此,这是需要传输到192.168.A.1的答案:55555(实际上,正如我们在前面的示例中提到的那样,那里还有更多的检查,但是这次我们也不再赘述);

22)他理解应该将其直接发送到192.168.A.1,因为他和他在同一个网络上,这意味着他在路由表中有一个相应的条目,迫使他为整个192.168.A.0 /发送数据包直接24个

23)路由器找到192.168.A.1的MAC地址并发送此数据包;

24)地址为192.168.A.1的服务器上的操作系统BBB1:1111 1 接收到192.168.A.1:55555的数据包,并启动以下步骤以建立TCP连接。

以同样的方式在以前的情况,在这种情况下,地址服务器192.168.A.1不知道计算机的地址什么192.168.B.1,他只与通信BBB1地址为192.168.B.1的计算机也不了解地址为192.168.A.1的服务器他认为他们从地址AAA1连接到他,其余的对他隐藏了。

结论


当在客户端办公室和云环境之间的VPN隧道内部连接时以及在VPN隧道外部连接时,就会发生这种情况。如果您仍然有疑问或需要我们的帮助来解决云问题,请联系24x7。

Source: https://habr.com/ru/post/zh-CN477854/


All Articles