【问题标题】:Network Systems Help: How to route an external request, by hostname to an internal ip?网络系统帮助:如何通过主机名将外部请求路由到内部 ip?
【发布时间】:2012-04-18 23:30:17
【问题描述】:

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

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

信息:

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

我们有:

  • SQL 服务器
  • 应用服务器
  • 文件服务器
  • Web 服务器
    • 多个网络服务
    • 团队基础服务器
    • 分享积分服务
  • 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,一旦进入内部网络,它们就会路由到不同的服务器。 :/ 或者至少据我所知,这就是发生的事情。

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

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

编辑>

【问题讨论】:

    标签: networking routing dns port


    【解决方案1】:

    如果每个子域解析为不同的公共 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)。缺点是您的同事(我假设他们正在使用它)需要执行额外的配置。

    【讨论】:

    • 好的,所以基本上我在这里得到的是,我所要求的可能是单个 IP 不可能实现的。我不确定是否有一些超级豪华的 Windows 服务器角色可以查看数据包流中的主机名源或其他内容。谢谢! (:
    猜你喜欢
    • 2017-07-05
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2011-06-03
    • 2021-01-30
    • 1970-01-01
    相关资源
    最近更新 更多