Тема №5 Динамична маршрутизация

       Цел на упражнението:
  1. Описание и обяснение на протоколите за динамично маршрутизирне : RIPv2, OSPF .
  2. Инсталиране и работа с пакета quagga на работна станция под Linux :
      Понятия:
  Метрика (metric) – определя разстоянието до крайната точка и какъв е критерия ( брой на стъпките, цена, скорост, надежност, пропускаелна възможност на връзките), по който ще се оценява.
Конвергенсия (convergence) или скорост на сходимост – времето необходимо на маршрутизаторите да призчислят своите маршрутни таблици и разпространението и до другите маршрутизатори.
  Динамично маршрутизиране – маршрутите се изчисляват автоматично с помоща на маршрутизиращи алгоритми. Най-често използваните алгоритми за динамично маршрутизиране са алгоритъма на Белман-Форд и алгоритъма на Дейкстра.
  Протокол с вектор на разстоянието (distance vector) – маршрутизаторите обменят информация за топологията на цялата мрежа само със своите съседи ( алгоритъм на Белман-Форд)- RIP и подобрения RIPv2; IGRP и подобрения EIGRP. Въз основа на метриката се изчислява най-добрия маршрут до местоназначението. Недостатък на протокола с вектор на разстоянието е ниската им скорост на сходимост.
  Протокол със състояние на връзката ( LS - link state ) – маршрутизаторите обменят информация със съседите си само за директно свързаните връзки и тяхното състоянието с всички маршрутизатори в мрежата (използва разновидност на алгоритъма на Дейкстра - SFP – Short Path First). Рутерите разполагат с идентична информация за мрежата и я предават от рутер на рутер без да я променят. Рутерите сами изчисляват най-краткия път до всеки хост.
  За да се улесни маршрутизирането глобалната мрежа се разделя на области от свързани помежду си мрежи с обща администрация и уникален номер наречени: автономни системи ( AS - autonomous system ) . Уникалния номер (ASN - Autonomous System Number) от 16 битово число (поради изчерпването си)се променя в 32 битово и се изписва, като две десетични числа разделени с точка и стойности от 1 до 65535.

RIP – Routing Information Protocol
Изчислява най-късия маршрут, като използва за маршрутизиращия алгоритъм на Белман-Форд (distance vector). Всеки ред в маршрутната таблица съсържа:
       адрес до местонахждение;
       адрес на следващата стъпка;
       метрика;
Максималният брои стъпки е 15, 16 вече е безкрайност (недостижим). Поради което може да бъде използван за малки мрежи до 14 междинни маршрутизатора във всяко направление. Периодично всеки 30 секунди изпраща своята обновена маршрутна таблица чрез използване на broadcast адрес. Което натоварва пропускаелната способност на мрежата. Едновременно изпращане на динстансния вектор (distance vector) води до големи пикове в мрежовия трафик и до отказ от маршрутизация. Като за недостатъци се смятат :
      - ниската скорост на сходимост (конвергенция);
      - приложим е за малки мрежи до 15 стъпки;
      - не поддържа безкласова адресация CIDR и VLSM – променлива дължина на подмрежовата маска;
        и др. ;
Широко използван метод за част от решение на пробема “броене до безкрайност” (безкраен обмен на вектори на разстоянието) е split horizon (разделяне на хоризонта). Който забранява информация за даден маршрут да се изпраща от интерфейса, по който е получена.
Новата версия на RIPv2:
      - поддържа безкласова адресация CIDR и VLSM;
      - поддържа multicast на IP 224.0.0.9 ;
      - проверява парола за получаване на невярна информация;
      - максималния брой маршрути е 24;

      Пример: За динамично адаптиране на текущите маршрути при отпадане на един рутер:
Използва се Quagga - open source софтуерен пакет за маршрутизация. Използва маршрутизиращи протоколи за обмен на информация за маршрутите.Quagga поддържа следните протоколи за маршрутизация: RIP v1,v2; OSPF v2,v3 за IPv6, BGP v4 и по-високи версии, поддържа IPv6 и multicst. Основна част от ядрото на Quagga е демонът zebra ( ripngd - конкретно за RIP протокола). Демонът изчислява оптималните маршрути по протоколът, който използва и ги добавя в маршрутната таблица.
Интерфейсите могат да ползват алгоритъма за маршрутизация split horizon (разделяне на хоризонта).
Инсталираме quagga: yum install quagga
за конкретния пример използваме:
       R1 = (компютър № D3 eth0, eth2)
       R2 = (компютър № D4 eth0, eth1)
       R3 = (компютър № D6 eth1, eth2)
       eth0 – първа мрежова карта( интерфейс)

фиг. 1

Layer


1. Свързваме физически мрежовите интерфейси (с кабели):
    D3 eth0: 10.10.10.10 <-------------------> D4 eth0: 10.10.10.20
    D3 eth2: 10.10.30.10 <-------------------> D6 eth2: 10.10.30.60
    D4 eth1: 10.10.20.20 <-------------------> D6 eth1: 10.10.20.60
Всяка връзка се проверява с командата ping.
2. Всеки компютър трябва да го конфигурираме като рутер:
Ако компютър D3 преди това e бил swich трябва да напишем:
ifconfig br0 down    - изключване на моста;
brctl delbr br0    - изтриване (премахване) на мост с име br0;
    За компютър D3 :
iptables --flush
iptables -t nat -F
service NetworkManager stop
ifconfig eth1 down
ifconfig eth0 10.10.10.10/24
ifconfig eth2 10.10.30.10/24
echo 1 > /proc/sys/net/ipv4/ip_forward
    За компютър D4 :
iptables --flush
iptables -t nat -F
service NetworkManager stop
ifconfig eth2 down
ifconfig eth0 10.10.10.20/24
ifconfig eth1 10.10.20.20/24
echo 1 > /proc/sys/net/ipv4/ip_forward
    За компютър D6 :
iptables --flush
iptables -t nat -F
service NetworkManager stop
ifconfig eth0 down
ifconfig eth1 10.10.20.60/24
ifconfig eth2 10.10.30.60/24
echo 1 > /proc/sys/net/ipv4/ip_forward
    Стартираме zebra и демона за rip:
service zebra start
service ripd start
Влизаме в vtysh шела: vtysh
Трябва да Ви изведе поздравление от този род:
Hello, this is Quagga (version 0.99.15).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
Първо се кофигурира файла за проверка на автентикация:
configure terminal
              или
conf t

На всеки компютър трябва да се напише (съответно за D3 интерфейте(eth0 и eth2), за D4(eth0 и eth1), за D6(eth1 и eth2)):
     Примера е за компютър D3 интерфейте(eth0 и eth2):
localhost.localdomain(config)# interface eth0
localhost.localdomain(config-if)# ip rip receive version 2
localhost.localdomain(config-if)# ip rip send version 2
localhost.localdomain(config-if)# no ip rip authentication mode
localhost.localdomain(config-if)# quit

localhost.localdomain(config)# interface eth2
localhost.localdomain(config-if)# ip rip receive version 2
localhost.localdomain(config-if)# ip rip send version 2
localhost.localdomain(config-if)# no ip rip authentication mode
localhost.localdomain(config-if)# quit
localhost.localdomain(config)# exit
localhost.localdomain# write
Configuration saved to /etc/quagga/zebra.conf
[OK]
localhost.localdomain# conf t
localhost.localdomain(config)# router rip
localhost.localdomain(config-router)# network eth0
localhost.localdomain(config-router)# redistribute connected
localhost.localdomain(config-router)# redistribute kernel

localhost.localdomain(config-router)# network eth2
localhost.localdomain(config-router)# redistribute connected
localhost.localdomain(config-router)# redistribute kernel
localhost.localdomain(config-router)# exit
localhost.localdomain(config)# exit
localhost.localdomain# write
Building Configuration...
Configuration saved to /etc/quagga/zebra.conf
[OK]

localhost.localdomain# show ip route
localhost.localdomain# show ip rip
Изключваме единия рутер (router), rip протокола трябва да намери алтернативен маршрут.






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