Адванс рутинг

Започвам този пост с мисълта да си запиша какво наравих днес (всъщност вече вчера), за да не го забравя, а и с надеждата, че някой може да ме поправи (ако някъде бъркам) или просто да каже, че това са пълни глупости и така не става (да, това също си мисля, че е възможно). Става дума за желанието на шефа ми, заявките за интернета от неговия компютър да бъдат с предимство. Все пак той използва интернет малко и главно за да си проверява пощата (уеб базирани) и да гледа разни страници в нета, за разлика от масираното ровене и даунлодване от страна на Спас и мен 😉 Тази задача стоеше пред мен от известно време и естествено започнах всичко с търсене с google. Най-доброто което ми се стори, че намерих е това Linux Advanced Routing and Traffic Control HOWTO и главно часта му за Simple source policy routing. Лошото беше, че някои от командите не работеха и изкарваше някаква грешка с RTNETLINK. Реших, че липсва някаква подръжка в ядрото и използвах възможността да прекомпилирам нов кърнел, специално за Стамат (така се казва сървъра, за който не знае 😉 ). Дори сложих stamat във версията на ядрото и пуснах подръжката на почти всички мрежови възможности на Линукс, а тотално премахнах мултимедията. Дори след като това ми хрумна идея да направя вътрешната мрежа по IPv6 😉 но се чудя дали XP-тата го подържат ?!? Е, въздържах от подобно начинание и продължих с идеята за приоритети на заявките по изходен IP адрес. Забравих да кажа, че инсталирах iproute2 и започнах с burst на изходящите заявки, чрез командата:

# tc qdisc add dev eth0 root tbf rate 220kbit latency 50ms burst 1540

Имайте в предвид, че канала който получаваме по ADSL-а на БТК е 256kbit/s. След това по препоръка на горното HOWTO, направих нова таблица във файла /etc/iproute2/rt_tables

# echo 200 Qnko >> /etc/iproute2/rt_tables

Шефът ми се казва Янко 😉 Добавих ново правило чрез командата ip

# ip rule add from 192.168.0.6 table Qnko

След това, при заявка да видя приоритетите, се получава това :

# ip rule ls

0: from all lookup local

32765: from 192.168.0.6 lookup Qnko

32766: from all lookup main

32767: from all lookup default

Което според мен означва, че IP 192.168.0.6 (въпросния компютър на шефа) има по-висок приоритет при предаването и приемането на пакети от main и default, т.е. всички останали PC-та в локалната мрежа. След това трябва да се приложат новите настройки чрез

# ip route flush cache

Така си мисля, че съм изпълнил задачата, но честно казано не знам как да проверя, че всичко е както си го мисля ?!?

Преди прекомпилирането на Ядрото, добавих кръпките на Kolivas и реших да пробвам неговите препоръки на оптимизацията на работа на сървър:

# echo 0 > /proc/sys/kernel/interactive

# echo 33 > /proc/sys/vm/mapped

При опит да включа compute

# echo 1 > /proc/sys/kernel/compute

забелязах видимо забавяне, на отговорите от конзолата (всичко до тук правех отдалечено по ssh), което не ми хареса и ми се стори твърде голяма жертва, така че го пуснах едно “echo 0”, и отново се “оправи” 😉

Така завършиха днешните ми сървърни неволи, който правех между другата работа, която имах. За сега Стамат работи без видими проблеми и се надява и занапред да е така 😉 Ако някой има някакви забележки, ще се радвам да ги чуя (прочета).

Коментирай