----------------------- Page 1----------------------- 16. Маршрутен протокол RIP ----------------------- Page 2----------------------- Общи положения RIP (routing information protocol) e широко използван маршрутизиращ протокол с вектор на разстоянието (distance vector). Той е подходящ предимно за малки мрежи, в които относително рядко настъпват промени в топологията. Всеки ред в маршрутната таблица на RIP маршрутизаторите съдържа информация за направлението, следваща стъпка към това направление и метрика. ----------------------- Page 3----------------------- Общи положения Метриката обозначава разстоянието в стъпки до местоназначението, т.е. метриката използвана от RIP протокола е брой хопове. Максималният брой хопове в една RIP мрежа е 15. За обмен на маршрутна информация: порт 520/UDP MAC IP header UDP RIP Data ::: header header header ----------------------- Page 4----------------------- RIP таймери RIP на всеки 30 секунди изпраща копие на маршрутната таблица към съседните маршрутизатори. Таймерът за невалиден маршрут (hold down time) е 180 s. Определя интервала от време, след който даден маршрут се счита за невалиден, ако маршрутизаторът не е получил съобщения за него. ----------------------- Page 5----------------------- RIP таймери Когато даден път бъде отбелязан като невалиден, се изпращат съобщения с тази информация към съседните маршрутизатори и се преустановява използването му. Тези съобщения се изпращат до изтичането на таймера за изтриване на маршрут (flush timer). След което пътят се изтрива окончателно от маршрутната таблица. ----------------------- Page 6----------------------- Формат на RIP пакетите Първата версия на RIPv1 не поддържа subnet маски, т.е. VLSM, респ. CIDR. Втора версия на протокола - RIPv2, поддържа VLSM, респ. CIDR. Форматът на пакетите на версия RIPv2 е следния: ----------------------- Page 7----------------------- Формат на RIPv2 пакетите ----------------------- Page 8----------------------- Формат на RIPv2 пакетите Първите три полета Command, Version и Routing domai представляват заглавната част на пакета, а останалите шест полета съдържат данни за маршрути и комбинация от тях може да се повтаря до 25 пъти в един RIPv2 пакет. За пренасяне на информацията от по-големи маршутни таблици се използват няколко RIPv2 пакета. Полето Command указва дали пакетът съдържа заявка или отговор. ----------------------- Page 9----------------------- Формат на RIPv2 пакетите Полето Versio указва версията на протокола, за RIPv2 тази стойност е 2. Полетaта Routing domain и Route Tag не се използват и се запълват с нули. Полето Address family е равно на 2, ако следва IP адрес. Ако имаме заявка за цялата маршрутна таблица, е 0. ----------------------- Page 10----------------------- Сходимост на RIP При промяна в топологията на мрежата се налага всички маршрутизатори да преизчислят своите вектори на разстоянията и да достигнат до непротиворечиво описание на новата топология. За увеличаване на скоростта на сходимост на RIP се използват различни методи, например разделяне на хоризонта (split horizo ). Тези методи намаляват вероятността за поява на цикли в маршрутите, но не могат да гарантират отсъствието им. ----------------------- Page 11----------------------- Count to infinity Максималният брой хопове в RIP е 15. Всяко местоназначение, което е на разстояние над 15 хопа се приема за недостижимо. Това прави невъзможно прилагането на RIP в мрежи с повече от 15 рутера. Но ограничава ситуацията “броене до безкрайност” (Count to infinity), при която могат да се получат цикли в маршрутите. ----------------------- Page 12----------------------- Версии на RIP RIPv1 (RFC 1058) прилага само classful маршрутизация. Т.е периодичните updates не носят subnet информация. Не е възможно да имаме подмрежи от един и същи клас с различни маски. С други думи, всички подмрежи от даден клас трябва да бъдат с еднакви маски. ----------------------- Page 13----------------------- Версии на RIP RIPv2 е разработен през 1994 г. и има възможност да носи subnet информация, да поддържа CIDR. За поддържане на обратна съвместимост с версия 1 запазено е ограничението от 15 хопа. За сигурност е въведена аутентикация с явен текст, подобрена с MD5 (RFC 2082). ----------------------- Page 14----------------------- Версии на RIP За да не се товарят хостове, които не са участници в RIP, RIPv2 “мултикаства” обновленията на адрес 224.0.0.9, за разлика от RIPv1, който е broadcast. ----------------------- Page 15----------------------- Конфигуриране на RIP ----------------------- Page 16----------------------- Boston Router Boston>e Boston#config t Boston(config)#router rip Boston(config-router)#version 2 Boston(config-router)#network 172.16.0.0 !Advertises directly co ected networks (classful address only) Boston(config-router)#no auto-summary !Turns off autosummarizatio ----------------------- Page 17----------------------- Buffalo Router Buffalo>e Buffalo#config t Buffalo(config)#router rip Buffalo(config-router)#version 2 Buffalo(config-router)#network 172.16.0.0 Buffalo(config-router)#no auto-summary ----------------------- Page 18----------------------- Bangor Router Bangor>e Bangor#config t Bangor(config)#router rip Bangor(config-router)#version 2 Bangor(config-router)#network 172.16.0.0 Bangor(config-router)#no auto-summary ----------------------- Page 19----------------------- Конфигуриране на RIP Router(config)# router rip Router(config-router)# network 10.0.0.0 Router(config-router)# exit Router(config)# interface ethernet1 Router(config-if)# ip address 10.1.1.1 255.255.255.0 Router(config-if)# no ip split-horizo Router(config-if)# exit ----------------------- Page 20----------------------- Конфигуриране на RIP. Други команди. router rip Passive-interface eth0 ! не изпраща update-и по interface eth0 ----------------------- Page 21----------------------- RIPng RIPng (RFC 2080) е разширение на RIPv2 за поддържане на IPv6: – в маршрутната таблица IPv6 префикс, next-hop IPv6 адрес – използва порт 521/UDP и мултикаст (FF02::9) за updates – сигурност: IP AH (Authenticatio Header) и IP ESP (Encapsulating Security Payload) ----------------------- Page 22----------------------- Конфигуриране на RIPng (Cisco) Не изисква глобална конфигурация. Освен за за целия RIPng - таймери, default-route origination, maximum-paths и др. На един рутер, множество RIPng процеси. ----------------------- Page 23----------------------- Конфигуриране на RIPng (Cisco) ----------------------- Page 24----------------------- Конфигуриране на RIPng (Cisco) Austin(config)#ipv6 unicast-routing Austin(config)#interface fastethernet 0/0 Austin(config-if)#ipv6 enable Austin(config-if)#ipv6 address 2001:db8:c18:2::/64 eui-64 Austin(config-if)#ipv6 rip tower enable Austin(config-if)#interface fastethernet 0/1 Austin(config-if)#ipv6 enable Austin(config-if)#ipv6 address 2001:db8:c18:1::/64 eui-64 Austin(config-if)#ipv6 rip tower enable ----------------------- Page 25----------------------- Конфигуриране на RIPng (Cisco) Houston(config)#ipv6 unicast-routing Houston(config)#interface fastethernet 0/0 Houston(config-if)#ipv6 enable Houston(config-if)#ipv6 address 2001:db8:c18:2::/64 eui-64 Houston(config-if)#ipv6 rip tower enable Houston(config-if)#interface fastethernet 0/1 Houston(config-if)#ipv6 enable Houston(config-if)#ipv6 address 2001:db8:c18:3::/64 eui-64 Houston(config-if)#ipv6 rip tower enable ----------------------- Page 26----------------------- ripngd Configuratio (quagga) [root@rec-gw quagga]# less ripngd.conf.sample ... ! debug ripng events ! debug ripng packet ! router ripng network sit1 !sit tunnel-interface route 3ffe:506::0/32 distribute-list local-only out sit1 ! !ipv6 access-list local-only permit 3ffe:506::0/32 !ipv6 access-list local-only deny any ----------------------- Page 27----------------------- ripngd команди в Terminal Mode #show ip ripng #show debugging ripng #debug ripng events #debug ripng packet #debug ripng zebra