The RPC client currently constructs the kerberos principal based on the a config value, usually with an _HOST substitution. This means the service principal must match the hostname the client is using to connect. This causes problems:
- Prevents using HA with IP failover when the servers have distinct principals from the failover hostname
- Prevents clients from being able to access a service bound to multiple interfaces. Only the interface that matches the server's principal may be used.
The client should be able to use the SASL advertised principal (
HADOOP-9698), with appropriate safeguards, to acquire the correct service ticket.