I have been spending a lot of time reviewing your documents and raising
a lot of issues on the PANA specification. Thank you for your responses,
and please understand that my goal is to help the group produce
something that is more palatable to the community at large. I am
focusing largely on issues of complexity and layer violation, based on
feedback I have seen from the IETF LC and my own analysis of what I
think this protocol needs in order to succeed (in the marketplace as
well as when I take it to the IESG to become a Proposed Standard).
This email includes what I believe to be the final list of topics that I
would like discussed and acted upon in some way for the next revision of
the pana-pana specification. Some are nits, some are significant issues.
They are presented as the associated text occurs in the document from
beginning to end. Note that I have not yet reviewed the Appendices of
pana-pana, nor the pana-framework document.
Thanks,
- Mark
In the Introduction:
Please delete the following sentence, it will seem odd to someone
reading this as an RFC in the future (and could even be factually
debated today).
Currently there is no standard network-layer solution for
authenticating clients for network access.
The 3rd paragraph of the Introduction claims that PANA is link-layer
agnostic. It may be to a large extent, but (unfortunately) it is not
entirely in the form I see in this document. Either this paragraph needs
to be rewritten, admitting that it is an overstatement to claim that
PANA permits EAP to work with "any link-layer technology" straightaway,
or this document needs to truly abolish its ties to L2 - Including L2
Device parameters (such as MAC addresses, "local identifiers" that rely
on point-to-point links to make sense), "Protection Capability" defined
by lower layers, etc. I would *strongly* recommend the elimination of
all L2 ties, leaving PANA to Network Layer only authentication and
access alone.
End of Section 1:
"filter rule installation," is identified as out of scope. As discussed
on the list and with the chairs on the phone, this isn't entirely true
when an IP address as a Device ID is communicated via PANA and used to
permit packets with that Source IP address to flow after authentication
occurs. This is a filter. A very simple one, but a very important one.
Thus, I don't think that this statement is factual in its current form.
The above two issues are related. If PANA would eliminate trying to
operate on L2 access controls, and rely solely on an IP Address and
associated filter, then it would truly be a Network Layer authentication
and Network Layer access protocol. I believe this would go a very long
way to eliminate confusion over where PANA can add value. I cannot
understate this enough.
Nit: s/go through/read
Section 2:
Nit: s/be also/also be
The definition of "Device Identifier" here makes it patently clear that
there is a tie between PANA and L2, and the use of the DI to setup
filters. Both items that are declared out of scope in the introduction.
This needs to be resolved.
Please expand MSK
Section 4.3:
Nit: s/specificaiton/specification
Nit: s/the send cookie/the sent cookie
Section 5.2:
You say:
When
available, the cached answer can be used instead of fully processing
the retransmitted request and forming a new answer from scratch.
But:
PANA MUST NOT generate EAP message duplication. EAP payload of a
retransmitted PANA message MUST NOT be passed to the EAP layer.
I'm not sure what the last sentence means, but with all these capital
letters it
must be important. At first glance, the two statements above seem to be
in conflict with one another. Are you saying that any message carrying
EAP payloads must not be retransmitted? Are you saying that if they are
retransmitted, that this should somehow be detected and the EAP payload
dropped internally before being processed by EAP? This needs to be make
more clear.
Section 5.8: If the PaC updates its IP address, shouldn't the PAA (or
EP) be changing its filter somehow? I see no mention of this.
Section 6.3:
AVP Code
The AVP Code, combined with the Vendor-Id field, identifies the
attribute uniquely. AVP numbers are allocated by IANA [ianaweb].
PANA uses its own address space for this field although some of
the AVP formats are borrowed from Diameter protocol [RFC3588].
In the above text, since the Vendor ID field is optional,
it is really the AVP Code, the V-bit, and the Vendor ID
(you left out the V-bit) that identifies the attribute uniquely.
I think you should underscore the fact that the Vendor ID is optionally
present in the header. As an aside, if I were doing this, it
wouldn't be optionally present, but simply set to zero for IETF
AVPs, but perhaps you had a reason for this type of encoding.
Possible New Text:
The AVP Code, together with the optional Vendor ID field, identifies
attribute that follows. If the V-bit is not set, the Vendor ID is not
present and the AVP Code refers to an IETF attribute.
Section 8:
I understand that "OctetString" and "Unsigned32" comes from RFC3588, but
please make that more clear somewhere early in the document. A specific
reference to section 4.2 itself of RFC 3588 could be a good idea.
Something like, "This documentuses AVP Data Format such as 'OctetString'
and 'Unsigned32' as defined in Section4.2 of [RFC3588]. The definitions
of these data formats are not repeated in this document."
Could the Nonce and Cookie AVPs be the same? Why do you need *two*
random value AVPs? Particularly if, as being discussed on another
thread, the handshake phase was eliminated, perhaps you only need one
random value AVP.
Section 8.11 - Language tags can be a touchy subject. I have asked for a review
of
this section.
Section 8.12:
o PPAC AVP: Post-PANA-Address-Configuration AVP. Used to indicate
the available/chosen IP address configuration methods that can be
used by the PaC after successful PANA authentication.
Why does PANA need to control or announce this policy/capability?
Once authentication is finished, the PaC or PAA should be able to issue a DHCP
Inform or do whatever it likes to obtain a new IP address, and it is up to
the policy of that protocol to be rejected or not. This kind of
"list of possible other protocols you can run after PANA" creates layer
bindings that I don't think you want the PANA protocol to have to maintain.
What if the IP address is being allocated by IPCP? What about some future
version of IKE or some other configuration? What about some other
type of tunnel that can configure IP addresses? I don't see the advantage
of constraining yourself here, or poking into the rest of the IP stack
in this manner.
8.13: The "Protection Capability" AVP is another layer violation. Why does the
PANA protocol itself care about what kind of a connection it is running over?
At the system level you may be concerned, but why within PANA itself? What if
you are using something other than IPsec (DTLS? SSL? etc?)? Do you really
want to maintain all of the possibilities here? To what gain?
8.14 and 8.15 It is unclear here what "the provider" is supposed to be.
8.17:
The Session-Id MUST be globally and eternally unique, as it is meant
to identify a PANA session without reference to any other information,
and may be needed to correlate historical authentication
Globally and eternally unique? This is a tall order. First, I don't think
you mean "Global" here as that implies an global allocation system. Also,
I don't think you mean "eternal" as that literally means forever.
Realistically, this number is Global to a given PAA or PaC, and effort
should be made to not repeat Session IDs over a certain period of time.
If you really want an AVP for logging, you could consider a "serial number"
AVP that is monotonically increasing and saved across reboots, tied to
a system clock, etc. but not actively used to lookup state for a given
session.
10.2.1 Message Type
Why only 2 experimental message types? It would seem that if you are going
to specify and allow such an experimental range, you should grant a useful
number of values, no?
Section 10.3.1
Section 6.3 does not mention that the Vendor-ID value of zero can be used for
IETF assigned AVPs. The IANA considerations section is *not* the place to
defined such functionality for implementations!
The absence of a
Vendor-ID or a Vendor-ID value of zero (0) identifies the IETF IANA
controlled AVP Codes namespace.
Please choose one or the other and stick to it. Either the V bit indicates that
the Vendor ID and attribute indicate a vendor-specific value, or just use
zero in the Vendor ID field for IETF values. I think the latter is probably
better only because it is simpler to not have optional fields. But, please
choose
*one*
Also, please give IANA an indication of the size of the AVP Code, this is
missing.
Release of blocks of AVPs (more than 3 at a time for a given purpose)
should require IETF Consensus.
Why 3? Why at all? You have 64K of these, and any Expert Reviewer worth his salt
should be able to detect when these values are being abused. I fear that
this could cause folks to "design around" the restriction by encoding subtypes
with a single AVP, which doesn't help anyone. Not to mention that this kind of
rule is just one more variation on a theme for IANA to have to keep up with.
10.4.1
I think having such an AVP is not a good idea, and making it a Standards Action
to assign a new value makes it even worse. You never know what is going
to come along in the future than might allow an IP address assignment after
PANA runs, and frankly PANA shouldn't care *how* it happens, just that it
get notified that it was done.
10.4.2
I can make much the same argument here as for 10.4.1.
_______________________________________________
Pana mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/pana