OpenSolaris

Discussions Communities Projects Download Source Browser

Home » OpenSolaris Forums » networking » discuss

Thread: Clearview IP-Level Observability Devices: updated design document

Welcome, Guest Help
Login Login
Guest Settings Guest Settings
Reply to this Thread Reply to this Thread Search Forum Search Forum Back to Thread List Back to Thread List

Permlink Replies: 13 - Last Post: Mar 10, 2006 1:28 PM by: darrenr
philk

Posts: 42
From: UK

Registered: 6/29/05
Clearview IP-Level Observability Devices: updated design document
Posted: Feb 8, 2006 3:29 AM

  Click to reply to this thread Reply

Hi,

I've incorporated all the design review comments I received and also
made some changes to the document. Of note is the addition of a /dev/lo0
device to provide consistency with other Unix variants. The revised
document can be found here:

http://opensolaris.org/os/community/networking/ipobs-design.pdf

If there are any comments on the revised document please let me know,
likewise if I have failed to incorporate some of your comments let me
know and I'll update the document accordingly.

Thank you you for all your input so far, it has been very valuable.

Phil
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



darrenr

Posts: 2,060
From:

Registered: 6/8/05
Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 6, 2006 2:33 PM   in response to: philk

  Click to reply to this thread Reply

Hi,

Firstly, in the requirements, numbers (2) and (3) read like this:

"2. From the global zone it must be possible to view all IP traffic on the machine. THis means all loopback IP traffic, traffic from remote machines, traffic sent from this machine, forwarded traffic and inter/intra-zone traffic."

"3. From a local zone, it must be possible to view all IP traffic sent to or from this zone, including traffic local to the zone. It must not be possible to see any other traffic."

These two requirements conflict with statements later in the design doc.
On page 4, the document reads:

"These devices will provide access to all packets with IP addresses local to the system which includes inter-zone and intra-zone traffic."

On page 5:

"Opening these devices will provide access to all IP packets with addresses associated with the interface."

The statements on 4 and 5 also conflict with the 2nd option for passing a packet to a consumer (but this does satisfy the requirements (2) & (3)):

"2. DL_PROMISC_PHYS is enabled and the interface was used for input or output of the packet to or from the link layer AND the consumer is in the global zone or in a non-global zone to which the packet is destined."

(that should probably be more than one sentence.)

In the table on page 6, for "(2) & !(1)", the comment for "Received" is misleading. For "(2)" to be satisfied, promiscuous mode must be set, so "(2) & !(1)" should simply be "Yes".

On page 7, this sentence is included:

"However, during the discussions it became clear that there were potential problems making the Hooks Framework generic at this time so we will implement our own specific hooks in ip."

Having been to PSARC a few times and got to know what they think about "hooks in IP", if I were PSARC reading this, it would be like waving a red flag in front of a bull. i.e. we need to change this story. It may be that the IP observability project would perhaps benefit more from PEF (packet event framework) to get packets than pfhooks. At some point in time, it is possible that pfhooks will use PEF as the means to provide events for some packets. But right now I can see one or both projects being told to go away and come back when you've fixed the story unless there is an impeccible reason for engineering it like this.

Darren

carlsonj

Posts: 6,813
From: US

Registered: 3/9/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 6, 2006 2:56 PM   in response to: darrenr

  Click to reply to this thread Reply

Darren Reed writes:
> "However, during the discussions it became clear that there were
> potential problems making the Hooks Framework generic at this time
> so we will implement our own specific hooks in ip."

Yeah, that's not pleasant. From an ARC point of view, there are
several issues to contend with:

- You're right that we don't want to see multiple implementations of
the same thing. However, it's also true that we don't want to
hold a project hostage to unsolved areas elsewhere in the system.
It's a bit of a tightrope walk to make that sort of judgement
call.

- If this project is right, and the Hooks Framework is not general
enough to solve this problem, then it's certainly fair to ask why
that should be so. It seems, at least at first blush, that
anything that can filter packets ought to be also functional
enough to simply _observe_ them. If that's not true, it'd be nice
to know why. This would likely end up as advice to management.

- It's also fair to ask that the project team go off and discuss the
issues with the other teams involved. Reasonable answers this
team could come back with would include, "that project's schedule
doesn't fit with our schedule, but after they integrate, we commit
to reworking ours to fit." But it'd be good to know the answers.

As things stand today, there is no one, generally-available, generic
framework for packet inspection. Every project to date places its own
hooks into IP, sometimes labels them as yet another "generic
solution," and then drives on. That alone is worth some advice.

> Having been to PSARC a few times and got to know what they think
> about "hooks in IP", if I were PSARC reading this, it would be like
> waving a red flag in front of a bull. i.e. we need to change this
> story. It may be that the IP observability project would perhaps
> benefit more from PEF (packet event framework) to get packets than
> pfhooks. At some point in time, it is possible that pfhooks will
> use PEF as the means to provide events for some packets. But right
> now I can see one or both projects being told to go away and come
> back when you've fixed the story unless there is an impeccible
> reason for engineering it like this.

Again from the ARC perspective, I don't think I'd ask such a thing.
PEF doesn't exist. There's no ARC documentation that describes it.
We could certainly ask the project team to go off and discuss the
issue and come back, but I can't see how we could ever demand that
this project depend on something that doesn't exist.

It's the PEF project's problem to deal with the system as it is when
(and if) that project comes forward for review and then integration.

Outside of the ARC, it's management's job to make sure the projects
are aligned as best they can. If we have multiple projects all
attempting to deliver the same thing into Solaris, then that's a
management problem.

The one thing we could reasonably ask about is dependencies between
this project and the IP Filter Hooks project. But if that latter one
doesn't have the features required for this one, and can't be reworked
to have them, then we've got a bit of a misfit. The choice then comes
down to applying force (force that'll likely cause this project to
fail to deliver) or letting it go with noses held and strong advice to
management. We often do the latter (sigh), but there's no way to
predict.

--
James Carlson, KISS Network <james dot d dot carlson at sun dot com>
Sun Microsystems / 1 Network Drive 71.232W Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



nordmark

Posts: 619
From: US

Registered: 3/9/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 6, 2006 4:25 PM   in response to: carlsonj

  Click to reply to this thread Reply

James Carlson wrote:

> - If this project is right, and the Hooks Framework is not general
> enough to solve this problem, then it's certainly fair to ask why
> that should be so. It seems, at least at first blush, that
> anything that can filter packets ought to be also functional
> enough to simply _observe_ them. If that's not true, it'd be nice
> to know why. This would likely end up as advice to management.

My take is that there are two things going on here for the various
callouts from the IP code paths.
One is whether there is a small set of places where the callouts happen,
or whether each "function" ends up wanting access to packets at slightly
different places in the IP stack.
The second is whether we want all those callout locations to support the
richest semantics.

For the first item, for the set of callouts we have (IPsec policy
lookup/enforcement, IPsec application of encrypt/decrypt, IPQoS
classification, IPQoS queueing/dropping, IP Filter drop/allow, IP Filter
NAT, IP observability), is that there isn't a lot of commonality for
their placement; maybe a few of them need to be at exactly the same
place in the stack.)

Looking at the second item, there can be different environmental impact
statements for a hook in terms of the impact on the code in IP which
calls the hook. This ranges from the simplest to the hardest as:
- just do observability - some code which looks at the packet (and
perhaps copies it). IP just calls this hook and moves on.
- above + allow/drop. IP calls the hook and checks some return value
whether the packet was dropped or not.
- above + optional queuing. IP calls the hook, but also need to
provide some indication of where to resume processing when the packet is
dequeued.
- above + optional rewrite. On return (or resume after dequeue) the
packet headers might be different. This requires some re-evalution of
other parts (IRE lookup, re-classification).


I don't think it makes sense to have 7 generic transmit and 7 generic
receive hooks that can all do the most complex operation.

For instance, I think it makes more sense to have explicitly designed
hooks for a specific purpose. If we can place the rewrite capability
closest to the wire, then the impact of re-classification is minimized.

> As things stand today, there is no one, generally-available, generic
> framework for packet inspection. Every project to date places its own
> hooks into IP, sometimes labels them as yet another "generic
> solution," and then drives on. That alone is worth some advice.

The solution to that might be to not claim that any of them are generic.
If it turns out that two hooks end up in the same place, then we can
collapse them into one hook.

Erik


_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



carlsonj

Posts: 6,813
From: US

Registered: 3/9/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 7, 2006 6:15 AM   in response to: nordmark

  Click to reply to this thread Reply

Erik Nordmark writes:
> For the first item, for the set of callouts we have (IPsec policy
> lookup/enforcement, IPsec application of encrypt/decrypt, IPQoS
> classification, IPQoS queueing/dropping, IP Filter drop/allow, IP Filter
> NAT, IP observability), is that there isn't a lot of commonality for
> their placement; maybe a few of them need to be at exactly the same
> place in the stack.)

That's certainly true.

> I don't think it makes sense to have 7 generic transmit and 7 generic
> receive hooks that can all do the most complex operation.

Nor do I, though, somewhat confusingly, it seems to be close to the
direction that other platforms are taking.

> > As things stand today, there is no one, generally-available, generic
> > framework for packet inspection. Every project to date places its own
> > hooks into IP, sometimes labels them as yet another "generic
> > solution," and then drives on. That alone is worth some advice.
>
> The solution to that might be to not claim that any of them are generic.
> If it turns out that two hooks end up in the same place, then we can
> collapse them into one hook.

That's exactly what I'd suggest. There's likely also a lot of
simplification available once the "one hook for all (or most or many)
users" design goal is dropped. It's no longer necessary, for
instance, to have elaborate registration mechanisms.

The things that need to be explained to the ARC members are why all of
the previous claims to generic hook features are unusable and why
generic hooks aren't even considered feasible. That's something I'd
hoped to do back when we were writing the filtering document, but that
essentially go no consensus and went nowhere.

Darren Reed writes:
> The biggest problem I can see with combining the two is that as a
> result of discussion over the design, I abandoned trying to resolve
> the problem of multiple consumers for the same hook. The result
> here would be not being able to use /dev/ipnet/* at the same time
> as IPFilter if both used the same hook rather than their own.

Is it a problem, though, that actually needs to be solved? I think
that's the unclear part for both projects.

> The root of that decision is trying to answer the question of
> "if both are enabled, who should see a packet first and how does
> one specify that preference or its inverse?"
>
> ...for which no good answer could be found :(

Yep.

--
James Carlson, KISS Network <james dot d dot carlson at sun dot com>
Sun Microsystems / 1 Network Drive 71.232W Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



nordmark

Posts: 619
From: US

Registered: 3/9/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 7, 2006 1:59 PM   in response to: carlsonj

  Click to reply to this thread Reply

James Carlson wrote:

> The things that need to be explained to the ARC members are why all of
> the previous claims to generic hook features are unusable and why
> generic hooks aren't even considered feasible. That's something I'd
> hoped to do back when we were writing the filtering document, but that
> essentially go no consensus and went nowhere.

Jim and Darren,

If there is a place where I can help to clarify this (in a meeting, some
slides, some text in a document), please let me know and I'll contribute.

> Darren Reed writes:
>> The biggest problem I can see with combining the two is that as a
>> result of discussion over the design, I abandoned trying to resolve
>> the problem of multiple consumers for the same hook. The result
>> here would be not being able to use /dev/ipnet/* at the same time
>> as IPFilter if both used the same hook rather than their own.
>
> Is it a problem, though, that actually needs to be solved? I think
> that's the unclear part for both projects.

If we have some targeted hook somewhere which can do queuing and/or
rewriting of the headers, then I think that the order matters.
But I think this can be addressed by explicitly making such hooks single
consumer - not allowing multiple parties to register.

Should there be hooks that are for observability only, or even those
that can do pass/drop, then there isn't much of an issue with the order.
Thus such targeted hooks can potentially allow multiple registrants.

Erik
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



nico

Posts: 3,422
From: Austin, TX, USA

Registered: 6/15/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 7, 2006 2:06 PM   in response to: nordmark

  Click to reply to this thread Reply

On Tue, Mar 07, 2006 at 01:59:08PM -0800, Erik Nordmark wrote:
> If we have some targeted hook somewhere which can do queuing and/or
> rewriting of the headers, then I think that the order matters.
> But I think this can be addressed by explicitly making such hooks single
> consumer - not allowing multiple parties to register.
>
> Should there be hooks that are for observability only, or even those
> that can do pass/drop, then there isn't much of an issue with the order.
> Thus such targeted hooks can potentially allow multiple registrants.

There should be a single re-writer, and at worst "around" hooks to
observe packets before and after re-writes (someone's bound to want
that). No?

Nico
--
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



carlsonj

Posts: 6,813
From: US

Registered: 3/9/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 7, 2006 2:13 PM   in response to: nico

  Click to reply to this thread Reply

Nicolas Williams writes:
> There should be a single re-writer, and at worst "around" hooks to
> observe packets before and after re-writes (someone's bound to want
> that). No?

Should that single re-writer be NAT or IPsec ESP?

--
James Carlson, KISS Network <james dot d dot carlson at sun dot com>
Sun Microsystems / 1 Network Drive 71.232W Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757 42.496N Fax +1 781 442 1677
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



nico

Posts: 3,422
From: Austin, TX, USA

Registered: 6/15/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 7, 2006 2:26 PM   in response to: carlsonj

  Click to reply to this thread Reply

On Tue, Mar 07, 2006 at 05:13:24PM -0500, James Carlson wrote:
> Nicolas Williams writes:
> > There should be a single re-writer, and at worst "around" hooks to
> > observe packets before and after re-writes (someone's bound to want
> > that). No?
>
> Should that single re-writer be NAT or IPsec ESP?

I can see NAT as something that plugs into hooks; hooking ESP/AH in
seems less appropriate, but maybe that's just my sense of aesthetics
(NAT sucks; IPsec is almost a fundamental component of the IP
architecture).

In any case, order should only matter amongst re-writers/queuers. To
really push observability we should have hooks around, not just before
or after, re-write points.

Am I interested in snooping packets as they come off the wire? Or posts
IPsec processing? Why not both? That way I get to confirm that ESP/AH
are being used.
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



song

Posts: 1
From:

Registered: 3/9/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 7, 2006 6:13 PM   in response to: nordmark

  Click to reply to this thread Reply



Erik Nordmark wrote On 2006年03月08日 05:59,:
<pre wrap="">James Carlson wrote: </pre>
<pre wrap="">The things that need to be explained to the ARC members are why all of the previous claims to generic hook features are unusable and why generic hooks aren't even considered feasible. That's something I'd hoped to do back when we were writing the filtering document, but that essentially go no consensus and went nowhere. </pre>
<pre wrap=""><!----> Jim and Darren, If there is a place where I can help to clarify this (in a meeting, some slides, some text in a document), please let me know and I'll contribute.</pre> </blockquote> <br> I recall Darren actually has worked on a doc in analyzing why the previous generic hook features are unusable. <br> For one,  IPPF design doc specifically mentioned that the design has NOT been consulted the firewall requirement<br> due to resource/time constraint.  Maybe that doc should be appended to this design doc under reviewing. <br> <br> Darren?<br> <br> -Kevin<br> <br> <blockquote type="cite" cite="mid440E022C dot 5080307 at sun dot com"> <pre wrap=""> </pre> <blockquote type="cite"> <pre wrap="">Darren Reed writes: </pre> <blockquote type="cite"> <pre wrap="">The biggest problem I can see with combining the two is that as a result of discussion over the design, I abandoned trying to resolve the problem of multiple consumers for the same hook. The result here would be not being able to use /dev/ipnet/* at the same time as IPFilter if both used the same hook rather than their own. </pre> </blockquote> <pre wrap="">Is it a problem, though, that actually needs to be solved? I think that's the unclear part for both projects. </pre> </blockquote> <pre wrap=""><!----> If we have some targeted hook somewhere which can do queuing and/or rewriting of the headers, then I think that the order matters. But I think this can be addressed by explicitly making such hooks single consumer - not allowing multiple parties to register. Should there be hooks that are for observability only, or even those that can do pass/drop, then there isn't much of an issue with the order. Thus such targeted hooks can potentially allow multiple registrants. Erik _______________________________________________ networking-discuss mailing list networking-discuss at opensolaris dot org </pre>
_______________________________________________ networking-discuss mailing list networking-discuss at opensolaris dot org

darrenr

Posts: 2,060
From:

Registered: 6/8/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 7, 2006 3:00 PM   in response to: carlsonj

  Click to reply to this thread Reply

James Carlson wrote:
...

>The things that need to be explained to the ARC members are why all of
>the previous claims to generic hook features are unusable and why
>generic hooks aren't even considered feasible. That's something I'd
>hoped to do back when we were writing the filtering document, but that
>essentially go no consensus and went nowhere.
>

I'm not sure how many others than the hooks for ip_policy() there
are, as I didn't see any obvious ones in reading through the code,
but I can say that this set of "hooks" were (a) badly placed and
(b) too complex/overweight. I'm not even sure how they believed
they were in any position to come even close to accurately metering
traffic as it definately does not see packets as they go to or appear
on the wire (and not even all.) I could go on a lot more but I think
it's just a waste of time, unless someone really wants me to disect
it in detail. I think more than an appropriate amount of time has
already been spent on it.

>Darren Reed writes:
>
>>The biggest problem I can see with combining the two is that as a
>>result of discussion over the design, I abandoned trying to resolve
>>the problem of multiple consumers for the same hook. The result
>>here would be not being able to use /dev/ipnet/* at the same time
>>as IPFilter if both used the same hook rather than their own.
>>
>
>Is it a problem, though, that actually needs to be solved? I think
>that's the unclear part for both projects.
>

If you're just a consumer of "observability" events (all the data
passed through is 'read-only') then the order doesn't really matter,
except for local timestamping.

When the data can change, it becomes a problem...and so just because
two hooks are in the same place does not imply they can be collapsed
into one if there isn't any understanding of who sees what first if one
of the hooks allows for data to be modified.

Maybe allowing multiple callbacks for those that will change the packet
does make it overly complex and needlessly so. Linux requires this
because they have NAT and filtering split into seperate modules, rather
than all part of the one.

As the Solaris TCP/IP gradually moves from STREAMS to something
else, whatever is surplanting the module stacking needs to allow for
ordering to be defined and observed. That said, there are few cases
when this is done and the only one I'm aware of is when people want
to use IPFilter with Sun Cluster (unsupported config) and have the
autopush file with both pfil and the Sun cluster module listed.

Darren

_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



darrenr

Posts: 2,060
From:

Registered: 6/8/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 6, 2006 4:28 PM   in response to: carlsonj

  Click to reply to this thread Reply

James Carlson wrote:

>Darren Reed writes:
>
>>"However, during the discussions it became clear that there were
>>potential problems making the Hooks Framework generic at this time
>>so we will implement our own specific hooks in ip."
>>
>
>Yeah, that's not pleasant. From an ARC point of view, there are
>several issues to contend with:
>
> - You're right that we don't want to see multiple implementations of
> the same thing. However, it's also true that we don't want to
> hold a project hostage to unsolved areas elsewhere in the system.
> It's a bit of a tightrope walk to make that sort of judgement
> call.
>
> - If this project is right, and the Hooks Framework is not general
> enough to solve this problem, then it's certainly fair to ask why
> that should be so. It seems, at least at first blush, that
> anything that can filter packets ought to be also functional
> enough to simply _observe_ them. If that's not true, it'd be nice
> to know why. This would likely end up as advice to management.
>

Reading the documentation, the hooks framework is intended to be
used but they feel there is a need to add another, different hook
than those being proposed for the purpose of filtering packets.

So my quandry is should something be done to address this?

The biggest problem I can see with combining the two is that as a
result of discussion over the design, I abandoned trying to resolve
the problem of multiple consumers for the same hook. The result
here would be not being able to use /dev/ipnet/* at the same time
as IPFilter if both used the same hook rather than their own.

The root of that decision is trying to answer the question of
"if both are enabled, who should see a packet first and how does
one specify that preference or its inverse?"

...for which no good answer could be found :(

...

>Again from the ARC perspective, I don't think I'd ask such a thing.
>PEF doesn't exist.
>

ick :(

Darren

_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



philk

Posts: 42
From: UK

Registered: 6/29/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 10, 2006 4:32 AM   in response to: darrenr

  Click to reply to this thread Reply

Hi Darren,

Thanks for the comments.

>These two requirements conflict with statements later in the design doc.
>On page 4, the document reads:

If I understand this comment are you saying some there needs to be some
additional text to explain although the devices will provide access to
all IP
traffic there are restrictions depending on whether you are in the global or
a non-global zone?

>(that should probably be more than one sentence.)

I'll have a look to see if there's a clean way of splitting it.

>In the table on page 6, for "(2) & !(1)", the comment for "Received"
is misleading. For "(2)" to be satisfied, promiscuous mode must >be
set, so "(2) & !(1)" should simply be "Yes".

Ok.

>Reading the documentation, the hooks framework is intended to be
>used but they feel there is a need to add another, different hook
>than those being proposed for the purpose of filtering packets.

As you know we were going to use the hooks framework and we discussed
this but
then the problem of multiple consumers came up and as you say no good answer
could be found. Given this we (the Clearview team) agreed that it would
best to
implement our own hooks. I agree it would be great if PEF existed or
pfhooks was
a generic framework this isn't the case. I think the thing that really
needs some
detail is why pfhooks couldn't be made generic at this time and I can
certainly
add something to the document, and the PSARC case, to cover this.

Thanks

Phil
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



darrenr

Posts: 2,060
From:

Registered: 6/8/05
Re: Re: Clearview IP-Level Observability Devices: updated design document
Posted: Mar 10, 2006 1:28 PM   in response to: philk

  Click to reply to this thread Reply

Philip Kirk - Solaris Sustaining wrote:

> Hi Darren,
>
> Thanks for the comments.
>
> >These two requirements conflict with statements later in the design
> doc.
> >On page 4, the document reads:
>
> If I understand this comment are you saying some there needs to be some
> additional text to explain although the devices will provide access to
> all IP
> traffic there are restrictions depending on whether you are in the
> global or
> a non-global zone?


No. In three places you talk about what packets are received as a result
of snoop'ing on /dev/ipnet/bge0. The description of what packets are
available as a result of this is not consistent across all three.

Darren

_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org






Terms of Use | Privacy | Trademarks | Copyright Policy | Site Guidelines
Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.
Copyright © 1995-2005 Sun Microsystems, Inc.