Наложение патчей IMQ, ESFQ и Layer7: различия между версиями
Misha (обсуждение | вклад) м (Защищена страница «Наложение патчей IMQ, ESFQ и Layer7» [edit=autoconfirmed:move=autoconfirmed]) |
Misha (обсуждение | вклад) |
||
Строка 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
Что откуда берем
- Ядро берем с 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), а также Protocol definitions.
- Патчи и файлы 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.
Подготовка и компиляция ядра
Берем исходники ядра и кладем их в каталог /usr/src
tar -cjvf linux-2.6.23.tar.bz2 /usr/src
Кладем в каталог /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.
Накладывем патчи.
# 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)