<blockquote id="quote"><font size="1" id="quote"><b id="quote">quote:</b id="quote"></font id="quote"><table border="0" id="quote"><tr id="quote"><td class="quote" id="quote"><font size="1" id="quote">ТЕМА
Преглеждайки темите в раздел "Мрежи" на форума за последната една година, впечатление ми направи колко често се повтарят въпросите, свързани със споделяне на Интернет трафик и организиране на домашна (за малък офис) мрежа. Те са над 35% от всички зададени въпроси. Ако към тях прибавим и тези, свързани със защита от хакери и как да сме "невидими" за другите, този процент нараства над 45%.
Предлагани са най-различни решения - софтуерни и хардуерни и са водени много спорове, кое е най-доброто. Единно мнение разбира се няма и не може да има, защото всеки изхожда от това, какво той е направил, за да си реши този проблем. Има обаче едно решение, предложено в няколко теми, което, като че ли е най-рационално: Да се използва стара машина, с малки възможности, излязла вече от употреба, която да работи като софтуерен рутер под някаква операционна система.
Наричам я условно <font color="red"><font size="2">"Комуникационен компютър". </font id="size2"></font id="red">Определянето на неговите характеристики, възможности, минимална конфигурация, операционна система, необходимия и достатъчен софтуер, методика за пускане и настройка са целите на тази тема. Има три основни задачи, които според мен трябва да се решат:
1. Определяне на минимално необходимата конфигурация - дъно, памет, мрежови карти, Dial Up модем, от къде да се зарежда ОС и къде да се съхраняват програмите - работа за хардуеристи;
2. Определяне на най-икономичната откъм ресурси, мрежово насочена и безплатна ОС. Определяне на най-приложимите: рутираща програма, защитна стена, следене на трафика, управление на мрежата и т.н. - работа за софтуеристи;
3. Ръководство за настройка на мрежата и защитната стена - работа за мрежари.
Сигурно има и други, но за тези сега се сещам.
Предлагайте и вие!!!
<div align="right">Originally posted by Lupus*-*28/03/2004*:* 14:40:04</div id="right">
</td id="quote"></tr id="quote"></table id="quote"></blockquote id="quote"><font size="2" id="quote"></font id="quote">
Няколко решения базирани на линукс.
Опитна машина Pentium 1 166Mhz 32 РАМ - тествал съм на такава машина.
Вариант 1 - бездискова машина - идеален вариант за малки офиси при които не се налага ограничаване на скорости и такива екстри.
Стъпка 1.
Тегли се последната версия на freesco - www.freesco.org. Дискетата може да бъде създадена с winimage (забележка - под ХР се сдухва по неизвестни за мен причини и не винаги може да бъде създадена дискетата от 1-я опит. Пищи за някакви грешки, но след няколко изваждания и слагания на дискетата тръгва)
Стъпка 2 - стартира се компютъра с дискетата във флопито и се влиза в конфигурационен режим. Всичко е много подробно обяснено и е направено като за съвсем начинаещи.
Стъпка 4 - поставяте компютъра на зададеното място и той работи.
Вариант 2 - цяла дистрибуция.
Работи на същата машина.
Дистрибуцията която аз смятам за най-подходяща за обикновен рутър е Slackware. Доста минималистична и може да се побере на около 600 М диск. В такъв случай се прави следното:
1. Инсталира се операционната система.
2. Конфигурират се мрежовите карти - при Слак 9.1 (последния) настройките се записват в /etc/rc.d/rc.inet1.conf
3. Скрипта за НАТ по подразбиране е /etc/rc.d/rc.firewall
За да се подкара интернет през такава машина там трябва да се сложи следния ред:
iptables -t nat -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j SNAT --to-source 1.2.3.4
където 192.168.1.0/24 е мрежата на която искате да пуснете интернет, а 1.2.3.4 е адреса ан външната карта (тази в която влиза кабела от вашия доставчик)
Няколко думи за firewall-a. Ако на рутъра си не сте пуснали никакви сървърит.е. няма отворени портове на практика няма смисъл от firewall. Ако решите да правите нещо по -сериозно следвайте едно правило - първо се забранява всичко, а после се разрешават само нещата които ви трябват
Няколко думи за QoS.
QoS = quolityf services или казано на български, ограничаване на скорости. По-подробно можете да прочетете по въпроса на www.lartc.org
Един елементарен вариант за ограничаване на скоростта на юзърите в една малка мрежа е:
Код:
DEV="eth0"
tc qdisc del dev $DEV root
tc qdisc add dev $DEV root handle 1: htb
tc class add dev $DEV parent 1: classid 1:0 htb rate 100Mbit ceil 100Mbit
I="1"
Y="0"
J="1"
while test $Y -lt 15
do
while test $I -lt 255
do
tc class add dev $DEV parent 1:0 classid 1:$J htb rate 256kbit ceil 500kbit burst 2k
tc filter add dev $DEV protocol ip parent 1:0 prio 50 u32 match ip dst 10.100.$Y.$I flowid 1:$I
let "I=$I+1"
let "J=$J+1"
done
let "Y=$Y+1"
done
I="20"
J="4800"
Y="16"
while test $Y -lt 32
do
while test $I -lt 255
do
tc class add dev $DEV parent 1:0 classid 1:$J htb rate 500kbit ceil 1Mbit
tc filter add dev $DEV protocol ip parent 1:0 prio 1 u32 match ip dst 10.100.$Y.$I flowid 1:$J
let "J=$J+1"
let "I=$I+1"
done
I="1"
let Y="$Y+1"
let J="$J+256"
done
това е един много елементарен и доста дървено написан скрипт - един от първите ми опити. Смисъла му е следния - юзърите с адреси от 10.100.0.1 до 10.100.15.254 са ограничени на половин мегабит. Юзърите от 10.100.16.20 до 10.100.31.254 са ограничени на по един мегабит, като от 10.100.16.1 до 10.100.16.20 нямат ограничения на скоростта.
Една класическа идея при малко юзъри е:
Код:
for IP in `cat users`; do
tc filter add dev $DEV protocol ip parent 1: prio 1 u32 match ip dst $IP flowid 1:$J
done
Където usersе е файла в който сте написали ИП адресите на клиентите си.
Като съответно ще трябва да си завъртите и един $J.
Имайте предвид че ако вкарате няколко юзъра в един и същи клас то те ще си поделят един канал.
Това е горедолу основата.
По някое време ще добавя редакции ако се сетя за нещо.
П.С. гореописаната процедура ще тръгне на всяка една дистрибуция. Само трябва да погледнете къде се намират стартиращите скриптове. Напр. в RedHat u Fedora те се намират в /etc/init.d.
П.П.С. Пакета iproute2 чиято част е tc по подразбиране не е включен в Slackware.
//edit
<font color="blue">//offtopic за чий *** тага [ code ] създава textarea???</font id="blue">