<chapter id="slp.setup-10"><title>Planning and Enabling
SLP (Tasks)</title><highlights><para>This chapter provides information on planning and enabling SLP. The
following sections discuss SLP configuration and the process for enabling
SLP.</para><itemizedlist><listitem><para><olink targetptr="slp.setup-11" remap="internal">SLP Configuration Considerations</olink></para>
</listitem><listitem><para><olink targetptr="slp.setup-13" remap="internal">Using snoop to Monitor SLP
Activity</olink></para>
</listitem>
</itemizedlist>
</highlights><sect1 id="slp.setup-11"><title>SLP Configuration Considerations</title><para>The SLP daemon is preconfigured with default properties. If your enterprise
functions well with default settings, the SLP deployment requires virtually
no administration. </para><para>In some situations, however, you might want to modify the SLP properties
to tune network operations or to activate certain features. With a few configuration
changes you can enable SLP logging, for example. The information in a SLP
log and in <literal>snoop</literal> traces can then help you decide if additional
configuration is necessary.</para><para>SLP configuration properties reside in the <literal>slp.conf</literal> file,
which is located in the <literal>/etc/inet</literal> directory. If you decide
to change the default property settings, refer to <olink targetptr="ch.configuration-6" remap="internal">Chapter&nbsp;9, Administering SLP (Tasks)</olink> for
the appropriate procedures.</para><itemizedlist><para>Before you modify SLP configuration settings, consider the following
questions that are related to key aspects of network administration:</para><listitem><para>What network technologies are operating in the enterprise?</para>
</listitem><listitem><para>How much network traffic can the technologies handle smoothly?</para>
</listitem><listitem><para>How many services, of what type, are available on the network?</para>
</listitem><listitem><para>How many users are on the network? What services do they require?
Where are users located in relation to their most frequently accessed services?</para>
</listitem>
</itemizedlist><sect2 id="slp.setup-12"><title>Deciding What to Reconfigure</title><itemizedlist><para>You can use the SLP-enabled <command>snoop</command> utility and SLP
logging utilities to decide if reconfiguration is necessary and what properties
you need to modify. For example, you might reconfigure certain properties
to do the following:</para><listitem><para>Accommodate a mix of network media that have varying latencies
and bandwidth characteristics</para>
</listitem><listitem><para>Recover the enterprise from network failures or unplanned
partitioning</para>
</listitem><listitem><para>Add DAs to reduce proliferation of SLP multicasts</para>
</listitem><listitem><para>Implement new scopes to organize users with their most frequently
accessed services</para>
</listitem>
</itemizedlist>
</sect2>
</sect1><sect1 id="slp.setup-13"><title>Using <command>snoop</command> to Monitor
SLP Activity</title><para>The <command>snoop</command> utility is a passive administrative
tool that provides network traffic information. The utility itself generates
minimal traffic and enables you to watch all activity on your network as it
occurs.</para><para>The <command>snoop</command> utility provides traces of the actual SLP
message traffic. For example, when you run <command>snoop</command> with the <command>slp</command> command-line argument, the utility displays traces with information
on SLP registrations and deregistrations. You can use the information to gauge
the network load by checking which services are being registered and how much
reregistration activity its occurring.</para><itemizedlist><para>The <literal>snoop</literal> utility is also useful for observing the
traffic flow between SLP hosts in your enterprise. When you run <literal>snoop</literal> with
the <literal>slp</literal> command-line argument, you can monitor the following
types of SLP activity to determine if network or agent reconfiguration is
needed:</para><listitem><para>The number of hosts that are using a particular DA. Use this
information to decide whether to deploy additional DAs for load balancing.</para>
</listitem><listitem><para>The number of hosts that are using a particular DA. Use this
information to help you determine whether to configure certain hosts with
new or different scopes.</para>
</listitem><listitem><para>Whether UA requests a timeout or DA acknowledgment is slow. You
can determine whether a DA is overloaded by monitoring UA timeouts and retransmissions.
You can also check if the DA requires more than a few seconds to send registration
acknowledgments to an SA. Use this information to rebalance the network load
on the DA, if necessary, by deploying additional DAs or changing the scope
configurations.</para>
</listitem>
</itemizedlist><para>Using <command>snoop</command> with the <option>V</option> (verbose)
command-line argument, you can obtain registration lifetimes and value of
the fresh flag in <literal>SrvReg</literal> to determine whether the number
of reregistrations should be reduced. </para><itemizedlist><para>You can also use <literal>snoop</literal> to trace other kinds of SLP
traffic, such as the following:</para><listitem><para>Traffic between UA clients and DAs</para>
</listitem><listitem><para>Traffic between multicasting UA clients and replying SAs</para>
</listitem>
</itemizedlist><para>For more information about <command>snoop</command>, refer to
the  <olink targetdoc="refman1m" targetptr="snoop-1m" remap="external"><citerefentry><refentrytitle>snoop</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>.</para><tip><para>Use the <command>netstat</command> command in conjunction with <command>snoop</command> to view traffic and congestion statistics. For more information
about <command>netstat</command>, refer to <olink targetdoc="refman1m" targetptr="netstat-1m" remap="external"><citerefentry><refentrytitle>netstat</refentrytitle><manvolnum>1M</manvolnum></citerefentry></olink>.</para>
</tip><task id="slp.setup-14"><title>How to Use <literal>snoop</literal> to Run
SLP Traces</title><procedure>&rolestepA;<step id="slp.setup-step-17"><para>Run <command>snoop</command> with the <command>slp</command> command-line argument.</para><screen><emphasis>Brief Mode</emphasis>:
# <userinput>snoop slp</userinput></screen><para>When you run <command>snoop</command> in the default <emphasis>brief</emphasis> mode,
ongoing output is delivered to your screen. SLP messages are truncated to
fit on one line per SLP trace. </para><screen><emphasis>Verbose Mode</emphasis>:
# <userinput>snoop -v slp</userinput></screen><itemizedlist><para>When you run <command>snoop</command> in <emphasis>verbose</emphasis> mode, <literal>snoop</literal> delivers ongoing, unabbreviated output to your screen, which
provides the following information:</para><listitem><para>The complete address of the service URL</para>
</listitem><listitem><para>All service attributes</para>
</listitem><listitem><para>The registration lifetime</para>
</listitem><listitem><para>All security parameters and flags, if any are available</para>
</listitem>
</itemizedlist><note><para>You can use the <command>slp</command> command-line argument with
other <command>snoop</command> options. </para>
</note>
</step>
</procedure>
</task><sect2 id="slp.setup-18"><title>Analyzing a <command>snoop slp</command> Trace</title><para>In the following example, <literal>slpd</literal> runs on <emphasis>slphost1</emphasis> in the default mode as an SA server. The SLP daemon initializes
and registers <emphasis>slphost2</emphasis> as an echo server. Then, the <literal>snoop slp</literal> process is invoked on <emphasis>slphost1</emphasis>.</para><note><para>To simplify the description of the trace results, the lines in
the following <literal>snoop</literal> output are flagged with line numbers.</para>
</note><screen><lineannotation>(1) </lineannotation>slphost1 -> 239.255.255.253 SLP V@ SrvRqst [24487] service:directory-agent []
<lineannotation>(2) </lineannotation>slphost2 -> slphost1 SLP V2 DAAdvert [24487] service:directory-agent://129
<lineannotation>(3) </lineannotation>slphost1 -> 239.255.255.253 SLP V2 SrvRqst [24487] service:directory-agent []
<lineannotation>(4) </lineannotation>slphost1 -> 239.255.255.253 SLP V2 SrvRqst [24487] service:directory-agent []
<lineannotation>(5) </lineannotation>slphost1 -> slphost2 SLP V2 SrvReg [24488/tcp]service:echo.sun:tcp://slphost1:
<lineannotation>(6) </lineannotation>slphost2 -> slphost1 SLP V2 SrvAck [24488/tcp] ok
<lineannotation>(7) </lineannotation>slphost1 -> slphost2 SLP V2 SrvDereg [24489/tcp] service:echo.sun:tcp://slphost1:
<lineannotation>(8) </lineannotation>slphost2 -> slphost1 SLP V2 SrvAck [24489/tcp] ok</screen><orderedlist><listitem><para>Shows <command>slpd</command> on <emphasis>slphost1</emphasis> performing
active directory agent discovery by multicasting to the SLP multicast group
address in search of directory agents.  The message number, 24487, for the
active discovery is indicated in square brackets in the trace display.</para>
</listitem><listitem><para>Indicates that the active discovery request 24487 from trace
1 is answered by <command>slpd</command>, which is running as a DA on the
host <emphasis>slphost2</emphasis>.  The service URL from <emphasis>slphost2</emphasis> has
been truncated to fit on a single line. The DA has sent a DA advertisement
in reply to the multicast directory agent discovery message, as indicated
by the matching message numbers in traces 1 and 2.</para>
</listitem><listitem><para>Shows multicasts from the UAs on <emphasis>slphost1</emphasis> for
additional DAs.  Because <emphasis>slphost2</emphasis> has already answered
the request, it refrains from responding again, and no other DAs reply.</para>
</listitem><listitem><para>Repeats the multicast operation that is shown in the previous
line.</para>
</listitem><listitem><para>Shows a <command>slpd</command> on <emphasis>slphost1</emphasis> forwarding
SA client registrations to the DA on <emphasis>slphost2</emphasis>. A unicast
service registration (<literal>SrvReg</literal>) for an echo server is made
by <emphasis>slphost1</emphasis> to the DA on <emphasis>slphost2</emphasis>.</para>
</listitem><listitem><para>Shows <emphasis>slphost2</emphasis> responding to the <emphasis>slphost1</emphasis> <literal>SrvReg</literal> with a service acknowledgment (<literal>SrvAck</literal>) that indicates the registration is successful.</para><para>Traffic
between the echo server that runs the SA client and the SLP daemon on <emphasis>slphost1</emphasis> does not appear in the <command>snoop</command> trace. This absence
of information is because the <command>snoop</command> operation is performed
over the network loopback.</para>
</listitem><listitem><para>Shows the echo server on <emphasis>slphost1</emphasis> deregistering
the echo service advertisement. The SLP daemon on <emphasis>slphost1</emphasis> forwards
the deregistration to the DA on <emphasis>slphost2</emphasis>.</para>
</listitem><listitem><para>Shows <emphasis>slphost2</emphasis> responding to the <emphasis>slphost1</emphasis> with a service acknowledgment (<literal>SrvAck</literal>) that
indicates that the deregistration is successful.</para><para>The <literal>/tcp</literal> parameter
that is appended to the message number on lines 5, 6, 7, and 8 indicates that
the message exchange occurred by TCP.</para>
</listitem>
</orderedlist><sect3 id="considerations.xx-36"><title>Where to Go From Here</title><para>After monitoring the SLP traffic, you can use the information that was
collected from the <command>snoop</command> traces to help determine whether
any reconfiguration of the SLP defaults is needed. Use the related information
in <olink targetptr="ch.configuration-6" remap="internal">Chapter&nbsp;9, Administering SLP
(Tasks)</olink> for configuring SLP property settings. For more information
about SLP messaging and service registrations, refer to <olink targetptr="slpreference" remap="internal">Chapter&nbsp;11, SLP (Reference)</olink>.</para>
</sect3>
</sect2>
</sect1>
</chapter>