midcom mib notes

Wes Hardaker <[email protected]> Fri, 09 Jul 2004 22:38:34 -0700
Newsgroups gmane.ietf.midcom
Organization Sparta
Message-ID <[email protected]>
[Note: the most major architectural comment is marked below as ** for
those that don't want to read the more minor ones]

I had a chance to skim through the current mibcom mib a week or two
ago.  I wrote down the following high-level comments about things:

4.2.1, last P: Using INFORMs would fix some of your notification
issues here.  Considering your architecture, I'd suggest making
INFORMs the default at least when sending notifications.

4.2.2 P. #3: "SNMP agent repeats" -> "snmp manager repeats".  Note
that the "specified period of time" and how many times to retry is
manager stack dependent, though most are configurable that I've ever
seen.

4.2.2, last P: "as is needed" -> "as it is needed"

4.2.4.2: why is this not done via a set then a get by the manager?
What does the notification buy you here?

4.2.4.3, 2nd P: actually it doesn't matter what the protocol is.
There isn't a protocol that can deal with changing data over time.
Data does change over time (period) and I don't think it's even wise
to try and protect against changing data (consider multi-process and
multi-threaded environments...  You'd never want to lock all the data
during a huge data-gathering process).

4.2.5, 1st P: authorization is per message in any decently designed protocol
(as it should be), not per session.  You have to authorize each
message being sent in a generic protocol.  I suggest you drop the
authorization word in the first sentence.

4.3, 2nd P: I don't think USM configuration is needed to do access
control policy stuff.  Just the VACM is likely ever needed.

4.3, 3rd P: USM -> VACM

4.3, 5th P: "can not be realized by" -> "may not be realizable using"

5.1.2, 3rd P: I'm not sure why you're not just deleting the row
instead of setting it 0 like you are.  Is it because you're trying to
leave the row actually around for monitoring purposes?

5.2.2, 1st P: If all rules are executed at the same priority this
means that you can never ever have two rules which overlap, right?  Is
this always going to be the case in the future?  Are you ever going to
open one rule that has slightly greater permissions than another more
specific one?  If so, the order of execution is critical there.  From
a IPSP data-model point of view (rfc3585), this would have to be
realized as a single rule at the configured priority but using a
compound set of ipheader filters (this addrs/ports or this addrs/ports
or ... -> bypass).

6: Thank you for doing this section.  There are far too many RFCs
without examples that really help the reader understand things better.

6.1, step 3: note that createAndWait is less popular than createAndGo
so you may want to switch to using that in your example.

6.3 step 1: note that an agent crash will prevent the notification
from ever being sent even when the agent's notion of the session
disappears.  Managers should be aware of this.

6.4 step 2: modcomSessionTable -> midcomSessionTable

6.4 step 5: is the purpose of this notification just because the agent
may take a while and the manager doesn't want to poll for the
value and thus can wait instead?

6.4 step 6: read all -> reads all

6.6 step 6: ditto.

section 8.1:  SHOULD support confidentiality.  I don't think you can
MUST for that.

8.1, 6th P: "the initial index" -> "the initial index of multiple
tables within the MIB"

8.3, 2nd P: I think you need to more clearly spell out when you expect
to explicitly put rules into the VACM and where and when you expect
this to happen.  It is alluded to in many places in the document, but
I think making it more explicitly clear would really help people doing
implementations.

MIB:

** midcomSessionIndexNext: Why is this needed?  It will be used
underneath the midcomSessionOwner object and the sessionID is then
local to the manager itself anyway.  A manager shouldn't need to read
this value as it should know about its existing sessions under its own
owner string.  Or you could just have an owner string without session
indexes at all, and have managers just use multiple owner strings for
creating separate sessions (possibly with a common prefix for access
control purposes).

** midcomSessionRuleNewIndex: why can't this be global instead of
per-session?  Why is rule-creation done this way.  It would be much
simile to just have a manager create rules in the ruleTable underneath
its owner string with any unused session number it wants.  Rules are
already not prioritized, so there shouldn't be conflicts.  I actually
think the entire notion of sessions is not needed at all and doesn't
provide any additional security that it seems the MIB sort of hints it
might be providing?  There is no security gain that I can see here for
this increase in complexity.  I think you could construct a solution
that doesn't require sessions at all that would significantly reduce
the complexity in the result without sacrificing anything other than
the net effect that "you have an explicit session".

midcomRuleTransportProtocol: I think an existing TC exists for
protocol numbers?  The "Protocol" TC is available in the
INTEGRATED-SERVICES-MIB (RFC2213).  You might consider reusing it.

midcomConfigFirewallTable:  more text to end the last sentence with:
configured...  "for devices that are capable of collecting like-rules
into named groups of rules."

midcomRscFirewallRuleId: doesn't match how rules are used within
IPSP.  Rules are referenced by name (and ordered by number within
groups).

-- 
Wes Hardaker
Sparta