[ 
https://issues.apache.org/jira/browse/HADOOP-9421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13687233#comment-13687233
 ] 

Daryn Sharp commented on HADOOP-9421:
-------------------------------------

Per Sanjay's request, here's a quick summary:

This patch does not direct address deficiencies in negotiation process.  It 
merely provides the flexibility to fix them in the near future.  The basic 
changes are:
* SASL protobufs
* SASL protobufs wrapped with RPC header
* Server advertised SASL auth methods - currently ignored by client

Wrapping SASL negotiation in a RPC header avoids decoding errors.  Ex. A secure 
client currently tries to decode a RPC exception from an incompatible 
connection header as a SASL message.  The client also can't handle a RPC 
exception mid-stream during SASL negotiation.  The RPC header allows the server 
and client to correctly decode the payload.

Using the RPC headers, with the addition of a streamId, will also allow the 
_future potential_ to multiplex multiple UGIs over the same connection.  
Services like the NN can be overwhelmed by a stampede of connections.  The NM 
may be an ideal candidate for aggregation of connections, or even a per-node 
multiplexor for tasks.

Server advertisement of auth methods aims to address the current limitation of 
allowing 1 pre-determined auth or simple.  Additional consideration is needed 
for a client-side whitelist to avoid server unexpectedly requesting weak 
authentication.  In the current patch, the client ignores the server and 
blindly attempts the negotiation as it does today.

+Other future features unlocked by this design+
* Brings us much closer to pluggable auth methods w/o changing server and 
client code
* Client may select a server advertised auth method to:
*# Support services and/or clusters with heterogenous auth methods (ex. 
thinking of knox, rhino, etc)
*# *Critical to Y!*: IP failover, especially for HA with kerberos.  The client 
needs the active NN's host to acquire a service ticket
*# Simplify token selection by using an opaque identifier supplied by the 
server - will eliminate use_ip, and even the complex HA token logic
*# Support accessing multi-interface hosts on all interfaces
*# Support accessing services via any of their hostnames, ips, or CNAMEs
* Ability to greatly reduce complexity of client/server auth code, and cleanly 
decouple SASL logic
* As mentioned before, multiplexing of different UGIs over a shared connection
                
> Convert SASL to use ProtoBuf and add lengths for non-blocking processing
> ------------------------------------------------------------------------
>
>                 Key: HADOOP-9421
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9421
>             Project: Hadoop Common
>          Issue Type: Sub-task
>    Affects Versions: 2.0.3-alpha
>            Reporter: Sanjay Radia
>            Assignee: Daryn Sharp
>            Priority: Blocker
>         Attachments: HADOOP-9421.patch, HADOOP-9421.patch, HADOOP-9421.patch, 
> HADOOP-9421.patch, HADOOP-9421-v2-demo.patch
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to