Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: vasilvalchev в Feb 07, 2007, 19:50



Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 07, 2007, 19:50
Здравейте, имам малко особен проблем с разделянето на трафика. Използвам ядро 2.6.19.2 компилирано според изискванията на горепосочения софтуер. iptables+IPMARK, ipset, но има някакъв проблем с tc, който засега игнорирам но ми трябва помощ и за него. Като за начало, при задаване маркиране на трафика ( --set-mark 1 ), iptables ми казва че нямам модула ip_tables, който всъщност е компилиран директно в ядрото. По нататък след като си направя всичко, игнорирайки горната грешка, интернета просто не тръгва по мрежата. Листването на веригите показа че пакети изобщо не достигат до там, което ме наведе на мисълта че IPMARK не си върши работата заради грешката. Това беше само единия проблем.
Другия проблем, както споменах горе беше за използването на празно правило в tc, с което да улесня разцепването на трафика намаляйки броя на правилата във веригите на iptables i tc, но в момента в който реша да го използвам, tc ми дава нечувана и невиждана досега грешка, която сама по себе си нищо не означава(за мен е обърквация в системата). Та въпроса ми е от какво може да е причинена и как може да се поправи.
Ако има още нещо ще пусна и следващ пост.

Благодаря за вниманието !


Титла: Проблем с разделянето на трафика
Публикувано от: VladSun в Feb 07, 2007, 22:27
Според мен нямаш модула за MARK target-a.

А правилото и грешката за ТС-то какви са?





Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 08, 2007, 09:26
Значи, за модула опитах да компилирам iptables като модул в ядрото. Нямаше я грешката, но натоварването на системата с модулите стана непоносимо и пак ги вградих в ядрото.
При --set-mark 1 ми дава "Module ip_tables not found."

А за tc:
Опитах статията Оптимизация на iptables и tc правила. Използвах следното:

Примерен код

root@gamearea:~# tc filter add dev eth0 parent 1:0 protocol ip prio 1 fw
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
root@gamearea:~#


Немога да разбера какво става тук и в двата случая. Опитвам се да си направя домашна мрежа, с възможност за разширение до квартална ЛАН мрежа.


Титла: Проблем с разделянето на трафика
Публикувано от: gat3way в Feb 08, 2007, 11:13
tc -V
iptables -v

&& paste...


Титла: Проблем с разделянето на трафика
Публикувано от: VladSun в Feb 08, 2007, 11:23
Цитат (vasilvalchev @ Фев. 08 2007,09:26)
Примерен код

root@gamearea:~# tc filter add dev eth0 parent 1:0 protocol ip prio 1 fw
RTNETLINK answers: Invalid argument
We have an error talking to the kernel
root@gamearea:~#

Нямаш включени опциите в ядрото за QoS, (и QoS:Action/Policy)





Титла: Проблем с разделянето на трафика
Публикувано от: VladSun в Feb 08, 2007, 12:10
Прегледай
http://openfmi.net/docman/?group_id=187
по-специално PREINSTALL документа.


Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 08, 2007, 13:13
1: за gat3way
Примерен код

root@gamearea:~# tc -V
tc utility, iproute2-ss060323
root@gamearea:~# iptables -V
iptables v1.3.7


2: за VladSun
За QoS - компилирани са модулите които си посочил в преинстал файла (мисля че той беше). Като отбележим че ползвам кернел 2.6.19.2 , следват измененията на имената на модулите и счетох че "netfilter MARK match support" е същото като " "mark" match support " , следователно го активирах като модул. От всички неща в Networking секцията на кернела, като модули са компилирани само посочените в QoS (които преди това бяха вградени до един) като модули, ipset, IPMARK, допълнителни неща като kato connlimit, IPP2P, IPCLASSIFY.
Все още не разбирам какво се случва!


Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 08, 2007, 13:24
Малко допълнителна информация:

root@gamearea:/usr/src/linux-x# modprobe ipset
FATAL: Module ipset not found.

EDIT: modprobe ip_set подейства. Но като реазглеждах модулите така и не видях търсения от MARK модул ip_tables. Те не са компилирани като модул а ги търси като модул. Защо?!

EDIT2: Ето и още нещо ако е от полза:
Примерен код
root@gamearea:/lib/modules/2.6.19.2-Linux-X/kernel/net/ipv4/netfilter# ls
ip_conntrack_h323.ko  ip_set_iphash.ko      ip_set_iptree.ko    ip_set_portmap.ko  ipt_connlimit.ko
ip_nat_h323.ko        ip_set_ipmap.ko       ip_set_macipmap.ko  ipt_IPMARK.ko      ipt_ipp2p.ko
ip_set.ko             ip_set_ipporthash.ko  ip_set_nethash.ko   ipt_SET.ko         ipt_set.k


(кернела е компилиран по преинстал фаила на VladSun)





Титла: Проблем с разделянето на трафика
Публикувано от: VladSun в Feb 08, 2007, 13:45
Цитат (vasilvalchev @ Фев. 08 2007,13:13)
Като отбележим че ползвам кернел 2.6.19.2 , следват измененията на имената на модулите и счетох че "netfilter MARK match support" е същото като " "mark" match support " , следователно го активирах като модул.

"mark match" НЕ е "MARK target"
И двете ти трябват... макар, че съвсем наскоро забелязах, че малко безсмислено ги ползвам.
А също така забелязах, че изскването за "MARK target" също така го няма в PREINSTALL.txt - мерси за забележката :)





Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 08, 2007, 14:00
е да де те са два описани, само че нямам такова нещо като

<M>   netfilter MARK match support

в секцията IP Netfilter Configuration. Имам

<M>   "mark" match support

в по-горната секция на Xtables модулите.
Никъде другаде не видях нищо подобно на това. Иначе което си писал MARK target support ми е нали IPMARK target support.

Струва ми се че PoM не си е свършил работата качествено...

Някакви идеи ?


Титла: Проблем с разделянето на трафика
Публикувано от: VladSun в Feb 08, 2007, 14:06
Цитат (vasilvalchev @ Фев. 08 2007,14:00)
Иначе което си писал MARK target support ми е нали IPMARK target support.

Нц, различни неща са!


Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 08, 2007, 14:49
Добре, в такъв случай пъде е грешката ? PoM ли не си е свършил работата за да ги добави или не търся където трябва да са. Или пък изобщо ги няма(незнайно защо)...


Титла: Проблем с разделянето на трафика
Публикувано от: VladSun в Feb 08, 2007, 15:10
.... чети малко, де!
В няколко поста съм ти написал, че ти трябва и MARK target ...
т.е. общо стават:

IPMARK target,
MARK target,
MARK match ...

MARK target-a отдавна не е в PoM.


Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 08, 2007, 15:31
значи... сега ги прегледах и намерих следните:

<*> MARK target support
<*> "mark" match support
<M> IPMARK target support

Ако компилирам Xtables като модул дали ще се оправи, тъй като сега са вградени в ядрото. И дали няма да товари само заради модулите.

EDIT: Компилирах пак iptables и Xtables като модули но листата с модулите стана непоносимо голяма... MARK не дава грешка но за tc... няма ефект!





Титла: Проблем с разделянето на трафика
Публикувано от: VladSun в Feb 08, 2007, 17:09
Цитат (vasilvalchev @ Фев. 08 2007,15:31)
EDIT: Компилирах пак iptables и Xtables като модули но листата с модулите стана непоносимо голяма... MARK не дава грешка но за tc... няма ефект!

Какво означава "непоносимо голяма"?

С TC-то какво става?

Дай:

/usr/src/linux# cat .config | grep QoS -A80


Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 08, 2007, 20:38
Имам предвид че при изпълнението на скриптовете от FlatTC (аз си въвеждам на ръка нали но съдържанието е същото) и после като добавя още някои филтри, като дам lsmod | grep ip резултата е от порядъка на десетина модула (и то без да използвам tc). Знам че това е незначително натоварване но и процесите в системата не са малко.

Ето и поискания резултат:
Примерен код
root@gamearea:/usr/src/linux-x# cat .config | grep QoS -A80
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CLK_JIFFIES=y
# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
# CONFIG_NET_SCH_CLK_CPU is not set

#
# Queueing/Scheduling
#
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
# CONFIG_NET_SCH_NETEM is not set
CONFIG_NET_SCH_INGRESS=m

#
# Classification
#
CONFIG_NET_CLS=y
CONFIG_NET_CLS_BASIC=m
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
# CONFIG_NET_CLS_U32 is not set
CONFIG_NET_CLS_RSVP=m
# CONFIG_NET_CLS_RSVP6 is not set
CONFIG_NET_EMATCH=y
CONFIG_NET_EMATCH_STACK=32
# CONFIG_NET_EMATCH_CMP is not set
# CONFIG_NET_EMATCH_NBYTE is not set
CONFIG_NET_EMATCH_U32=y
# CONFIG_NET_EMATCH_META is not set
# CONFIG_NET_EMATCH_TEXT is not set
CONFIG_NET_CLS_ACT=y
CONFIG_NET_ACT_POLICE=m
CONFIG_NET_ACT_GACT=m
CONFIG_GACT_PROB=y
CONFIG_NET_ACT_MIRRED=m
CONFIG_NET_ACT_IPT=m
CONFIG_NET_ACT_PEDIT=m
# CONFIG_NET_ACT_SIMP is not set
# CONFIG_NET_CLS_IND is not set
CONFIG_NET_ESTIMATOR=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
CONFIG_FIB_RULES=y

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_SYS_HYPERVISOR is not set

#
# Connector - unified userspace <-> kernelspace linker
#
root@gamearea:/usr/src/linux-x#


Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 09, 2007, 14:56
Добре, оправихме марк, прежалиж модулите и тръгна. Но tc изобщо не е**ва... Някакви идеи ?


Титла: Проблем с разделянето на трафика
Публикувано от: VladSun в Feb 09, 2007, 14:58
Пробвай да заредиш модулите за tc-то ...


Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 09, 2007, 18:19
Добре ама... никога не съм работил с tc. Съжалявам за ламерския въпрос но... кои модули му трябват, за да ги заредя?


Титла: Проблем с разделянето на трафика
Публикувано от: vasilvalchev в Feb 10, 2007, 14:01
Немога и немога да го накарам да проработи това tc. А също така и скрипта от статията за iptables ipset ipmark не тръгна... Изобщо не тръгна нета.