【发布时间】:2017-08-23 20:28:23
【问题描述】:
不确定发生了什么,因为这里有多个活动部件。 我们有一个用于 hdfs、hadoop、impala、hbase 的 cloudera 集群。我们所有的 impala 服务器前面还有一个 F5 负载均衡器。我们正在尝试使用 Kerberos 保护服务器/集群。我的同事使用 MIT KDC 设置了 Kerberos。当我们直接向服务器查询 impala 时,此设置可以正常工作,但当我们通过 F5 负载平衡器时则不行。
我们已经运行 kinit 来获取预先创建的 keytab 文件的票证。
kinit -k -t /blah/keytabs/first.last.keytab first.last
当我运行klist 时,它会显示所有这些票:
$ klist
Ticket cache: FILE:/tmp/krb5cc_14377
Default principal: first.last@MADEUPNAME
Valid starting Expires Service principal
08/23/17 11:32:02 08/24/17 11:32:02 krbtgt/MADEUPNAME@MADEUPNAME
renew until 08/23/17 11:32:02
08/23/17 11:33:39 08/24/17 11:32:02 impala/hslave32101.company.com@MADEUPNAME
renew until 08/23/17 11:32:02
当我运行 impala-shell 命令时,它运行良好:
$ impala-shell -i hslave32101.company.com:21000 -k -q "select 1"
Starting Impala Shell using Kerberos authentication
Using service name 'impala'
Connected to hslave32101.company.com:21000
Server version: impalad version 2.7.0-cdh5.9.2 RELEASE (build 2f7871169d894fab16f8a2fb99f2e34f0df8763d)
Query: select 1
Query submitted at: 2017-08-23 13:08:34 (Coordinator: http://hslave32101.company.com:25000)
Query progress can be monitored at: http://hslave32101.company.com:25000/query_plan?query_id=4940ca8ca2f267c5:5eeb29af00000000
+---+
| 1 |
+---+
| 1 |
+---+
Fetched 1 row(s) in 0.01s
但是,当我通过 F5 负载均衡器运行命令时,它不起作用,因为它正在寻找的票证与 klist 中的票证不匹配,因为它出于某种原因替换了其中的一部分。
impala-shell -i bdaudit.company.com:21000 -d bigdata -k -q "select 1"
Starting Impala Shell using Kerberos authentication
Using service name 'impala'
Error connecting: TTransportException, Could not start SASL: Error in sasl_client_start (-1) SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server krbtgt/COMPANY.COM@MADEUPNAME not found in Kerberos database)
Not connected to Impala, could not execute queries.
问题出在这一行
(Server krbtgt/COMPANY.COM@MADEUPNAME not found in Kerberos database)
不知何故,当通过 F5 VIP 时,它会将 first.last@MADEUPNAME 更改为 COMPANY.COM@MADEUPNAME。有谁知道为什么它取代了这部分票?
【问题讨论】:
-
1/2 “我的同事使用 MIT KDC 设置了 Kerberos。当我们直接向服务器查询 impala 时,此设置工作正常,但当我们通过 F5 负载平衡器时却不行。” --> 所以,只是一个简单的问题。 F5 是配置为传递到您的应用服务器还是配置为反向代理?我认为它必须配置为直通负载平衡器才能使 Kerberos 工作,否则身份验证流量将在 F5 停止并丢弃,而无需在 F5 进行进一步配置。我在这里进行有根据的猜测。
-
2/2 "但是,当我通过 F5 负载均衡器运行命令时,它不起作用,因为它正在寻找的票证与 klist 中的票证不匹配,因为它替换了其中的一部分原因...不知何故,当通过 F5 VIP 时,它会更改 first.last@MADEUPNAME 为 COMPANY.COM@MADEUPNAME。有人知道它为什么替换了这部分票吗? --> 这些陈述似乎证实了您的 F5 正在充当黑斑羚的反向代理。你能确认或否认这一点吗?如果没有在 F5 上进行进一步配置,我认为它不会工作。
-
@T-Heron,感谢您对我的问题感兴趣。 F5 设置为直通。在找到 Cloudera 的有关如何执行此操作的文档后,我们得到了它的工作。我们仍然不知道为什么错误中的名称发生了变化,除了预感 KDC 试图找到一些名为 bdaudit.company.com 的资源之外,由于资源是 hslave33333.company.com 并且由于某种原因而无法找到,将名称截断为 company.com@MADEUPNAME
标签: authentication kerberos cloudera f5