Networking options
Тази секция от конфигурацията на кернела е една от най-големите. Оттук се настройват мрежовите възможности на вашата система. Ако сте начинаещ потребител, най-добре е да оставите настройките по подразбиране - те са определени така, че да нямате проблеми с използването на най-масовите мрежови протоколи. Ако сте напреднал потребител, тогава сигурно много от нещата описани тук са ви известни и добре познати. Това описание е предназначено за не-толкова-напредналите и любопитни потребители, които искат да се запознаят с мрежовите възможности на линукс кернела. Ако искате да използвате реално някои от тези възможности, добре е да потърсите допълнителна информация и софтуер в Мрежата.
Оттук може да разрешите на някои програми да комуникират директно с мрежовите ви устройства, без да използват мрежови протоколи.Това е полезно ако използвате "снифери" - програми, които следят мрежовия трафик на най-ниско ниво.
Тази опция ускорява директната комуникация с мрежовите устройства
Създава устройства в директорията /dev за комуникация с мрежовия слой на кернела. Опцията скоро ще бъде премахната, новите кернели използват netlink сокети за тази комуникация.
Тази опция разрешава филтрирането на пакети. Ще ви трябва, ако искате да използвате системата си за firewall, proxy, gatеway т.е. ако ще работи като рутер. Не ви е необходима за обикновен настолен компютър, освен ако не сте параноичен или просто искате да разучите как работи. В някои ситуации малко допълнителна сигурност не е излишна :). Ако я разрешите, трябва допълнително да конфигурирате начина на филтриране в под-секцията "IP: Netfilter Configuration"
Разрешава изкарването на допълителни съобщения, следящи работата на пакетния филтър. Не ви е необходима, освен ако не сте програмист и искате да разберете как работи този филтър.
Позволява филтрирането на отделни сокети. Ако опцията е разрешена, в кернела се добавят две нови ioctl системни извиквания, чрез които на даден сокет може да се закачи/откачи допълнителен код, който да следи и контролира данните, преминаващи през сокета. За съжаление засега не се поддържат TCP сокети.
Едни от най-използваните сокети в линукс. Ще ви трябват, дори и да нямате мрежа. Използват се масово за комуникация между процеси, вървящи на една машина.
Това е Интернет! И не само - използва се от много програми, дори и да нямате мрежа. Това е задължителна опция. Ще увеличи кернела с 144К, но си струва :)
Позволява на кернела да работи с IP multicast пакети. Това са пакети, които имат специални IP адреси, чрез които може да се адресират едновременно група от компютри. Полезна опция, но за съжаление все още малко рутери могат да рутират multicast трафик. Ако вашият компютър е в локална мрежа можете да я разрешите - ще увеличи кернела с около 2К, но има някои програми за видео и TV разпръскване, които използват multicast. Ако използвате системата за рутер, също ще ви трябва - много протколи за динамично рутиране използват multicast пакети за обмен на рутираща информация.
Ако ще използвате системата си за рутер е добре да разреште тази опция - тя ще ви даде достъп до опциите за настройка на професионалните рутиращи възможности на линукс.
Обикновенно рутерите вземат решения за рутиране на пакети на база адреса на получателя на пакета. Чрез тази опция може да се разреши използването и на други критерии при рутирането - адрес на изпращача, полето TOS в IP хедъра и др.
Тази опция ви позволява да използвате специална MARK стойност при рутиране. Такава стойност може да се присвои на някои пакети чрез използване на iptables филтри
Позволява на кернела да променя адреса на получателя и изпращача на пакетите, които рутира. Правилата, по които става това могат да се зададат чрез iptables.
Тази опция разрешава в рутиращата таблица към един запис да се присвоят няколко пътя. Така ако пакет трябва да се рутира на базата на този запис, кернела избира по случаен начин един от тези пътища.
Позволява при рутиране да се използва стойността на полето TOS в IP хедъра на пакета. Това поле определя "типа на услугата" на пакета - така данни с по-голям приоритет могат да се рутират през по-бързи пътища.
Разрешава изкарването на допълнителна информация за рутиращия процес. Полезна опция ако сте параноичен и искате да имате информация за необичайните пакети, преминали през рутера ви :)
Ако във вашата рутираща таблица ще има повече от 64 записа, добре е да разрешите тази опция. Това ще ускори работата с големи рутиращи таблици.
Позволява на кернела да използва специални протоколи за автоматично конфигуриране на IP адреса. Тази опция е полезна предимно за бездискови машини, които се конфигурират през мрежа. Друго полезно приложение е за динамично разпределяне на наличните IP адреси в мрежата.
Широко използван протокол за автоматично конфигуриране на IP адреси. Позволява обмен и на допълнителна конфигурационна информация, както и присвояване на IP адрес за определено време
Подобен на DHCP протокол, позволява обмен на допълнтелна конфигурационна информация. Тези два протокла работят на Layer 3 - използват broadcast UDP пакети.
Протокол за автоматично конфигуриране на IP адреси, работещ на Layer 2.
Позволява капсулирането на IP в IP пакети. На пръв поглед - безмислено :). Полезна опция ако искате дадена машина да се мести от мрежа в мрежа, без да си сменя IP адреса, като "виртуално" остава свързана към една мрежа. Намира приложение при свързването на мобилните компютри към интернет.
Позволява капсулирането на произволен протокол в IP. Намира практическо приложение при капсулацията на IPv6 в IPv4 пакети - така може да се изгради IPv6 мрежа, използвайки съществуваща IPv4 мрежа. Предимството на този вид капсулация е че позволява разпространението на multicast пакети през тунела.
Позволява разпространеието на broadcast пакети през тунела. Така с GRE тунели може да се изгради виртуална WAN мрежа, която да се държи като ethernet, но физически да е разпокъсана и да използва интернет за преносна среда.
Позволява рутирането на multicast пакети. Това са пакети, които имат специалени IP адреси, чрез които могат да се адресират едновременно група от компютри.
Разрешава поддръжката на версия 1 на PIM. Това е един от най-използваните протокли за динамично multicast рутиране. За да използвате този протокол, се нуждаете и от допълнителен софтуер извън кернела.
Разрешава поддръжката на версия 2 на PIM протокола.
Разрешава използването на допълнителен, външен ARP демон, който да се грижи за ипзращането/получаването на ARP заявки за адреси, лидпсващи в ARP кеша на кернела. Ако тази опция е включена, в ARP кеша ще се съхраняват до 256 адреса. Препоръчително е тази опцията да не се използва.
Позволява на рутера да съобщава на клиентите за претоварвания по мрежата, като вдига ECN флага в някои от пакетите си. Има рутери, които не работят добре с този флаг, затова по добре не го разрешавайте.
Осигурява някаква защита по време на "SYN flood" атака. Когато машината е под такава атака, TCP стека може да използва специален "SYN cookie" протокол за легитимиране на потрбителите, които могат да осъществяват връзка. Ако разрешите опцията, тази функционалност остава забранена по подразбиране - трябва да я разрешите чрез /proc :
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
след стартирането на машината.
Включва поддръжка за версия 6 на IP протокола. За да използвате реално IPv6, трябва да се снабдите и с последните версии на всички мрежови програми.
Разрешава вградения в кернела HTTP сървер. Това е ограничен web сървер, който може да изпълнява http заявки, но не може да работи с cgi скриптове. Полезна опция, ако използвате машината за web сървер и искате да експериментирате - това значително ще подобри производителността на сървера. Работата на вградения сървер може да се синхронизира с външен сървер, към които да се пренасочват заявките, които не могат да се обслужат.
Разрешава поддръжката за ATM мрежи. За да използвате линукс в такива мрежи, ви трябват допълнителни програми, и разбира се ATM устройства.
Позволява капсулация на IP в ATM пакети и поддръжка на ARP протокола за ATM мрежи.
Указва на кернела да не изпраща ICMP пакети за събитието "host unreachable", когато адреса на получателя не е намерен в ATMARP таблицата.
Включва код за емулация на еthernet LAN мрежа през ATM мрежа.
Позволява изграждането на виртуални връзки между ATM гранични устройства. Тази опция намира практическо приложение при свързването на два (или повече) рутери през ATM мрежа, като рутирания трафик минава през виртуалната връзка - така се избягва рутирането през ATM рутери.
Включва поддръжката за този вид виртуални Layer2 ethernet мрежи. Чрез специални тагове преди ethernet хедъра, една физическа ethernet мрежа можа да се раздели на няколко логически мрежи.
Включва поддръжка за IPX протолкола на Novell. Това е протокол, който изпълнява аналогични функции на IP. Използва се и в някои windows мрежи.
Позволява кернела да емулира "вътрешна" IPX мрежа. Така ако машината ви е свързана към повече от една IPX мрежа, за другите машини вашия линукс ще представлява отделна мрежа. Полезна опция, ако компютъра ви е някакъв сървер и искате да се вижда по един и същи начин от другите мрежи.
Включва поддръжката за фамилията мрежови протоколи на Apple. Това са протоколи, използвани предимно при Macintosh машините. Поддържат се EtherTalk и LocalTalk протоколите, но за да ги използвате се нуждаете от допълнителен софтуер.
Включва поддръжка за мрежовия протокол на Digital. Не е широко разпространен.
Променя SIOCGIFCONF системното извикване, като добавя поддръжка за DECnet мрежи - това може да наруши работата на някои програми, използващи това системно извикване, така че внимавайте.
Позволява на машината ви да работи като DECnet рутер.
Разрешава използването на FWMARK при рутирането. Такава стойност може да се присвои на някои пакети чрез iptables
Добавя поддръжка за ethernet bridge : прехвърляне на layer 2 пакети между различни мрежови сегменти. Това ви позволява да изградите голяма ethernet мрежа, състояща се от няколко физически отделни сегмента.
Подръжка за X25 мрежи. Тази опция включва имплементацията на PLP (Packet Layer Protocol), протокол от високо ниво използван в тези мрежи.
Включва поддръжка за LAPB, протокол от ниско ниво използван в X25 мрежите. Повечето X25 карти имат вградена хардуерна поддръжка за този протокол, затова тази опция ви е необходима само ако вашата X25 карта няма такава.
Този протокол позволява да изградите X25 мрежа, използвайки ethernet или token ring за преносна среда.
Позволява ви да контролирате целия трафик по мрежата на ниско ниво - дори и пакетите, които не са предназначени за вашата машина. Полезна опция, ако искате да направите transperant proxy (има и други начини за това), ограничение на трафика, и др. - могат да се намерят много полезни приложения :)
Малко използван, стар и бавен протокол. Може да работи със специални Econet карти, или през Еthernet . Използван е при Acorn компютрите за достъп до файлови и печатни сървери.
Позволява използването на AUN протокола през ethernet, чрез капсулиране в UDP/IP пакети.
Позволява използването на AUN протокола през оригинални econet мрежови карти.
Дава възможност да направите WAN рутер. Ако имате WAN мрежа, изградена чрез X.25, frame relay или друга подобна преносна среда и не искате да купувате някой скъп WAN рутер, може да си свършите работата с една линукс машина и с тази опция .
Позволява директен трансфер на данни между мрежовите карти, като се заобикаля голяма част от мрежовия слой на кернела - това води до значително увеличаване на скороста, но за сметка на някои екстри като Packet filtering , които няма да може да използвате.
Позволява директен трансфер между мрежовите карти по време на големи мрежови натоварвания. Това позволява рутера ви да остане работещ, дори когато мрежовия трафик е особенно голям и не може да се обработи от машината ви. Тази опция зависи от хардуера - трябава да се поддържа от мрежовите ви карти.
В тази подескция се настройват параметрите на пакетния филтър за IPv4 пакети. За да имате достъп до нея, трябва да сте разрешили опцията "Network packet filtering " в секция "Networking Options".
Позволява на кернела да следи зависимостите между пакетите, които преминават през рутера - така могат да се филтрират вички пакети, които принадлежат на дадена връзка. Това е задължителна опция, ако ще използвате някаква форма на NAT(Network Address Translation) - тук влиза и Masquerading, той също е вид NAT. Друго полезно приложение е филтриране на база състояние на връзката - например могат да се отрежат всички tcp пакети, за които няма ESTABLISHED връзка.
Проследяването на FTP връзки е малко по-особенно, затова се нуждае от допълнителен код. Ако ще използвате NAT и искате да имате FTP - разрешете тази опция
Включва поддръжка за DCC протокола на IRC, за клиенти които се намират зад NAT рутер. Това е протокол, който се използва за директна комуникация между два IRC клиента, без трафика да преминава през IRC сървер. Ако ще използвате NAT и IRC - включете опцията.
Позволява на кернела да пренасочва пакети към външни програми
Това е интерфейс към пакетния филтър, използван в кернелите от серия 2.4. Щом сте стигнали до тук, този интерфейс ще ви трябва - позволява ви да конфигурирате динамично работата на филтъра. Не ви е необходим ако искате за съвместимост да използвате някои от старите интерфейси (ipchains или ipfwadm).
Позволява ви да контролирате скоростта, с която се прилага даден филтър. Полезна опция за защита от DoS (Denial of Service) атаки - например може да ограничите по време пакетите от непознати IP адреси. Друго полезно приложение е за ограничаване на логовете - ако не искате да логвате целия трафик, може да укажете да се логват само определен брой пакети в минута.
Позволява ви да филтрирате пакети на базата на техния ethernet адрес.
Позволява филтриране на базата на специална MARK стойност, която може да се присвои на някои пакети.
Позволява филтрирането на TCP и UDP пакети на базата на група портове. Ако опцията не е включена, ще можете да филтрирате само за един порт.
Позволява филтриране на базата на полето TOS (Type of Service ) в IP хедъра на пакета.
Позволява филтриране на база SPI (Security Parameter Index) - това се специални полета, които осигуряват криптиране и защита на данните, пренасяни с IPSec пакети. IPSec (IP Security protocol) е допълнителен хедър, прикачен към IP хедъра, който може да съдържа AH (Authentication Header) и/или ESP (Encapsulating Security Payload), които се грижат за защитата и криптирането на пакетите. Този механизъм за защита се използва при изгражадането на VPN мрежи, затова ако през вашия рутер ще минава такъв трафик, и искате да го филтрирате - разрешете опцията.
Позволява филтриране на база дължината на пакета.
Позволява филтриране на база полето TTL (Time To Live) в IP хедъра.
Позволява филтриране на базата на стойноста MSS (Maximum Segment Size) - това е стойност, която се договаря при откриването на една TCP връзка и определя максималната големина на пакетите за тази връзка.
Позволява филтриране на пакети на база състояние на връзката - например могат да се филтрират всички TCP пакети с данни, за които няма установена връзка.
Позволява откриването на "странни" пакети - за критерии се използват определени полета в хедърите на IP, TCP, UDP и ICMP пакетите.
Позволява филтрирането на локално генерирани пакети на базата на потребителя, групата, процеса или сесията на източника на пакета
Включва в кернела FILTER таблицата, където се съхраняват всички филтри, които могат само да филтрират пакети - нямат право да ги променят. Тази таблица работи с LOCAL_INPUT, LOCAL_OUTPUT и FORWARD веригите.
Позволява на даден филтър да укаже изпращането на ICMP съобщение при отхвърлянето на филтриран пакет.
Позволява на даден филтър да укаже филтрираните пакети да се връщат обратно на изпращача.
Включва в кернела NAT (Network Address Translation) таблицата, където се съхраняват филтрите които могат да променят адресите на изпращача или получателя на пакетите. Таблицата работи с PRE_ROUTING, POST_ROUTING и LOCAL_OUTPUT веригите.
Това е вид source NAT - позволява на даден филтър да укаже промяна на адреса на изпращача на филтрираните пакети. Използва се предимно при dialup връзки - когато новия адрес на пакета зависи от текущата dilaup сесия. При прекъсване на връзката, работата на филтъра се спира.
Това е вид destination NAT - позволява на даден филтър на укаже промяна на адреса на получатля на филтрираните пакети. Новият адрес е един от локалните адреси на рутера - така пакетите се насочват към рутера, вместо да се рутират навън. Тази опция е полезна ако искате да направите transparent proxy.
Включва поддръжка за ALG (Application Layer Gateway) за SNMP пакети на устройства, намиращи се зад NAT рутер. Това позволява на рутера да променя както IP адресите на изпращача/получателя, така и IP адресите в самия SNMP пакет. Така една SNMP станция може да работи с устройства, скрити зад NAT рутер, които имат еднакви IP адреси.
Включва в кернела MANGLE таблицата. В нея се съхраняват филтрите, които могат да променят самите пакети. Таблицата работи с PRE_ROUTING и LOCAL_OUTPUT веригите.
Позволява на даден филтър да променя TOS стойноста в IP хедъра на филтрираните пакети.
Позволява на даден филтър да присвоява специална MARK стойност към филтрираните пакети. Тази стойност може да се използва при рутирането на пакета.
Позволява да се правят филтри, които записват хедъра на филтрираните пакети в системния лог.
Позволява да се правят филтри, които копират филтрираните пакети към външна програма посредством netlink сокети.
Позволява да се правят филтри, които променят MSS (Maximum Segment Size ) стойноста за TCP връзка.
Вклчва в кернела ipchains интерфеса към пакетния филтър, използван в кернелите от серия 2.2
Вклчва в кернела ipfwadm интерфеса към пакетния филтър, използван в кернелите от серия 2.0. Тези две опции ви трябват само за съвместимост - ако имате програми, писани за старите версии на кернела, и искате да ги използвате.
В тази подсекция се настройват параматрите на пакетния филтър за IPv6 пакети. Те имат същото значение, както и при IPv4 пакетите, затова за повече подробности погледнете подсекцията "IP:Netfilter Configuration".
В тази подсекция се настройват параметрите на така наречения "scheduler", или разпределител. Когато пакетите вече са рутирани от рутера, т.е. - определен е техния изходен интерфейс и мрежовия адрес на следващия рутер, те се нареждат в една опашка и чакат да бъдат изпратени. Всеки интерфейс си има такава опашка. Ако интерфейса е към бърза мрежа и трафика през него не е голям, пакетите почти не се задържат в опашката - веднага се изпращат. Ако обаче трафика е голям и мрежата е бавна, в опашката могат да се съберат доста пакети. Работата на този разпределител е да реши кои пакети от опашката ще бъдат изпратени първи. Оттук се настройват критериите, по които работи разпределителя.
Ако забраните тази опция, разпределителя ще използва стандартната логика при работата си: първия пакет, дошъл в опашката ще се изпрати първи към мрежата - FIFO (First In First Out). Ако разрешите опцията, ще може да изберете алтернативни алгоритми на работа. Полезна опция, ако искате да контролирате трафика през даден интерфейс, или да използвате QoS (Quality of Service) - пакети с по-висок приоритет да се обсужват с предимство. Обърнете внимание, че може да използвате комбинации от тези алгоритми, което прави настройката на разпределителя изключително гъвкава.
Разрешава използването на алгоритъма CBQ (Class-Based Queueing). Този алгоритъм разпределя чакащите пакети в дървовидна йерархия, спрямо определени класове. Позволява използването на други алгоритми за управление на различните клонове от дървото. Той е един от най-използваните и гъвкави алгоритми.
Разрешава използването на алгоритъма CSZ (Clark-Shenker-Zhang). Не е толкова гъвкав като CBQ, но е единствения алгоритъм който може да гарантира обсужването на важен трафик в реално време. Той заделя предварително части от пропускателната лента на мрежата за видовете трафик, които трябва да гарантира. Останалата част се разпределя между по-маловажния трафик.
Позволява използването на пакетния разпределител за пакети, които преминават през ATM мрежа чрез виртуални връзки.
Позволява работата на PRIO алгоритъма. Той е подобен на стандартния FIFO алгоритъм, разликата е че дава възможност трафика да се раздели в няколко вътрешни опашки. Разделянето става посредством потребителски филтри. Полезен алгоритъм, ако искате да приоритизирате трафика чрез ваши критерии, независими от полето TOS на IP хедъра.
Позволява използването на RED (Random Early Detection, понякога наричан и Random Early Drop) алгоритъм. Той се грижи опашката никога да не достигне абсолютния си максимум, т.е. да не се напълни. Алгоритъма предсказва кога може да се стигне до препълване и отхърля по случаен начин част от пакетите, за да го предотврати.
Позволява използването на SFQ (Stochastic Fairness Queueing) алгоритъм. Този алгоритъм разаделя трафика на отделни потоци, като в повечето случаи един поток се асоциира с една UDP или TCP сесия. SFQ изпраща равномерно пакети от всеки един поток - така се избягва заемането на целия трафик от една TCP сесия. Има най-малко изисквания към системните ресурси.
Позволява използването на TEQL (True Link Equalizer) алгоритъм. Чрез него може да направите "load balancing" на трафика си. Той ви позволява да обедините няколко физически интерфейса в един логически, като се грижи за рапределянето на трафика между физическите интерфейси.
Позволява използването на TBF (Token Bucket Filter) алгоритъм. Чрез него може да направите изкуствено ограничение да трафика в опашката. Може да зададете максимална лимит на трафика, като алгоритъма ще отхвърля всички пакети, когато този лимит се достигне. TBF може да обслужва и кратковременни пикове които надвишават лимита, ако преди тях е имало моменти с малък трафик.
Позволява използването на GRED (Generic Random Early Detection) алгоритъм. Подобен е на RED алгоритъма, разликата е че предварително разделя трафика в няколко вътрешни опашки на база полето DiffServ от IP хедъра (това поле заема мястото на полето TOS).
Позволява изплзването на полето DiffServ от IP хедъра при определяне приоритета на пакетите. Това поле заема мястото на полето TOS.
Позволява контролирането на влизащия в опашката трфик - може да зададете лимит, над който пакетите няма да се приемат в опашката, а ще бъдат отхвърляни.
Тази опция позволява използването на RSVP (Resource Reservation Protocol) и други подобни протоколи, чрез които може да се резервира част от пропускателната лента на мрежата за определен трафик.
Позволява на керенла да определя какъв е моментния трафик на мрежовите устройства. Тази информация се използва от QoS алгоритмите.
Позволява ви да изберете критериите спрямо които може да разделяте пакетите в опашката на различни класове. Това разделяне на класове се използва от CBQ алгоритъма при построяването на дървовидната йерархия.
Класифицира пакетите спрямо DiffServ полето в IP хедъра. Когато пакета пристигне в рутера, кернела създава една вътрешна структура, sk_buff. В едно от нейните полета - tc_index, се копира стойноста на DiffServ от IP хедъра. При обработката на пакета, кернела може да промени стойноста на tc_index - т.е. този класификатор работи на база променената стойност, а не оригиналния DiffServ на пакета.
Пакетите се класифицират спрямо записа в рутиращата таблица, който е бил използван при рутирането им.
Класифицира пакетите спрямо специална MARK стойност, присвоена от пакетния филтър.
Класифицира пакетите спрямо адреса на получателя на пакета.
Класифицира IPv4 пакети спрямо ресурса, заделен за тях чрез RSVP (Resource Reservation Protokol) протокола. Чрез този протокол може да се заделят минимална и максимална част от пропускателната лента на мрежата за пакети от определена връзка.
Класифицира IPv6 пакети спрямо ресурса, заделен за тях чрез RSVP протокола.
Позволява ви да ограничавате трафика в дадени клонове от CBQ дървото.
16