网络工程 · 2 4 月, 2026 0

BIG-IP GTM配置示例:智能DNS、跨机房负载均衡与NS委派

在使用 F5 做多机房/多入口的全局流量调度时,通常会用到 GTM。

一、GTM / BIG‑IP DNS 是什么?

GTM 原名是 Global Traffic Manager,是 F5 BIG‑IP 的一个模块。其本质是 F5 的“智能权威 DNS”,通过 DNS 解析结果来做全局流量调度和容灾。

从 11.x 之后,F5 官方逐渐把这个模块的营销名称统一为 BIG‑IP DNS(很多文档会写成 “BIG‑IP DNS(formerly Global Traffic Manager)”)。


二、GTM 和普通 DNS 有什么不同?

1. 普通权威 DNS

普通权威 DNS 的行为大致是:

  • 某个域名(例如 www.example.com)在权威 DNS 上有固定 A 记录;
  • 客户端问它时,它总是返回同样的 IP(或者简单轮询多个 IP)。

它不会根据机房状态、服务器健康状况、地理位置等来动态决定返回哪个 IP。

2. GTM / BIG‑IP DNS 的特点

GTM 本质也是一台权威 DNS,但它可以实现:

  • 对外提供UDP/TCP 53端口,响应 DNS 查询;
  • 同一个域名,可以根据各种条件返回不同的 IP,例如:
    • 业务入口的健康状态(某个机房宕了就不返回它);
    • 权重(某个机房承担 70%,另一个 30%);
    • 用户位置(就近访问);
    • 链路质量 / RTT 等。

因此,GTM 做的是所谓的 「全局流量调度(GSLB)」,属于 DNS 级负载均衡


三、一个完整的 BIG‑IP GTM 配置例子

下面用一个简单的例子把配置和外部 DNS 的关系串起来。

1. 环境假设

  • 业务域名:www.example.com
  • BIG‑IP DNS 对外 IP(Listener IP):233.3.3.3
  • BIG-IP 有两个带公网 IP 的 VS:
    • 东京 VS:6.6.6.6
    • 大阪 VS:9.9.9.9
  • 你已经在 LTM 上建好了:
    • /Common/VS_Tokyo_6_6_6_6
    • /Common/VS_Osaka_9_9_9_9

你想做的是,当用户访问www.example.com时,BIG-IP 会根据策略返回IP地址 6.6.6.69.9.9.9

2. 在 BIG‑IP 上的配置步骤

(1) 配置 DNS Listener(UDP/TCP 53)

在命令行中(示意,具体选项按实际版本补全):

create gtm listener /Common/dns_listener {
    address 233.3.3.3
    port 53
    ip-protocol udp
}

create gtm listener /Common/dns_listener_tcp {
    address 233.3.3.3
    port 53
    ip-protocol tcp
}

注意:不同版本里 Listener 对象名字/类型可能略有差异,这里只示意「必须在233.3.3.3上开启 DNS 监听」。

(2) 建 GTM Server

把其他 BIG‑IP LTM 或独立设备纳入 GTM 的监控视图:

create gtm server Local_LTM {
    addresses add { 10.0.1.10 }   # 管理/自有网络 IP
    product bigip
}

对接 Big-IP LTM 时,可以让 GTM 自动获取 LTM 上的 VS 列表和健康状态。

🤔 10.0.1.10是什么IP?

一般是 BIG-IP 的管理 IP,也可以是能访问设备设置的 self IP。可以指定多个。

注意确保TCP/4353端口开放,BIG-IP 会使用此端口,通过 iQuery 协议读取IP状态。

(3) 建 GTM Pool(成员就是各 IP 指向的 VS)

create gtm pool a pool_www_example {
    members add {
        Local_LTM:/Common/VS_Tokyo_6_6_6_6 { ratio 1 }
        Local_LTM:/Common/VS_Osaka_9_9_9_9 { ratio 1 }
    }
    load-balancing-mode round-robin
}

(4) 建 Wide IP

create gtm wideip a www.example.com {
    pools add { pool_www_example { order 0 } }
}

这样,当有人查询www.example.com时,BIG‑IP DNS 会根据pool_www_example里的成员和负载均衡策略(例如 round-robin、ratio 等),返回6.6.6.69.9.9.9

3. 外部 DNS / 域名注册商的配置

这是最容易搞错的一块。

原则:

外部 DNS 不应该直接配置www.example.com的 A 记录指向那几个公网 VS IP,而是应该用 NS 记录 把这个域名委派给 BIG‑IP DNS。

假设你想给 BIG‑IP DNS 起个名字叫ns1.example.com,并让它作为www.example.com的权威解析服务器:

  1. 先在你的域名 DNS 区里给 BIG‑IP 起名并指向 Listener IP:
ns1.example.com.   A   233.3.3.3
  1. 然后用 NS 把 example.com 委派给它:
example.com.   NS  ns1.example.com.

本质含义:

example.com这个域名的 nameserver(权威解析服务器)是 ns1.example.com,而ns1.example.com的 IP 是233.3.3.3,也就是你的 BIG‑IP DNS Listener。

所以,所有针对www.example.com的解析,最后都会到233.3.3.3:53,由 BIG‑IP DNS 来回答。