Тема №4 Статична маршрутизация

           Цел на упражнението:
   1. Какво представлява маршрутизирането в Internet, в кой слой на OSI модела се извършва.
   2. Видове маршрутизиране – статично и динамично, протоколи за динамично маршрутизиране.
   3. Статично маршрутизиране – на основата на работна станция с Centos: ifconfig; ip add & route add; traceroute, netstat, ss, mtr .
           Понятия:
   Маршрутизатор (router) - устройство, което определят маршрута на пакетите между машини поддържащи, маршрутизиращи протоколи.
Маршрутизиращата таблица (routing table or RIB – Routing Information base) представлява структура от данни в табличен вид, в която се съхранява информацията, необходима за маршрутизирането на пакетите в мрежата (Internet).
           Теоритична част:
   Маршрутизатор – служи за свързване на мрежи от различен тип. Принципа на действие на IP протокола от Интернет слоя е от вида стъпка по стъпка (hop-by-hop).
Основната фукция на мрежовия слой е доставянето на пакети от източник до получателят им.
Придвижването на един пакет с информация от един физически сегмент до друг се нарича – маршрутизиране (routing). Маршрутизатора филтрира трафика на базата на логически мрежови адреси. Маршрутизатора избира най-добрия маршрут между множество пътища. Маршрутите могат да бъдат задавани статично и динамично.
           Статично маршрутизиране – администраторът ръчно въвежда маршрути в маршрутната таблица и трябва да я поддържа актуална. Маршрутите се описват чрез фиксирани пътища наречени: статични маршрути. Статичното маршрутизиране е подходящо за малки мрежи с постоянна топология и за sub network (задънена улица) – когато съществува един изход към външния свят.
           Динамично маршрутизиране – маршрутите се изчисляват автоматично с помоща на маршрутизиращи алгоритми. Най-често използваните алгоритми за динамично маршрутизиране са алгоритъма на Белман-Форд и алгоритъма на Дейкстра.
   Протокол с вектор на разстоянието (distance vector) – маршрутизаторите обменят информация за топологията на цялата мрежа само със своите съседи ( алгоритъм на Белман-Форд)- RIP и подобрения RIPv2; IGRP и подобрения EIGRP. Използва брой преходи за мерна единица ( в зависимост от метриката) .
   Протокол със състояние на връзката (link state) – маршрутизаторите обменят информация само за своите връзки към мрежата с всички маршрутизатори в нея (използва разновидност на алгоритъма на Дейкстра- SFP – Short Path First).
Всеки пакетсъдържа информация за неговия източник (source address) и за неговата цел (destination address), а самата маршрутна таблица съдържа следната информация:
     1. Назначение – IP адресът на следващото местоназначение (следващия hop). Това е (next hop) IP адресът, до който ще се изпрати пакетът;
     2. Метрика – определя разстоянието до всеки маршрут, така че да може да се избере най-ефективния такъв;
     3.Маршрути – съдържа както директно свързани подмрежи, така и индиректно свързани подмрежи (такива, които не са директно свързани към възела, но до които може да се достигне през няколко hop-а) ;
     4. Интерфейс – изходният мрежови интерфейс, който трябва да се използва за препращане на пакета към крайното му местоназначение.
Съществуват три основни етапа на маршрутизирането:
     1. Намиране на MAC адреса – използва се когато възелът изпраща дейтаграма и в нея се съдържа МАС адреса на получаващото мрежово устройство. Този адрес трябва да бъде капсулиран във фрейма. Обикновено се използва протокола arp (Address Resolution Protocol) за изграждане на такава таблица. MAC адреса може да се види командата:
                arp -a
     2. Определяне на междумрежовите шлюзове (gateway) – мрежите се свързват помежду си с помощта на шлюзове, които имат физическа и логическа връзка с повече от една мрежа.
     3. Определяне на цифровия адрес на получателя от неговия символен адрес. Услугата DNS извършва това превеждане – на цифровите адреси в символни и обратно.
Съдържанието на маршрутизиращата таблица може да бъде показано с някоя от командите:
                ip route show
                route
Статичната маршрутизация се извършва с командите:
                ip route add
                route add
           Примери:
     1. За OS Windows може да се създаде файл Hosts без разширение в основната директория ( c:\) този файл съдържа:
               192.168.0.1 Host1
               192.168.0.2 Host2
               192.168.0.3 Host3
Файла съдържа IP адреса на първия компютър интервал и след това име на компютъра и се натиска клавиша Enter. Този файл действа като DNS сервер и преобразува адресите в имена.
     2. Ръчно въвеждане за маршрутизатор Cisco Systems:
               ip route 10.30.50.0 255.255.255.0 TestName 200
     3. Добавя се нов ред в маршрутната таблица с направление 10.30.50.0/24 , име на интерфейса TestName , през който се препращат адресираните към мрежа 10.30.50.0/24 пакети. Метриката на маршрута е 200 .
                ip route 192.168.5.0 255.255.255.0 192.168.8.2
IP адреса следващия възел по пътя (Next Hop) е 192.168.8.2
Маршрутната таблица се ползва, когато трябва да се определи как да бъдат доставени пакетите. За целите на маршрутизацията се използва само част от информацията от заглавната част (IP header) на IP пакета – destination address на пакета.
     Специални адреси:
0.0.0.0 – адреса на възела, генерирал този пакет; обръщение към себе си;
255.255.255.255 – пакет с такъв адрес се изпраща до всички възли в мрежата;

Статична маршрутизация под Linux
За да може една работна станция под linux да се използва за маршрутизатор, тя трябва да има поне два физически мрежови интерфейса (eth0 и eth1). Двата интерфейса трябва да бъдат :
     1. правилно конфигурирани;
     2. съответните маршрути да са добавени в маршрутизиращата таблица;
     3. да бъде разрешено маршрутизирането;
      Kонфигуриране на мрежовите интерфейси:
ifconfig eth0 10.10.23.12 netmask 255.255.255.0 broadcast 10.10.23.255
ifconfig eth1 10.10.24.12 netmask 255.255.255.0 broadcast 10.10.24.255
ip addr add 10.10.23.12/24 dev eth0
ip addr add 10.10.24.12/24 dev eth0
      добавяне на мрежи в маршрутизиращата таблица:
route add -net 192.168.11.0
route add -net 192.168.11.0 netmask 255.255.255.0 gw 192.168.11.1 - добавяне на мрежа и маршрут по подразбиране;
route add -net 172.18.0.0
ip route add 192.168.11.0/24 dev eth0
ip route add 172.18.0.0/24 dev eth 1
      добавяне на маршрут по подразбиране:
route add default gw 192.168.11.1
ip route add default via 92.168.1.1
route del default - изтриваме маршрут по подразбиране от маршрутната таблица;
route del -net 192.168.11.0 netmask 255.255.255.0 eth2 - изтрива мрежа ;

Kоманда traceroute
     traceroute – проследява маршрута, по който преминават IP пакетите от хоста до местоназначението си.
 Полезен инструмент за диагностика в мрежата, използва се мрежови прекъсвания и за зацикляне на пакети в мрежата.
По принцип traceroute изпраща UDP пакети до портовете.
      формат:
traceroute [-dFInrvx] [-g gateway] [-i iface] [-f first_ttl]
[-m max_ttl] [ -p port] [-q nqueries] [-s src_addr] [-t tos]
[-w waittime] [-z pausemsecs] host [packetlen]
   -I - променя изпращането на UDP с ICMP пакети;
   -m - задава максималния брой стъпки (хопове) до достигане на местоназначението си, в противен случай пропада;
   -n - IP адресите не се преобразуват в имена на домейни, командата е много по бърза;
   -p - задава се порт за UDP (по подразбиране е 33434 и с всеки опит се увеличава с 1);
   -v - да може да се видят не само стандартните съобщения;

netstat (route) – предоставя различна информация свързана със състоянието на маршрутите, на конекцийте, информация за отворените портове и др. По-нова команда за инф. на маршрутите е route.
   netstat -r   - извежда текущата маршрутна таблица;
   -n - извежда IP адресите като числа, вместо като имена на домейни;
   -а - извежда цялата мтржова информация;
   -I - извежда информация за състоянието на интерфейсите;
   netstat -C | head -20 - извежда информация от кеша на маршрутa, първите 20 реда ( | head -20);
            или
   netstat -rC - извежда информация от кеша на маршрутa;
netstat -luntp - извежда списък на портовете които слушат и процесите, които ги притежават.
netstat -ta - извежда списъка на активните съединения с интернет.
netstat -s - извежда статистика за протоколите.
ss -a - извежда всички сокети .
ss -e - извежда детайлно информация за сокетите .
ss -n - извежда свързаните портове и сокети .
ss -p - извежда кои процеси, какви сокети използват .
Допълнение:
lsof -i -n - списък на отворените файлове (list open files-lsof);

Задачи:
• Запознаване с командите: tracert (traceroute), ifconfig (ipconfig), netstat (route) и тяхното действие.
• Да се проследи маршрутът до отдалечена станция чрез tracert (traceroute).
Пример: www.google.com, www.microsoft.com, и т.н.
• Да се наблюдават маршрутните таблици на маршрутизираща и локална станция с командата netstat и ключове: “-nr”, “-sp IP”.
• Да се конфигурира Linux станция като NAT маршрутизатор, като се използва схемата, дадена на фигура 1.
Интерфейсът на маршрутизатора, включен към мрежата на университета, да се конфигурира статично към шлюз (gateway) с адрес 10.10.53.126 .

Layer

фиг. 1

Решение:
  1. Свързваме физически (с кабели)компютрите по дадената фигура:
      На компютър „D2” пишем:
ifconfig eth1 up
ifconfig eth1 192.168.11.12/24
route add default gw 192.168.11.1
ping 192.168.11.14

      На компютър „D4” пишем:
ifconfig eth2 up
ifconfig eth2 192.168.11.14/24
route add default gw 192.168.11.1
ping 192.168.11.12

      На компютър „D3” - switch пишем:
echo 1 > /proc/sys/net/ipv4/ip_forward
ifconfig eth0 0.0.0.0
ifconfig eth1 0.0.0.0
ifconfig eth2 0.0.0.0
brctl addbr br0
brctl addif br0 eth0 eth1 eth2
ifconfig br0 up
      На компютър „D6” - router пишем:
ifconfig eth1 down
echo 1 > /proc/sys/net/ipv4/ip_forward
ifconfig eth2 10.10.53.69/26
ifconfig eth0 192.168.11.1/24
ip route add 192.168.11.0/24 dev eth0
ip route add 10.10.53.0/26 dev eth2 src 10.10.53.69
ip route add default via 10.10.53.126 dev eth2

Тестваме връзката: ping 192.168.11.12

        


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