|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Digest Login, iSCSI Discovery, and Other Draft 03 Comments
1. version is already in my working draft!
2. we will have to merge it with whatever comes from Luciano & Paul
3.that assumption was made for SSL
1. anything related to discovery might be a bit premature. What you propose
look like a neat
thing but I don't know how it will merge with the management scheme,
administrative access.
I though that reserving the name is a thing we should do now but not more
2. Queue full - Is a SCSI layer thing. I think that passing over MaxCmdRN
should have the command discarded with iSCSI protocol error (or something
of this nature)
2. I can reinstate the bit. But control commands can have data and in this
sense are writes.
R/W was meant only to indicate the meaning of ExpectedDataLength (to
avoid scaning the CDB)
Regards,
Julo
Mark Bakke <mark.bakke@nuspeed.com> on 29/06/2000 16:13:32
Please respond to Mark Bakke <mark.bakke@nuspeed.com>
To: ips@ece.cmu.edu
cc: (bcc: Julian Satran/Haifa/IBM)
Subject: Digest Login, iSCSI Discovery, and Other Draft 03 Comments
Here are some non-connection-recovery-related thoughts on Draft 03;
mainly concerning digest logins and iSCSI target discovery.
Logins for iSCSI draft 03 might benefit from the following additions:
1. Version number text fields should be placed in both login requests
and responses. the request could either specify the version of the
protocol the initiator wishes to run, or perhaps a list of versions
that the initiator is capable of running.
Version: 1.0
-OR-
Version: 1.0 1.1 1.2
The target would then choose the highest version that it supported
in common with those requested, and return it in the response:
Version: 1.1
2. Login with username and password. It seems that the scheme already
proposed (a digest scheme) would work quite well; we can re-use the
text headers defined for HTTP/1.1, with some simplification (see
RFC 2617).
The initiator would send the initial login message, which would be
failed by the target with status == 2 (additional authentication
required; just like HTTP 401). The following text fields would be
added to the response by the target:
Authenticate: Digest
Nonce: text-string (hex or uuencode of random value)
The Nonce is used to provide a temporary value with which to hash
the username and password, preventing replay of the password on
another TCP connection. The nonce is randomly generated by the
target, and should be thrown out after being used to validate the
login for a particular connection.
The initiator would then concatenate the nonce, user-name, and
password, and compute their MD5 hash. It would send a new login
request to the target:
Authenticator: Digest user-name hex-hashed-response
Nonce: (echo of hex-string)
Where hex-hashed-response
= md5(concat(nonce, ":", user-name, ":", password))
Note that if a given nonce value is only used on a single
connection, we really don't have to echo it here as they
do in HTTP/1.1.
3. Underlying encryption mechanisms could be either negotiated by
name at login, or could just be assumed on different TCP ports;
CIFS and telnet are done over SSL without modification to their
protocols; perhaps IPSec is similar?
For the most part, I think that any of these mechanisms supported
by the target and initiator, or transparently by network security
devices would work with the protocol, and that there shouldn't
be a lot to specify here.
However, it might be worth thinking about how user-names and
passwords are tied in to those lower levels.
--------------------------------------------------------
iSCSI Target and LUN Discovery
1. The target named "iSCSI-SYS" in Draft 03 looks good.
2. We would like to add the sendTargets text command - this is a
value-add command for NuSpeed, but would be a good addition to
the spec, as it eliminates most of the need to configure the
iSCSI driver in the initiator. Targets that do not wish to
report this information can deny the command. Normally, only
the targets to which an initiator should have access are
returned. Here's the text command we use now. We log into
iSCSI-SYS, use sendTargets to find the targets, then log into
each target.
The command:
com.nuspeed.sendTargets:please
The response is a list of "target:<target-name>"
target:jbod_one
target:tape_three
...
We would rename this command to just sendTargets.
3. Async notification for a new LUN in an existing, connected target
is in the draft, but there's no notification for a newly-created
target. This notification would work with our sendTargets
mechanism, and would probably just define an event type to
ask the initiator to re-request the target list.
--------------------------------------------------------
Flow Control
1. Right now we are sending Queue Full back to handle flow control
from the iSCSI target; someone indicated that this may break
some host SCSI implementations. Is this correct? Anyway, will
the MaxCmdRN scheme handle this effectively?
2. MaxCmdRN has found its way into quite a few response headers. This
probably does not need to be updated that often, most likely when
watermarks are reached. Costa's separate message looks like would
be cleaner.
--------------------------------------------------------
Data and Command CRC (or other checksum/hash/whatever)
- More to come; we would like to see these negotiated at login, and
have separate CRCs for iSCSI headers and actual data.
--------------------------------------------------------
Some additional notes on iSCSI draft 03.
1. Immediate Data - this is a nice optimization for small data messages,
since they cut down on data headers, and eliminate another message
to parse on the target. However, using this for large data can get
around a target that wants to use RTT. Should RTT be required to
used immediate data, or should the length of immediate data be
limited to some fixed (or negotiated) maximum (a few kbytes)?
2. The Write bit is gone from the header; clearing both the Read and
Write bits implied a Control message before. Without the Write
bit, I assume that an expected data length of zero would indicate
a Control message instead.
--
Mark A. Bakke
NuSpeed, Inc.
mark.bakke@nuspeed.com
763.398.1054
Home Last updated: Tue Sep 04 01:08:12 2001 6315 messages in chronological order |