에 실패했습니다. Kerberos와 Zookeeper를 설정하기 위해 필자가 수행 한 단계를 설명했습니다 here.사육사/SASL 체크섬 내가이 오류를 생성 문제를 해결하려면 어떻게
[email protected]:~/zk/zookeeper-3.4.11$ JVMFLAGS="-Djava.security.auth.login.config=/home/zookeeper/jaas/jaas.conf -Dsun.security.krb5.debug=true" bin/zkServer.sh start-foreground
...
>>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
>>> KrbAsRep cons in KrbAsReq.getReply zookeeper/zookeeper-server-01
2017-12-22 00:21:52,308 [myid:] - INFO [main:[email protected]] - Server successfully logged in.
2017-12-22 00:21:52,312 [myid:] - INFO [main:[email protected]] - binding to port 0.0.0.0/0.0.0.0:2181
2017-12-22 00:21:52,313 [myid:] - INFO [Thread-1:[email protected]] - TGT refresh thread started.
2017-12-22 00:21:52,313 [myid:] - INFO [Thread-1:[email protected]] - TGT valid starting at: Fri Dec 22 00:21:52 UTC 2017
2017-12-22 00:21:52,313 [myid:] - INFO [Thread-1:[email protected]] - TGT expires: Fri Dec 22 10:21:52 UTC 2017
2017-12-22 00:21:52,314 [myid:] - INFO [Thread-1:[email protected]] - TGT refresh sleeping until: Fri Dec 22 08:25:59 UTC 2017
내가하려고 할 때, 그러나,이 zkCli.sh
그것 (다른 EC2 인스턴스에서 실행), 서버가 연결을 닫고 위의 체크섬 오류를 출력 연결 : 사육사가 작동하는 것 같군.
사육사 클라이언트는 사육사 서버에 연결할 수 있도록 나타납니다
클라이언트는 사전 승인을 필요로에 대한 오류를 수신하지만 성공적으로 로그인 할 것으로 보인다
JVMFLAGS="-Djava.security.auth.login.config=/home/admin/Downloads/zookeeper-3.4.11/conf/zookeeper-test-client-jaas.conf -Dsun.security.krb5.debug=true" bin/zkCli.sh -server zookeeper-server-01.eigenroute.com:2181
Connecting to zookeeper-server-01.eigenroute.com:2181
2017-12-22 00:27:12,779 [myid:] - INFO [main:[email protected]] - Client environment:zookeeper.version=
3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
...
2017-12-22 00:27:12,788 [myid:] - INFO [main:[email protected]] - Client environment:user.dir=/home/admin/Downloads/zookeeper-3.4.11
2017-12-22 00:27:12,789 [myid:] - INFO [main:[email protected]] - Initiating client connection, connectString=zookeeper-server-01.eigenroute.com:2181 sessionTimeout=30000 [email protected]
Welcome to ZooKeeper!
JLine support is enabled
...
>>> KrbAsReq creating message
[zk: zookeeper-server-01.eigenroute.com:2181(CONNECTING) 0] >>> KrbKdcReq send: kdc=kerberos-server-01.eigenroute.com UDP:88, timeout=30000, number of retries =3, #bytes=166
>>> KDCCommunication: kdc=kerberos-server-01.eigenroute.com UDP:88, timeout=30000,Attempt =1, #bytes=166
>>> KrbKdcReq send: #bytes read=310
>>>Pre-Authentication Data:
...
(이 성공적으로 인증을 의미합니까?) 사육사 서버에? 또는에 로그인 커버 로스?
...
KRBError received: NEEDED_PREAUTH
KrbAsReqBuilder: PREAUTH FAILED/REQ, re-send AS-REQ
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 18 17 16 23.
Looking for keys for: zktestclient/[email protected]
Added key: 17version: 3
Added key: 18version: 3
Looking for keys for: zktestclient/[email protected]
Added key: 17version: 3
Added key: 18version: 3
Using builtin default etypes for default_tkt_enctypes
default etypes for default_tkt_enctypes: 18 17 16 23.
>>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
>>> KrbAsReq creating message
>>> KrbKdcReq send: kdc=kerberos-server-01.eigenroute.com UDP:88, timeout=30000, number of retries =3, #bytes=253
>>> KDCCommunication: kdc=kerberos-server-01.eigenroute.com UDP:88, timeout=30000,Attempt =1, #bytes=253
>>> KrbKdcReq send: #bytes read=742
>>> KdcAccessibility: remove kerberos-server-01.eigenroute.com
Looking for keys for: zktestclient/[email protected]
Added key: 17version: 3
Added key: 18version: 3
>>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
>>> KrbAsRep cons in KrbAsReq.getReply zktestclient/eigenroute.com
2017-12-22 00:27:13,286 [myid:] - INFO [main-SendThread(35.169.37.216:2181):[email protected]] - Client successfully logged in.
...
클라이언트는 다음 사육사 서버에 대한 소켓 연결을 열고, SASL을 시도 그것에 인증 :
...
2017-12-22 00:27:13,312 [myid:] - INFO [main-SendThread(35.169.37.216:2181):[email protected]
5] - Opening socket connection to server 35.169.37.216/35.169.37.216:2181. Will attempt to SASL-authen
ticate using Login Context section 'Client'
2017-12-22 00:27:13,317 [myid:] - INFO [main-SendThread(35.169.37.216:2181):[email protected]
] - Socket connection established to 35.169.37.216/35.169.37.216:2181, initiating session
2017-12-22 00:27:13,359 [myid:] - INFO [main-SendThread(35.169.37.216:2181):[email protected]] - Session establishment complete on server 35.169.37.216/35.169.37.216:2181, sessionid = 0x1000436873a0001, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
Found ticket for zktestclient/[email protected] to go to krbtgt/[email protected]
COM expiring on Fri Dec 22 10:27:13 UTC 2017
Entered Krb5Context.initSecContext with state=STATE_NEW
Found ticket for zktestclient/[email protected] to go to krbtgt/[email protected]
COM expiring on Fri Dec 22 10:27:13 UTC 2017
Service ticket not found in the subject
>>> Credentials acquireServiceCreds: same realm
Using builtin default etypes for default_tgs_enctypes
default etypes for default_tgs_enctypes: 18 17 16 23.
>>> CksumType: sun.security.krb5.internal.crypto.RsaMd5CksumType
>>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
>>> KrbKdcReq send: kdc=kerberos-server-01.eigenroute.com UDP:88, timeout=30000, number of retries =3, #bytes=712
>>> KDCCommunication: kdc=kerberos-server-01.eigenroute.com UDP:88, timeout=30000,Attempt =1, #bytes=712
>>> KrbKdcReq send: #bytes read=678
>>> KdcAccessibility: remove kerberos-server-01.eigenroute.com
>>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
>>> KrbApReq: APOptions are 00000000 00000000 00000000 00000000
>>> EType: sun.security.krb5.internal.crypto.Aes256CtsHmacSha1EType
Krb5Context setting mySeqNumber to: 50687702
Krb5Context setting peerSeqNumber to: 0
Created InitSecContextToken:
0000: 01 00 6E 82 02 6B 30 82 02 67 A0 03 02 01 05 A1 ..n..k0..g......
...
0260: 33 25 94 1F 60 93 E9 CF 7E EF 15 82 F8 6D ED 06 3%..`........m..
0270: 43 C
2017-12-22 00:27:13,405 [myid:] - INFO [main-SendThread(35.169.37.216:2181):[email protected]] - Unable to read additional data from server sessionid 0x1000436873a0001, likely server has closed socket, closing socket connection and attempting reconnect
WATCHER::
WatchedEvent state:Disconnected type:None path:null
그래서 SASL 인증은 완전한 실패가 아니라 사육사 서버는 연결을 닫습니다 (체크섬 오류로 인해).
업데이트 # 1. T-헤론의 코멘트에 대한 응답으로, 클라이언트 시스템에 nslookup zookeeper-server-01.eigenroute.com
의 결과는 다음과 같습니다, /etc/hosts
클라이언트 시스템에서
zookeeper-server-01.eigenroute.com 30 minutes A
35.169.37.216
:
는Server: 172.31.0.2
Address: 172.31.0.2#53
Non-authoritative answer:
Name: zookeeper-server-01.eigenroute.com
Address: 35.169.37.216
zookeeper-server-01.eigenroute.com
에 대한 DNS 항목입니다 포함 :
127.0.1.1 ip-172-31-95-211.ec2.internal ip-172-31-95-211
127.0.0.1 localhost
34.239.197.36 kerberos-server-02
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
는
127.0.1.1 ip-172-31-88-14.ec2.internal ip-172-31-88-14
127.0.0.1 localhost
34.225.180.212 kerberos-server-01
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
(kerberos-server-01
에 대한 항목하지 않습니다 :와 사육사 서버에서 zookeeper-server-01.eigenroute.com
는, /etc/hosts
포함 (kerberos-server-02
내가 결과는 동일에서이 라인을 주석 때이 KDC 아닌, 잘못된 이름입니다) 거기에 있어야합니다 - 내가 그것을 제거하면 결과가 동일합니다).
누군가 체크섬 오류를 해결하는 방법을 설명 할 수 있습니까? 감사! 호스트 이름, 내가 zookeeper/[email protected]
생성 키 탭을 zookeeper-server-01.eigenroute.com 사용되는 사육사 서버의 JAAS 구성에서
zookeeper/[email protected]
zookeeper/[email protected]
:
오늘 밤 이것을 보겠습니다. –
클라이언트 컴퓨터에서 "nslookup zookeeper-server-01.eigenroute.com"의 결과는 무엇입니까? 결과가 35.169.37.216에 대한 A 레코드가 아니면 문제가됩니다. 나는 IP가 Kerberos 서비스 프린시 펄 엔트리 내부에서 작동하지만 호스트 이름은 작동하지 않기 때문에 이것을 추측하고있다. 둘째, 결과는 CNAME이 아니라 A 레코드 여야합니다. 필요한 경우 DNS를 수정하고 DNS가 이미 올바른 경우 zookeeper-server-01.eigenroute.com에 대한 잘못된 호스트 파일 항목이 클라이언트와 서버 컴퓨터에서 모두 있는지 확인하십시오. KDC는 괜찮은 것처럼 들리지만, btw. –
@ T-Heron : 감사합니다 - 귀하가 제공하도록 지시 한 정보를 추가하는 질문을 편집했습니다. 사실 DNS 항목은 CNAME이 아니라 A 레코드입니다. 클라이언트와 서버 머신의'/ etc/hosts' 파일은 괜찮아 보입니다 (또는 그 안에 항목을 추가해야합니까?). 'nslookup zookeeper-server-01.eigenroute.com'의 결과가 괜찮은 것 같습니까? –