3

我要做的是设置一个面向公众但调用内部网络上的数据库的 Web 应用程序。我一直在尝试设置一个带有公共子网、私有子网和硬件 VPN 访问的 AWS VPC,但我似乎无法让它工作。

有人可以帮我理解这里的流程应该是什么吗?我的理解是我需要一个公共子网来处理网站请求,然后需要一个私有子网来连接到 VPN,但我不明白如何沿着链发送请求并获得响应。基本上我要问的是如何从该公共网站通过 VPN 查询数据库?

我在路由转发期间尝试过,但我无法成功完成该过程。

有人对我可以阅读的有关此主题的内容或有关设置此类内容的常见问题解答有任何建议吗?甚至可能吗?如果重要的话,所有这些服务器都将运行 Windows Server

我在这里不合群,这不是我的专业领域,但我被要求解决这个问题。任何帮助,将不胜感激。

谢谢

4

2 回答 2

8

对于我们这些熟悉 IP 网络、路由和 NAT 的人来说,VPC 的术语有点违反直觉,所以这可能会有所帮助:

显然,VPC 允许您创建多个子网并在它们之间路由流量。它还允许您通过在您身边的硬件 VPN 设备和 VPC 提供的配套虚拟设备之间建立的隧道将流量路由到您自己的数据中心的其他子网。

您提供了一个“虚拟专用网关”——这是 AWS 的“设备”,可以终止他们的 VPN;然后您声明自己的“客户网关”及其公共 IP 地址(您身边的设备,例如 Cisco ASA);然后通过在它们之间声明“VPN 连接”将这两个实体绑定在一起。在“VPN 连接”中,您可以声明从 VPC 网络到公司网络的私有 IP 地址空间的静态路由。在您的本地设备中,您可以通过隧道配置路由到您将在 VPC 内部使用的私有 IP 地址空间。

仍然在 VPC 配置中,您声明您的 VPC 的路由表,并且在“路由传播”下,您可以“选择允许更新此路由表的虚拟私有网关”。这会将指向您公司网络的路由(从 VPN 连接配置中发现)注入到 VPC 路由表中。

VPC 中最大的混淆点之一是“公共子网”和“私有子网”的术语,这在 VPC 中的含义与在其他任何地方的含义不同,因为 VPC 中的所有子网都位于私有 IP 地址空间上。公共/私人的区别是这样的:

VPC 中的公有子网使用“Internet 网关”作为其默认路由,而私有子网使用“NAT 实例”或 VPN 隧道作为其默认路由。Internet 网关是一个虚拟对象,本质上只是一个没有实际配置的占位符,可以用于具有公共 IP 地址的 EC2 实例访问 Internet,并且只能由具有公共 IP 地址的实例使用。NAT 实例是运行自定义软件映像的 EC2 机器,它将接受来自缺少自己的公共 IP 地址的内部机器的流量,并将该流量伪装成源自其外部 IP 地址,以便可以通过 Internet 发送流量即使它在内部源自没有公共 IP 地址的 EC2 实例。来自 Internet 的返回流量被寻址到 NAT 实例,

NAT 实例极其违反直觉的一点是,它必须在“公共”子网上进行配置,但它充当在“私有”子网上配置的实例的默认网关。传统上,您的默认网关位于您自己的子网上,但在 VPC 中,情况并非如此——它仍然可以完美运行。

从我到目前为止所写的内容中应该得到的是,您实际上并不“需要”私有子网——然而——在你的 VPC 中,基于你想要完成的事情,以及基于“私有”子网在 VPC 中的意思——尽管我建议无论如何都使用向导设置一个,以便以后如果你需要它。您不需要私有子网的原因是私有子网是您配置不需要可通过 Internet 访问的 EC2 实例的地方并且您没有在问题中提到该需求。

例如,如果您的公司网络是 172.16.0.0/16,并且私有 IP 网络 192.168.0.0/16 与您的公司网络编号不冲突,您可以将 VPC 声明为 192.168.0.0/16,然后声明,例如, 192.168.20.0/24(位于 192.168.0.0/16 内)作为公共子网。在您的硬件 VPN 设备上,通过隧道将 192.168.0.0/16 路由到 VPC,然后在 VPC 内部,通过隧道将 172.16.0.0/16 路由回公司网络。

我所描述的主要是“ VPC 场景 3 ”,添加了您可以在VPC 场景 2中看到的 NAT 实例。使用 NAT 实例的原因是,如果您确实将服务器放置在“私有”VPC 子网中,则方案 3 使它们无法在出站基础上访问 Internet(例如,用于获取软件更新),除非通过路由回您的公司网络以这种方式访问​​ Internet,这对我来说似乎是不必要的旅行,但这取决于您的安全理念。

要记住的另一件事是,如果您正在考虑使用 Elastic Load Balancer,ELB 需要在“公共”子网上进行配置,但服务于 ELB 的实例可以放在“私有”子网上,因为在此在这种情况下,只有 ELB 需要直接从 Internet 访问,并且如果安全组和 VPC 路由表允许,ELB 可以访问 VPC 中任何子网上的实例。

但是,在您在原始问题中描述的设置中,根据“私有”子网的 VPC 定义,不需要“私有”子网。Web 服务器位于具有私有 IP 地址的“公共”子网上,并使用来自公共地址空间的弹性 IP,并且该网络可通过 VPN 直接路由到您的公司网络。

于 2013-11-05T23:51:48.923 回答
0

我在我的 linux 机器中使用 stunnel。好像也支持windows,查看链接:

http://www.stunnel.org/downloads.html

有一个关于windows配置的教程。您可以从此文档调整您的解决方案:http: //home.arcor.de/lightsky/docs/stunnel_openssl_synergy.pdf

于 2013-11-05T16:01:07.740 回答