4

欢迎来到我关于堆栈溢出的第一个问题。

我环顾四周,我还没有发现这个问题。但是,这可能是因为我不知道如何提出我需要回答的问题。

信息:

我是一名程序员,离开了公共部门,令人惊讶的是,管理良好的 IT 部门让所有这些废话都为我工作。我现在为一家需要一些网络系统帮助的私人公司工作。

我们有:

  • 一个 SQL 服务器
  • 应用服务器
  • 文件服务器
  • 网络服务器
    • 多个网络服务
    • 团队基础服务器
    • 共享积分服务
  • 5 个桌面

都在我们的内部网络上。

我们还有: - 没有域控制器 - 没有内部 DNS / NAT / DHCP 服务器。

我们目前正在使用路由器进行 DHCP 和端口转发。我们今天分配了一个静态 IP。

问题:

为了将我们的外部域/子域指向我们的新静态 IP 并让这些请求(通过使用的主机名)路由到特定服务器,我需要设置什么?

当前配置(端口转发)

ourdomain.com:1234 -> router/port-forwarding -> SQL Server:1433
ourdomain.com:1235 -> router/port-forwarding ->  Web Service 1:8081
ourdomain.com:1236 -> router/port-forwarding ->  Web Service 2:8082
ourdomain.com:1237 -> router/port-forwarding ->  Application Server:5410

我想我想要什么:

sql.ourdomain.com:80  -> ??? -> SQL Server:1433
svc1.ourdomain.com:80 -> ??? -> Web Service 1:80 (host: svc1.ourdomain.com)
svc2.ourdomain.com:80 -> ??? -> Web Service 2:80 (host: svc2.ourdomain.com)
app.ourdomain.com:80  -> ??? -> Application Server:5410

(host: xxx) 是我在 IIS 网站配置中指定主机的位置。

在某些情况下,端口转发是必要的,但并非对每个实例都是理想的。我想记住有意义的名称,而不是任意的端口号。

如果我在这里问的是完全荒谬的,那么,谢谢你的阅读。我只是在寻找一些方向。

谢谢!

<编辑>

太平洋夏令时间 2012 年 4 月 19 日上午 12:01

对不起,让我澄清一些事情。

  1. 我们只有一个静态公共 IP 地址。
  2. 假设我们可以获取/设置必要的硬件/软件来实现这一点。

如果归根结底是我们需要购买一些企业级路由硬件,那就是它所需要的。我知道这必须是可能的,因为在我上一份工作中,我们有 40 或 50 个域都指向同一个 IP,一旦进入内部网络,它们就会路由到不同的服务器。:/ 或者至少据我所知,这就是发生的事情。

我今天实际上打电话给他们并问他们,但是设置这一切的主要家伙退出了。

我真的在推动我们把垃圾放到云端,因为没有人愿意聘请网络工程师或系统分析师,更不用说建立数据中心了。

</编辑>

4

1 回答 1

2

如果每个子域解析为不同的公共 IP 地址(例如,如果您的 DNS 配置为sql.ourdomain.com解析为 1.1.1.1 并svc1.ourdomain.com解析为 1.1.1.2),这是一种简单的方法。

sql.ourdomain.com  IN A 1.1.1.1
svc1.ourdomain.com IN A 1.1.1.2

您的路由器只能根据 ip 数据包中包含的有限信息做出决定。通常,路由器可以查看 ip 或端口信息。在您的路由器配置了端口转发的情况下,路由器会查看端口号并使用该端口做出地址转换决策。

rule: incoming port 1000, forward to 192.168.1.100:1433
rule: incoming port 1001, forward to 192.168.1.101:80

但是,如果端口相同,路由器需要其他信息来决定如何执行转换。大多数低端路由器(例如 Cisco ASA 系列、Juniper SRX 系列)都可以使用 ip 来做出此地址转换决策。缺点是您需要从您的 ISP 购买多个 IP 地址。

rule: incoming ip 1.1.1.1, forward to 192.168.1.100:1443
rule: incoming ip 1.1.1.2, forward to 192.168.1.101:80

IIS 在网络堆栈的更高层上运行,可以通过查看 HTTP 标头来做出这种区分。这适用于将单个 ip 和单个端口多路复用到多个网站。在这种情况下,由于 SQL 和您的 Web 服务器使用不同的协议,您将无法利用它。

如果您的设备支持 IPsec 直通,您可能需要考虑的另一项技术是 IPsec 隧道 (VPN)。缺点是你的同事(我假设他们正在使用它)需要执行额外的配置。

于 2012-04-18T23:44:45.417 回答