Наложение патчей IMQ, ESFQ и Layer7: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
м (Защищена страница «Наложение патчей IMQ, ESFQ и Layer7» [edit=autoconfirmed:move=autoconfirmed])
Строка 4: Строка 4:
 
==Что откуда берем==
 
==Что откуда берем==
 
#Ядро берем с http://kernel.org  (linux-2.6.23.tar.bz2).
 
#Ядро берем с http://kernel.org  (linux-2.6.23.tar.bz2).
#Патчи IMQ для ядра и iptables c http://www.linuximq.net и  http://www.actusa.net/~linuximq/ (linux-2.6.23-imq.diff и iptables-1.3.x-imq.diff).
+
#Патчи IMQ для ядра и iptables c http://www.linuximq.net и  http://www.actusa.net/~linuximq/ (linux-2.6.23-imq.diff и iptables-1.3.x-imq.diff), а также Protocol definitions.
 
#Патчи и файлы Layer7 c http://l7-filter.sourceforge.net/HOWTO-kernel (netfilter-layer7-v2.14.tar.gz). Сюда входят патчи для ядра и для  iptables.
 
#Патчи и файлы Layer7 c http://l7-filter.sourceforge.net/HOWTO-kernel (netfilter-layer7-v2.14.tar.gz). Сюда входят патчи для ядра и для  iptables.
 
#Патчи для ESFQ c http://fatooh.org/esfq-2.6/ (esfq-2.6.21.5.tar.gz). Сюда входят патчи для ядра и для iproute.
 
#Патчи для ESFQ c http://fatooh.org/esfq-2.6/ (esfq-2.6.21.5.tar.gz). Сюда входят патчи для ядра и для iproute.
Строка 11: Строка 11:
 
Берем исходники ядра и кладем их в каталог /usr/src<br />
 
Берем исходники ядра и кладем их в каталог /usr/src<br />
 
<pre>tar -cjvf linux-2.6.23.tar.bz2 /usr/src</pre>
 
<pre>tar -cjvf linux-2.6.23.tar.bz2 /usr/src</pre>
 
 
Кладем в каталог /usr/src/linux-2.6.23 патчи
 
Кладем в каталог /usr/src/linux-2.6.23 патчи
 +
#linux-2.6.23-imq.diff
 +
#kernel-2.6.22-layer7-2.14.patch из ахива netfilter-layer7-v2.14.tar.gz.
 +
#esfq-kernel.patch из архива esfq-2.6.21.5.tar.gz.
 +
Накладывем патчи.
 +
<pre># patch -p1 < linux-2.6.23-imq.diff
 +
# patch -p1 < kernel-2.6.22-layer7-2.14.patch
 +
# patch -p1 < esfq-kernel.patch</pre>
 +
Далее переписываем из каталога /boot
 +
<pre> # cp /boot/config-2.6.23 /usr/src/linux-2.6.23/.config</pre>
 +
И запускаем
 +
<pre>make menuconfig</pre>
 +
===IMQ===
 +
1. Идем в '''Device Drivers --> Network device support ->'''
 +
*Установить
 +
**'''IMQ (intermediate queueing device) support  <M>'''
 +
**'''IMQ behavior (PRE/POSTROUTING) (IMQ BA)'''
 +
**'''Number of IMQ devices  (4)'''
 +
2. Идем в '''Networking  ---> Networking options  ---> Network packet filtering framework (Netfilter)  --->        IP: Netfilter Configuration  --->'''
 +
*Установить
 +
**'''<M>    IMQ target support'''
 +
3. Идем в '''Networking  ---> Networking options  ---> Network packet filtering framework (Netfilter)  --->        IPv6: Netfilter Configuration (EXPERIMENTAL)  --->'''
 +
*Установить
 +
** '''<M>    IMQ target support'''
 +
4.Идем в '''Networking  ---> Networking options  ---> Network packet filtering framework (Netfilter)'''
 +
* Установить
 +
**'''[ ]  Network packet filtering debugging'''  (убрать звезду)
 +
===Layer7===
 +
Идем в '''Networking  ---> Networking options  ---> Network packet filtering framework (Netfilter)  --->  Core Netfilter Configuration'''
 +
*Установить
 +
** '''<M>  Layer 7 match support (EXPERIMENTAL)'''
 +
** '''[*]    Layer 7 debugging output'''
 +
===ESFQ===
 +
Идем в '''Networking  ---> Networking options  ---> QoS and/or fair queueing''' 
 +
*Установить
 +
**'''<M> Enhanced Stochastic Fairness Queueing (ESFQ)'''

Версия 11:32, 29 октября 2007

Для чего все это

Нам надо настроить шейпер - справедливый дележ канала между пользователями интернета. Проблема стоит в том, что на каждого пользователя, поднимается свой интерфейс, поэтому придется использовать IMQ. Также хотелось бы различать различные типы трафика, которые не привязаны к портам, например, torrent. Для этого служит Layer7. И для справедливого деления канала не по количеству каналов (SFQ), а по количеству пользователей нужна очередь ESFQ.
Рассказывать буду на основе kernel 2.6.23

Что откуда берем

  1. Ядро берем с http://kernel.org (linux-2.6.23.tar.bz2).
  2. Патчи IMQ для ядра и iptables c http://www.linuximq.net и http://www.actusa.net/~linuximq/ (linux-2.6.23-imq.diff и iptables-1.3.x-imq.diff), а также Protocol definitions.
  3. Патчи и файлы Layer7 c http://l7-filter.sourceforge.net/HOWTO-kernel (netfilter-layer7-v2.14.tar.gz). Сюда входят патчи для ядра и для iptables.
  4. Патчи для ESFQ c http://fatooh.org/esfq-2.6/ (esfq-2.6.21.5.tar.gz). Сюда входят патчи для ядра и для iproute.

Подготовка и компиляция ядра

Берем исходники ядра и кладем их в каталог /usr/src

tar -cjvf linux-2.6.23.tar.bz2 /usr/src

Кладем в каталог /usr/src/linux-2.6.23 патчи

  1. linux-2.6.23-imq.diff
  2. kernel-2.6.22-layer7-2.14.patch из ахива netfilter-layer7-v2.14.tar.gz.
  3. esfq-kernel.patch из архива esfq-2.6.21.5.tar.gz.

Накладывем патчи.

# patch -p1 < linux-2.6.23-imq.diff
# patch -p1 < kernel-2.6.22-layer7-2.14.patch
# patch -p1 < esfq-kernel.patch

Далее переписываем из каталога /boot

 # cp /boot/config-2.6.23 /usr/src/linux-2.6.23/.config

И запускаем

make menuconfig

IMQ

1. Идем в Device Drivers --> Network device support ->

  • Установить
    • IMQ (intermediate queueing device) support <M>
    • IMQ behavior (PRE/POSTROUTING) (IMQ BA)
    • Number of IMQ devices (4)

2. Идем в Networking ---> Networking options ---> Network packet filtering framework (Netfilter) ---> IP: Netfilter Configuration --->

  • Установить
    • <M> IMQ target support

3. Идем в Networking ---> Networking options ---> Network packet filtering framework (Netfilter) ---> IPv6: Netfilter Configuration (EXPERIMENTAL) --->

  • Установить
    • <M> IMQ target support

4.Идем в Networking ---> Networking options ---> Network packet filtering framework (Netfilter)

  • Установить
    • [ ] Network packet filtering debugging (убрать звезду)

Layer7

Идем в Networking ---> Networking options ---> Network packet filtering framework (Netfilter) ---> Core Netfilter Configuration

  • Установить
    • <M> Layer 7 match support (EXPERIMENTAL)
    • [*] Layer 7 debugging output

ESFQ

Идем в Networking ---> Networking options ---> QoS and/or fair queueing

  • Установить
    • <M> Enhanced Stochastic Fairness Queueing (ESFQ)