Cleanup the ALTQ section.
At some point, a FreeBSD specific example should be added. Sponsored by: iXsystems
This commit is contained in:
parent
e5d91d1daf
commit
548e3ed7fe
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=43924
1 changed files with 92 additions and 61 deletions
|
@ -191,7 +191,7 @@
|
||||||
|
|
||||||
<sect1 xml:id="firewalls-pf">
|
<sect1 xml:id="firewalls-pf">
|
||||||
<info>
|
<info>
|
||||||
<title>PF and <acronym>ALTQ</acronym></title>
|
<title>PF</title>
|
||||||
|
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
<author>
|
<author>
|
||||||
|
@ -346,6 +346,97 @@ device pfsync</programlisting>
|
||||||
-->
|
-->
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Enabling <application>ALTQ</application></title>
|
||||||
|
|
||||||
|
<para>On &os;, <application>ALTQ</application> can be used with
|
||||||
|
<application>PF</application> to provide Quality of Service
|
||||||
|
(<acronym>QOS</acronym>). Once <application>ALTQ</application> is
|
||||||
|
enabled, queues can be defined in the ruleset which
|
||||||
|
determine the processing priority of outbound packets.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>Before enabling <application>ALTQ</application>, refer to
|
||||||
|
&man.altq.4;
|
||||||
|
to determine if the drivers for the network cards installed on the system support
|
||||||
|
it.</para>
|
||||||
|
|
||||||
|
<para><application>ALTQ</application> is not available as a
|
||||||
|
loadable kernel module. If the system's interfaces support <application>ALTQ</application>,
|
||||||
|
create a custom kernel using the instructions in <xref linkend="kernelconfig"/>.
|
||||||
|
The following kernel options are available. The first is
|
||||||
|
needed to enable
|
||||||
|
<application>ALTQ</application>. At least one of the other options
|
||||||
|
is necessary to specify the queueing scheduler algorithm:</para>
|
||||||
|
|
||||||
|
<programlisting>options ALTQ
|
||||||
|
options ALTQ_CBQ # Class Based Queuing (CBQ)
|
||||||
|
options ALTQ_RED # Random Early Detection (RED)
|
||||||
|
options ALTQ_RIO # RED In/Out
|
||||||
|
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
|
||||||
|
options ALTQ_PRIQ # Priority Queuing (PRIQ)</programlisting>
|
||||||
|
|
||||||
|
<para>The following scheduler algorithms are available:</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term>CBQ</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Class Based Queuing
|
||||||
|
(<acronym>CBQ</acronym>)
|
||||||
|
is used to divide a connection's bandwidth into different
|
||||||
|
classes or queues to prioritize traffic based on filter
|
||||||
|
rules.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>RED</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Random Early Detection
|
||||||
|
(<acronym>RED</acronym>) is
|
||||||
|
used to avoid network congestion by measuring the length of
|
||||||
|
the queue and comparing it to the minimum and maximum
|
||||||
|
thresholds for the queue. When the queue is over the maximum,
|
||||||
|
all new packets are randomly dropped.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>RIO</term>
|
||||||
|
<listitem>
|
||||||
|
<para>In Random Early Detection In and Out (<acronym>RIO</acronym>) mode,
|
||||||
|
<acronym>RED</acronym> maintains multiple average queue
|
||||||
|
lengths and multiple threshold values, one for each
|
||||||
|
<acronym>QOS</acronym> level.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>HFSC</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Hierarchical Fair Service Curve Packet
|
||||||
|
Scheduler (<acronym>HFSC</acronym>) is described in
|
||||||
|
<uri
|
||||||
|
xlink:href="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html">http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html</uri>.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>PRIQ</term>
|
||||||
|
<listitem>
|
||||||
|
<para>Priority Queuing
|
||||||
|
(<acronym>PRIQ</acronym>)
|
||||||
|
always passes traffic that is in a higher queue first.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
<para>More information about the scheduling
|
||||||
|
algorithms and example rulesets are available at <uri
|
||||||
|
xlink:href="http://www.openbsd.org/faq/pf/queueing.html">http://www.openbsd.org/faq/pf/queueing.html</uri>.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Creating Filtering Rules</title>
|
<title>Creating Filtering Rules</title>
|
||||||
|
|
||||||
|
@ -429,66 +520,6 @@ device pfsync</programlisting>
|
||||||
</informaltable>
|
</informaltable>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
|
||||||
<title>Enabling <acronym>ALTQ</acronym></title>
|
|
||||||
|
|
||||||
<para><acronym>ALTQ</acronym> is only available by compiling its
|
|
||||||
support into the &os; kernel. <acronym>ALTQ</acronym> is not
|
|
||||||
supported by all network card drivers. Refer to &man.altq.4;
|
|
||||||
for a list of drivers that are supported by the release of
|
|
||||||
&os;.</para>
|
|
||||||
|
|
||||||
<para>The following kernel options will enable
|
|
||||||
<acronym>ALTQ</acronym> and add additional
|
|
||||||
functionality:</para>
|
|
||||||
|
|
||||||
<programlisting>options ALTQ
|
|
||||||
options ALTQ_CBQ # Class Based Queuing (CBQ)
|
|
||||||
options ALTQ_RED # Random Early Detection (RED)
|
|
||||||
options ALTQ_RIO # RED In/Out
|
|
||||||
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
|
|
||||||
options ALTQ_PRIQ # Priority Queuing (PRIQ)
|
|
||||||
options ALTQ_NOPCC # Required for SMP build</programlisting>
|
|
||||||
|
|
||||||
<para><literal>options ALTQ</literal> enables the
|
|
||||||
<acronym>ALTQ</acronym> framework.</para>
|
|
||||||
|
|
||||||
<para><literal>options ALTQ_CBQ</literal> enables
|
|
||||||
<emphasis>Class Based Queuing</emphasis>
|
|
||||||
(<acronym>CBQ</acronym>). <acronym>CBQ</acronym>
|
|
||||||
can be used to divide a connection's bandwidth into different
|
|
||||||
classes or queues to prioritize traffic based on filter
|
|
||||||
rules.</para>
|
|
||||||
|
|
||||||
<para><literal>options ALTQ_RED</literal> enables
|
|
||||||
<emphasis>Random Early Detection</emphasis>
|
|
||||||
(<acronym>RED</acronym>). <acronym>RED</acronym> is
|
|
||||||
used to avoid network congestion by measuring the length of
|
|
||||||
the queue and comparing it to the minimum and maximum
|
|
||||||
thresholds for the queue. If the queue is over the maximum,
|
|
||||||
all new packets will be dropped. <acronym>RED</acronym> drops
|
|
||||||
packets from different connections randomly.</para>
|
|
||||||
|
|
||||||
<para><literal>options ALTQ_RIO</literal> enables
|
|
||||||
<emphasis>Random Early Detection In and Out</emphasis>.</para>
|
|
||||||
|
|
||||||
<para><literal>options ALTQ_HFSC</literal> enables the
|
|
||||||
<emphasis>Hierarchical Fair Service Curve Packet
|
|
||||||
Scheduler</emphasis> <acronym>HFSC</acronym>. For more
|
|
||||||
information, refer to <uri
|
|
||||||
xlink:href="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html">http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html</uri>.</para>
|
|
||||||
|
|
||||||
<para><literal>options ALTQ_PRIQ</literal> enables
|
|
||||||
<emphasis>Priority Queuing</emphasis>
|
|
||||||
(<acronym>PRIQ</acronym>). <acronym>PRIQ</acronym> will
|
|
||||||
always pass traffic that is in a higher queue first.</para>
|
|
||||||
|
|
||||||
<para><literal>options ALTQ_NOPCC</literal> enables
|
|
||||||
<acronym>SMP</acronym> support for <acronym>ALTQ</acronym>.
|
|
||||||
This option is required on <acronym>SMP</acronym>
|
|
||||||
systems.</para>
|
|
||||||
</sect2>
|
|
||||||
|
|
||||||
<sect2 xml:id="pf-tutorial">
|
<sect2 xml:id="pf-tutorial">
|
||||||
<info>
|
<info>
|
||||||
<title><application>PF</application> Rule Sets and
|
<title><application>PF</application> Rule Sets and
|
||||||
|
|
Loading…
Reference in a new issue