欢迎来到我关于堆栈溢出的第一个问题。
我环顾四周,我还没有发现这个问题。但是,这可能是因为我不知道如何提出我需要回答的问题。
信息:
我是一名程序员,离开了公共(public)部门,令人惊讶的是,管理良好的 IT 部门让所有这些废话都为我工作。我现在为一家需要一些网络系统帮助的私有(private)公司工作。
我们有:
都在我们的内部网络上。
我们还有:
- 没有域 Controller
- 没有内部 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
对不起,让我澄清一些事情。
如果归根结底是我们需要购买一些企业级路由硬件,那就是它所需要的。我知道这必须是可能的,因为在我上一份工作中,我们有 40 或 50 个域都指向同一个 IP,一旦进入内部网络,它们就会路由到不同的服务器。 :/或者至少据我所知,这就是发生的事情。
我今天实际上调用他们并问他们,但是设置这一切的主要家伙退出了。
我真的在插入我们把垃圾放到云端,因为没有人愿意聘请网络工程师或系统分析师,更不用说建立数据中心了。
编辑>
请您参考如下方法:
如果每个子域解析为不同的公共(public) 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 header 来做出这种区分。这适用于将单个 ip 和单个端口多路复用到多个网站。在这种情况下,由于 SQL 和您的 Web 服务器使用不同的协议(protocol),您将无法利用它。
如果您的设备支持 IPsec 直通,您可能需要考虑的另一项技术是 IPsec 隧道 (VPN)。缺点是你的同事(我假设他们正在使用它)需要执行额外的配置。