Ако правите мрежови експерименти с GNS3 или настройвате машина с Линукс като рутер понякога може да ви се наложи да настроите статични пътища(static routes).В Ubuntu базираните дистрибуции с които съм по-запознат това може да стане по няколко начина.Най-опростения и временен вариант е да вкарате пътя с команда.Например искате да вкарате път към мрежа 192.168.5.0/24 през интерфейс eth1 който е с адрес 192.168.4.1.Следната командата следва да бъде изпълнена(с администраторски права):
route add -net 192.168.5.0/24 gw 192.168.4.1 eth1
или
route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.4.1 eth1
/*Няма нужда да добавяте пътища за мрежи към които сте директно свързани,системата би трябва да ги добавя автоматично*/
Резултатът и от двете команди е еднакъв,така че дали ще напишете /24 за маска или 255.255.255.0 няма никакво значение.Това което прави командата е :
route add означава добавяне на пътя,-net ознава че пътя е към цяла мрежа а не към определен хост например.Следва адреса на мрежата с нейната маска и gw означава gateway или шлюз,за да знае системата накъде да насочи пакетите които идват за тази мрежа.Последното eth1 е локалният интерфейс.Не съм пробвал но принципно би трябва да стане и без се зададе интерфейс,разликата е че системата ще провери 2 пъти таблицата за да намери откъде да изпрати пакета.Препоръчва се за по-оптимална работа да се зададе пълен път,както е в примера с ip адрес и локален интерфейс.Резултатът може да се провери като се изпълни пак командата route.
Освен пътищата по подразбиране би трябва да видите и добавеният от вас.
Резултатът и от двете команди е еднакъв,така че дали ще напишете /24 за маска или 255.255.255.0 няма никакво значение.Това което прави командата е :
route add означава добавяне на пътя,-net ознава че пътя е към цяла мрежа а не към определен хост например.Следва адреса на мрежата с нейната маска и gw означава gateway или шлюз,за да знае системата накъде да насочи пакетите които идват за тази мрежа.Последното eth1 е локалният интерфейс.Не съм пробвал но принципно би трябва да стане и без се зададе интерфейс,разликата е че системата ще провери 2 пъти таблицата за да намери откъде да изпрати пакета.Препоръчва се за по-оптимална работа да се зададе пълен път,както е в примера с ip адрес и локален интерфейс.Резултатът може да се провери като се изпълни пак командата route.
Освен пътищата по подразбиране би трябва да видите и добавеният от вас.
Това са пътищата конфигурани при мен.С разликата е че при мен бяха нужни за едни експерименти и всички пътища от 100 до 104 са насочени към 192.168.100.1 който е адреса на локалният tap0 интерфейс.Този интерфейс е изкуствено създаден с цел експерименти.Имената на реалните интерфейси в повечето случаи са ethX за Ethernet и wlanX за Wireless устройства където X е номерът на устройството.Като се има предвид че номерацията винаги започва от 0.
Вторият начин за добавяне на пътищата е пак подобен на първия с разликата че вместо да ги пишете всеки път наново след рестарт на системата може да ги сложите в /etc/rc.local.Това е файл който системата изпълнява след стартирането и след зареждане на мрежовите настройки и един вид се използва като startup script.По същия начин запишете командата за създаване на път в този файл с помощна на някой текстов редактор.Също така могат да се зададат и други команди които искате системата да изпълнява след всяко стартиране.Ето за пример моят rc.local файл:
Вторият начин за добавяне на пътищата е пак подобен на първия с разликата че вместо да ги пишете всеки път наново след рестарт на системата може да ги сложите в /etc/rc.local.Това е файл който системата изпълнява след стартирането и след зареждане на мрежовите настройки и един вид се използва като startup script.По същия начин запишете командата за създаване на път в този файл с помощна на някой текстов редактор.Също така могат да се зададат и други команди които искате системата да изпълнява след всяко стартиране.Ето за пример моят rc.local файл:
Освен пътища,за да работи рутирането в Линукс трябва да е включена опцията ip forwarding.Това може да се провери с командата:
cat /proc/sys/net/ipv4/ip_forward
Ако върне резултат 0 значи препращането е изключено,ако върне 1 това означава че опцията е включена.Това echo1 > /proc/sys/net/ipv4/ip_forward включва препращането но пак е временно решение и се налага след рестарт да се прилага всеки път отново.Ако искате тази опция да остане постоянно включена трябва да редактирате вашия /etc/sysctl.conf файл и да махнете отметката от #net.ipv4.ip_forward=1 полето.