Маршрутизация между роутерами и интерфейсами

Всем привет! Спустя продолжительное время возвращаемся к циклу статей. Долгое время мы разбирали мир коммутации и узнали о нем много интересного. Теперь пришло время подняться чуть повыше и взглянуть на сторону маршрутизации. В данной статье поговорим о том, зачем нужна маршрутизация, разберем отличие статической от динамической маршрутизации, виды протоколов и их отличие. Тема очень интересная, поэтому приглашаю всех-всех к прочтению.

В предыдущих статьях мы разбирали отличия сетевых устройств. А именно, чем коммутатор отличается от маршрутизатора (можно почитать здесь и здесь). То есть коммутатор в классическом понимании — это устройство, которое получает Ethernet-кадры на одном интерфейсе и передает эти кадры на другие интерфейсы, базируясь на заголовках и своей таблицы коммутации. Работает коммутатор канальном уровне.
Маршрутизаторы работают аналогично. Только оперируют IP-пакетами. И работают на сетевом уровне. Хочу заметить, что есть коммутаторы и маршрутизаторы, которые работают и на более высоких уровнях, но мы сейчас говорим о классических устройствах.
Встает вопрос. Почему мы не можем просто коммутировать весь трафик? И зачем требуются IP-адреса и маршрутизация. Ведь что MAC-адреса, что IP-адреса уникальны у каждого сетевого устройства (ПК, телефон, сервер и т.д.). Сейчас отвечу более развернуто.

На рисунке представлены 2 коммутатора, к которым подключено по 250 пользователей. Соответственно, чтобы обеспечить связность между всеми участниками, коммутаторы должны знать MAC-адреса всех участников сети. То есть таблица каждого коммутатора будет содержать 500 записей. Это уже не мало.
А если представить, что таким образом будет работать Интернет, в котором миллиарды устройств? Следовательно нужно искать выход. Проблема коммутации заключается в том, что она плохо масштабируется. И тяжело соблюдать иерархию.
Теперь посмотрим на эту ситуацию с точки зрения маршрутизации.

Здесь вводится понятие IP-адресации. Слева сеть 192.168.1.0/24 соединенная с левым маршрутизатором (R1), а справа сеть 192.168.2.0/24 соединенная с правым маршрутизатором (R2), соответственно. R1 знает, что добраться до сети 192.168.2.0 можно через соседа R2 и наоборот R2 знает, что добраться до сети 192.168.1.0 можно через соседа R1. Тем самым 500 записей в таблице коммутации заменяются одной в таблице маршрутизации. Во-первых это удобно, а во-вторых экономит ресурсы. Вдобавок к этому, можно соблюдать иерархичность, при построении.
Теперь поговорим о том, как таблица маршрутизации заполняется. Как только маршрутизатор включается «с коробки», он создает таблицу маршрутизации. Но самостоятельно он туда может записать только информацию о сетях, с которыми он связан напрямую (connected).
Покажу на примере в CPT:

Добавляю маршрутизатор с пустой конфигурацией. Дожидаюсь загрузки и смотрю таблицу маршрутизации:

Router#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

Сейчас таблица есть, но она пустая из-за того, что не подключен ни один из интерфейсов и не заданы IP-адреса. Соберем схему.

Зададим IP-адресах на интерфейсах маршрутизатора:

Router>enable 
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#no shutdown 
Router(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up

Router(config-if)#exit
Router(config)#interface fastEthernet 0/1
Router(config-if)#ip address 192.168.2.1 255.255.255.0
Router(config-if)#no shutdown 

Router(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up

Router(config-if)#end

И посмотрим, что изменилось в таблице маршрутизации:

Router#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1

В таблице появились 2 записи. Маршрутизатор автоматически добавил подсети, в которых находятся его интерфейсы. Сверху есть коды, показывающие каким образом маршрут был добавлен.
Настроим обе рабочие станции и проверим связность:


Packet Tracer PC Command Line 1.0
PC>ping 192.168.2.2

Pinging 192.168.2.2 with 32 bytes of data:

Reply from 192.168.2.2: bytes=32 time=0ms TTL=127
Reply from 192.168.2.2: bytes=32 time=0ms TTL=127
Reply from 192.168.2.2: bytes=32 time=0ms TTL=127
Reply from 192.168.2.2: bytes=32 time=1ms TTL=127

Ping statistics for 192.168.2.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms

Теперь детально рассмотрим, что происходит с пакетом, когда он попадает на маршрутизатор.

Пакет приходит. Маршрутизатор сразу читает IP-адрес назначения в заголовке и сверяет его со своей таблицей.

Находит совпадение, изменяет TTL и отправляет на нужный интерфейс. Соответственно, когда ответный пакет придет от PC1, он проделает аналогичную операцию.
То есть отличие в том, что маршрутизатор принимает решение исходя из своей таблицы маршрутизации, а коммутатор из таблицы коммутации. Единственное, что важно запомнить: и у коммутатора, и у маршрутизатора есть ARP-таблица. Несмотря на то, что маршрутизатор работает с 3 уровнем по модели OSI и читает заголовки IP-пакетов, он не может игнорировать работу стека и обязан работать на канальном и физическом уровне. В свою ARP-таблицу он записывает соотношения MAC-адреса к IP-адресу и с какого интерфейса к нему можно добраться. Причем ARP-таблица у каждого сетевого устройства своя. Пишу команду show arp на маршрутизаторе:

Router#show arp 
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.1.1             -   0060.5C16.3B01  ARPA   FastEthernet0/0
Internet  192.168.1.2             6   00E0.F73D.E561  ARPA   FastEthernet0/0
Internet  192.168.2.1             -   0060.5C16.3B02  ARPA   FastEthernet0/1
Internet  192.168.2.2             7   0002.179D.455A  ARPA   FastEthernet0/1

Как только PC0 отправил ICMP до PC1 и пакет дошел до маршрутизатора, он увидел в заголовках IP-пакета адрес отправителя (PC0) и его MAC-адрес. Он добавляет его в ARP-таблицу. Следующее, что он видит — это IP-адрес получателя. Он не знает, куда отправлять пакет, так как в его ARP-таблице нет записи. Но видит, что адрес получателя из той же сети, что и один из его интерфейсов. Тогда он запускает ARP с этого интерфейса, чтобы получить MAC-адрес запрашиваемого хоста. Как только приходит ответ, он заносит информацию в ARP-таблицу.
Это базовый пример того, как работает маршрутизация. Прикладываю ссылку на скачивание.
Усложним немного схему.

На ней представлены 2 рабочие станции и 3 маршрутизатора. Не буду заострять внимание на том, как прописать IP-адрес на интерфейс, а лишь покажу итоговую конфигурацию:

RT1 (раскрыть)


RT1#show running-config 
Building configuration...

Current configuration : 571 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname RT1
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface FastEthernet0/0
 ip address 192.168.1.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.1.2 255.255.255.0
 duplex auto
 speed auto
!
interface Vlan1
 no ip address
 shutdown
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
 login
!
!
!
end

RT2 (раскрыть)


RT2#show running-config 
Building configuration...

Current configuration : 568 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname RT2
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface FastEthernet0/0
 ip address 10.0.1.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.2.1 255.255.255.0
 duplex auto
 speed auto
!
interface Vlan1
 no ip address
 shutdown
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
 login
!
!
!
end

RT3 (раскрыть)


RT3#show running-config 
Building configuration...

Current configuration : 571 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname RT3
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface FastEthernet0/0
 ip address 192.168.2.1 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet0/1
 ip address 10.0.2.2 255.255.255.0
 duplex auto
 speed auto
!
interface Vlan1
 no ip address
 shutdown
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
 login
!
!
!
end

PC0 (раскрыть)

PC1 (раскрыть)

Все устройства сконфигурированы. Теперь проверим связность между PC0 и PC1:

В консоли PC0 вылезает сообщение о недоступности узла. Но ведь все адреса прописаны и добраться можно. В чем же проблема? Переходим в режим симуляции и копаем глубже:

PC0 формирует ICMP-сообщение. Смотрит на IP-адрес назначения и понимает, что получатель находится в другой сети. Соответственно передать надо своему основному шлюзу, а дальше пускай сам разбирается.

Пакет доходит до RT1. Смотрит в Destination IP и сравнивает со своей таблицей маршрутизации.


RT1#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.1.0 is directly connected, FastEthernet0/1
C    192.168.1.0/24 is directly connected, FastEthernet0/0

И вуаля. Совпадений нет. А значит RT1 понятия не имеет, что делать с этим пакетом.

Но так просто отбросить его не может, так как надо уведомить того, кто это послал. Он формирует ответный ICMP с сообщением «Host Unreachable».

Как только пакет доходит до PC0, в консоли высвечивается сообщение «Reply from 192.168.1.1: Destination host unreachable.». То есть RT1 (192.168.1.1) говорит о том, что запрашиваемый хост недоступен.
Выход из ситуации следующий: нужно «сказать» сетевому устройству, как добраться до конкретной подсети. Причем это можно сделать вручную или настроить все сетевые устройства так, чтобы они переговаривались между собой. Вот на этом этапе маршрутизация делится на 2 категории:

  • Статическая маршрутизация
  • Динамическая маршрутизация

Начнем со статической. В качестве примера возьмем схему выше и добьемся связности между PC0 и PC1. Так как первые проблемы с маршрутизацией начались у RT1, то перейдем к его настройке:


RT1#conf t
RT1(config)#ip route 192.168.2.0 255.255.255.0 10.0.1.1 

Маршрут прописывается командой ip route. Синтаксис прост: «подсеть» «маска» «адрес следующего устройства».
После можно набрать команду show ip route и посмотреть таблицу маршрутизации:


RT1#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.1.0 is directly connected, FastEthernet0/1
C    192.168.1.0/24 is directly connected, FastEthernet0/0
S    192.168.2.0/24 [1/0] via 10.0.1.1

Появился статический маршрут (о чем свидетельствует код S слева). Здесь много различных параметров и о них я расскажу чуть позже. Сейчас задача прописать маршруты на всех устройствах. Перехожу к RT2:


RT2(config)#ip route 192.168.1.0 255.255.255.0 10.0.1.2
RT2(config)#ip route 192.168.2.0 255.255.255.0 10.0.2.2
RT2#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 2 subnets
C       10.0.1.0 is directly connected, FastEthernet0/0
C       10.0.2.0 is directly connected, FastEthernet0/1
S    192.168.1.0/24 [1/0] via 10.0.1.2
S    192.168.2.0/24 [1/0] via 10.0.2.2

Обратите внимание, что маршрут прописан не только в 192.168.2.0/24, но и 192.168.1.0/24. Без обратного маршрута полноценной связности не будет.
Остался RT3:


RT3(config)#ip route 192.168.1.0 255.255.255.0 10.0.2.1
RT3(config)#end
RT3#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.2.0 is directly connected, FastEthernet0/1
S    192.168.1.0/24 [1/0] via 10.0.2.1
C    192.168.2.0/24 is directly connected, FastEthernet0/0

Маршруты на всех устройствах прописаны, а значит PC0 сможет достучаться до PC1 и наоборот PC1 до PC0. Проверим:

Обратите внимание на то, что первые 3 запроса потерялись по тайм-ауту (не Unreachable). Это так CPT эмулирует работу ARP. По сути эти 3 потерянных пакета — это следствие того, что каждый маршрутизатор по пути запускал ARP-запрос до своего соседа. В итоге после всех работ PC0 успешно пингует PC1. Проверим обратную связь:

И с этой стороны все прекрасно.
Ссылка на скачивание.

Теперь на примере таблицы R3 объясню, что она из себя представляет:


RT3#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.0.2.0 is directly connected, FastEthernet0/1
S    192.168.1.0/24 [1/0] via 10.0.2.1
C    192.168.2.0/24 is directly connected, FastEthernet0/0

Коды (они же легенды) показывают, каким методом данный маршрут попал в таблицу. Их тут много и заострять внимание на все нет смысла (так как ныне не используются). Остановимся на двух — C(connected) и S(static).
Как только мы прописываем IP-адрес и активируем интерфейс, подсеть, к которой он принадлежит, автоматически попадает в таблицу маршрутизации. Поэтому справа от этой строки подписано directly connected и интерфейс, привязанный к этой подсети. Тоже самое с подсетью 192.168.2.0/24. А вот со статически заданным адресом чуть по другому. Подсеть 192.168.1.0/24 не напрямую подсоединена к текущему маршрутизатору, а доступна через 10.0.2.1. А вот этот next-hop уже принадлежит к 10.0.2.0/24 (которая напрямую доступна). Таким образом можно добраться до удаленной подсети, через знакомую сеть. Это может показаться немного запутанным, но именно так работает логика маршрутизатора. Тут еще можно заметить, что в строчке со статическим маршрутом присутствует запись [1/0]. Я чуть позже объясню что это, когда будет разбираться динамическая маршрутизация. Просто на фоне ее эти цифры сразу обретут смысл. А сейчас важно просто запомнить, что первое число — это административная дистанция, а второе — метрика.

Теперь перейдем к разделу динамической маршрутизации. Начну сразу с картинки:

И сразу вопрос: В чем сложность этой схемы? На самом деле ни в чем, до того момента, пока не придется это все настраивать. Сейчас мы умеем настраивать статическую маршрутизацию. И за n-ое количество времени поднимем сеть и она будет работать. А теперь несколько но:

  • На одном из маршрутизаторов появилась новая подсеть. Это значит, что нужно на всех маршрутизаторах вручную прописать маршрут до нее.
  • Допустим мы из Router0 ходили до Cloud0 по цепочке 0 -> 1 -> 3 -> 2 -> Cloud0. Теперь внезапно сгорел/умер/украли Router3. Соответственно не было запасного пути и доступ до Cloud0 закрыт. Сеть стоит и компания не может работать. Тут придется подрываться и переписать цепочку по 0 -> 1 -> 4 -> 2 -> Cloud0. То есть нет никакого резерва. Если сеть падает, то без админа ничего не решить. Сеть не может сама перестроиться.
  • Ну и еще один аргумент, почему строить сеть исключительно на статических маршрутах — зло и не практично. Это, конечно, масштабируемость. Практически любая компания рано или поздно растет, расширяется и сетевых узлов становится все больше. А значит, в конечном итоге, сеть со статическими маршрутами начнет превращаться в ад для сетевого инженера.

Вот на помощь как раз приходит динамическая маршрутизация. Она оперирует двумя очень созвучными понятиями, но совершенно разными по смыслу:

  1. Routing protocols (протоколы маршрутизации) — это как раз те протоколы, о которых чуть ниже поговорим. При помощи этих протоколов, роутеры обмениваются маршрутной информацией и строят топологию.
  2. Routed protocols (маршрутизируемые протоколы) — это как раз те протоколы, которые мы маршрутизируем. В данном случае — это IPv4, IPv6.

Протоколы динамической маршрутизации делятся на 2 категории:

  • IGP (interior gateway protocols) — внутренние протоколы маршрутизации (RIP, OSPF, EIGRP). Гости этого выпуска.
  • EGP (external gateway protocols) — внешние протоколы маршрутизации (на сегодня BGP).

Отличий в них много, но самые главные — IGP запускается внутри одной автономной системы (считайте компании), а EGP запускается между автономными системами (то есть это маршрутизация в Интернете. При помощи него автономные системы связываются между собой). Сейчас представитель EGP остался один — это BGP. Я не буду долго на нем останавливаться, так как он выходит за рамки CCNA. Да и по нему лучше делать отдельную статью, чтобы не смешивать и так довольно емкий материал.

Теперь про IGP. Это прозвучит смешно, но и они делятся на несколько категорий:

  • Distance-Vector (дистанционно-векторные)
  • Hybrid or Advanced Distance Vector (гибридные или продвинутые дистанционно-векторные)
  • Link-State (протокол состояния канала)

Начну с дистанционно-векторного. Он, на мой взгляд, самый простой для понимания.
Название ему такое дали не с проста. Дистанция показывает расстояние до точки назначения. Дальностью оперирует такой показатель, как метрика (о чем я упоминал выше). Вектор показывает направление до точки назначения. Это может быть выходной интерфейс, IP-адрес соседа.
Мне этот протокол напоминает дорожный указатель. То есть по какому направлению идти и какое расстояние до точки назначения.
Теперь покажу на практике, как он работает и по ходу детально разберем.

Чтобы не загромождать статью однообразными настройками, я заранее сконфигурировал устройства. А именно прописал IP-адреса и включил интерфейсы. Оставлю под спойлерами настройки:

Router0:

Router0#show running-config
Building configuration...

Current configuration : 622 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router0
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.1.1.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
shutdown
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Router1:

Router1#show running-config
Building configuration...

Current configuration : 622 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router1
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.2.2.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.1.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
shutdown
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Единственное, что может показаться новым — это Loopback интерфейсы. Он практически не отличается от других интерфейсов, за исключением того, что не представлен физически и к нему ничего нельзя воткнуть. Он программно создан внутри самого устройства. Такой интерфейс есть и на многих ОС, как Windows и Linux-подобных. На примере он используется для того, чтобы не рисовать множество маршрутизаторов со своими подсетями.
Сейчас таблицы маршрутизации выглядят следующим образом:

Router0:

Router0#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.1.1.0 is directly connected, Loopback1
C    192.168.1.0/24 is directly connected, FastEthernet0/0

Router1:

Router1#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 1 subnets
C       10.2.2.0 is directly connected, Loopback1
C    192.168.1.0/24 is directly connected, FastEthernet0/0

То есть у каждого в таблице маршрут общий с соседом (192.168.1.0/24) и недоступный другому соседу (10.1.1.0 и 10.2.2.0 соответственно).
Теперь для связности 2 маршрутизатора должны обменяться своими маршрутными информациями. И вот тут поможет протокол RIP.
Переключаю PT в режим симуляции и перехожу к настройкам:
Router0:

Router0#conf t -- переход в режим глобальной конфигурации
Enter configuration commands, one per line.  End with CNTL/Z.
Router0(config)#router rip -- переход к настройке протокола
Router0(config-router)#version 2 -- включается протокол 2-ой версии
Router0(config-router)#no auto-summary -- отключается автоматическое суммирование
Router0(config-router)#network 10.1.1.0 -- активируется RIP на интерфейсе из данной подсети
Router0(config-router)#network 192.168.1.0

Router1:

Router1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#router rip 
Router1(config-router)#version 2
Router1(config-router)#no auto-summary 
Router1(config-router)#network 10.2.2.0
Router1(config-router)#network 192.168.1.0

Сразу оговорюсь, что протокол RIP (также как EIGRP и OSPF) не анонсирует подсети таким образом. Он включает протокол на данном интерфейсе. То есть нельзя анонсировать то, что устройство не знает. И замечу, что включена вторая версия протокола и отключено автосуммирование. Изначально RIP был придуман для сетей с классовой адресацией. Поэтому суммирование он выполняет по тем же правилам, что не корректно в применении к бесклассовой. После перехода на бесклассовую адресацию, нужно было изменить работу протокола RIP. И вот во второй версии помимо подсети, передается еще и маска.

На схеме сразу же оба маршрутизатора что-то сгенерировали:

Первый пакет:

Это первый пакет, который генерирует роутер, при включении RIP. Тут важный аспект, что ничего не анонсируется и метрика = 16. (0x10 в шестнадцатиричном значение = 16 в десятичном).

Второй пакет:

А вот этот пакет уже несет полезную информацию.

1) ADDR FAMILY: 0x2 — означает IP протокол. В большинстве случаев это поле не меняется.
2) NETWORK: 10.1.1.0 — подсеть, которая анонсируется.
3) SUBNET: 255.255.255.0 — маска
4) NEXT HOP: 192.168.1.1 — следующий узел для достижимости анонсированной подсети.
5) METRIC: 0x1 — стоимость пути (в данном случае 1).

С обратной стороны придет точно такой же анонс (только будет соответствующая подсеть, nexthop).

В итоге после получения анонсов, таблицы у обоих роутеров будут выглядеть следующим образом:

Router0:

Router0#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 2 subnets
C       10.1.1.0 is directly connected, Loopback1
R       10.2.2.0 [120/1] via 192.168.1.2, 00:00:03, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0

Router1:

Router1#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 2 subnets
R       10.1.1.0 [120/1] via 192.168.1.1, 00:00:16, FastEthernet0/0
C       10.2.2.0 is directly connected, Loopback1
C    192.168.1.0/24 is directly connected, FastEthernet0/0

В таблице появилась пометка с кодом R. То есть получен по протоколу RIP.
Если пустить пинги:

Router0:

Router0#ping 10.2.2.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms

Router1:

Router1#ping 10.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/0 ms

Анонсируемые подсети достижимы. Еще важный аспект, при работе с протоколами маршрутизации — это просмотр сформированной базы. Таблица маршрутизации — это конечный итог, куда заносится маршрут. Посмотреть базу можно командой show ip rip database:

Router0:

Router0#show ip rip database 
10.1.1.0/24    auto-summary
10.1.1.0/24    directly connected, Loopback1
10.2.2.0/24    auto-summary
10.2.2.0/24
    [1] via 192.168.1.2, 00:00:03, FastEthernet0/0
192.168.1.0/24    auto-summary
192.168.1.0/24    directly connected, FastEthernet0/0

Router1:

Router1#show ip rip database 
10.1.1.0/24    auto-summary
10.1.1.0/24
    [1] via 192.168.1.1, 00:00:13, FastEthernet0/0
10.2.2.0/24    auto-summary
10.2.2.0/24    directly connected, Loopback1
192.168.1.0/24    auto-summary
192.168.1.0/24    directly connected, FastEthernet0/0

Эта команда полезна, когда маршруты никак не заносятся в таблицу, при этом вроде как RIP включен и настроено все верно. Если маршрута нет в базе, значит он никак не попадет в таблицу и тут надо копать глубже. У циски, к счастью, есть хороший инструмент для дебага, который позволяет практически моментально понять, что происходит. В CPT он урезан и многое не показать, но на реальных железках, он прекрасен.
Например:

Router0#debug ?
  aaa           AAA Authentication, Authorization and Accounting
  crypto        Cryptographic subsystem
  custom-queue  Custom output queueing
  eigrp         EIGRP Protocol information
  ephone        ethernet phone skinny protocol
  frame-relay   Frame Relay
  ip            IP information
  ipv6          IPv6 information
  ntp           NTP information
  ppp           PPP (Point to Point Protocol) information

Посмотрим, что происходит в RIP:

Router0#debug ip rip 
RIP protocol debugging is on
Router0#RIP: sending  v2 update to 224.0.0.9 via Loopback1 (10.1.1.1)
RIP: build update entries
      10.2.2.0/24 via 0.0.0.0, metric 2, tag 0
      192.168.1.0/24 via 0.0.0.0, metric 1, tag 0
RIP: sending  v2 update to 224.0.0.9 via FastEthernet0/0 (192.168.1.1)
RIP: build update entries
      10.1.1.0/24 via 0.0.0.0, metric 1, tag 0
RIP: received v2 update from 192.168.1.2 on FastEthernet0/0
      10.2.2.0/24 via 0.0.0.0 in 1 hops

Сейчас все хорошо. Видно, что приходят/уходят апдейты и записи обновляются. Из за того, что дебажный инструмент обширен, лучше явно указывать что нужно ловить (как представлено выше). Иначе можно достаточно хорошо пригрузить устройство. Важно помнить про команду undebug all. Она отключает весь дебаг на устройстве.

Ссылка на скачивание лабы. Можете добавить еще один маршрутизатор к существующей схеме и связать их через RIP.

Теперь усложним схему и посмотрим в чем преимущество динамической маршрутизации.

Добавился Router2, который соединен с ранее созданными маршрутизаторами и анонсирует подсеть 10.3.3.0/24.

Настраиваются аналогично предыдущему примеру. Поэтому покажу только конфигурации:

Router0

Router0#show running-config
Building configuration…

Current configuration: 736 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router0
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.1.1.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.3.1 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
router rip
version 2
network 10.0.0.0
network 192.168.1.0
network 192.168.3.0
no auto-summary
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Router1

Router1#show running-config
Building configuration…

Current configuration: 736 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router1
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.2.2.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.1.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.4.1 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
router rip
version 2
network 10.0.0.0
network 192.168.1.0
network 192.168.4.0
no auto-summary
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Router2

Router2#show running-config
Building configuration…

Current configuration: 736 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router2
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.3.3.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.3.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.4.2 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
router rip
version 2
network 10.0.0.0
network 192.168.3.0
network 192.168.4.0
no auto-summary
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Итого на Router0 мы имеем следующую таблицу маршрутизации:

Router0# show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 3 subnets
C       10.1.1.0 is directly connected, Loopback1
R       10.2.2.0 [120/1] via 192.168.1.2, 00:00:05, FastEthernet0/0
R       10.3.3.0 [120/1] via 192.168.3.2, 00:00:14, FastEthernet0/1
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.3.0/24 is directly connected, FastEthernet0/1
R    192.168.4.0/24 [120/1] via 192.168.1.2, 00:00:05, FastEthernet0/0
                    [120/1] via 192.168.3.2, 00:00:14, FastEthernet0/1

Из новых маршрутов — это 10.3.3.0/24, который доступен через 192.168.3.2 (т.е. Router2). И второй маршрут — это 192.168.4.0/24, который доступен через 192.168.1.2 (т.е. Router1) и 192.168.3.2 (т.е. Router2).
Вот в тех случаях, когда маршруты от разных устройств до одной подсети приходят с одинаковой метрикой, оба заносятся в таблицу. Такой случай называют балансировкой или ECMP (Equal-cost multi-path routing).
Если пройтись по нему через traceroute:

Router0#traceroute 192.168.4.1
Type escape sequence to abort.
Tracing the route to 192.168.4.1

  1   192.168.1.2     1 msec    0 msec    0 msec    
Router0#traceroute 192.168.4.1
Type escape sequence to abort.
Tracing the route to 192.168.4.1

  1   192.168.3.2     1 msec    0 msec    0 msec   

То есть меняется next-hop по очереди. Сама тема балансировки заслуживает отдельного внимания, т.к. у балансировки есть несколько стратегий по выбору оптимального пути. Случай, когда балансировка работает по очереди, как в нашем случае — называют Round-Robin.
Посмотрим базу RIP на Router0:

Router0#show ip rip database 
10.1.1.0/24    auto-summary
10.1.1.0/24    directly connected, Loopback1
10.2.2.0/24    auto-summary
10.2.2.0/24
    [1] via 192.168.1.2, 00:00:01, FastEthernet0/0
10.3.3.0/24    auto-summary
10.3.3.0/24
    [1] via 192.168.3.2, 00:00:23, FastEthernet0/1
192.168.1.0/24    auto-summary
192.168.1.0/24    directly connected, FastEthernet0/0
192.168.3.0/24    auto-summary
192.168.3.0/24    directly connected, FastEthernet0/1
192.168.4.0/24    auto-summary
192.168.4.0/24
    [1] via 192.168.1.2, 00:00:01, FastEthernet0/0    [1] via 192.168.3.2, 00:00:23, FastEthernet0/1

То есть нет никакого запасного маршрута, на случай выхода из строя 192.168.3.2. Теперь переключаю в режим симуляции и смотрю, что произойдет, если отключить на Router0 интерфейс fa0/1:


Видим, что отключился линк на Router0 и Router2. И сразу оба устройства генерируют сообщения:
Router0:

Router1:

Сразу сообщают, что данные маршруты теперь недостижимы. Делают они это, при помощи метрики, которая становится равной 16. Исторически так сложилось, что протокол RIP был рассчитан на работу с 15 транзитными участками. В то время никто не подразумевал, что сеть может быть настолько большой:-). Называется этот механизм Poison Reverse.
Таким образом сосед, получивший такой апдейт должен удалить этот маршрут из таблицы.
Вот, что происходит на Router1:

И самое интересное, что после этого Router1 отправит Router0 следующее:

То есть я больше не знаю о 192.168.3.0/24.

На данный момент таблица на Router0 выглядит следующим образом:

Router0#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 2 subnets
C       10.1.1.0 is directly connected, Loopback1
R       10.2.2.0 [120/1] via 192.168.1.2, 00:00:29, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
R    192.168.4.0/24 [120/1] via 192.168.1.2, 00:00:29, FastEthernet0/0

То есть знает о своих подсетях и тех, что анонсировал Router1.
Двигаемся дальше:

Видим, что Router1 генерирует пакет с кучей подсетей и отправляет соседям. В том числе там подсеть 10.4.4.0.
И в таблице Router0 теперь:

Router0#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 3 subnets
C       10.1.1.0 is directly connected, Loopback1
R       10.2.2.0 [120/1] via 192.168.1.2, 00:00:00, FastEthernet0/0
R       10.3.3.0 [120/2] via 192.168.1.2, 00:00:00, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
R    192.168.4.0/24 [120/1] via 192.168.1.2, 00:00:00, FastEthernet0/0

Замечу, что в таблице она записана с метрикой 2. Потому что данный маршрут направлен не напрямую от соседа, породившего его, а через транзитный маршрутизатор, который добавил 1.
Проверим доступность:

Router0#ping 10.3.3.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.3.3.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms

Router0#traceroute 10.3.3.1
Type escape sequence to abort.
Tracing the route to 10.3.3.1

  1   192.168.1.2     0 msec    0 msec    0 msec    
  2   192.168.4.2     2 msec    0 msec    0 msec   

Пинги проходят, а через traceroute видим, что пакет сначала попадает на Router1, а дальше маршрутизируется на Router2.
То есть видно очевидное преимущество динамического протокола маршрутизации над статическими. При падении линка и наличии резервного пути, топология сама перестроилась. На сегодняшний день мало кто использует данный протокол. И на это есть множество причин. Одна из них — это количество транзитных маршрутов. Вдобавок ко всему — это время сходимости. По умолчанию все маршрутизаторы отправляют друг другу апдейты каждые 30 секунд. Если обновление не приходит в течении 180 секунд, маршрут помечается, как Invalid. А как время простоя доходит до 240 секунд, он удаляется. Конечно таймеры можно подкрутить. Но проблема еще в том, что в большой сети, при наличии проблемы где-нибудь по середине, апдейт с одного конца до другого может просто-напросто не дойти. Хотя он доступен. Есть еще одна проблема. RIP хранит только лучший маршрут. Поэтому когда отключился линк, маршрут пропал и резервного пути не было. А значит, пока никто из соседей не проанонсирует подсеть, она будет недоступной. Это очень ощутимо для сетей, в которых простой стоит дорого. В связи с этим были придуманы протоколы, у которых время сходимости выше и есть резервные пути. О них и поговорим. Хочу также отметить, что RIP — протокол не плохой (уж явно лучше, чем использование только статических маршрутов в растущей сети). Поэтому изучение лучше начать с него. Таким образом концепция динамической маршрутизации уляжется лучше. Да что тут говорить, если Cisco сначала убрала RIP из своих экзаменов, а теперь снова включила.

Ссылка на скачивание.

Теперь перейдем к EIGRP. Если RIP уже давно является открытым протоколом, то EIGRP был проприетарным и работал только на устройствах Cisco. Но в 2016 году Cisco решила все же открыть его, оставив авторство за собой. Ссылка на RFC7868.
Cisco называет его гибридным (имея в виду, что он взял что-то от Distance-Vector, а что-то от Link-State). В отличии от RIP он работает более «умно». В том плане, что у него есть резервные маршруты и он «хранит некую топологию сети» (хотя это верно очень частично).
Оперирует он 3-мя таблицами:

1) EIGRP Neighbor Table: Здесь представлены все напрямую соединенные соседи (то есть кто Next-Hop и с какого интерфейса к нему добраться).

2) EIGRP Topology Table: Здесь представлены все изученные маршруты от соседей (с точкой назначения и метрикой)

3) Global Routing Table: Общая для всех таблица и сюда попадают лучшие маршруты из предыдущей таблицы.

Соберем топологию и запустим на ней EIGRP. Попутно буду рассказывать, что происходит, чтобы совместить минимум теории с максимумом практики.
Топологию возьмем ту же, что и с RIP. На ней настроены все IP-адреса, подняты интерфейсы, но не запущен протокол маршрутизации.

Router0:

Router0#show running-config
Building configuration…

Current configuration: 635 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router0
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.1.1.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.3.1 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Router1

Router1#show running-config
Building configuration…

Current configuration: 635 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router1
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.2.2.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.1.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.4.1 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Router2

Router2#show running-config
Building configuration…

Current configuration: 635 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router2
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.3.3.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.3.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.4.2 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Сейчас в маршрутных таблицах роутеров только Connected подсети.
Переходим в настройки EIGRP.

Router0:

router eigrp 1 - номер автономной системы (должен совпадать на всех устройствах)
 network 10.1.1.0 0.0.0.255
 network 192.168.1.0 0.0.0.255
 network 192.168.3.0 0.0.0.255
 no auto-summary

Router1:

router eigrp 1 - номер автономной системы (должен совпадать на всех устройствах)
 network 10.2.2.0 0.0.0.255
 network 192.168.1.0 0.0.0.255
 network 192.168.4.0 0.0.0.255
 no auto-summary

Router2:

router eigrp 1 - номер автономной системы (должен совпадать на всех устройствах)
 network 10.3.3.0 0.0.0.255
 network 192.168.3.0 0.0.0.255
 network 192.168.4.0 0.0.0.255
 no auto-summary

Как описал выше, при включении EIGRP, ему присваивается номер AS. И он должен совпадать на всех соседях. В настройках анонса сети теперь добавляется wildcard маска. Если не вдаваться в подробности — это обратная запись маски (т.е. 0.0.0.255 — это 255.255.255.0). И отключение автосуммирования (наследие классовых сетей).

В итоге видим следующую картину:

Посмотрим, что сгенерировал Router0:

Видим кучу полей и попробуем разобраться, что в них. Мы помним, что RIP был не самым надежным вариантом. Он не понимал какой номер пакета, не было механизма отслеживания, подтверждения и прочего. Да и плюс нижестоящий протокол был UDP, который тоже не имеет механизма надежности. EIGRP вообще работает сразу поверх IP (не используя механизмы транспортного уровня). Поэтому все механизмы по отслеживанию ложатся на его поля.
Из важного: появились флаги, SEQ. NUM (номер отправляемого пакета), ACK.NUM (подтверждение на принятый пакет), номер автономной системы (заданный при создании), и параметры K. Вот тут остановлюсь. В RIP метрика считалась тривиально. Пакет пришел, добавляю единицу и передаю дальше. В EIGRP метрика считается исходя из K значений:

1) K1 — bandwidth (или пропускная способность)
2) K2 — load (загруженность)
3) K3 — delay (задержка)
4) K4 — reliability (надежность)
5) K5 — MTU (Maximum Transmission Unit).

Но как правило, при расчете используются только K1 и K3.
Формула таким образом выглядит:

Metric = (K1 * bandwidth) + [(K2 * bandwidth) / (256 - load)] + (K3 * delay)

.
Запоминать ее наизусть не надо. Просто важно понимать, как происходит расчет метрики.
Вот, что происходит, когда пакет доходит до Router0:

Router0(config)#
%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 192.168.1.2 (FastEthernet0/0) is up: new adjacency

%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 192.168.3.2 (FastEthernet0/1) is up: new adjacency

К сожалению CPT наглухо тормозит от количества пакетов, поэтому покажу, что происходит в непосредственно таблицах Router0 (в остальных будет аналогично. Поэтому покажу на одном). А после подробно покажу процесс установления соседства в режиме дебага между двумя маршрутизаторами:

1) Neighbor Table:

Router0#show ip eigrp neighbors 
IP-EIGRP neighbors for process 1
H   Address         Interface      Hold Uptime    SRTT   RTO   Q   Seq
                                   (sec)          (ms)        Cnt  Num
0   192.168.1.2     Fa0/0          11   00:00:41  40     1000  0   42
1   192.168.3.2     Fa0/1          10   00:00:41  40     1000  0   38

Из важного. Здесь показан сосед, интерфейс (за которым он находится), hold (таймер, по истечении которого, произойдет разрыв соседства. При получении пакета от соседа, он повышается), uptime (как долго живет соседство), SRTT (время между отправкой и подтверждением), RTO (интервал между отправкой) и номер пакета.

2) Router0#show ip eigrp topology

IP-EIGRP Topology Table for AS 1/ID(10.1.1.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 10.1.1.0/24, 1 successors, FD is 128256
         via Connected, Loopback1
P 10.2.2.0/24, 1 successors, FD is 156160
         via 192.168.1.2 (156160/128256), FastEthernet0/0
P 10.3.3.0/24, 1 successors, FD is 156160
         via 192.168.3.2 (156160/128256), FastEthernet0/1
P 192.168.1.0/24, 1 successors, FD is 28160
         via Connected, FastEthernet0/0
P 192.168.3.0/24, 1 successors, FD is 28160
         via Connected, FastEthernet0/1
P 192.168.4.0/24, 2 successors, FD is 30720
         via 192.168.3.2 (30720/28160), FastEthernet0/1
         via 192.168.1.2 (30720/28160), FastEthernet0/0

Тут все просто. Если все хорошо с полученным маршрутом, то он становится Passive. О других полях и их значениях расскажу чуть позже. Сейчас достаточно того, что в данной таблице все хорошо. Из нового — вводится понятие Successor. Successor-ом выбирается тот, у кого наименьшая стоимость до конкретной подсети. Сейчас на каждый маршрут по одному Successor-у и только на маршрут 192.168.4.0 их два. Причем они оба выбраны Successor-ами из за одинаковой метрики (следовательно будет работать балансировка). Теперь обращу внимание на странные числа у каждого Successor-а.
EIGRP при расчете метрики оперирует 2-мя понятиями: Advertised Distance и Feasible Distance. Оба рассчитываются той страшной формулой:

1) Advertised Distance — это анонс стоимости от соседа. То есть сколько стоит от него (соседа) и до точки назначения.
2) Feasible Distance — это стоимость от самого роутера до точки назначения. То есть — это Adverticed Distance + стоимость линка до соседа.

Возьмем для примера запись от маршрута 10.2.2.0:

P 10.2.2.0/24, 1 successors, FD is 156160
         via 192.168.1.2 (156160/128256), FastEthernet0/0

Число 128256 — это Advertised Distance, а 156160 — это Feasible Distance.
Соответственно, чем меньше Feasible Distance, тем выгоднее маршрут и такой сосед объявляется Successor-ом. После записи о количестве successors, всегда пишется какая FD была выбрана.
На текущий момент он работает приблизительно также, как и RIP. Только почему то метрика стала сложнее и добавилось больше таблиц. Но вот у EIGRP есть несколько фокусов в кармане. Один из них — это Feasible Successor (не путать с Feasible Distance). Это как раз тот самый резервный путь на случай отказа Successor. Сейчас у нас нет резервного пути (например до маршрута 10.2.2.0). Если падает 192.168.1.2, этот маршрут теряется до момента, пока о нем не расскажет другой сосед. Но мы прекрасно знаем, что о нем может рассказать Router2 (пусть и с худшей метрикой). Но EIGRP все же основан на неких правилах, что не позволяет ему так сделать. А правило заключается в следующем:

Advertised distance of feasible successor < Feasible distance of successor

.
То есть стоимость анонсируемая от Feasible Successor (потенциально backup-роутера) должна быть меньше, чем Feasible Distance Successor (то есть полная стоимость через основного).
Звучит тяжело, но если проще. Взять тот же маршрут 10.2.2.0. Через него FD = 156160. Значит AD от Feasible Successor должна принять любое число меньшее 156160. Причем не важно сколько стоит линк от текущего роутера до соседа (хоть 1000000). Главное, чтобы backup-сосед анонсировал с меньшей метрикой, чем successor. Это правило используется для предотвращения петель.
Чтобы понять, как это работает, внесем изменения в топологию.
Сейчас на Router0 таблица топологии выглядит следующим образом:

Router0#show ip eigrp topology 
IP-EIGRP Topology Table for AS 1/ID(10.1.1.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 10.1.1.0/24, 1 successors, FD is 128256
         via Connected, Loopback1
P 10.2.2.0/24, 1 successors, FD is 156160
         via 192.168.1.2 (156160/128256), FastEthernet0/0
P 10.3.3.0/24, 1 successors, FD is 156160
         via 192.168.3.2 (156160/128256), FastEthernet0/1
P 192.168.1.0/24, 1 successors, FD is 28160
         via Connected, FastEthernet0/0
P 192.168.3.0/24, 1 successors, FD is 28160
         via Connected, FastEthernet0/1
P 192.168.4.0/24, 2 successors, FD is 30720
         via 192.168.1.2 (30720/28160), FastEthernet0/0
         via 192.168.3.2 (30720/28160), FastEthernet0/1

Маршрут до 10.2.2.0/24 доступен через 192.168.1.2, что верно, так как Router1 его породил и так добраться быстрее всего. Поэтому Router2 не сможет проанонсировать лучше, так как его AD будет всегда выше.
Теперь переведем скорость интерфейсов между Router0 и Router1 на 10Мбит/с. Таким образом ухудшим канал, и внесем изменения в пересчет топологии.

Router0:

interface FastEthernet0/0
 ip address 192.168.1.1 255.255.255.0
 duplex auto
 speed 10

Router1:

interface FastEthernet0/0
 ip address 192.168.1.2 255.255.255.0
 duplex auto
 speed 10

Таким образом на Router0:

Router0#show ip eigrp topology 
IP-EIGRP Topology Table for AS 1/ID(10.1.1.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 10.1.1.0/24, 1 successors, FD is 128256
         via Connected, Loopback1
P 10.2.2.0/24, 1 successors, FD is 158720
         via 192.168.3.2 (158720/156160), FastEthernet0/1
         via 192.168.1.2 (179200/128256), FastEthernet0/0
P 10.3.3.0/24, 1 successors, FD is 156160
         via 192.168.3.2 (156160/128256), FastEthernet0/1
P 192.168.1.0/24, 1 successors, FD is 51200
         via Connected, FastEthernet0/0
P 192.168.3.0/24, 1 successors, FD is 28160
         via Connected, FastEthernet0/1
P 192.168.4.0/24, 1 successors, FD is 30720
         via 192.168.3.2 (30720/28160), FastEthernet0/1
         via 192.168.1.2 (53760/28160), FastEthernet0/0

Видим, что до 10.2.2.0 теперь 2 пути, но Successor выбирается тот, у кого FD выгоднее. А выгоднее, через 192.168.3.2 (то есть Router2), так как у него скорость интерфейсов 100Мбит/с, хоть и преодолеть придется 2 хопа. А теперь обратим внимание, почему попали 2 записи в этот маршрут.

  via 192.168.3.2 (158720/156160), FastEthernet0/1
         via 192.168.1.2 (179200/128256), FastEthernet0/0

А потому что AD у 192.168.1.2 лучше, чем FD у 192.168.3.2 (128256<158720).
И в таблицу маршрутизации попадет маршрут через выбранного Successor-а, то есть 192.168.3.2:

Router0#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 3 subnets
C       10.1.1.0 is directly connected, Loopback1
D       10.2.2.0 [90/158720] via 192.168.3.2, 00:14:49, FastEthernet0/1
D       10.3.3.0 [90/156160] via 192.168.3.2, 00:59:42, FastEthernet0/1
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.3.0/24 is directly connected, FastEthernet0/1
D    192.168.4.0/24 [90/30720] via 192.168.3.2, 00:59:42, FastEthernet0/1

Для теста отказоустойчивости, запустим пинг на 1000 пакетов и в этот момент поотключаем основной канал через 192.168.3.2:

Router0#ping 
Protocol [ip]: 
Target IP address: 10.2.2.1
Repeat count [5]: 1000
Datagram size [100]: 
Timeout in seconds [2]: 
Extended commands [n]: 
Sweep range of sizes [n]: 
Type escape sequence to abort.
Sending 1000, 100-byte ICMP Echos to 10.2.2.1, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down

%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 192.168.3.2 (FastEthernet0/1) is down: interface down
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up

%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 192.168.3.2 (FastEthernet0/1) is up: new adjacency
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (403/403), round-trip min/avg/max = 0/0/4 ms

Как видно, линк падал, но пакеты не прекращали ходить. Тем самым резервирование отрабатывало. Это одна из фишек EIGRP.
Вторая фишка — это неэквивалентная балансировка. Как помним, обычная балансировка работает, если 2 маршрута приходят с абсолютно одинаковой метрикой. EIGRP же умеет балансировать маршрутами с разной метрикой.
Проверим на существующей топологии. На Router0 имеем следующее:

Topology Table:

Router0#show ip eigrp topology 
IP-EIGRP Topology Table for AS 1/ID(10.1.1.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 10.1.1.0/24, 1 successors, FD is 128256
         via Connected, Loopback1
P 10.2.2.0/24, 1 successors, FD is 158720
         via 192.168.3.2 (158720/156160), FastEthernet0/1
         via 192.168.1.2 (179200/128256), FastEthernet0/0
P 10.3.3.0/24, 1 successors, FD is 156160
         via 192.168.3.2 (156160/128256), FastEthernet0/1
P 192.168.1.0/24, 1 successors, FD is 51200
         via Connected, FastEthernet0/0
P 192.168.3.0/24, 1 successors, FD is 28160
         via Connected, FastEthernet0/1
P 192.168.4.0/24, 1 successors, FD is 30720
         via 192.168.3.2 (30720/28160), FastEthernet0/1
         via 192.168.1.2 (53760/28160), FastEthernet0/0

Route Table:

Router0#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 3 subnets
C       10.1.1.0 is directly connected, Loopback1
D       10.2.2.0 [90/158720] via 192.168.3.2, 00:02:57, FastEthernet0/1
D       10.3.3.0 [90/156160] via 192.168.3.2, 00:04:45, FastEthernet0/1
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.3.0/24 is directly connected, FastEthernet0/1
D    192.168.4.0/24 [90/30720] via 192.168.3.2, 00:04:45, FastEthernet0/1

То есть сейчас мы имеем два маршрута до 10.2.2.0/24, но используем всего один (наилучший, исходя из метрики). Чтобы правило заработало, нужно изменить множитель метрики (или с англ. variance).
Правило его работы следующее:

 FD Feasible Successor < FD Successor

. Иначе говоря стоимость полного пути запасного маршрута должна быть «искусственно» меньше основного.
Сейчас ситуация следующая:

P 10.2.2.0/24, 1 successors, FD is 158720
         via 192.168.3.2 (158720/156160), FastEthernet0/1
         via 192.168.1.2 (179200/128256), FastEthernet0/0

Значит нужно метрику 158720 умножить настолько, чтобы она стала больше 179200. Умножать можно только на целое число, поэтому выберем 2.

Router0(config)#router eigrp 1
Router0(config-router)#variance 2
%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 192.168.1.2 (FastEthernet0/0) is up: new adjacency

%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 192.168.3.2 (FastEthernet0/1) is up: new adjacency

В итоге имеем:

Router0#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 3 subnets
C       10.1.1.0 is directly connected, Loopback1
D       10.2.2.0 [90/158720] via 192.168.3.2, 00:02:31, FastEthernet0/1
                 [90/179200] via 192.168.1.2, 00:02:31, FastEthernet0/0
D       10.3.3.0 [90/156160] via 192.168.3.2, 00:02:31, FastEthernet0/1
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.3.0/24 is directly connected, FastEthernet0/1
D    192.168.4.0/24 [90/30720] via 192.168.3.2, 00:02:31, FastEthernet0/1
                    [90/53760] via 192.168.1.2, 00:02:31, FastEthernet0/0

Оба маршрута попали в таблицу маршрутизации. Теперь проверим, что балансировка действительно работает:

Router0#traceroute 10.2.2.1
Type escape sequence to abort.
Tracing the route to 10.2.2.1

  1   192.168.3.2     0 msec    0 msec    0 msec    
Router0#traceroute 10.2.2.1
Type escape sequence to abort.
Tracing the route to 10.2.2.1

  1   192.168.1.2     0 msec    0 msec    0 msec  

Балансировка работает.
Ссылка на собранную EIGRP топологию.
И ссылка на топологию с измененной скоростью и балансировкой. Если EIGRP не совсем уложился в голове (а это нормальное явление, если изучаете его впервые), то лучше самому собрать топологию, ориентируясь на статью.

Теперь рассмотрим, как происходит соседство в режиме дебага. Если вы дошли сюда с самой первой статьи и принцип хождения пакетов понятен, то лучше уже учиться со включенным дебагом. В рабочих условиях не будет такого инструмента, чтобы красиво смотреть на пакеты и придется пользоваться другими методами. К счастью, если это циска — то решение с дебагом отличное. Единственное — важно включать не все режимы, а только необходимые. Можно, конечно, отзеркалировать порт и просниффать через wireshark. Но не всегда есть физический доступ к железке.

Итак, топология:

Я просто удалил Router2, отключил интерфейсы, которые были соединены с ним и удалил анонсы маршрутов из EIGRP.

Теперь включаю дебаг на Router0 и наблюдаю:

Router0#debug eigrp fsm 
EIGRP FSM Events/Actions debugging is on
DUAL: rcvupdate: 192.168.1.0/24 via Connected metric 28160/0 -- connected маршрут. AD=0 (так как ему он пришел не от соседа. А вот его цена интерфейса 28160.

DUAL: Find FS for dest: 192.168.1.0/24. FD is 4294967295, RD is 4294967295 

DUAL: RT installed 192.168.1.0/24 via 0.0.0.0 -- маршрут 192.168.1.0/24 заносится в таблицу, как connected (то есть на себя).
DUAL: Send update about 192.168.1.0/24.  Reason: metric chg -- отправляет измененную метрику.

DUAL: Send update about 192.168.1.0/24.  Reason: new if -- отправляет информацию, что появился новый интерфейс

DUAL: rcvupdate: 10.1.1.0/24 via Connected metric 128256/0 -- та же история с Loopback

DUAL: Find FS for dest: 10.1.1.0/24. FD is 128256, RD is 0

DUAL: Send update about 10.1.1.0/24.  Reason: new if

%DUAL-5-NBRCHANGE: IP-EIGRP 1: Neighbor 192.168.1.2 (FastEthernet0/0) is up: new adjacency

DUAL: rcvupdate: 10.2.2.0/24 via 192.168.1.2 metric 156160/128256 - получает маршрут с AD и накладывает свою метрику.

DUAL: Find FS for dest: 10.2.2.0/24. FD is 4294967295, RD is 4294967295

DUAL: RT installed 10.2.2.0/24 via 192.168.1.2 -- устанавливает маршрут 10.2.2.0/24 через соседа 192.168.1.2
DUAL: Send update about 10.2.2.0/24.  Reason: metric chg

DUAL: rcvupdate: 10.1.1.0/24 via 192.168.1.2 metric 4294967295/4294967295

DUAL: Find FS for dest: 10.1.1.0/24. FD is 128256, RD is 0

И еще, что стоит упомянуть — это типы EIGRP сообщений. Их 5:
1) Hello — эти пакеты отправляются на мультикастовый адрес 224.0.0.10 ближайшим соседям. Подтверждения в ответ не требуют. Нужны только для идентификации и своего рода keepalive механизмом.
2) Update — содержат маршрутную информацию. Как только обнаруживаются соседи, маршрутизатор сразу отправляет им данный пакет. После чего соседи заполняют таблицу EIGRP топологии. Может отправляться по мультикастовому адресу или юникастовому. Эти пакеты требуют ответа.
3) Query — пакет запроса потерянного маршрута. То есть когда маршрутизатор теряет запись об этом маршруте и не имеет запасного пути к нему. Может отправляться одному через unicast или группе соседей через multicast.
4) Reply — ответ на Query-запрос. Данный пакет всегда отправляется на unicast-адрес (то есть тому, кто его запросил). Требует подтверждения.
5) ACK — используется для подтверждения Update, Query и Reply пакетов. Всегда отправляется на unicast-адрес.

Помните топологию EIGRP с множеством кодов? Так вот эти коды и отображают состояние и отправляемое сообщение на каждый из маршрутов. Вот так в принципе работает EIGRP.

Переходим к последнему протоколу — это OSPF (англ. Open Shortest Path First). Относится он к группе link state или протокол состояния канала. Если RIP с EIGRP работали более-менее похоже, то OSPF работает совершенно по другому. Если дистанционно-векторные протоколы сравнивались с дорожными указателями, то протоколы состояния канала можно сравнить с дорожным навигатором. В этом как раз и отличие. OSPF сначала строит карту сети, а потом выбирает лучший путь. Да, таким образом он более ресурсозатратный протокол, нежели его коллеги, но на текущий момент это не столь критично, как было лет 25-30 назад.

Итак. Почему Link-State:
1) Link — интерфейс маршрутизатора.
2) State — его состояние и как он подключен к соседям.

Оперирует они:
1) LSA (от англ. link-state advertisements) — это как раз таки объявления, которыми они обмениваются между собой. Ниже их разберем.
2) LSDB (от англ. link-state database) — как раз эти LSA формируют базу. Или ту самую карту сети.

Тут встает вопрос. А хорошо ли то, что каждый маршрутизатор обменивается своей информацией с каждым соседом?!
Представим топологию:

Что если каждый маршрутизатор будет отсылать маршрут каждому из своих соседей?! Мы получим огромный флуд трафика. При этом один и тот же анонс будет зеркалироваться… Подумали в свое время инженеры и решили, что эффективнее держать одного маршрутизатора, которому все остальные будут отсылать уведомления, а он будет ответственным за весь флуд. Тем самым смысл тот же, только трафика будет меньше. А чтобы не случилось ситуации, когда «главный» умирает и вся сеть останавливается, придумали держать запасного маршрутизатора, который, в случае «смерти» основного, возьмет его обязанности на себя.
Маршрутизатор, который берет роль основного на себя, называется DR (от англ. Designated Router), а запасной маршрутизатор называется BDR (от англ. Backup Designated Router).
Такая логика работает автоматически в сетях с множественным доступом, которой и является Ethernet. Если у вас сеть точка-точка (пусть даже Ethernet и соединены друг с другом напрямую), то DR и BDR выбирать не обязательно, так как всего 2 участника (но в Ethernet они все же будут выбраны). Но никто не мешает вам изменить логику OSPF и прописать каждого соседа вручную. Только зачем?)
Так вот после того, как LSDB заполнена, каждый маршрутизатор начинает высчитывать самый выгодный маршрут до каждой подсети. Использует он для этого алгоритм SPF (от англ. Shortest Path First). Лучший подсчитанный маршрут попадает в таблицу маршрутизации.
Давайте перейдем к практике и по ходу разбираться.
Есть схема:

Схема самая простая. Единственное, что новое — это очерчена зона. Я специально ее нарисовал. Дело в том, что OSPF обязательно нужно указывать зону для которой включается протокол. Это сделано для того, чтобы снизить нагрузку в расчетах пути. Как я говорил ранее, протокол появился достаточно давно и для того времени производительность играла большую роль. Сейчас тоже принято делить на зоны. Но сейчас это делается для снижения не нужного трафика.
Зоной по-умолчанию всегда выбирается нулевая. Ее еще называют backbone зоной и не с проста. Если у вас в сети много различных зон, то соединены они должны быть через нулевую. То есть нельзя перейти из 11-ой в 25-ую зону напрямую. Обязательно нужно пройти через нулевую, а из нулевой проследовать в требуемую. Единственный случай, когда можно пройти из зоны в зоны, миновав нулевую — это использование Virtual Link. Почитать о ней можно здесь.
Сейчас у нас 2 маршрутизатора в нулевой зоне. На маршрутизаторах настроены IP-адреса и создан Loopback. Ниже под спойлерами конфиги.

Router0

Router0#show running-config
Building configuration…

Current configuration: 622 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router0
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.1.1.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
shutdown
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Router1

Router1#show running-config
Building configuration…

Current configuration: 622 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router1
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.2.2.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.1.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
shutdown
!
interface Vlan1
no ip address
shutdown
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Теперь включаю OSPF для интерфейсов FastEthernet0/0 и Loopback1 обоих роутеров:

router ospf 1
 network 192.168.1.0 0.0.0.255 area 0
 network 10.1.1.0 0.0.0.255 area 0
!

router ospf 1
 network 10.2.2.0 0.0.0.255 area 0
 network 192.168.1.0 0.0.0.255 area 0
!

Конфигурация простая. Указывается подсеть, wildcard маска и номер зоны. После видим сообщения:

На Router0:

Router0#
00:56:22: %OSPF-5-ADJCHG: Process 1, Nbr 10.2.2.1 on FastEthernet0/0 from LOADING to FULL, Loading Done

На Router1:

Router1(config-router)#
00:56:21: %OSPF-5-ADJCHG: Process 1, Nbr 10.1.1.1 on FastEthernet0/0 from LOADING to FULL, Loading Done

Соседство, судя по сообщению установилось. Но, если обратить внимание, то почему то соседство выбрано между адресами из Loopback интерфейсов. Это на самом деле не адрес, а идентификатор или Router ID. Если в самом процессе он явно не указывается, то выбирается автоматически. Если настроены Loopback интерфейсы, то выбирается наибольший IP-адрес из них. Если Loopback не настроены, то выбирается наибольший IP-адрес из обычного физического интерфейса. У нас Loopback был настроен, а значит он и будет выбран RID.
Так как процессы на обоих роутерах одинаковые, покажу на примере Router0:
Так как соседство установлено, посмотрим список соседей.

Router0#show ip ospf neighbor 


Neighbor ID     Pri   State           Dead Time   Address         Interface
10.2.2.1          1   FULL/BDR        00:00:38    192.168.1.2     FastEthernet0/0

Видим 10.2.2.1 (Router1). Статус Full (чуть ниже расскажу и об этом), роль BDR (то есть Router0 выбран DR). Его физический IP-адрес и с какого интерфейса доступен.
Теперь посмотрим на базу данных OSPF:

Router0#show ip ospf database 
            OSPF Router with ID (10.1.1.1) (Process ID 1)

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
10.1.1.1        10.1.1.1        259         0x80000004 0x0047fb 2
10.2.2.1        10.2.2.1        259         0x80000004 0x00b586 2

                Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.1.1     10.1.1.1        259         0x80000002 0x00e9ca

Подробное ее содержание изучается в курсе CCNP Route, поэтому расскажу вкратце. Есть несколько типов LSA-сообщений. В нашей схеме используются только Type1 (Router) и Type2(Network). Первое генерится каждым маршрутизатором в пределах зоны и дальше зоны не уходит. Второй тип генерируется DR-ом и содержит адрес DR и инфу о всех маршрутизаторах в зоне.
Например, так выглядит Type1 с консоли Router0:

Router0#show ip ospf database router 

            OSPF Router with ID (10.1.1.1) (Process ID 1)

                Router Link States (Area 0)

  LS age: 665
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 10.1.1.1
  Advertising Router: 10.1.1.1
  LS Seq Number: 80000004
  Checksum: 0x47fb
  Length: 48
  Number of Links: 2

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 192.168.1.1
     (Link Data) Router Interface address: 192.168.1.1
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 10.1.1.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

  LS age: 665
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 10.2.2.1
  Advertising Router: 10.2.2.1
  LS Seq Number: 80000004
  Checksum: 0xb586
  Length: 48
  Number of Links: 2

    Link connected to: a Stub Network
     (Link ID) Network/subnet number: 10.2.2.1
     (Link Data) Network Mask: 255.255.255.255
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 192.168.1.1
     (Link Data) Router Interface address: 192.168.1.2
      Number of TOS metrics: 0
       TOS 0 Metrics: 1

То есть LSA каждого маршрутизатора, в которых он сообщает о своих сетях.

А вот так Type2:

Router0#show ip ospf database network 

            OSPF Router with ID (10.1.1.1) (Process ID 1)

                Net Link States (Area 0)

  Routing Bit Set on this LSA
  LS age: 686
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 192.168.1.1  (address of Designated Router)
  Advertising Router: 10.1.1.1
  LS Seq Number: 80000002
  Checksum: 0xe9ca
  Length: 32
  Network Mask: /24
        Attached Router: 10.2.2.1
        Attached Router: 10.1.1.1

То есть как раз адрес DR (кому отправлять свои LSA и список маршрутизаторов в зоне).
И теперь можно посмотреть на таблицу маршрутизации:

Router0#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       10.1.1.0/24 is directly connected, Loopback1
O       10.2.2.1/32 [110/2] via 192.168.1.2, 00:48:02, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0

Видим букву O (это значит, что маршрут получен из той же зоны, что и данный маршрутизатор). Можно заметить, что в таблицу записан с маской /32. Это потому что адрес из Loopback интерфейса и обычно такие адреса служат для всяких RID и прочих идентификаторов. Это не подсеть, а значит нет смысла анонсировать с тем же префиксом, что и сам интерфейс. Но такое поведение работает не на всех цисках. Поэтому тут надо быть внимательнее. Рядом видим привычную административную дистанцию (у циски это 110, но можно поменять) и метрику, которая равна 2-ум. Здесь метрика считается проще, чем у EIGRP. Формула:

Cost = Reference Bandwidth / Interface Bandwidth

.
Reference Bandwidth — это некое заданное число (здесь по-умолчанию 100). Оно прошито внутри логики и меняется командой auto-cost reference-bandwidth число в настройках OSPF процесса.
А вот Interface Bandwidth берется ровно такое, какая пропускная способность у интерфейса. На нашем интерфейсе это 100, поэтому метрика = 1. Так как Router1 анонсирует уже с метрикой 1, то накладывая свою стоимость в 1-цу, получаем 2.
OSPF для меня в свое время менялся в сложности понимания. Сначала казалось все легко, включил и все работает. Дальше, когда начинаешь углубляться в структуру LSA и как происходит формирование и расчет, теряешься. А после понимания, он снова становится легким. Его понимание приходит только после практики. Поэтому можете потренироваться на этой топологии. Ссылка на нее.
Пару слов по балансировке. Здесь она строго эквивалентная. Нельзя делать, как в EIGRP. Всего в кандидатах может быть до 16 маршрутов, но в таблицу попадут только 4.
Если предыдущая схема понятна, то двигаемся дальше. Добавим еще один маршрутизатор и соединим их, при помощи коммутатора:

Я взял за основу предыдущую, адреса все те же самые, включен OSPF. На Router2 также включен OSPF и настроены адреса согласно схеме. Теперь смотрим, что произошло со стороны того же Router0. Ввожу команду просмотра соседей:

Router0#show ip ospf neighbor 


Neighbor ID     Pri   State           Dead Time   Address         Interface
10.2.2.1          1   FULL/BDR        00:00:37    192.168.1.2     FastEthernet0/0
10.3.3.1          1   FULL/DROTHER    00:00:36    192.168.1.3     FastEthernet0/0

И вижу нового соседа, но с пометкой DROTHER. Это значит, что маршрутизатор Router2 (новый) не является DR или BDR. Обратите внимание, что DR (Router0) установил Full соседство со всеми соседями.
Ввожу нового игрока на поле — Router3:

Единственное, что у него настроено — это IP-адрес 192.168.1.4/24 на FastEthernet 0/0 и включен OSPF. Он тут для наглядности.
Со стороны Router0:

Router0#show ip ospf neighbor 


Neighbor ID     Pri   State           Dead Time   Address         Interface
10.2.2.1          1   FULL/BDR        00:00:31    192.168.1.2     FastEthernet0/0
10.3.3.1          1   FULL/DROTHER    00:00:31    192.168.1.3     FastEthernet0/0
192.168.1.4       1   FULL/DROTHER    00:00:30    192.168.1.4     FastEthernet0/0

Так как нет адреса на Loopback интерфейсе и не задан вручную RID, выбран адрес с физического интерфейса. А теперь переходим к Router2 и смотрим на его список соседей:

Router2#show ip ospf neighbor 


Neighbor ID     Pri   State           Dead Time   Address         Interface
10.2.2.1          1   FULL/BDR        00:00:32    192.168.1.2     FastEthernet0/0
10.1.1.1          1   FULL/DR         00:00:32    192.168.1.1     FastEthernet0/0
192.168.1.4       1   2WAY/DROTHER    00:00:31    192.168.1.4     FastEthernet0/0

Видим, что с ним у него не Full отношения, а 2Way. Почему не Full? На этом остановлюсь и расскажу про процесс установления соседства. В хорошо работающей сети процесс соседства происходит настолько быстро, что все состояния вы не успеете увидеть. Я только опишу их, для общего понимания:
1) Down — это самый старт, когда маршрутизатор еще не предпринял попытку соседства и ничего в ответ не получает.
2) Init — маршрутизатор переходит в это состояние после отправки Hello-сообщения, до момента получения ответа.
3) 2-WAY — маршрутизатор переходит в это состояние, если получает ответный Hello и видит внутри него свой RID. Это как раз момент установления соседства. В сетях множественного доступа (типа Ethernet) это состояние конечное между «не DR/BDR» маршрутизаторами. Как раз в этом состоянии осталось соседство между Router2 и Router3.
4) ExStart — это состояние выбора DR/BDR. Маршрутизатор с наилучшим RID берет на себя эту роль. Он начинает первым процесс обновления LSDB у всех соседей.
5) Exсhange — состояние, в котором маршрутизаторы отправляют друг другу состояние своих LSDB.
6) Loading — если маршрутизатор видит, что в присланном сообщении есть подсеть, о которой он не знает, он запрашивает информацию о ней. И вот пока запрашиваемая инфа не дойдет до него, он будет висеть в этом состоянии.
7) Full — конечное состояние. Наступает оно в том случае, когда LSDB между соседями синхронизировано.
Стоит упомянуть, что в OSPF есть таймеры соседства. Нужно для того, чтобы узнать жив ли сосед или пора исключить его. Поэтому каждые 10 секунд маршрутизаторы отсылают друг другу Hello-пакеты, чтобы подтвердить свое существование. Если в течении 40 секунд от соседа ничего не поступало, соседство с ним разрывается.
Посмотреть на таймеры и другие параметры интерфейса, на котором включен OSPF, можно командой show ip ospf interface:

Router0#show ip ospf interface 

Loopback1 is up, line protocol is up
  Internet address is 10.1.1.1/24, Area 0
  Process ID 1, Router ID 10.1.1.1, Network Type LOOPBACK, Cost: 1
  Loopback interface is treated as a stub Host
FastEthernet0/0 is up, line protocol is up
  Internet address is 192.168.1.1/24, Area 0
  Process ID 1, Router ID 10.1.1.1, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1
  Designated Router (ID) 10.1.1.1, Interface address 192.168.1.1
  Backup Designated Router (ID) 10.2.2.1, Interface address 192.168.1.2
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    Hello due in 00:00:00
  Index 2/2, flood queue length 0
  Next 0x0(0)/0x0(0)
  Last flood scan length is 1, maximum is 1
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 3, Adjacent neighbor count is 3
    Adjacent with neighbor 10.2.2.1  (Backup Designated Router)
    Adjacent with neighbor 10.3.3.1
    Adjacent with neighbor 192.168.1.4
  Suppress hello for 0 neighbor(s)

Если интересно, как происходит весь процесс установления соседства, откройте топологию по ссылке. Переключитесь в режим симуляции и перезагрузите один из маршрутизаторов. Все сразу особого смысла нет. Скорее быстрее заглючит CPT, нежели получиться разобраться.

И последнее, что стоит рассмотреть из раздела OSPF — это Multiarea OSPF (или многозонный OSPF).

Теперь есть 3 маршрутизатора. Router0 находится в нулевой зоне, Router1 в 0-ой и 1-ой зоне и Router2 в 1-ой зоне. Конфигурация проста. Я оставлю ее под спойлерами:

Router0

Router0#show running-config
Building configuration…

Current configuration: 734 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router0
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.1.1.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.1.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
shutdown
!
interface Vlan1
no ip address
shutdown
!
router ospf 1
log-adjacency-changes
network 192.168.1.0 0.0.0.255 area 0
network 10.1.1.0 0.0.0.255 area 0
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Router1

Router1#show running-config
Building configuration…

Current configuration: 693 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router1
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface FastEthernet0/0
ip address 192.168.1.1 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
ip address 192.168.2.1 255.255.255.0
duplex auto
speed auto
!
interface Vlan1
no ip address
shutdown
!
router ospf 1
log-adjacency-changes
network 192.168.1.0 0.0.0.255 area 0
network 192.168.2.0 0.0.0.255 area 1
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Router2

Router2#show running-config
Building configuration…

Current configuration: 734 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router2
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
!
!
!
!
!
!
!
!
spanning-tree mode pvst
!
!
!
!
!
!
interface Loopback1
ip address 10.2.2.1 255.255.255.0
!
interface FastEthernet0/0
ip address 192.168.2.2 255.255.255.0
duplex auto
speed auto
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
shutdown
!
interface Vlan1
no ip address
shutdown
!
router ospf 1
log-adjacency-changes
network 192.168.2.0 0.0.0.255 area 1
network 10.2.2.0 0.0.0.255 area 1
!
ip classless
!
ip flow-export version 9
!
!
!
!
!
!
!
line con 0
!
line aux 0
!
line vty 0 4
login
!
!
!
end

Отличие от предыдущих схем только в том, что для Router1 и Router2 добавляется другой номер зоны, при включении.
Если посмотреть таблицу маршрутизации c Router0:

Router0#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       10.1.1.0/24 is directly connected, Loopback1
O IA    10.2.2.1/32 [110/3] via 192.168.1.1, 00:09:27, FastEthernet0/0
C    192.168.1.0/24 is directly connected, FastEthernet0/0
O IA 192.168.2.0/24 [110/2] via 192.168.1.1, 00:43:49, FastEthernet0/0

То добавились маршруты OIA (или OSPF inter area). То есть маршрут из другой зоны. Если посмотреть базу:

Router0#show ip ospf database 
            OSPF Router with ID (10.1.1.1) (Process ID 1)

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
10.1.1.1        10.1.1.1        861         0x80000006 0x00c679 2
192.168.2.1     192.168.2.1     861         0x80000006 0x00dbc3 1

                Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.1.1     192.168.2.1     953         0x80000002 0x009931

                Summary Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.2.0     192.168.2.1     947         0x80000003 0x00a7dc
10.2.2.1        192.168.2.1     851         0x80000004 0x00bc22

Здесь появился Summary LSA или Type3. Его генерирует маршрутизатор, который находится на границе двух зон. Такой маршрутизатор называют пограничным или ABR (от англ. Area Border Gateway).
Если посмотреть на него поглубже:

Router0#show ip ospf database  summary 

            OSPF Router with ID (10.1.1.1) (Process ID 1)

                Summary Net Link States (Area 0)

  LS age: 1146
  Options: (No TOS-capability, DC, Upward)
  LS Type: Summary Links(Network)
  Link State ID: 192.168.2.0 (summary Network Number)
  Advertising Router: 192.168.2.1
  LS Seq Number: 80000003
  Checksum: 0xa7dc
  Length: 28
  Network Mask: /24
        TOS: 0  Metric: 1

  LS age: 1050
  Options: (No TOS-capability, DC, Upward)
  LS Type: Summary Links(Network)
  Link State ID: 10.2.2.1 (summary Network Number)
  Advertising Router: 192.168.2.1
  LS Seq Number: 80000004
  Checksum: 0xbc22
  Length: 28
  Network Mask: /32
        TOS: 0  Metric: 2

То можно заметить, что анонсирует его 192.168.2.1 (это RID Router1).
Если же посмотреть на таблицу маршрутизации со стороны ABR (т.е. Router1):

Router1#show ip route 
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/32 is subnetted, 2 subnets
O       10.1.1.1 [110/2] via 192.168.1.2, 00:20:49, FastEthernet0/0
O       10.2.2.1 [110/2] via 192.168.2.2, 00:20:44, FastEthernet0/1
C    192.168.1.0/24 is directly connected, FastEthernet0/0
C    192.168.2.0/24 is directly connected, FastEthernet0/1

То для него все маршруты помечены O. Все потому что он находится в обеих зонах и для него они локальны.
А если посмотреть базу:

Router1#show ip ospf database 
            OSPF Router with ID (192.168.2.1) (Process ID 1)

                Router Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.2.1     192.168.2.1     1326        0x80000006 0x00dbc3 1
10.1.1.1        10.1.1.1        1326        0x80000006 0x00c679 2

                Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.1.1     192.168.2.1     1417        0x80000002 0x009931

                Summary Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.2.0     192.168.2.1     1412        0x80000003 0x00a7dc
10.2.2.1        192.168.2.1     1316        0x80000004 0x00bc22

                Router Link States (Area 1)

Link ID         ADV Router      Age         Seq#       Checksum Link count
192.168.2.1     192.168.2.1     1326        0x80000005 0x00f3aa 1
10.2.2.1        10.2.2.1        1326        0x80000005 0x006ccc 2

                Net Link States (Area 1)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.2.1     192.168.2.1     1371        0x80000002 0x0049d0

                Summary Net Link States (Area 1)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.1.0     192.168.2.1     1413        0x80000003 0x00b2d2
10.1.1.1        192.168.2.1     1322        0x80000005 0x00d10e

То тут их больше. Все потому, что у него представлены эти LSA на каждую зону, а также он генерирует Type3 в обе стороны. Для самостоятельного ознакомления лабу можно скачать по данной ссылке.

Таким образом OSPF можно делить на зоны. То есть маршрутизатор видит соседей в своей зоне и просчитывает лучший путь сам. А вот межзоннные маршруты (Type3) диктует ABR. Поэтому на границу чаще ставят производительные маршрутизаторы. На самом деле EIGRP и OSPF уж очень много всего умеют. И заслуживают отдельных статей. Более подробно они разбираются уже в топиках CCNP. Так что для основ достаточно.
В итоге мы разобрались с маршрутизацией и встает вопрос: что использовать? Однозначного ответа тут нет. Если у вас вся сеть построена на цисках, то можно выбирать EIGRP. Если у вас сеть мультивендорная, то тут однозначно OSPF. Да, циска вроде как открыла стандарт, но относительно старые железки (не циски) не получат поддержку этого протокола, да и не на всех новых его внедрят. Более того, могу сказать, что даже в сетях построенных исключительно на цисках, выбирают OSPF. Аргументируя это тем, что OSPF более гибок в настройке, нежели EIGRP. Да и нельзя быть уверенным, что в какой то момент придется ставить сетевое устройство другого вендора. А значит внедрение такого устройства пройдет безболезненно и без перенастройки всей сети.

Подводя итоги, можно сказать, что это самая долгая статья из всех, что я писал. Все потому, что писал я ее больше 2-х лет. Постоянно что-то стопорило ее написание, а когда садился, то не мог сконцентрироваться и написать больше 2-х предложений. Но теперь она написана и можно спокойно выдохнуть. Ее как раз не хватало для основ компьютерных сетей, ведь предыдущие статьи концентрировались в большинстве на L2 уровне. Столь длительное написание привело к тому, что циска уже меняет программу своего экзамена. А значит некоторые темы, которые я хотел далее осветить, уже не актуальны. Поэтому я уберу из содержания будущие темы и буду выкладывать статьи, исходя из актуальности.

Спасибо всем, кто ждал статью и интересовался.

В прошлой статье мы с вами обсудили процесс маршрутизации между сетями, подключенными к интерфейсами одного единственного маршрутизатора (рекомендую ознакомиться с ней), сегодня же мы разберем, как осуществляется маршрутизация между сетями, подключенными к разным маршрутизаторам, связанным между собой. Пока что мы не будим лезть в дебри протоколов динамической маршрутизации, а разберемся, как пользоваться статической маршрутизацией. В качестве примеров, для демонстрации настройки будим использовать маршрутизаторы фирмы Cisco,  доступные в Packet Tracer.

Как мы уже выяснили, если у нас всего один маршрутизатор, то нам достаточно всего лишь сконфигурировать его интерфейсы, и он сразу же будет выполнять маршрутизацию между сетями, подключенными к нему. Немного по иному обстоят дела, если в нашей сети есть несколько маршрутизаторов. Допустим, наша интерсеть сеть будет иметь следующий вид:

Объединение сетей с помощью маршрутизаторов

Как мы и обсуждали ранее сети, подключенные к интерфейсам одного маршрутизатора, будут видеть друг друга. Так сети «левого » маршрутизатора 192.168.1.0/24, 172.20.0.0/16 и 192.168.100.0/30 будут видеть друг друга. Аналогично обстоят дела с «правым» маршрутизатором. Но вот как будут обстоять дела с взаимодействием сетей данных маршрутизаторов между собой? Например, компьютеры сети 10.0.0.0/8 не будут доступны из сети 192.168.1.0/24.  Данный принцип, для всех сетей, проиллюстрирован на «жестком» рисунке ниже:

Карта доступности сетей

Почему же некоторые сети не видят друг друга. Все очень просто, соседние маршрутизаторы не содержат записей о сетях подключенных, только к другому маршрутизатору. Например, маршрутизатор «левый» не знает о существование сети 10.0.0.0/8, подключенной к «правому» маршрутизатору.



Давайте сымитируем данную ситуацию в Cisco Packet Tracer, а заодно поищем пути ее решения. Для начала соберем в Packet Tracer следующую схему (как это сделать смотрите в предыдущей статье):

Начинаем собирать нашу сеть

На данной схеме компьютер PC0 имеет IP адрес – 192.168.1.100, PC1 – 172.20.20.100, PC2 – 192.168.2.100, PC3 – 10.10.10.100. Интерфейсы маршрутизатора, к которым подключены компьютеры, имеют такие же адреса, как и сами компьютеры, только в четвертом октете стоит 1. Например, для интерфейса к которому подключен ПК с адресом 192.168.1.100 зададим IP адрес 192.168.1.1. В качестве шлюза по умолчанию у каждого компьютера указан интерфейс маршрутизатора, к которому он подключен. После настройке интерфейсов маршрутизаторов, сохраните их конфигурации, выполнив wr mem. Далее соединим маршрутизаторы между собой. Чтобы это сделать, нам потребуется добавить к маршрутизатору интерфейсную плату. В данном случае добавим к маршрутизатору плату  NM-1FE-TX (NMNetwork module, 1FE – содержит один порт FastEthernet, TX – поддерживает 10/100MBase-TX).Чтобы это сделать перейдите к окну конфигурации маршрутизатора, выключите его, щелкнув по кнопке питания изображенной на нем.

Кнопка выключения маршрутизатора в Packet Tracer

После этого перетяните необходимую интерфейсную плату в разъем маршрутизатора.

Вставляем интерфейсную плату в маршрутизатор

После того как карта добавлена, еще раз щелкните по тумблеру маршрутизатора, чтобы включить его. Посмотрите его интерфейсы, должен добавиться еще один – FastEthernet1/0. Повторите аналогичные действия со вторым маршрутизатором. Задайте интерфейсу FastEthernet1/0 «левого» маршрутизатора IP адрес 192.168.100.1 c с маской 255.255.255.252, а «правому маршрутизатору» 192.168.100.2 с аналогичной маской. После этого соедините интерфейсы FastEthernet1/0  этих маршрутизаторов между собой.

Маршрутизатору, соединенные между собой

Проверим доступность компьютеров одной сети из других. Если все сделано верно, то картина доступности должна соответствовать второму рисунку данной статьи. Если вы внимательно посмотрите на данный рисунок, то заметите что на данном рисунке не все стрелки двунаправленные. С двунаправленными стрелками все понятно, если вы будите пинговать в данном направлении, то компьютеры будут отвечать вам на ваши ICMP запросы (так как происходит маршрутизация в пределах одного маршрутизатора). Намного интереснее  обстоит дело с однонаправленными зелеными стрелками. Хотя пинги в данном направлении не проходят, на самом деле ICMP пакеты доходят до места назначения, но вот вернуться обратно уже не могут. Рассмотрим как это происходит на конкретном примере. Допустим, с компьютера с IP адресом 172.20.20.100 вы пытаетесь пропинговать интерфейс с IP адресом 192.168.100.2, «правого» маршрутизатора. Картина будет выглядеть следующим образом:

Интерфейс «правого» маршрутизатора не отвечает

Попробуем отследить путь ICMP пакетов. Для этого включим дебаги  (режим отладки определенных параметров) на маршрутизаторах, через которые предположительно должны пройти ICMP пакеты. Выполним команду debug ip packet, на обоих маршрутизаторах. После чего опять попытаемся пропинговать с адреса  172.20.20.100 адрес 192.168.100.2. Посмотрим, что появилось на «левом маршрутизаторе»:

IP: tableid=0, s=172.20.20.100 (FastEthernet0/1), d=192.168.100.2 (FastEthernet1/0), routed via RIB

IP: s=172.20.20.100 (FastEthernet0/1), d=192.168.100.2 (FastEthernet1/0), g=192.168.100.2, len 128, forward

Первая строка говорит о том, что на маршрутизатор прибыл пакет с адреса 172.20.20.100, направляемый на адрес 192.168.100.2. Во второй строчке говорится о том, что данный пакеты был передан дальше, ключевое слово здесь «forward».

Теперь посмотри, что творится в это же время на «правом» маршрутизаторе:

IP: tableid=0, s=172.20.20.100 (FastEthernet1/0), d=192.168.100.2 (FastEthernet1/0), routed via RIB

IP: s=172.20.20.100 (FastEthernet1/0), d=192.168.100.2 (FastEthernet1/0), len 128, rcvd 3

IP: s=192.168.100.2 (local), d=172.20.20.100 len 128, unroutable

Как видно из первых двух строчек, наш ICMP пакет все таки дошел до «правого» маршрутизатора.  А что должен сделать интерфейс, на который направлялся ping? Правильно, ответить на него послав ICMP пакеты в обратном направлении  с адреса 192.168.100.2 на 172.20.20.100. Вот тут то и начинаются проблемы. «Правый» маршрутизатор не имеет в своей таблице маршрутизации информации о сети 172.20.20.0/16. Шлюз по умолчанию мы еще не прописывали, поэтому маршрутизатор просто не может отослать ответы, в результате чего появляется третья строка дебага, ключевое слово в которой «unroutable».

После того как мы разобрались с тем, как в нашей сети, в данный момент, ходят пакеты. Отключим дебаги (no debug ip packet – отключает включенный ранее дебаг, show debugging – позволяет посмотреть включенные дебаги), и перейдем к настройке маршрутизации.

В нашей маленькой сети, самым простым способом настроить маршрутизацию, является добавление маршрута по умолчанию. Для того чтобы это сделать выполните на «левом» маршрутизаторе в режиме конфигурирования следующую команду:

   ip route 0.0.0.0 0.0.0.0 192.168.100.2

На «правом» маршрутизаторе:

   ip route 0.0.0.0 0.0.0.0 192.168.100.1

В следующих командах первые 4 цифры обозначают IP адрес сети назначения, следующие  4 цифры обозначают её маску, а последние 4 цифры – это IP адрес интерфейса, на который необходимо передать пакеты, чтобы попасть в данную сеть. Если мы указываем в качестве адреса сети 0.0.0.0 с маской 0.0.0.0, то данный маршрут становится маршрутом по умолчанию, и все пакеты, адреса назначения которых, прямо не указаны в таблице маршрутизации будут отправлены на адрес, указанный в нем.

Посмотрим как это выглядит на конкретном примере. Допустим, мы хотим пропинговать с компьютера с адресом 192.168.1.100 компьютер с IP адресом 10.10.10.100.  В качестве шлюза по умолчанию на компьютере с адресом 192.168.1.100 установлен адрес интерфейса маршрутизатора 192.168.1.1. Сначала компьютер будет искать в свой таблице маршрутизации (да у обычного компьютера она тоже есть) непосредственно адрес 10.10.10.100, после того как он его не найдет, он начнет искать в таблице маршрутизации маршрут к сети 10.0.0.0/8. После того, как данный маршрут так же не будет обнаружен. ICMP пакеты будут отправлены на адрес по умолчанию, то есть на интерфейс маршрутизатора с адресом 192.168.1.1. Получив пакет, маршрутизатор просмотрит адрес его назначения – 10.10.10.100 и также попытается обнаружить его в свой таблице маршрутизации. Когда это не увенчается успехом, маршрутизатор попробует найти в свой таблице маршрутизации маршрут к сети 10.0.0.0/8. Когда он не обнаружит и его, пакет будет отправлен используя, только что заданный нами, маршрут по умолчанию. И ICMP пакет будет передан на интерфейс, с адресом 192.168.100.2, «правого» маршрутизатора. Правый маршрутизатор попробует обнаружить в свой таблице маршрутизации маршрут к адресу 10.10.10.100. Когда это не увенчается успехом, «правый» маршрутизатор будет искать маршрут к сети 10.0.0.0/8. Информация о данной сети содержится в таблице маршрутизации, и маршрутизатор знает, что для того чтобы попасть в данную сеть необходимо отправить пакеты на интерфейс FastEthernet0/1, непосредственно к которому подключена данная сеть. Так как в нашем примере вся сеть 10.0.0.0/8, представляет из себя всего 1 компьютер, то пакеты сразу же попадают в место назначения, компьютер с IP адресом 10.10.10.100. При отсылке ответных ICMP пакетов, все происходит аналогичным образом, только адресом назначения уже будет являться 192.168.1.100/24.

К сожалению далеко не всегда можно обойтись указанием только маршрутов по умолчанию. В более сложных сетевых конфигурациях может потребоваться прописывать маршрут для каждой из сетей в отдельности. Давайте сразу рассмотрим как же это делается.  Для этого, сначала удалим из таблицы маршрутизации все статически добавленные маршруты, используя команду no ip route xxxx(адрес сети) yyyy(маска) zzzz(адрес интерфейса). В конечном итоге таблицы маршрутизации должны содержать только информацию о непосредственно подключенных  к ним сетях. Для «левого» маршрутизатора таблица будет примерно такой:

Содержимое таблицы маршрутизации

Теперь нам необходимо добавить к каждому из маршрутизаторов маршруты к двум сетям, которые ему неизвестны (к сетям, подключенным к соседнему маршрутизатору). На «левом» маршрутизаторе выполним:

   ip route 192.168.2.0 255.255.255.0 192.168.100.2

   ip route 10.0.0.0 255.0.0.0 192.168.100.2

На правом маршрутизаторе выполним:

   ip route 192.168.1.0 255.255.255.0 192.168.100.1

   ip route 172.20.0.0 255.255.0.0 192.168.100.1

Если все сделано верно, то ваши сети должны будут взаимодействовать согласно рисунку:

Карта сети

Как вы видите нам пришлось добавить довольно много маршрутной информации, даже  в такой простой сетевой конфигурации. А представьте сколько их придется прописывать, если у вас сеть имеющая десятки маршрутизаторов… Это будет адский труд. Поэтому в больших сетях обычно используют динамическую маршрутизацию, которая кроме облегчения составления таблиц маршрутизации имеет и другие плюсы. О динамической маршрутизации, мы поговорим с вами в следующих статьях.

Read the article ROUTES AND ROUTING EXPLAINED in Read in EnglishEnglish

Как добавить маршрут

Изначально любой маршрутизатор или межсетевой экран знает о существовании только тех сетей, которые подключены к нему напрямую. Это касается как оборудования Cisco, так и любых других производителей. Если у устройства 2 интерфейса, на которых заданы ip адреса из разных сетей, то оно способно передать пакет от одного подключенного к нему хоста к другому – маршрутизировать трафик. Конечно же, если на хостах не забыть указать это самое устройство в качестве шлюза.

Как добавить маршрут на cisco

Предыдущий пример очень простой и немного оторван от жизни. Рассмотрим чуть более сложный вариант. Есть 2 офиса фирмы, в каждом офисе локальная сеть подключена к своему маршрутизатору, и между площадками проложен канал связи.

В этом случае по умолчанию каждый маршрутизатор знает о собственной локальной сети и о канале связи, но не знает, куда направить пакеты, чтобы они попали в сеть соседнего офиса. Если использовать Ping, то для каждого из маршрутизаторов будет доступен внешний адрес другого маршрутизатора, но недоступен ни один из адресов соседней локальной сети.

Как добавить маршрут на cisco

Для того, чтобы связь между хостами А и Б была возможна, необходимо добавить в конфигурацию обоих маршрутизаторов строки маршрутов для удаленных сетей.
Синтаксис следующий:
Ip route x.x.x.x x.x.x.x y.y.y.y
x.x.x.x x.x.x.x – адрес и маска для удаленной сети
y.y.y.yШлюз. Это — ближайший адрес соседнего маршрутизатора, через который будет доступна удаленная сеть.
Строки маршрутов в конфигурации будут следующими:
Для маршрутизатора 1 (левый)
R-DELTACONFIG-1(config)#
ip route 192.168.20.0 255.255.255.0 10.0.0.2

Для маршрутизатора 2 (правый)
R-DELTACONFIG-2(config)#
ip route 192.168.10.0 255.255.255.0 10.0.0.1

Важно!
Если добавить маршрут только на одном маршрутизаторе, то пакет от хоста А до хоста Б пройдет весь путь в одну сторону, но, не найдя обратного маршрута, будет отброшен. Каждое устройство в сети, передающее ip пакет, должно знать о маршруте как до источника, так и до назначения, независимо от количества устройств в сети.

Суммаризация маршрутов, шлюз по умолчанию (default gateway) и приоритеты

Маршруты можно указывать не только до сетей, но и делать их более конкретными вплоть до маршрутов до отдельных хостов.
Например, маршрут из предыдущего примера до хоста Б будет выглядеть так:
ip route 192.168.20.2 255.255.255.255 10.0.0.2
Также можно объединять несколько маршрутов до разных сетей, но через один и тот же шлюз под одним – суммаризировать.
Для примера маршруты до четырех сетей, доступных через один и тот же шлюз можно записать в виде маршрута до одной более широкой сети, изменив маску.

Следующие маршруты
ip route 192.168.20.0 255.255.255.0 10.0.0.2
ip route 192.168.21.0 255.255.255.0 10.0.0.2
ip route 192.168.22.0 255.255.255.0 10.0.0.2
ip route 192.168.23.0 255.255.255.0 10.0.0.2

Можно записать как маршрут до одной сети
ip route 10.168.20.0 255.255.252.0 10.0.0.2
Я сознательно не буду поднимать вопрос подсчета ip адресов сетей и их масок. Это достаточно обширная тема, которой обычно посвящаются не отдельные статьи, а даже целые главы книг. Надеюсь, что у моего читателя уже есть определенный запас этих самых теоретических знаний.

Важно!
Всегда маршрут до конкретной сети имеет приоритет над суммаризированным маршрутом, независимо от размера сетей.

Частным случаем суммаризированных маршрутов является шлюз по умолчанию (default gateway). Это маршрут до сети 0.0.0.0 с маской 0.0.0.0 через заданный шлюз.
ip route 0.0.0.0 0.0.0.0 х.х.х.х
где х.х.х.х – адрес шлюза
Такая строка в конфигурации говорит устройству отправлять все ip пакеты, для которых нет конкретных маршрутов, на заданный шлюз. Обычно такие маршруты используются при подключении к Интернет. В качестве шлюза указывается ближайший адрес на оборудовании провайдера связи.
Для лучшего понимания рассмотрим третий пример, наиболее приближенный к реальности. Все в тех же двух офисах есть не только выделенный канал между ними, но и каналы в Интернет. 1.1.1.1 и 2.2.2.2 – адреса оборудования провайдера, выступающие в качестве шлюзов.

Как добавить маршрут на cisco

Строки в конфигурации
Для маршрутизатора 1 (левый)
R-DELTACONFIG-1(config)#
ip route 192.168.20.0 255.255.255.0 10.0.0.2
ip route 0.0.0.0 0.0.0.0 1.1.1.1

Для маршрутизатора 2 (правый)

R-DELTACONFIG-2(config)#
ip route 192.168.10.0 255.255.255.0 10.0.0.1
ip route 0.0.0.0 0.0.0.0 2.2.2.2

С такими маршрутами каждый из двух маршрутизаторов будет знать о локальной сети соседнего офиса, а все пакеты в неизвестные ему сети (Интернет) перенаправлять на шлюз провайдера.

deltaconfig - cisco аутсорсинг
Важно!

Еще раз напомню, что последовательность строк маршрутов в конфигурации не имеет значения. Приоритет выдается всегда наиболее точному и конкретному маршруту. Если устройство не найдет конкретных записей в своей таблице маршрутизации, то только тогда будет использоваться шлюз по умолчанию (default gateway).

Перейти к оглавлению

Сертификации R&S больше нет, но данная информация по-прежнему полезна.

Материалы CISCO CCNA (Маршрутизация) — материалы для подготовки к CCENT (первая и вторая части курса CISCO CCNA R&S).

Тут записи идут вразнобой, а не по урокам.


Маска подсети

Для понимания нужно выучить двоичную систему исчисления.

Сетевой адрес IPv4 в двоичном выражении имеет длину 32 бита и неявно состоит из 2 частей: сначала сетевая часть и потом хостовая. Это первое важное понятие. Наверное самое важное.

Для удобства чтения сетевой адрес разделён на 4 части (на 4 октета) точками. Сетевая часть определяет подсеть, из которой был взят адрес и имеет большое значение при маршрутизации пакетов. Хостовая часть менее значима. Конец сетевой части может совпадать с концом октета, а может не совпадать.

адрес 192.168.0.1
11000000.10101000.00000000.00000001

Значения двоичных единиц в октете это степени двойки. Самая левая единица 2^7 = 128, самая правая 2^0 = 1. Сумма всех двоичных единиц в октете: 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255.

Для выделения частей из адреса используется маска подсети. Второе важное понятие. Маска подсети имеет также длину 32 бита. Маска состоит из последовательных 1, минимум 0 единиц, максимум 32. Оставшаяся часть маски дополняется нулями до 32 бит.

Для того, чтобы выделить сетевую часть из адреса, адрес IPv4 должен быть написан в двоичном виде, а маска должна быть написана под ним. Выполняя побитовое умножение адрес на маску получим сетевую часть:

адрес 192.168.0.1 маска 255.255.255.0
11000000.10101000.00000000.00000001
11111111.11111111.11111111.00000000
умножаем
11000000.10101000.00000000.00000000
подсеть
192.168.0.0

Другой способ записи маски: считается количество 1 в маске, подписывается к адресу через слэш.

191.168.0.1/24 = 192.168.0.1 маска 255.255.255.0

Сетевой инженер с помощью листка бумаги и ручки (без онлайн калькулятора) должен уметь выделять подсети из адресов любой сложности.

Пример
10.254.220.5/21 - выделим сетевую часть

Маска 21, больше 16, меньше 24. Значит сетевая часть заканчивается в 3 октете. Она будет 10.254.???.0.

Высчитаем третий октет маски: 21 - 16 = 5 (5 единиц и 3 нуля).

11111000 - 248

Теперь разложим третий октет адреса по степеням двойки.

128 входит в 220? Входит. Добавляем единицу, самая левая единица и разложение слева направо:
1
Вычитаем 220 - 128 = 92. 64 входит в 92? Входит. Добавляем единицу:
11
Вычитаем 92 - 64 = 28. 32 входит в 28? Нет. Добавляем ноль:
110
16 входит в 28? Входит. Добавляем единицу:
1101
Вычитаем 28 - 16 = 12. 8 входит в 12? Входит. Добавляем единицу:
11011
...

Почему прекратил разложение на этом месте? Потому что в маске пять единиц в третьем октете. Значащими будут только первые пять бит слева из третьего октета адреса.

Переводим 11011 в десятичный вид. На самом деле это уже было сделано: 128 + 64 + 16 + 8 = 216:

10.254.216.0 255.255.248.0

Это основа основ. Если нет чёткого понимания советую пару часиков потренироваться. Вот в помощь видео (скорость воспроизведения лучше в 1.25).


Маршруты

Алгоритм пересылки пакетов:

Материалы Cisco CCNA (Маршрутизация)

Таблица IP маршрутизации CISCO не является плоской базой данных. Таблица маршрутизации — это иерархическая структура, которая используется для ускорения процессов поиска маршрутов и пересылки пакетов.

Иерархия таблицы маршрутизации в CISCO IOS изначально реализована с использованием схемы классовой маршрутизации. Хотя таблица маршрутизации включает классовую и бесклассовую адресацию, общая структура по-прежнему строится на основе классовой схемы.

Виды маршрутов

Независимо от того, как был получен маршрут, если интерфейс, пересылка через который должна осуществятся согласно данному маршруту, выключен, то маршрут не попадёт в таблицу маршрутизации (или исчезнет оттуда сразу после выключения интерфейса).

  • Интерфейсы локального маршрута — добавляются, когда интерфейс настроен и активен (запись отображается только в IOS 15 или более поздних версиях для IPv4-маршрутов и во всех версиях IOS для IPv6-маршрутов);
  • Интерфейсы с прямым подключением — добавляются в таблицу маршрутизации, когда интерфейс настроен и активен;
  • Статические маршруты — добавляются, когда маршрут настроен вручную и активен выходной интерфейс;
  • Протокол динамической маршрутизации — добавляется, когда определены сети и реализуются протоколы маршрутизации, которые получают информацию о сети динамически.
Обозначение маршрутов

Код определяет, каким образом был получен маршрут:

  • L — указывает адрес, назначенный интерфейсу маршрутизатора. Данный код позволяет маршрутизатору быстро определить, что полученный пакет предназначен для интерфейса, а не для пересылки;
  • C — определяет сеть с прямым подключением;
  • S — определяет статический маршрут, созданный для достижения конкретной сети;
  • D — определяет сеть, динамически полученную от другого маршрутизатора с помощью протокола EIGRP;
  • O — определяет сеть, динамически полученную от другого маршрутизатора с помощью протокола маршрутизатора OSPF;
  • — определяет сеть, динамически полученную от другого маршрутизатора с помощью протокола RIP.

Материалы Cisco CCNA (Маршрутизация)

Временная метка маршрута — количество времени, прошедшее с тех пор, как был получен маршрут.

Критерии маршрутов в таблице маршрутизации
  • Окончательный маршрут — окончательный маршрут представляет собой запись в таблице маршрутизации, содержащую либо IPv4-адрес следующего перехода, либо выходной интерфейс. Напрямую подключённые, динамически получаемые и локальные маршруты являются окончательными;
  • Маршрут 1-го уровня — маршрут 1-го уровня представляет собой маршрут с маской подсети, значение которой равно или меньше значения классовой маски сетевого адреса;
  • Родительский маршрут 1-го уровня — это маршрут 1-го уровня сети, разделенной на подсети. Родительский маршрут никогда не может быть окончательным маршрутом;
  • Дочерний маршрут 2-го уровня — маршрут, являющийся подсетью классового сетевого адреса. Дочерние маршруты 2-го уровня также являются окончательными маршрутами.

Источником маршрута 1-го уровня может быть напрямую подключённая сеть, статический маршрут или протокол динамической маршрутизации.

Как и в случае с маршрутом 1-го уровня, источником маршрута 2-го уровня может быть напрямую подключённая сеть, статический маршрут или динамически полученный маршрут.

IPv6 является бесклассовым протоколом, все маршруты, по сути, являются окончательными маршрутами 1-го уровня.

Добавление маршрутов в таблицу маршрутизации

Предположим, что есть сеть назначения и к ней найдено несколько разных маршрутов. Вариации: несколько статических маршрутов, несколько динамических внутри одного протокола, несколько динамических из разных протоколов, статические и динамические и так далее.

В таблицу маршрутизации (Route Information Base, RIB) добавляются не все маршруты, а только лучший маршрут для данной сети. Лучшие маршруты выбираются как внутри каждого протокола, так и между протоколами. Внутри протокола лучший маршрут выбирается по метрике: только маршрут с наименьшей метрикой добавляется в таблицу маршрутизации. Между протоколами маршрут выбирается по административной дистанции: только маршрут с наименьшей административной дистанцией добавляется в таблицу маршрутизации.

Административная дистанция по умолчанию:

Материалы Cisco CCNA (Маршрутизация)

Административную дистанцию можно изменять. Для лучшего понимания приведу точный алгоритм добавления маршрутов в RIB. Допустим, для некоторой подсети роутер обнаружил новый маршрут. Тут 2 ситуации:

  • Маршрут был добавлен как статический администратором, тогда это сразу кандидат для добавления в RIB;
  • Маршрут был выучен через динамический протокол. Протокол ищет внутри себя другие маршруты к этой подсети. Новый маршрут становится кандидатом для RIB, когда нет других маршрутов к этой подсети или есть маршрут/маршруты, но с бОльшей метрикой, чем у нового.

Далее RIB уведомляется о новом маршруте и происходит анализ нового маршрута:

  • Маршрута для данной подсети нет в RIB, маршрут добавляется в RIB;
  • Маршрут для данной подсети уже есть в RIB, сравниваются AD маршрутов. Для маршрута, который уже в RIB, AD меньше. Новый маршрут отбрасывается;
  • Маршрут, который уже в RIB, имеет AD больше чем у нового. Новый маршрут добавляется в RIB, старый убирается из неё.

Если маршрут, с которым производятся действия в RIB, предоставлен динамическим протоколом, процесс этого протокола уведомляется о результате. В честности, процесс динамического протокола «договаривается» с процессом RIB о повторной попытке добавления маршрута-кандидата, в случае если существующий в RIB наилучший маршрут в эту подсеть по каким-то причинам отвалится.

Процесс RIB называется Routing Table Manager (RTM):

Пример 1

Тоже касается статических маршрутов: только маршрут с наименьшей административной дистанцией (AD) добавляется в таблицу маршрутизации.

Два статических маршрута по умолчанию:

ip route 0.0.0.0 0.0.0.0 interface1
ip route 0.0.0.0 0.0.0.0 interface2 5

У второго статического маршрута добавлена AD = 5. Этот маршрута в таблице маршрутизации не будет. Попасть в таблицу маршрутизации он сможет только когда ляжет interface1 и первый маршрут окажется недействительным. Как только interface1 поднимется, второй маршрут исчезнет из таблицы маршрутизации, а первый снова появится.

Пример 2

Два маршрута EIGRP к одной подсети назначения через разные интерфейсы с разной метрикой:

R4# show ip eigrp topology
...
P 10.10.10.0/30, 1 successors, FD is 3328
        via 10.10.30.1 (3328/3072), GigabitEthernet0/0
        via 10.10.100.1 (26880256/2816), Tunnel1

Хотя маршрута к 10.10.10.0/30 два, только маршрут через GigabitEthernet0/0 попадёт в таблицу маршрутизации.

Пример 3

Три маршрута к одной подсети назначения статический, EIGRP и OSPF. Пока доступен статический маршрут именно он будет присутствовать в таблице маршрутизации:

R1# show ip route
...
S 192.168.2.0/24 is directly connected, Tunnel1

Убираем статический маршрут, его место занимает EIGRP с AD 90:

R1# show ip route
...
D 192.168.2.0/24 [90/3584] via 10.10.10.2, 00:00:04, GigabitEthernet0/0

Убираем подсеть назначения из EIGRP, остаётся маршрут OSPF с AD 110:

R1# show ip route
...
O 192.168.2.0/24 [110/1001] via 10.10.100.2, 00:00:03, Tunnel1

Equal-Cost Multipathing

Большинство протоколов динамической маршрутизации (RIP, EIGRP, OSPF, IS-IS) поддерживают распределение нагрузки (load
sharing) через несколько маршрутов с одинаковой метрикой к одной и той же подсети назначения. Обычно поддерживается до 4 маршрутов. И это количество ещё можно увеличить настройкой протокола. Называется такая технология equal-cost multipathing (ECMP). При ECMP в таблицу маршрутизации добавляется сразу несколько маршрутов к подсети назначения.

R1# show ip route
O 10.3.3.0/24 [110/30] via 10.12.1.2, 00:49:12,
GigabitEthernet0/2
              [110/30] via 10.14.1.4, 00:49:51,
GigabitEthernet0/4

Unequal-Cost Load Balancing

Наконец, EIGRP поддерживает технологию подобную ECMP, но для маршрутов с неравной стоимостью. По умолчанию она выключена. Требуется включение и настройка. В результате в таблице маршрутизации может оказаться несколько маршрутов к подсети назначения и у этих маршрутов будет разная метрика.

R1# show ip route eigrp
Gateway of last resort is not set
10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks
D 10.3.3.0/24 [90/3328] via 10.14.1.4, 00:00:02,
GigabitEthernet0/4
              [90/5632] via 10.12.1.2, 00:00:02,
GigabitEthernet0/2

Поиск маршрута в таблице маршрутизации

Адрес назначения прикладывается к записи в таблице маршрутизации и вычисляется побитово совпадающая часть. Совпадение должно быть в переделах маски записи. В качестве  маршрута выбирается наилучшее совпадение.

Наилучшее совпадение — это самое длинное совпадение.

адрес назначения 192.168.248.17
таблица маршрутизации (маршруты 1 уровня)
... 0.0.0.0/0 ... - подходит, совпадение по нулевой маске (маршрут по умолчанию)
... 192.160.0.0/16 ... - не подходит, нет совпадения по 16 маске
... 192.168.0.0/16 ... - подходит, совпадение 192.168, по 16 маске (суперсеть)
... 192.168.248.0/23 ... - подходит, совпадение 192.168.248, по 23 маске (суперсеть)
... 192.168.248.0/24 ... - подходит, совпадение 192.168.248, самое длинное по 24 маске, сюда уйдёт пакет (сеть)

Материалы Cisco CCNA (Маршрутизация)

Отсюда видно, что маршрут по умолчанию:

  • Совпадает с любым адресом назначения;
  • Используется, если нет других совпадений.

Материалы Cisco CCNA (Маршрутизация)

  1. Если оптимальным совпадением является окончательный маршрут 1-го уровня, то для пересылки пакета используется именно он;
  2. Если оптимальным совпадением является родительский маршрут 1-го уровня, перейдите к следующему шагу;
  3. Если есть совпадение с дочерним маршрутом 2-го уровня, подсеть используется для пересылки пакета;
  4. Если совпадений с дочерними маршрутами 2-го уровня нет, перейдите к следующему шагу.
  5. Если найдено менее точное совпадение с маршрутами по умолчанию или маршрутами суперсети 1-го уровня, маршрутизатор использует такой маршрут для пересылки пакета;
  6. При отсутствии совпадения с любым маршрутом в таблице маршрутизации маршрутизатор отбрасывает пакет.

Иерархия таблицы маршрутизации в CISCO IOS использует схему классовой маршрутизации. Родительский маршрут 1-го уровня представляет собой классовый сетевой адрес маршрута подсети. Это относится даже к тем случаям, когда протокол бесклассовой маршрутизации является источником маршрута подсети.

Поскольку IPv6 является бесклассовым протоколом, все маршруты, по сути, являются окончательными маршрутами 1-го уровня. Родительских маршрутов 1-го уровня для дочерних маршрутов 2-го уровня не существует.

Это был рассказ про классическую схему поиска маршрута. CISCO использует CEF (будет далее) для пересылки пакетов. В CEF все возможные адреса назначения (с данной таблицей маршрутизации) уже рассчитаны и маршрутизатор сразу знает куда пересылать пакет (или отбросить). При изменении в таблице маршрутизации CEF делает перерасчёт возможных адресов назначения.

Внешние маршруты

Внешние маршруты определяются для динамических протоколов маршрутизации. Связаны они с понятием автономная система (AS, будет далее). Маршруты внутри AS считаются внутренними, маршруты, полученные из-за переделов AS, внешними.

Внешние маршруты принадлежат либо к внешнему типу 1 (E1), либо к внешнему типу 2 (E2).

Разница между этими двумя типами заключается в способе расчёта стоимости (метрики) маршрута.
Стоимость маршрута типа 2 — это всегда внешняя стоимость, вне зависимости от внутренней стоимости для достижения этого маршрута.
Стоимость маршрута типа 1 — это сумма внешней и внутренней стоимостей, используемых для достижения маршрута.

Для достижения одного и того же назначения маршрут типа 1 всегда предпочтительнее маршрута типа 2.

Внешние маршруты (частично) рассматриваются далее в курсе CCNA, в частности при изучении OSPF для нескольких областей. Полностью рассмотрение в курсе CCNP ROUTE.


Устранение неполадок

Основные причины отсутствие маршрута в таблице маршрутизации:

  • Сбой интерфейса;
  • Разрыв соединения;
  • Переполнение каналов;
  • Неверно заданная администратором конфигурация.

Основные команды для проверки и выявления проблем:

ping - базовая связь с устройством
traceroute - просмотр переходов до устройства
show ip route - просмотр таблицы маршрутизации
show ip interface brief - просмотр состояния интерфейсов
show cdp neighbors detail - просмотр информации о соседних устройствах CISCO

Команда show cdp neighbors detail выполняет проверку соединения второго уровня и, как следствие — первого уровня.
Например, если соседнее устройство указано в выходных данных команды, но эхо-запрос к нему не может быть выполнен, следует искать проблему в адресации третьего уровня.


Статические маршруты

Статическая маршрутизация, как правило, используется в следующих случаях:

  • Обеспечение упрощённого обслуживания таблицы маршрутизации в небольших сетях, которые не планируется существенно расширять;
  • Невозможность использования на роутерах динамических протоколов маршрутизации из-за слабого CPU роутера либо малого количества памяти;
  • Маршрутизация к тупиковой сети и из неё (тупиковой сетью является сеть с одним исходящим маршрутом по умолчанию, не имеющая данных о других удалённых сетях);

Статические маршруты по умолчанию обычно используются при подключении пограничного маршрутизатора к сети интернет-провайдера или тупикового маршрутизатора — маршрутизатора только с одним соседним маршрутизатором в восходящем направлении.

  • Использование единого маршрута по умолчанию (для представления пути к любой сети, не имеющего более точного совпадения с другим маршрутом в таблице маршрутизации);
  • Маршрут выученный с помощью динамического маршрутизации нужно заменить на другой. Используется статический маршрут

Материалы Cisco CCNA (Маршрутизация)

Материалы Cisco CCNA (Маршрутизация)

Типы статических  маршрутов

В зависимости от того, как указано место назначения, создаётся один из трёх возможных типов маршрута:

  • Маршрут следующего перехода (Recursive static route) — указывается только IP-адрес следующего перехода;
R1# show ip route
...
S 10.22.22.0/24 [1/0] via 10.12.1.2
  • Напрямую подключённый статический маршрут (Directly attached static routes) — указывается только выходной интерфейс маршрутизатора;
R1# show ip route
...
S 10.11.11.0/24 is directly connected, Serial1/0

В результатах вывода нет AD и метрики. Сравни с выводом для маршрута следующего перехода.

  • Полностью заданный статический маршрут — указываются IP-адрес следующего перехода и выходной интерфейс.
R1# show ip route
...
S 10.22.22.0/24 [1/0] via 10.12.1.2,
GigabitEthernet0/0 

Почему Recursive static route? В статическом маршруте следующего перехода указывается только IP адрес следующего перехода. Такой маршрут изначально являлся рекурсивным, то есть требовал дополнительного просмотра таблицы маршрутизации. Выходной интерфейс, через который нужно отправить пакет, определяется исходя из адреса следующего перехода при этом дополнительном проходе.
Такая операция называется разрешимостью маршрута. С появлением CEF эта проблема решилась.

Важно. Независимо от того, настроен ли статический маршрут с IP адресом следующего перехода или выходным интерфейсом, в случае если выходной интерфейс, используемый для переадресации пакета, не включён в таблицу маршрутизации (например выключен), статический маршрут также не включается в таблицу маршрутизации.

На самом деле, если задан статический маршрут с адресом следующего перехода и адрес следующего перехода доступен через другой интерфейс, то маршрут останется в таблице. Но это частная ситуация. В результате может получиться неоптимальная маршрутизация. Для устранения этого нужно заменить маршрут с адресом следующего перехода на полностью заданный статический маршрут.

Для интерфейсов типа точка-точка (не использующих ARP) можно использовать статические маршруты, указывающие на выходной интерфейс или адрес следующего перехода. Но лучше указывающие на выходной интерфейс.

Для многоточечных или широковещательных интерфейсов (Ethernet) рекомендуется использовать статические маршруты, указывающие на адрес следующего перехода. Настройка статического маршрута указывающего на выходной интерфейс для Ethernet приведёт к тому, что запрос ARP будет выполняться для каждого нового адреса назначения. При этом увеличивается нагрузка на CPU и память роутера.

При использовании CEF настройка полностью заданного статического маршрута не требуется. В таком случае следует использовать статический маршрут, использующий адрес следующего перехода.


Статический маршрут IPv4

Виды статических маршрутов (по назначению):

  1. Стандартный статический маршрут;
  2. Статический маршрут по умолчанию;
  3. Суммарный статический маршрут;
  4. Плавающий статический маршрут.
Добавление статического маршрута
ip route network mask { next-hop-ip | exit-intf }

Добавление маршрута по умолчанию:

ip route 0.0.0.0 0.0.0.0 { next-hop-ip  | exit-intf }

Статический маршрут IPv4 по умолчанию обычно называют маршрутом с четырьмя нулями (quad-zero).

Параметр distance используется для создания плавающего статического маршрута путём настройки значения административного расстояния, превышающего значение административного расстояния маршрута, получаемого динамически.

ip route network mask { next-hop-ip | exit-intf } distance value -  или же без использования слова distance, зависит от IOS

Для каждого маршрута, который ссылается только на IPv4 адрес следующего перехода и не ссылается на выходной интерфейс, должен быть указан IPv4-адрес следующего перехода, преобразованный с помощью другого маршрута в таблице маршрутизации для выходного интерфейса.

Административное расстояние
  • AD статического маршрута равно 1;
  • AD напрямую подключённого интерфейса маршрутизатора равно 0;
  • AD плавающего статического маршрута определено значением distance.
Команды просмотра
show running-config | section ip route - в конфигурации
show ip route static - в таблице маршрутизации

Статический маршрут IPV6

Прежде нужно включить маршрутизацию для IPv6:

ipv6 unicast-routing

Добавление статического маршрута:

ipv6 route ipv6-prefix/prefix-length { ipv6-address | interface-type/interface-number}

Добавление маршрута по умолчанию:

ipv6 route ::/0 { ipv6-address | exit-intf }

В отличие от IPv4 в IPv6 не указывается явно,
что маршрут IPv6 по умолчанию является шлюзом «последней надежды».

При использовании CEF статический маршрут, использующий только IPv6 адрес следующего перехода,
будет предпочтительным методом даже в том случае, когда выходной интерфейс является сетью с множественным доступом.

Рекурсивный статический маршрут IPv6 является допустимым (то есть является кандидатом для добавления в таблицу маршрутизации), только если указанный следующий переход прямо или косвенно связан с допустимым выходным интерфейсом.

Если статический маршрут IPv6 использует IPv6 адрес типа link-local в качестве адреса следующего перехода, то необходимо использовать полностью заданный статический маршрут, включающий выходной интерфейс.

Команды просмотра
show running-config | section ipv6 route - в конфигурации
show ipv6 route - в таблице маршрутизации

Суммарные маршруты

Объединение маршрутов – также известное, как агрегация префиксов. Маршруты при этом объединяются в один маршрут, что позволяет уменьшить размер таблиц маршрутизации.
Например, один суммарный статический маршрут может заменить несколько отдельных объявлений статического маршрута.

Суммарные маршруты можно настроить:

  1. Вручную используя статические маршруты;
  2. Автоматически для протоколов RIP и EIGRP с включённой опцией auto-summary (включена по умолчанию);
  3. Вручную для протокола OSPF;
  4. Вручную для EIGRP, как при включённом auto-summary, так и при отключённом.

Более подробно ручное объединении маршрутов EIGRP и OSPF рассматривается в 3 части курса.

Когда маршрут объединённой сети включён в таблицу маршрутизации, например в качестве статического маршрута, классовый протокол маршрутизации не добавляет этот маршрут в свои обновления.

Несколько статических маршрутов можно объединять в один статический маршрут в следующих случаях:

  • Сети назначения являются смежными и могут быть объединены в один сетевой адрес;
  • Все статические маршруты используют один и тот же выходной интерфейс или один IP адрес следующего перехода.
IPv4

Организация суперсетей – происходит в тех случаях, когда маска объединения маршрута имеет меньшее значение, чем стандартная классовая маска по умолчанию:

  • Объединённая сеть (суперсеть) всегда является суммой маршрута, однако сумма маршрута не всегда является объединённой сетью.

Для определения суммарного маршрута и маски подсети IPv4 необходимо выполнить следующие три шага:

  1. Запись сети в двоичном формате;
  2. Подсчёт количества крайних слева совпадающих битов — учитываются как нули так и единицы. Таким образом, определяется длина префикса или маска подсети для суммарного маршрута;
  3. Копирование совпадающих битов и последующее добавление нулевых битов к остальной части адреса, что позволяет определить адрес суммарной сети.
IPv6

Объединение сетей IPv6 в один префикс и длину префикса IPv6 может выполняться в семь этапов:

  1. Создание списка сетевых адресов (префиксов) и определение той части, где адреса различаются;
  2. Расширение записи IPv6, в случае, если он записан в сокращённом виде;
  3. Преобразование различающихся частей из шестнадцатеричного в двоичный код;
  4. Подсчёт количества крайних слева совпадающих битов для определения длины префикса суммарного маршрута;
  5. Выделение совпадающих битов и добавление нулевых битов для определения суммарного сетевого адреса (префикса);
  6. Преобразование части в двоичном коде обратно в шестнадцатеричный;
  7. Присоединение префикса суммарного маршрута (из результата шага 4).


Маршрутизация между VLAN

Маршрутизация между VLAN требует наличие устройства 3 уровня для осуществления маршрутизации. Рассматривается 3 основных способа такой маршрутизации:

  1. Устаревший метод;
  2. Многоуровневая коммутация — маршрутизация с использованием коммутатора 3 уровня;
  3. Router-on-a-stick.

Устаревший метод — по 1 интерфейсу коммутатора из каждой VLAN соединяется с интерфейсом маршрутизатора. Недостаток в том, что для каждой VLAN нужен отдельный интерфейс маршрутизатора.

Маршрутизация с использованием коммутатора 3 уровня — предпочтительный метод не требующий маршрутизатора. Многоуровневая коммутация масштабируется лучше, чем любая другая реализация маршрутизации между VLAN.

Коммутация 3 уровня обычно настраивается на уровне распределения и ядра. Между уровнями ядра и распределения, как раз часто используются порты 3 уровня (маршрутизируемые).

Router-on-a-stick маршрутизатор и коммутатор соединены 1 транковым каналом, который передаёт информацию для всех VLAN. Максимальное количество VLAN при данном методе 50. При данном методе на интерфейсе маршрутизатора настраиваются подынтерфейсы (сабинтерфейсы).

Настройка сабинтерфейсов:

interface interface
no ip address
no shutdown
exit
interface interface.subinterface - создание
encapsulation dot1q vlan [native]- присвоение vlan
ip address ip_address mask - задание адреса
  • Должно быть настроено столько сабинтерфейсов, сколько есть VLAN, требующих передачи данных;
  • По умолчанию Native VLAN — это VLAN 1. Для задания Native VLAN отличной от VLAN 1 к команде encapsulation dot1q vlan нужно добавить ключевой параметр native.

Настройка идентификаторов подынтерфейсов таким образом, чтобы они совпадали с номером VLAN, облегчает управление конфигурацией маршрутизации между VLAN, но не является обязательным условием.

В отличие от физических интерфейсов, sub-interface нельзя включить с помощью команды no shutdown. Ввод команды no shutdown на уровне sub-interface ни к чему не приведёт. Все настроенные sub-interfaces активируются, когда физический интерфейс включается с помощью команды no shutdown. Соответственно, если отключить физический интерфейс, то все sub-interfaces также отключаются.


Маршрутизация на коммутаторе

Очень интересная тема. Большая часть материала этого подзаголовка не из курса CCNA.

Изначальное предназначение маршрутизации на коммутаторе организации маршрутизации между VLAN. При этом пропадает необходимость в дополнительном устройстве 3 уровня, маршрутизаторе. Это сокращает расходы и упрощает топологию, а значит повышает надежность сети.

В дальнейшем грань между маршрутизатором и многоуровневым коммутатором начала стираться. Однако, при этом коммутатор с возможностями маршрутизации не всегда является полноценной заменой маршрутизатору.

Преимущества коммутатора 3 уровня над маршрутизатором:

  • Аппаратная обработка пакетов с помощью специализированных микросхем (ASIC).

Такая обработка происходит на 2 уровне. На 3 уровне все устройства CISCO используют технологию CEF (CISCO Express Forvarding) для быстрой пересылки пакетов, которая изначально являлась программной. Данная технология обрабатывает пакеты без выполнения сложных вычислений на CPU. Сейчас CEF поддерживается аппаратно на всех MLS (Multi Layer Switch) коммутаторах CISCO. При этом быстродействие коммутатора 3 уровня может быть в десятки раз выше чем у маршрутизатора.

Преимущества маршрутизатора над коммутатором 3 уровня:

  • Поддержка различных типов портов;
  • Модульная структура. Для CISCO это будут модули HWIC;
  • Поддержка большего числа маршрутов в таблице маршрутизации, нет аппаратного ограничения;
  • Маршрутизаторы поддерживают множество дополнительных функций, которых просто нет у коммутатора, например, файрвол.

Функционал маршрутизатора выше. Главное тут: механизмы различных вариантов защиты от атак и спуфинга. По этой причине граничный маршрутизатор, смотрящий в интернет  — это всегда именно маршрутизатор. Коммутаторы используются для маршрутизации внутри сети предприятия.

С точки зрения CISCO:

Скорее, многоуровневый коммутатор можно рассматривать в качестве устройства 2-го уровня, в которое добавили некоторые возможности маршрутизации.

Схема применения

Коммутатор 2 уровня может осуществлять маршрутизацию только между VLAN плюс небольшое число статических маршрутов. Коммутатор 3 уровня может служить заменой маршрутизатору, но только там, где он вписывается в топологию по необходимым портам и ресурсам. И для этих топологий он будет гораздо более производительным, чем маршрутизатор.

Коммутаторы 3 уровня имеют возможность перевода каждого порта в режим маршрутизируемого порта с помощью команды:

no switchport

В отличие от маршрутизаторов CISCO IOS, маршрутизируемые порты на коммутаторе CISCO IOS не поддерживают подынтерфейсы.

Кроме того, поскольку функциональные возможности 2 уровня были удалены, протоколы 2 уровня, например STP, не действуют на маршрутизируемом интерфейсе. Однако на 3 уровне работают такие протоколы, как EtherChannel и LACP (протокол управления агрегацией канала).

Изначально место коммутатора 2 уровня —  уровень доступа, коммутатора 3 уровня — уровень распределения.

Теперь же многоуровневые коммутаторы, как правило, развертываются на уровнях ядра и распределения коммутируемой сети предприятия.

По умолчанию на коммутаторах Catalyst 3560 и 4500 интерфейсы настроены как интерфейсы 2-го уровня, поэтому их необходимо вручную настроить в качестве маршрутизируемых портов. Все коммутаторы семейства Catalyst 6500 по умолчанию используют интерфейсы 3 уровня.

Маршрутизируемые порты не поддерживаются на коммутаторах серии Catalyst 2960.

Коммутатор Catalyst 2960 (серии Base, серия Lite не умеет ничего) может функционировать в качестве устройства 3-го уровня и маршрутизировать данные между сетями VLAN и ограниченным количеством статических маршрутов.

Коммутатор 2960 поддерживает до шестнадцати статических маршрутов (включая маршруты, заданные пользователем, и маршрут по умолчанию) и любое количество напрямую подключенных маршрутов, а также маршрут по умолчанию для интерфейса управления.

Полнофункциональные и относительно недорогие многоуровневые коммутаторы CISCO Catalyst серии 3550/3560 поддерживают протоколы маршрутизации EIGRP, OSPF и BGP.

Диспетчер базы данных SDM

SDM коммутатора Cisco (Switch Database Manager) содержит несколько шаблонов для коммутатора:

  • Default;
  • Dual-ipv4-and-ipv6;
  • Lanbase-routing;
  • QoS bias.
sdm prefer { default | dual-ipv4-and-ipv6 | lanbase-routing | QoS bias } - изменение работы SDM, необходима перезагрузка
show sdm prefer - просмотр SDM

Шаблон по умолчанию не поддерживает статическую маршрутизацию, при включённой IPv6-адресации шаблоном по умолчанию будет dual-ipv4-and-ipv6.

Команда ip routing автоматически включена на маршрутизаторах CISCO, однако соответствующая команда для IPv6 ipv6 unicast-routing на маршрутизаторах и коммутаторах CISCO выключена по умолчанию.

ip routing - включает маршрутизацию IPv4
ipv6 unicast-routing - включает маршрутизацию IPv6 
show ip rout - просмотр таблицы маршрутизации IPv4
show ipv6 rout - просмотр таблицы маршрутизации IPv6

К основным типам интерфейсов уровня 3 относятся следующие:

  • Маршрутизируемый порт — простой интерфейс 3-го уровня, аналогичный физическому интерфейсу на маршрутизаторе Cisco IOS;
  • Виртуальный интерфейс коммутатора (SVI) — виртуальный интерфейс сети VLAN для маршрутизации между VLAN. Другими словами, интерфейсы SVI — это виртуально маршрутизируемые интерфейсы VLAN;
  • EtherChannel уровня 3 — логический интерфейс на устройстве Cisco, который связан с группой маршрутизируемых портов.

Помимо интерфейсов SVI и EtherChannel уровня 3 другие логические интерфейсы на устройствах Cisco содержат интерфейсы возвратной петли  (loopback) и интерфейсы туннеля.

Коммутация 3 уровня с интерфейсами SVI — это форма маршрутизации между VLAN. Маршрутизируемый порт является физическим портом, работающим аналогично интерфейсу маршрутизатора. В отличие от порта доступа маршрутизируемый порт не связан с определённой VLAN.

Порядок включение маршрутизации на коммутаторе

На коммутаторе 2 уровня:

  1. Включить маршрутизацию ip routing;
  2. Изменить шаблон по умолчанию sdm-prefer landbase-roiting для поддержки статической маршрутизации;
  3. Перезагрузить коммутатор.

На коммутаторе 3 уровня:

  1. Перевести порт в маршрутизируемый командой no switchport;
  2. Назначить порту IP адрес.
Подробнее о CEF

Существует 3 варианта пересылки пакетов внутри маршрутизатора:

  1. Process switching — для каждого пакета просматривается таблица маршрутизации (с использованием ресурсов CPU маршрутизатора). Просмотр происходит обычно рекурсивно — за 1 проход по IP адресу назначения находится IP адрес следующего перехода, за 2 проход по IP адресу следующего перехода находится выходной интерфейс;
  2. Fast switching — просмотр таблицы маршрутизации происходит только при первом прохождении пакета, при этом заполняется кеш — информация из таблицы маршрутизации, указывающая на IP адрес следующего перехода, соответствующий выходной интерфейс маршрутизатора, MAC адрес следующего перехода. Кеш является сводной информацией уровня 2 и уровня 3. Остальные пакеты из потока пересылаются с помощью информации кэша (без использования ресурсов CPU маршрутизатора);
  3. CISCO Express Forwarding — после того как сеть сошлась таблица маршрутизации уже содержит все необходимые маршруты. По этим данным заранее создается 2 таблицы кэша: 3 уровня с информацией из таблицы маршрутизации Forwarding Information Base (FIB) и 2 уровня с информацией из таблицы ARP Adjacency table.

CEF обеспечивает возможность оптимизированного поиска для эффективной пересылки пакетов:

  • Записи FIB упорядочены по префиксам для более быстрого поиска — от общего к частному (от 0 к 32);
  • Каждая запись FIB ссылается на запись Adjacency table, где хранится заранее сформированный заголовок 2 уровня. Тут надо вспомнить, что при движении пакета от источника к назначению, в каждом локальном сегменте меняется только заголовок 2 уровня (MAC адрес следующего перехода).

Поэтому смысл пересылки внутри маршрутизатора — это подставить нужный заголовок 2 уровня и кинуть пакет в нужный интерфейс, что и реализуется при CEF.

Когда сеть изменяется, то после её схождения, CEF рассчитывается заново, но только 1 раз. При этом Adjacency table наполняется по мере нахождения новых связей.

Для просмотра таблицы CEF используется команда:

show ip cef

Материалы CISCO CCNA (Маршрутизация)

IPv4 CEF включён по умолчанию, IPv6 CEF выключен. CEF для IPv6 включается автоматически командой ipv6 unicast-routing.

При этом механизм CEF способен обработать не все действия с пакетами, подробнее: //twistedminds.ru/2013/05/switch-operations-1/ а также:

  • They use IP header options;
  • They have anexpiring IP Time To Live (TTL) counter;
  • They are forwarded to a tunnel interface;
  • They arrive with unsupported encapsulation types;
  • They are routed to an interface with unsupported encapsulation types;
  • They exceed the maximum transmission unit (MTU) of an output interface and must be fragmented.

Вывод: если маршрутизатор испытывает перегрузки в использовании CPU, то нужно пересмотреть все эти варианты, когда происходит Process switching и сократить их по максимуму.

Различают 2 вида CEF: Software CEF и Hardware CEF, подробнее: //xgu.ru/wiki/Cisco_Express_Forwarding

Поддержка CEF:

The below Cisco routers use software-cef:
Cisco 1800
Cisco 1900
Cisco 2800
Cisco 2900
Cisoc 7200
The below cisco switches use hardware-cef:
Cisco 3550
Cisco 3560
Cisco 3650
Cisco 3750
Cisco 4500
Cisco 6500
Cisco 6800
Cisco ME3600
Cisco ME3800
Cisco ASR family

Количество поддерживаемых маршрутов по умолчанию:

Switch type Maximal ipv4 routes with default setup
Cisco 3550 FE 8K
Cisco 3550 GE 12K
Cisco 3650 8K
Cisco 3750 2K
Cisco Me3600 metro 20K
Cisco Me3800 metro 20K
Cisco Catalyst 4500E Supervisor Engine 7L-E 64K
Cisco 6500 vs-s720-10G-3C 256K
Cisco 6500 vs-s720-10G-3CXL 1024K

Для сравнения: достаточно простой маршрутизатор 2811 может разместить всю таблицу маршрутизации BGP, которая насчитывает более 550K маршрутов.


Динамические маршруты

Общая классификация:

Материалы CISCO CCNA (Маршрутизация)

Протоколы маршрутизации можно классифицировать по различным группам в соответствии с их характеристиками. В частности, протоколы маршрутизации можно классифицировать по следующим признакам:

  • Назначение — протокол внутренней маршрутизации (IGP) или протокол внешней маршрутизации (EGP);
  • Принцип работы — дистанционно-векторный протокол, по состоянию канала или векторов маршрутов;
  • Поведение — протоколы классовой маршрутизации (устаревший метод) или бесклассовой маршрутизации.

Например, протоколы маршрутизации IPv4 можно классифицировать следующим образом:

  • RIPv1 (устаревший) — дистанционно-векторный классовый протокол внутренней маршрутизации;
  • IGRP (устаревший) — дистанционно-векторный классовый протокол внутренней маршрутизации, разработанный компанией Cisco (не используется после выхода IOS 12.2 и более поздних версий);
  • RIPv2 — дистанционно-векторный бесклассовый протокол внутренней маршрутизации;
  • EIGRP — дистанционно-векторный бесклассовый протокол внутренней маршрутизации, разработанный компанией Cisco;
  • OSPF — бесклассовый протокол внутренней маршрутизации, по состоянию канала;
  • IS-IS — бесклассовый протокол внутренней маршрутизации, по состоянию канала;
  • BGP — бесклассовый протокол внешней маршрутизации, по вектору маршрута.

router ? - просмотр возможных протоколов

Маска подсети маршрута в таблице маршрутизации используется для определения обязательного минимального числа совпадающих крайних левых битов.

Из данной картинки нужно запомнить следующее:

  • Дистанция это метрика (для дистанционно-векторных протоколов);
  • Путь это набор атрибутов (для BGP).
Метрика

Кроме административной дистанции динамический протоколы маршрутизации вводят понятие метрики:

Метрики — это показатели, которые можно измерить. Протоколы маршрутизации выбирают оптимальный путь для отправки данных, исходя из различных метрик. К этим метрикам относятся количество переходов, полоса пропускания, задержка, надёжность, стоимость маршрута и другое.

Наиболее оптимальным путём к сети является путь с наименьшей метрикой.

Метрики, измеренные  в одном протоколе маршрутизации, не применимы к другому протоколу. Это значит что при выборе маршрута из двух маршрутов с разными протоколами используется административное расстояние, при выборе маршрута из двух внутри одного протокола используется метрика.

Итак, сначала AD, потом метрика.

Различные протоколы маршрутизации используют различные способы расчёта оптимального пути (различную метрику): протокол RIP выбирает путь с наименьшим числом переходов, а протокол OSPF — путь с самой высокой пропускной способностью.

Если маршрутизатор располагает двумя или более путями к пункту назначения с метриками равной стоимости ( в рамках одного протокола маршрутизации естественно), он отправляет пакеты по обоим путям. Это называется распределением нагрузки в соответствии с равной стоимостью.

Распределение нагрузки с равной стоимостью можно настроить на использование как динамических протоколов маршрутизации, так и статических маршрутов.

Только протокол EIGRP поддерживает распределение нагрузки с неравной стоимостью.

Классовость

Кроме этого динамические протоколы маршрутизации бывают классовые и бесклассовые:

Главное различие между классовыми и бесклассовыми протоколами маршрутизации заключается в том, что классовые протоколы маршрутизации не отправляют данные о маске подсети в обновлениях маршрутизации и соответственно не могут использоваться в бесклассовой междоменной маршрутизации (CIDR).

К классовым протоколам маршрутизации относятся только протоколы RIPv1 и IGRP. Все остальные протоколы маршрутизации IPv4 и IPv6 являются бесклассовыми.

Классовые протоколы маршрутизации также создают определённые в проблемы в разорванных сетях. Сеть считается разорванной в том случае, когда подсети в рамках одной классовой основной сети разделены другим классовым сетевым адресом.

Сравнение со статическими маршрутами

Материалы CISCO CCNA (Маршрутизация)


Внешние и внутренние протоколы маршрутизации

Материалы CISCO CCNA (Маршрутизация)

Автономная система (AS) — представляет собой систему маршрутизаторов, управляемых одним оператором (например компанией или организацией).

Протоколы внутренней маршрутизации (IGP — internal gateway protocol), используемые для маршрутизации внутри автономной системы.
Протоколы внешней маршрутизации (EGP — external gateway protocol), используемые для маршрутизации между автономными системами.

На данный момент протокол BGP представляет собой единственный практически выполнимый и официальный протокол внешней маршрутизации.


Дистанционно-векторный протокол

Означает, что маршруты объявляются путём указания двух характеристик:

  • Расстояние — определяет удалённость сети назначения; основывается на таких метриках, как число переходов, стоимость, полоса пропускания, значение задержки;
  • Вектор — определяет направление маршрутизатора следующего перехода или выходного интерфейса маршрута для доступа к адресу назначения.

В основе дистанционно-векторного протокола лежит алгоритм маршрутизации, RIP использует алгоритм Беллмана-ФордаIGRP и EIGRP используют алгоритм DUAL.

Существует 4 дистанционно-векторных протокола внутренней маршрутизации IPv4:

  • RIPv1 — устаревшая версия протокола первого поколения;
  • RIPv2 — простой дистанционно-векторный протокол;
  • IGRP — запатентованный протокол Cisco первого поколения (на сегодняшний день также устаревший, заменён протоколом EIGRP);
  • EIGRP — расширенная версия дистанционно-векторного протокола.

Дистанционно-векторные протоколы не имеют фактической карты топологии сети. Единственные данные, которые известны маршрутизатору об удалённой сети — расстояние или метрика до такой сети, а также путь или интерфейс, используемые для доступа к ней.

Дистанционно-векторные протоколы, как правило, предотвращают появление петли маршрутизации при сходимости сети с помощью метода разделения горизонта. Метод разделения горизонта запрещает отправку данных о маршрутах из того же интерфейса, от которого они были получены.


RIP

Протокол RIPv1 обладает следующими ключевыми характеристиками:

  1. Широковещательная рассылка обновлений маршрутизации (255.255.255.255) выполняется каждые 30 секунд;
  2. В качестве метрики для выбора пути служит число переходов;
  3. Число переходов превышающее 15 считается бесконечным, слишком удалённым. Маршрутизатор 15 перехода не передаёт обновление маршрутизации на следующий маршрутизатор.

Административная дистанция 120.

RIP каждые 30 секунд отправляет обновление всем соседним устройствам даже в том случае, если топология сети не изменялась (широковещательная рассылка). RIPv2 и EIGRP используют групповые адреса, EIGRP также может отправлять одноадресные сообщения соседнему устройству.

Настройка RIP
R1(config)# router rip
R1(config-router)# network network - классовый сетевой адрес для каждой напрямую подключённой сети

Команда выполняет следующие действия:

  • Включает протокол RIP на всех интерфейсах, которые относятся к конкретной сети. Связанные интерфейсы теперь могут и отправлять, и получать пакеты обновлений протокола RIP;
  • Объявляет указанную сеть в обновлениях маршрутизации RIP, отправляемых другим маршрутизаторам каждые 30 секунд.

Если указан адрес подсети, IOS автоматически преобразует его в классовый сетевой адрес. Следует помнить о том, что протокол RIPv1 является протоколом классовой маршрутизации для IPv4.

Пример. При вводе команды network 192.168.1.32 в текущем файле конфигурации выполняется автоматическое преобразование входных данных в — network 192.168.1.0.

R1(config)# no router rip - останавливает работу протокола RIP и удаляет все существующие настройки протокола

Дополнительные команды:

R1(config-router)# distance number - (1-255) поменять AD
R1(config-router)# version number - (1-2) установить версию
R1(config-router)# no version - возвращает в состояние по умолчанию - отправляет сообщения версии 1, принимает версий 1 и 2 и интерпретирует 2 в 1

Все протоколы маршрутизации поддерживают команду passive-interface для отключения рассылок обновлений на интерфейсе.

Вариант 1, настройка на интерфейсе: 

R1(config-router)# passive-interface interface_id

Вариант 2, общая настройка: 

R1(config-router)# passive-interface default можно настроить все интерфейсы как пассивные 
R1(config-router)# no passive-interface - интерфейсы, которые не должны быть пассивными, могут быть заново активированы с помощью этой команды 

Для того чтобы передать маршрут по умолчанию по сети через RIP, граничный маршрутизатор требуется настроить с использованием:

  • Статического маршрута по умолчанию с помощью команды:
ip route 0.0.0.0 0.0.0.0 { next-hop-ip  | exit-intf }

Затем команды конфигурации маршрутизатора:

R1(config-router)# default-information originate
Недостатки RIP

Отправка ненужных обновлений в сеть LAN имеет следующие последствия:

  • Необоснованное расходование полосы пропускания: полоса пропускания используется для передачи ненужных обновлений. Поскольку обновления RIP отправляются в рамках многоадресной или широковещательной рассылки, коммутаторы также пересылают обновления из всех портов.
  • Потребление ресурсов: все устройства в сети LAN должны обрабатывать пакеты обновлений до транспортных уровней, на которых пакеты отбрасываются.
  • Риски для информационной безопасности: объявление обновлений по широковещательной рассылке представляет собой угрозу информационной безопасности. Пакеты обновлений протокола RIP могут быть перехвачены с помощью ПО для анализа сетевых протоколов (снифферы). Обновления маршрутизации можно изменить и отправить обратно на маршрутизатор, что вызывает повреждение таблицы маршрутизации из-за ложных метрик, которые неверно направляют трафик.

RIPv2

В протоколе RIPv2 представлены следующие усовершенствования:

  1. Бесклассовый протокол маршрутизации: протокол поддерживает использование VLSM и CIDR, поскольку включает маску подсети в обновления маршрутизации.
  2. Повышенная эффективность: протокол пересылает обновления на групповой адрес 224.0.0.9, а не на адрес широковещательной рассылки 255.255.255.255.
  3. Меньшее число записей маршрутизации: протокол поддерживает ручное объединение маршрутов на любом интерфейсе.
  4. Безопасность: протокол поддерживает механизм аутентификации, что обеспечивает безопасность обновлений таблиц маршрутизации между соседними устройствами.

Административная дистанция 120.

Обновления протокола RIP инкапсулируются в сегмент протокола UDP, при этом номера портов источника и назначения настроены на порт UDP 520.

Настройка RIPv2

Настраивается точно также как и RIPv1, за исключение того, что автоматическое суммирование можно отключить. RIPv2 необходимо включить до отключения функции автоматического объединения.

R1(config-router)# no auto-summary

Для RIP и RIPv2: маршрутизатор следующего перехода считается 1 переходом.

Команды для проверки и отладки RIP
debug ip rip - включение отладки RIP
debug ip routing - включение отладки маршрутизации
show ip protocols - просмотр протокола маршрутизации
show ip route rip - просмотр маршрутов rip
clear ip route * - удаляет записи динамической маршрутизации из таблицы маршрутизации, через небольшой промежуток времени таблица обновляется и записи снова появляются

RIPng

RIPng — это RIP для IPv6.

Административная дистанция 120.

В основе протокола RIPng лежит протокол RIPv2. В протоколе до сих пор действует ограничение в 15 переходов, а административная дистанция равна 120.

В протоколе RIPng передающий маршрутизатор считает себя удалённым на расстояние одного перехода, то есть все метрики больше на единицу чем в IPv4.

Отличие от RIPv2, протокол RIPng активируется через интерфейс, а не в режиме глобальной конфигурации маршрутизатора:

ipv6 unicast-routing
interface int_id
ipv6 rip имя_домена enable 

Чтобы передать маршрут по умолчанию, маршрутизатор необходимо настроить с использованием:

  • статического маршрута по умолчанию, использующего команду глобальной конфигурации:
ipv6 route ::/0 { ipv6-address | exit-intf }
  • команду режима конфигурации интерфейса:
ipv6 rip имя_домена default-information originate
Команды для проверки и отладки RIPng
show ipv6 protocols - просмотр протокола маршрутизации
show ipv6 route rip - просмотр маршрутов rip

IGRP

На сегодняшний день данный протокол не используется.

  1. Для создания составной метрики используются характеристики полосы пропускания, задержки, нагрузки и надёжности;
  2. Широковещательная рассылка обновлений маршрутизации выполняется по умолчанию каждые 90 секунд.

EIGRP 

Этот протокол заменил IGRP и является предпочтительным на маршрутизаторах CISCO.

Административная дистанция внутренних маршрутов 90, внешних 170, суммарных 5.

  1. Протокол EIGRP принимает во внимание множество метрик. Однако для определения оптимального маршрута по умолчанию используются полоса пропускания и задержка. Максимум 255 переходов;
  2. Связанные обновления по событию: протокол не отправляет регулярные обновления. Распространению подлежат только изменения в таблице маршрутизации, что позволяет снизить нагрузку на сеть, связанную с работой протокола. Связанные обновления по событию указывают на то, что протокол EIGRP отправляет обновления только тем соседним устройствам, которым они требуются. Такие обновления используют меньший размер полосы пропускания, особенно в больших сетях с множеством маршрутов;
  3. Механизм keepalive (Hello): выполняется регулярная отправка и приём небольших сообщений-приветствий для поддержания отношений смежности с соседними маршрутизаторами. То есть, в отличие от регулярных обновлений, механизм keepalive обеспечивает низкое потребление ресурсов сети. Если ответа на интерфейсе не получено, то на нем приостанавливается процесс маршрутизации и рассылка приветствия;
  4. Обработка таблицы топологии: обработка и сохранение всех маршрутов, принятых от соседних устройств (не только оптимальных путей), в таблице топологии. Алгоритм DUAL может выполнять вставку резервных маршрутов в таблицу топологии EIGRP;
  5. Быстрая сходимость: в большинстве случаев этот протокол является протоколом внутренней маршрутизации с самой быстрой сходимостью, поскольку он обрабатывает альтернативные маршруты, обеспечивая практически мгновенную сходимость. В случае сбоя основного маршрута маршрутизатор может использовать указанный альтернативный маршрут. Переключение на альтернативный маршрут выполняется немедленно и не требует взаимодействия с другими маршрутизаторами;
  6. Поддержка протоколов на нескольких уровнях сети: протокол EIGRP использует протоколозависимые модули (PDM), он является единственным протоколом с поддержкой не только IPv4 и IPv6, но и других протоколов (например, устаревших протоколов IPX и AppleTalk).

Материалы CISCO CCNA (Маршрутизация)

Более подробно EIGRP рассматривается в 3 части курса.


Протокол по состоянию канала

Канал представляет собой интерфейс на маршрутизаторе.

Маршрутизаторы, использующие протокол маршрутизации по состоянию канала, могут создавать полное представление или топологию сети путём сбора данных от остальных маршрутизаторов. Они используют алгоритм маршрутизации кратчайшего пути (SPF) Эдсгера Дейкстры.

Каждый маршрутизатор создаёт собственное дерево кратчайших путей SPF независимо от остальных маршрутизаторов.

Существует два протокола внутренней маршрутизации IPv4 по состоянию канала:

  • OSPF — широко используемый стандартный протокол;
  • IS-IS — протокол, распространённый в сетях операторов связи.
Достижение сходимости
  • Каждый маршрутизатор получает данные о каждой из своих напрямую подключённых сетей;
  • Каждый маршрутизатор отвечает за отправку hello-сообщений соседним устройствам в рамках напрямую подключённых сетей;
  • Когда два маршрутизатора с маршрутизацией по состоянию канала узнают, что они являются соседями, они переходят в состояние смежности. Два смежных соседних устройства продолжают обмениваться этими небольшими hello-пакетами, которые выполняют функцию keepalive-проверки в целях мониторинга состояния соседнего устройства. Если с определённого момента маршрутизатор не получает hello-пакеты от соседнего устройства, такое соседнее устройство считается недоступным, и отношения смежности нарушаются;
  • Каждый маршрутизатор создаёт пакет состояния канала (LSP), в котором содержатся данные о состоянии каждого из напрямую подключённых каналов;
  • Каждый маршрутизатор выполняет лавинную рассылку пакетов состояния канала всем соседним устройствам, которые затем сохраняют полученные пакеты в базу данных;
  • На последнем этапе процесса маршрутизации по состоянию канала каждый маршрутизатор использует базу данных для построения полной карты топологии и вычисляет оптимальный путь к каждой из сетей назначения.

Каждый раз при получении маршрутизатором пакета состояния канала от соседнего устройства маршрутизатор немедленно отправляет такой пакет на все остальные интерфейсы (без каких-либо промежуточных вычислений), кроме интерфейса, на который получен пакет состояния канала.

Этот процесс позволяет выполнить лавинную рассылку пакетов состояния канала от всех маршрутизаторов по всей зоне маршрутизации.

По завершении лавинной рассылки протоколы маршрутизации по состоянию канала рассчитывают алгоритм поиска кратчайшего пути. В результате протоколы маршрутизации по состоянию канала очень быстро достигают состояния сходимости.

Cходимость сети считается достигнутой, когда все маршрутизаторы получили полные и точные данные обо всей сети. Время сходимости — время, требуемое маршрутизатору для обмена данными, расчёта оптимальных путей и обновления таблиц маршрутизации. Сеть не является полностью рабочей до момента полной сходимости,

По завершении сходимости сети обновление состояния канала отправляется только в случае изменений в топологии сети.

Этот процесс одинаков для протоколов OSPF для IPv4 и протоколов OSPF для IPv6.

Регулярная рассылка пакетов состояния канала не требуется. Пакеты состояния канала необходимо отправлять только в следующих случаях:

  • Во время начального запуска протокола маршрутизации на маршрутизаторе (например, при перезагрузке маршрутизатора);
  • При изменениях в топологии (например, в случаях деактивации или повторной активации канала, установлении или разрыве отношений смежности с соседними устройствами).
Пакет LSP

Пакет LSP содержит данные о состоянии каждого из напрямую подключённых каналов.

Пример. Упрощённая версия LSP содержит следующие данные:

  1.  R1; сеть Ethernet 10.1.0.0/16; стоимость 22.
  2. R1 -> R2; последовательная сеть точка-точка; 10.2.0.0/16; стоимость 203.
  3. R1 -> R3; последовательная сеть точка-точка; 10.3.0.0/16; стоимость 54.
  4. R1 -> R4; последовательная сеть точка-точка; 10.4.0.0/16; стоимость 20.

Материалы CISCO CCNA (Маршрутизация)

Данные о состоянии канала включают в себя:

  • IPv4 адрес и маску подсети интерфейса;
  • тип сети (например, Ethernet (с широковещательной рассылкой) или последовательный канал «точка-точка»);
  • Стоимость этого канала;
  • Все соседние маршрутизаторы на этом канале (соседним устройством считается любой маршрутизатор, настроенный с использованием того же протокола маршрутизации по состоянию канала).

Помимо данных о состоянии канала в пакет состояния канала также включаются такие данные, как порядковые номера и сведения о времени создания, что позволяет управлять процессом лавинной рассылки. Эти данные используются каждым из маршрутизаторов, чтобы определить, был ли пакет состояния канала от другого маршрутизатора получен ранее, или пакет содержит более свежие данные, чем те, что уже добавлены в базу данных о состоянии канала. Этот процесс позволяет маршрутизатору сохранять самую актуальную информацию в базе данных о состоянии канала.

Необходимость применения протокола по состоянию канала

Применение протоколов маршрутизации по состоянию канала является целесообразным в следующих случаях:

  • Сеть имеет иерархическую структуру IP адресации, что как правило, характерно для крупных сетей;
  • Быстрая сходимость сети имеет критическое значение;
  • Администраторы хорошо разбираются в работе протокола маршрутизации по состоянию канала.

Во всех других случаях для оборудования CISCO предпочтителен EIGRP.

Достоинства и недостатки протокола по состоянию канала

Достоинства:

  • Создание карты топологии;
  • Быстрая сходимость;.
  • Обновления по событию;
  • Иерархическая структура ( протоколы маршрутизации по состоянию канала используют концепцию областей).

Недостатки:

  • Требования к памяти (для создания и обслуживания базы данных состояний каналов и дерева кратчайших путей SPF);
  • Требования к обработке (ресурсы обработки ЦП);
  • Требования к полосе пропускания (лавинная рассылка пакетов).

OSPF для одной области

Характеристики OSPF:

  • Бесклассовость;
  • Эффективность — изменения маршрутизации запускают обновления маршрутизации (без регулярных обновлений);
  • Быстрая сходимость;
  • Масштабируемость — подходит для использования, как в небольших, так и в больших сетях, можно сгруппировать в области;
  • Безопасность — поддерживает аутентификацию Message Digest 5 (MD5).

Административная дистанция 110.

Метрика (стоимость маршрута)

При реализации протокола OSPF CISCO метрика маршрутизации OSPF указывается как стоимость интерфейса (линка).

Стоимость интерфейса обратно пропорциональна его пропускной способности.

Стоимость маршрута OSPF (метрика) представляет собой аккумулированное значение (сумму стоимостей отдельных линков) от маршрутизатора до сети назначения.

Формула расчёта стоимости OSPF:

  • Стоимость = заданная пропускная способность / пропускная способность интерфейса

Ввиду того, что эталонная пропускная способность по умолчанию задана со значением 100 000 000 bit/s, все каналы, скорость которых выше Fast Ethernet, имеют значение стоимости 1.

Материалы CISCO CCNA (Маршрутизация)

Возможно настраивать заданную пропускную способность:

auto-cost reference-bandwidth number - number в Mbit/s, настройка эталонной пропускной способности

В команде число задается как Mbit/s, а при расчете стоимости как bit/s — тут надо запомнить и не ошибаться.

Пример. Рассчитаем метрику от R1 до сети 172.16.2.0/24:

Метрика = 64 + 1 = 65

Базы данных OSFP

Протокол OSPF создает и обслуживает три базы данных:

  • База данных смежности — создаёт таблицу соседних устройств (show ip ospf neighbor);
  • База данных о состоянии каналов (LSDB) — создаёт таблицу топологии (show ip ospf database);
  • База данных пересылки — создаёт таблицу маршрутизации (show ip route).

Типы пакетов
  • Тип 1: пакет приветствия (hello) — используется для установления и поддержания отношений смежности с маршрутизаторами OSPF.

Протокол OSPF осуществляет обмен сообщениями для передачи данных маршрутизации, используя для этого пять типов пакетов:

Пакеты приветствия используются в следующих целях:

  1. Обнаружение соседних устройств OSPF и установление отношений смежности с ними;
  2. Объявление параметров, при которых два маршрутизатора обязаны согласиться установить отношения смежности.
  3. В сетях с множественным доступом (Ethernet и Frame Relay) необходимо выбрать выделенный маршрутизатор (DR) и резервный выделенный маршрутизатор (BDR). Для каналов типа «точка-точка» наличие DR или BDR не требуется.
  • Тип 2: пакет описания базы данных (DBD) — содержит сокращённый список базы данных состояний каналов отправляющего маршрутизатора. Используется принимающими маршрутизаторами для сверки с локальной базой данных о состоянии канала. Для построения точного дерева кратчайших путей SPF маршрутизаторы с маршрутизацией по состоянию канала в пределах области должны использовать идентичную базу данных состояний каналов.
  • Тип 3: пакет запроса состояния канала (LSR) — принимающие маршрутизаторы могут запросить дополнительные данные о любой записи в пакете описания базы данных (DBD), отправив пакет запроса состояния канала (LSR).
  • Тип 4: пакет обновления состояния канала (LSU) — используется для отправки отклика на пакеты запроса состояния канала (LSR) и объявления новых данных. Пакеты обновления состояния канала (LSU) содержат семь различных типов LSA.
  • Тип 5: пакет подтверждения состояния канала (LSAck) — при получении LSU маршрутизатор отправляет LSAck для подтверждения приёма LSU. Поле данных LSAck является пустым.

Материалы CISCO CCNA (Маршрутизация)

Маршрутизаторы изначально обмениваются пакетами DBD (пакетами типа 2), то есть сокращёнными списками базы данных состояний каналов отправляющего маршрутизатора, которые используются принимающими маршрутизаторами для сверки с локальной базой данных состояний каналов.
Пакет LSR (пакет типа 3) используется принимающими маршрутизаторами для запроса дополнительных данных о записи в пакете DBD.
Пакет LSU (пакет типа 4) используется для отправки отклика на полученный пакет LSR.

Каждый заголовок записи LSA содержит данные о типе состояния канала, адресе объявляющего маршрутизатора, стоимости канала и порядковом номере. Маршрутизатор использует порядковый номер для определения актуальности полученных данных о состоянии канала.

Алгоритм поиска кратчайшего пути
  1. Создаёт дерево кратчайших путей SPF путём размещения каждого маршрутизатора в корне дерева и расчёта кратчайших путей к каждому из узлов.
  2. После этого дерево кратчайших путей SPF используется для расчёта оптимальных маршрутов.
  3. Протокол OSPF вносит оптимальные маршруты в базу данных пересылки.
  4. База данных пересылки применяется для создания таблицы маршрутизации.

Алгоритм сходимости

  1. Установление отношений смежности с соседними устройствами: маршрутизаторы с поддержкой OSPF должны выполнить обнаружение друг друга в сети, чтобы обмениваться данными. Маршрутизатор, использующий OSPF, отправляет пакеты приветствия из всех интерфейсов с включенным OSPF для определения всех соседних устройств в пределах этих каналов. При наличии соседнего устройства маршрутизатор, использующий OSPF, пытается установить с ним отношения смежности.

Материалы CISCO CCNA (Маршрутизация)

  1. После установления отношений смежности маршрутизаторы выполняют обмен объявлениями о состоянии канала (LSA). LSA содержат состояние и стоимость каждого напрямую подключенного канала. Маршрутизаторы отправляют свои LSA смежным устройствам. При получении LSA смежные устройства мгновенно отправляют свои LSA напрямую подключенным соседям; данный процесс продолжается до тех пор, пока все маршрутизаторы области не получат все LSA.

  1. Создание таблицы топологии: после получения объявлений о состоянии канала (LSA) маршрутизаторы, использующие OSPF, создают базу данных топологии на базе полученных пакетов.

Материалы CISCO CCNA (Маршрутизация)

  1. Выполнение алгоритма поиска кратчайшего пути SPF.

  1. Алгоритм поиска кратчайшего пути создаёт дерево кратчайших путей SPF.

Оптимальные маршруты вносятся в таблицу маршрутизации из дерева кратчайших путей SPF.


Области OSFP

Протокол OSPF использует концепцию разделения на области в целях масштабируемости.

Протокол OSPF можно реализовать одним из следующих способов:

  • OSPF для одной области — все маршрутизаторы находятся в одной области, называемой магистральной или нулевой областью (область 0).

  • OSPF для нескольких областей — Все области должны быть подключены к магистральной области (область 0). Маршрутизаторы, с помощью которых осуществляется соединение между областями, называются пограничными маршрутизаторами (ABR).

При использовании иерархической маршрутизации выполняется маршрутизация между областями (межобластная маршрутизация), но многие из операций маршрутизации, потребляющих ресурсы процессора (например, повторный расчёт базы данных), выполняются в пределах одной области.

Изменения топологии распределяются по маршрутизаторам в других областях в дистанционно-векторном формате — эти маршрутизаторы обновляют только свои таблицы маршрутизации и не должны повторно выполнять алгоритм поиска кратчайших путей.

Возможности иерархической топологии OSPF для нескольких областей обеспечивают ряд следующих преимуществ:

  • Таблицы маршрутизации меньшего размера — меньшее число записей в таблицах маршрутизации, так как сетевые адреса могут объединяться между областями. Функция объединения маршрутов отключена по умолчанию.
  • Снижение нагрузки, вызванной обновлениями состояния канала — минимизация требований к ресурсам процессора и памяти.
  • Снижение частоты расчётов кратчайшего пути — локализация воздействия изменений топологии в пределах области. Таким образом, сокращается воздействие обновлений маршрутизации, так как лавинная рассылка объявлений LSA прекращается на границе области.

Материалы CISCO CCNA (Маршрутизация)


Структура пакета OSPF

  • Заголовок кадра канала данных Ethernet — определяет групповой MAC-адрес назначения 01-00-5E-00-00-05 или 01-00-5E-00-00-06.
  • Заголовок IP-пакета — определяет поле 89 протокола IPv4, указывающее, что этот пакет является пакетом OSPF. Он также определяет один из двух групповых адресов OSPF (224.0.0.5 или 224.0.0.6).
  • Заголовок пакета OSPF — определяет тип пакета OSPF, идентификатор маршрутизатора и идентификатор области.
  • Данные в зависимости от типа пакета OSPF — содержат данные о типе пакета OSPF. Содержимое может отличаться в зависимости от типа пакета.

Пакет приветствия (hello):

  • Тип — определяет тип пакета. Число 1 обозначает пакет приветствия. Значение 2 обозначает пакет DBD, 3 — пакет LSR, 4 — пакет LSU, а 5 — пакет LSAck;
  • Идентификатор маршрутизатора — 32-битное значение, выраженное в десятичном формате с разделением точкой (IPv4-адрес), используется для уникального обозначения исходного маршрутизатора;
  • Идентификатор области — область, в которой создан пакет;
  • Маска подсети — маска подсети, связанная с отправляющим интерфейсом;
  • Интервал приветствия (HelloInterval) — интервал (в секундах), по истечении которого маршрутизатором отправляется следующий пакет приветствия. В сетях с множественным доступом интервал приветствия по умолчанию задан со значением 10 секунд. В соседних маршрутизаторах должен использоваться один и тот же таймер, иначе отношения смежности не устанавливаются;
  • Приоритет маршрутизатора — используется при выборе DR/BDR. По умолчанию для всех маршрутизаторов OSPF задан приоритет 1, однако его можно изменить вручную, выбрав значение в диапазоне от 0 до 255. Чем выше это значение, тем больше вероятность того, что маршрутизатор будет использоваться как выделенный маршрутизатор (DR) на этом канале;
  • Интервал простоя (RouterDeadInterval) — интервал (в секундах) ожидания маршрутизатором сигнала от соседнего устройства, по истечении которого соседний маршрутизатор объявляется «мёртвым». Как правило, значение интервала простоя равно четырёхкратному значению интервала приветствия. В соседних маршрутизаторах должен использоваться один и тот же таймер, иначе отношения смежности не устанавливаются;
  • Выделенный маршрутизатор (DR) — идентификатор маршрутизатора DR;
  • Резервный выделенный маршрутизатор (BDR) — идентификатор маршрутизатора BDR;
  • Список соседних устройств — список, определяющий идентификаторы всех смежных маршрутизаторов;

Hello передаются на групповой адрес 224.0.0.5 в сети IPv4 и на адрес FF02::5 в сети IPv6 со следующими интервалами:

  • Каждые 10 секунд (по умолчанию в сетях с множественным доступом и сетях типа «точка-точка»);
  • Каждые 30 секунд (по умолчанию в не широковещательных сетях множественного доступа, например, Frame Relay).
Состояния OSPF

Если на интерфейсе активирован протокол OSPF, маршрутизатор должен определить наличие другого соседнего устройства OSPF в канале. Для этого маршрутизатор отправляет пакет приветствия,
содержащий идентификатор маршрутизатора, из всех интерфейсов с поддержкой OSPF.

Материалы CISCO CCNA (Маршрутизация)

  1. Если протокол OSPF активирован, интерфейс, использующий этот протокол, переходит из состояния Down в состояние Init.

  1. Если соседний маршрутизатор, на котором активирован протокол OSPF, получает пакет приветствия с идентификатором маршрутизатора, который не включён в список его соседних устройств, принимающий маршрутизатор пытается установить с инициирующим маршрутизатором отношения смежности.

3. Действие, выполняемое в состоянии Two-Way, определяется типом взаимодействия между смежными маршрутизаторами:

  • Если два смежных соседних устройства взаимодействуют посредством канала типа точка-точка, они немедленно переходят из состояния Two-Way в фазу синхронизации базы данных.
  • Если маршрутизаторы взаимодействуют посредством общей сети Ethernet, необходимо выбрать выделенный маршрутизатор (DR) и резервный выделенный маршрутизатор (BDR).

Следует помнить, что выбор DR и DBR происходит в фазе Two-Way.

Для чего необходимо выбрать выделенный и резервный выделенный маршрутизаторы?

  • Избежать установления большого количества отношений смежности;
  • Избежать избыточной лавинной рассылки пакетов LSA.

4. В состоянии ExStart между маршрутизаторами и их смежными маршрутизаторами DR и BDR устанавливаются отношения ведущего и ведомых устройств.

5. В состоянии Exchange ведущие и ведомые маршрутизаторы обмениваются одним или несколькими пакетами DBD.

6. Если пакет DBD содержит более актуальную запись о состоянии канала, маршрутизатор переходит в состояние Loading.

  1.  После того как на все пакеты LSR для данного маршрутизатора отправлен отклик, смежные маршрутизаторы считаются синхронизированными и переведёнными в состояние Full.

После синхронизации топологических баз данных пакеты обновлений (LSU) отправляются соседним устройствам только в следующих случаях:

  • Получение изменений (инкрементные обновления);
  • По истечении 30 минут.

OSPFv2 (IPv4)

Настройка стоимости на интерфейсах

К тому, что уже было сказано по поводу расчёта метрики, нужно добавить следующее: можно явно переопределить пропускную способность на интерфейсе.

bandwidth number - KBit/s, настроить пропускную способность интерфейса
no bandwidth - восстановить значение по умолчанию

Пропускную способность необходимо настроить на каждом из концов  каналов.
Команда bandwidth  не изменяет физическую пропускную способность канала. Команда изменяет только метрики пропускной способности, используемые протоколом OSPF.

Либо можно сразу задать непосредственно стоимость на интерфейсе:

ip ospf cost value - настроить вручную на интерфейсе значение стоимости, преимущество - маршрутизатору не требуется рассчитывать метрику

Рекомендуется использовать данную настройку в неоднородных средах, где маршрутизаторы сторонних производителей могут использовать для расчёта значений стоимости OSPF метрику, отличную от значения пропускной способности.

Изменение метрик стоимости канала с помощью команды ip ospf cost — это наиболее простой и предпочтительный способ изменения стоимости маршрутов OSPF.

Материалы CISCO CCNA (Маршрутизация)

И затем нужно проверить результат:

show ip ospf interface int_id | include Cost
show interfaces int_id | include BW
Настройка OSPFv2
R1(config)# router ospf process-id - process-id представляет собой число в диапазоне от 1 до 65535 и имеет локальное значение, то есть оно не обязательно должно быть идентичным значениям на других маршрутизаторах OSPF для установления отношений смежности
R1(config-router)# router-id X.X.X.X - добавление идентификатора маршрутизатора
R1(config-router)# network network area number - добавление сети

Маршрутизатор с поддержкой протокола OSPF использует идентификатор в следующих целях:

  • Уникальная идентификация маршрутизатора — идентификатор маршрутизатора используется другими маршрутизаторами для уникальной идентификации в пределах домена OSPF каждого из маршрутизаторов, а также всех пакетов, исходящих от них.
  • Участие в выборе маршрутизатора DR — в сети LAN множественного доступа выбор маршрутизатора DR осуществляется в процессе исходной организации сети OSPF. При активации каналов OSPF устройство маршрутизации, для которого настроен наивысший приоритет, назначается маршрутизатором DR. В случае если приоритет не настроен или он одинаков, маршрутизатор с самым высоким значением идентификатора выбирается маршрутизатором DR. Устройство маршрутизации со следующим значением идентификатора выбирается как маршрутизатор BDR.
Выбор Router-id

Маршрутизаторы CISCO выводят идентификатор на основе одного из трёх критериев в следующем порядке предпочтения:

  1. Идентификатор маршрутизатора настраивается напрямую посредством команды router-id rid. Значение rid является любым 32-битным значением, выраженным как IPv4-адрес. Данный метод является рекомендуемым для назначения идентификатора маршрутизатора. Некоторые ранние версии IOS не распознают команду router-id.
  2. Если идентификатор маршрутизатора не настроен напрямую, маршрутизатор выбирает самое высокое значение IPv4-адреса любого из настроенных интерфейсов loopback. IPv4-адрес интерфейса loopback необходимо настроить, используя 32-битную маску подсети (255.255.255.255). Таким образом создаётся маршрут узла.
  3. При отсутствии настроенных интерфейсов loopback маршрутизатор выбирает самое высокое значение активного IPv4-адреса любого из своих физических интерфейсов. Данный метод не рекомендуется использовать, так как в этом случае администратору сложнее различать маршрутизаторы.

Если маршрутизатор использует самое высокое значение IPv4-адреса для идентификатора маршрутизатора, интерфейс не должен обязательно поддерживать протокол OSPF. Единственным требованием в этом случае является активность интерфейса и его работоспособность.

Идентификатор маршрутизатора выглядит как IP-адрес, однако его маршрутизация невозможна.
После выбора маршрутизатором идентификатора активный процесс OSPF не позволяет изменять этот идентификатор до тех пор, пока маршрутизатор не будет перезагружен или процесс OSPF не будет удалён.
Удаление процесса OSPF является предпочтительным методом сброса идентификатора маршрутизатора.

clear ip ospf process - удаляет OSPF процесс, выполняется в привилегированном режиме EXEC

Если для двух соседних маршрутизаторов используется одинаковый идентификатор маршрутизатора, в этом случае маршрутизатор выводит сообщение об ошибке.

Команды просмотра
show ip protocols | section Router ID - для проверки идентификатора маршрутизатора
show ip ospf neighbor - используется для проверки установления маршрутизатором отношений смежности с соседними маршрутизаторами

Команда отображает следующие выходные данные:

  • Neighbor ID — идентификатор соседнего маршрутизатора;
  • Pri — приоритет OSPF интерфейса. Это значение используется при выборе маршрутизаторов DR и BDR;
  • State — состояние OSPF интерфейса. Состояние FULL означает, что маршрутизатор и его соседнее устройство имеют идентичные базы данных состояний каналов OSPF. В сетях с множественным доступом (например, Ethernet) состояние двух маршрутизаторов, состоящих в отношениях смежности, может отображаться как 2WAY. Тире указывает на то, что использование в данном типе сети выделенного маршрутизатора DR или резервного выделенного маршрутизатора BDR не требуется;
  • Dead Time — интервал времени, в течение которого маршрутизатор ожидает получения пакета приветствия от соседнего устройства прежде, чем объявит его недействующим. Данное значение сбрасывается при получении интерфейсом пакета приветствия;
  • Address — IPv4-адрес интерфейса соседнего устройства, к которому напрямую подключен этот маршрутизатор;
  • Interface — интерфейс, на котором этот маршрутизатор установил отношения смежности с соседним устройством.

Пример. Следующая топология:

Вывод команды show ip ospf neighbor на R1:

show ip ospf - можно использовать для проверки идентификатора процесса OSPF и идентификатора маршрутизатора
show ip ospf interface { brief  |  int_id } - данные 
по всем интерфейсам | данные по интерфейсу 

Поиск и устранение неполадок в OSPFv2

Для устранения неполадок в сети OSPF необходимо знать следующие команды:

show ip ospf neighbors
show ip route
show ip route ospf
show ip protocols

Условия формирования смежности OSPFv2 довольно сложны (по сравнению с EIGRP). Для начала роутеры должны обменяться пакетами Hello, это возможно если:

  • Есть подключение 3 уровня между роутерами;
  • OSPF на интерфейсах был активирован, то есть должна присутствовать команда network, соответствующая IP адресу на интерфейсе;
  • Интерфейсы не должны быть пассивными;

Далее, когда пакеты Hello получены выполняется целый ряд проверок:

  • IPv4 адреса интерфейсов должны быть в одной подсети;

Хотя интерфейсы с адресами 192.168.0.1/24 и 192.168.0.2/30 способны взаимодействовать друг с другом на 3 уровне, соотношения смежности OSPF они установить не смогут.

  • Интерфейсы обоих роутеров должны быть настроены в одной области OSPF;
  • Router ID должен быть уникальным как каждом роутере;
  • На интерфейсах обоих роутеров должен быть одинаковый MTU;

Если значения MTU на двух подключенных роутерах не совпадают, то они все равно попытаются сформировать отношения смежности. Но не смогут обменяться LSDB, из-за чего отношения соседства не установятся.

  • На роутерах должны быть одинаковые таймеры OSPF (hello-interval, dead-interval);
  • Если настроена аутентификация, то параметры этой аутентификации должны совпадать на обоих роутерах

OSPFv3 (IPv6)

Сходства с OSPFv2

Auto-cost reference-bandwidth для OSPFv3 не влияет на OSPFv2.

Отличия от OSPFv2

Аутентификация OSPFv3 — это встроенный в IPv6 IPSec.

В протоколе OSPFv3 для установления отношений смежности с соседними маршрутизаторами не требуется сопоставление подсетей. Это связано с тем, что отношения смежности с соседними устройствами устанавливаются посредством адресов типа link-local, а не посредством глобальных индивидуальных адресов.

Если адрес типа link-local не настроен вручную, маршрутизаторы CISCO создают его, используя процесс EUI-64. с префиксом FE80::/10. EUI-64 предусматривает использование 48-битного MAC-адреса Ethernet, вставку FFFE в центр и инверсию седьмого бита. Для последовательных интерфейсов маршрутизаторы CISCO используют MAC-адрес интерфейса Ethernet. В этом случае link-local адрес может быть одинаковым для нескольких интерфейсов.

Рекомендуется настроить link-local адрес вручную, выбрав его одинаковым для всех интерфейсов. Например:

  • R1 — FE80::1
  • R2 — FE80::2
Этапы настройки

Материалы Cisco CCNA - части 1 и 2 курса (Маршрутизация)

ipv6 router ospf process-id  - process-id может быть от 1 до 65535 и имеет локальное значение

Протоколы маршрутизации IPv6 включаются на интерфейсе, а не из режима конфигурации маршрутизатора, как в IPv4. Команда режима конфигурации маршрутизатора IPv4 network недоступна в IPv6.

router-id rid  - установка идентификатора маршрутизатора, rid = X.X.X.X
show ipv6 protocols - для просмотра идентификатора маршрутизатора

После того как маршрутизатор OSPFv3 установил идентификатор маршрутизатора, идентификатор не может быть изменён до тех пор, пока маршрутизатор не будет перезагружен или процесс OSPF не будет удалён.

clear ipv6 ospf process - удаление процесса OSPF

Удаление процесса является предпочтительным действием. При этом протокол OSPF на маршрутизаторе R1 принудительно выполняет повторное установление отношений смежности с соседними устройствами с использованием нового идентификатора маршрутизатора.

ipv6 ospf process-id area area-id - включение ospf на интерфейсе

Process-id при этом должен совпадать с идентификатором процесса, используемым при создании процесса.

Команды просмотра
show ipv6 ospf interface brief - служит для отображения активных интерфейсов OSPFv3
show ipv6 ospf interface int_id
show ipv6 ospf neighbor - используется для проверки установления маршрутизатором отношений смежности

Состояние должно быть FULL, иначе это может привести к появлению ошибочных деревьев кратчайших путей SPF и таблиц маршрутизации.

Материалы CISCO CCNA (Маршрутизация)

Для сравнения вывод соседей для OSPFv2:

Материалы CISCO CCNA (Маршрутизация)

Как можно увидеть столбец Address для IPv4 в IPv6 заменяет столбец Interface ID.

show ipv6 route ospf - просмотр маршрутов OSPF

Более подробно OSPF для одной и нескольких областей рассматривается в 3 части курса.

Настройка маршрутизации между двумя роутерами является одной из ключевых задач при создании сети. Это позволяет обеспечить передачу данных между различными сетевыми устройствами и обеспечить их взаимодействие в рамках сети.

Первым шагом при настройке маршрутизации является соединение двух роутеров с помощью сетевых кабелей. Один кабель подключается к порту WAN (Wide Area Network) первого роутера, а другой кабель — к порту LAN (Local Area Network) второго роутера. Это обеспечивает физическое соединение между роутерами и создание сетевой связи.

После этого следует приступить к настройке программной части маршрутизации. Для этого необходимо зайти в веб-интерфейс первого роутера, воспользовавшись стандартным IP-адресом роутера (например, 192.168.1.1). В настройках роутера нужно найти раздел «Маршрутизация» и добавить новый маршрут для второго роутера. В качестве адреса назначения указывается IP-адрес второго роутера, а в качестве шлюза — IP-адрес первого роутера.

После добавления нового маршрута необходимо сохранить настройки и перейти к настройке второго роутера. Здесь также нужно зайти в веб-интерфейс роутера и добавить новый маршрут для первого роутера. В качестве адреса назначения указывается IP-адрес первого роутера, а в качестве шлюза — IP-адрес второго роутера.

Важно учитывать, что IP-адреса роутеров должны находиться в одной сети, например, 192.168.1.0/24. Также необходимо убедиться, что у обоих роутеров включена функция маршрутизации и настроены правила фаервола для передачи сетевых пакетов.

После настройки маршрутизации и сохранения изменений на обоих роутерах, они должны быть готовы к передаче данных между собой. Теперь устройства, подключенные к одному роутеру, смогут обмениваться информацией с устройствами, подключенными к другому роутеру.

В случае возникновения проблем с маршрутизацией между роутерами, стоит проверить правильность настройки IP-адресов, шлюзов и наличие правил фаервола. Также можно выполнить перезагрузку роутеров и проверить соединение с помощью утилиты ping.

Содержание

  1. Инструкция по настройке маршрутизации между двумя роутерами
  2. Шаг 1: Подключение роутеров к сети
  3. Шаг 2: Настройка IP-адресов на роутерах
  4. Шаг 3: Включение маршрутизации на роутерах
  5. Шаг 4: Настройка статических маршрутов на роутерах
  6. Шаг 5: Проверка соединения между роутерами
  7. Шаг 6: Настройка NAT для доступа к внешней сети
  8. Шаг 7: Защита соединения с помощью аутентификации и шифрования
  9. Вопрос-ответ

Инструкция по настройке маршрутизации между двумя роутерами

Маршрутизация между двумя роутерами — важный этап настройки сети. Для успешной работы сети необходимо правильно настроить маршрутизацию, чтобы данные могли передаваться между двумя роутерами и подключенными к ним устройствами.

Шаги по настройке маршрутизации между двумя роутерами:

  1. Подключите компьютеры и устройства к соответствующим портам роутеров. Убедитесь, что соединения установлены правильно и кабели работают исправно.
  2. Зайдите в веб-интерфейс первого роутера. Для этого откройте браузер и введите IP-адрес роутера в строку адреса. Войдите в систему, используя соответствующие данные аутентификации.
  3. Перейдите в раздел настройки маршрутизации. Обычно этот раздел называется «Routing» или «Маршрутизация».
  4. Настройте статическую маршрутизацию. Для этого введите IP-адрес второго роутера (или его внешний IP-адрес) и маску подсети.
  5. Сохраните настройки и перейдите к настройке второго роутера.
  6. Войдите в веб-интерфейс второго роутера и перейдите в раздел настройки маршрутизации.
  7. Настройте статическую маршрутизацию. Введите IP-адрес первого роутера (или его внешний IP-адрес) и маску подсети.
  8. Сохраните настройки и перезагрузите роутеры.

После выполнения этих шагов маршрутизация между двумя роутерами должна быть настроена успешно. Все устройства, подключенные к роутерам, смогут передавать данные между собой.

Если у вас возникли сложности при настройке маршрутизации между двумя роутерами, проверьте правильность подключения кабелей, соответствие настроек IP-адресов и масок подсетей, а также аутентификационные данные для доступа к веб-интерфейсу роутеров.

Шаг 1: Подключение роутеров к сети

Первым шагом необходимо подключить оба роутера к сети. Это можно сделать с помощью сетевых кабелей, которые нужно вставить в разъемы WAN на каждом роутере и в сетевой порт на вашем модеме или стене.

После подключения кабелей убедитесь, что оба роутера включены и работают. Их индикаторы питания и сетевого подключения должны быть активными.

Для проверки подключения вы можете попробовать открыть веб-страницу на обоих роутерах. Если страницы успешно загружаются, значит, роутеры подключены к сети правильно.

Кроме того, убедитесь, что сеть имеет доступ в Интернет, проверив соединение на своем устройстве. Если у вас есть доступ в Интернет, это означает, что ваша сеть настроена правильно и можно переходить к следующему шагу маршрутизации.

Шаг 2: Настройка IP-адресов на роутерах

После того, как вы установили физическое соединение между двумя роутерами, необходимо приступить к настройке их IP-адресов. IP-адрес — это уникальный идентификатор, который позволяет роутерам обмениваться данными в сети.

Для начала, подключитесь к первому роутеру через командную строку или через интерфейс управления. Затем, введите команду для настройки IP-адреса:

ip address ip-адрес подсети маска подсети

Например, если вы хотите установить IP-адрес «192.168.1.1» для первого роутера с маской подсети «255.255.255.0», команда будет выглядеть так:

ip address 192.168.1.1 255.255.255.0

После ввода команды, нажмите Enter и IP-адрес будет установлен на первом роутере. Повторите этот процесс для второго роутера, но используйте другой IP-адрес, чтобы избежать конфликта.

Чтобы проверить, что IP-адреса настроены правильно, вы можете использовать команду show ip interface brief. Она покажет список интерфейсов и их IP-адресов на роутерах.

Теперь, когда IP-адреса настроены на обоих роутерах, они готовы для маршрутизации данных между собой. В следующем шаге мы рассмотрим настройку маршрутизации на роутерах.

Шаг 3: Включение маршрутизации на роутерах

Для того чтобы настроить маршрутизацию между двумя роутерами, необходимо включить функцию маршрутизации на каждом из них. Это позволит роутерам пересылать пакеты данных друг другу и определить наилучший путь для доставки этих пакетов.

Для включения маршрутизации на роутере необходимо выполнить следующие действия:

  1. Войти в конфигурационный режим роутера с помощью команды enable.
  2. Перейти в режим конфигурации маршрутизатора с помощью команды configure terminal.
  3. Включить функцию маршрутизации с помощью команды ip routing.
  4. Сохранить изменения в конфигурацию роутера с помощью команды write или copy running-config startup-config.

После выполнения этих действий, функция маршрутизации будет включена на роутере. Необходимо повторить эти шаги на каждом роутере, участвующем в маршрутизации.

Шаг 4: Настройка статических маршрутов на роутерах

После успешного соединения и настройки базовых параметров на обоих роутерах, необходимо настроить статические маршруты для обеспечения связности между ними.

Сначала необходимо определить IP-адреса для каждого интерфейса на обоих роутерах. Затем, используя команду «ip route» на каждом роутере, настроить статический маршрут до сетей, которые находятся за соседним роутером.

Примеры команд:

  • Для роутера A:
  • ip route 10.0.0.0 255.255.255.0 192.168.1.2 — настроить маршрут к сети 10.0.0.0/24 через роутер B с IP-адресом 192.168.1.2.
  • Для роутера B:
  • ip route 192.168.0.0 255.255.255.0 192.168.1.1 — настроить маршрут к сети 192.168.0.0/24 через роутер A с IP-адресом 192.168.1.1.

Таким образом, роутер A будет знать о сети 10.0.0.0/24 через роутер B, а роутер B будет знать о сети 192.168.0.0/24 через роутер A. Теперь маршрутизация между обоими роутерами должна быть настроена и работать корректно.

Шаг 5: Проверка соединения между роутерами

После настройки маршрутизации между двумя роутерами необходимо проверить работоспособность соединения. Для этого можно воспользоваться командой «ping».

  1. На компьютере, подключенном к одному из роутеров, откройте командную строку.
  2. Введите команду «ping [IP-адрес второго роутера]».

Например, если IP-адрес второго роутера равен 192.168.1.2, то команда будет выглядеть следующим образом: «ping 192.168.1.2».

Если все настройки выполнены правильно, то вы увидите сообщения о том, что пакеты данных успешно доставляются до второго роутера и обратно. Это означает, что соединение между роутерами работает корректно.

В случае, если вы не получаете ответа на команду «ping», проверьте, не сделана ли ошибка при настройке маршрутизации или не возникли ли проблемы с сетевыми кабелями.

Также стоит убедиться, что оба роутера включены и имеют рабочее подключение к интернету.

Проверка соединения между роутерами позволяет убедиться в правильности настроек маршрутизации и обеспечить работу сети между различными сегментами.

Шаг 6: Настройка NAT для доступа к внешней сети

Для обеспечения доступа к внешней сети необходимо настроить Network Address Translation (NAT) на роутере. NAT позволяет преобразовывать локальные IP-адреса в глобальные IP-адреса, а также управлять перенаправлением трафика между внутренними и внешними сетями.

Для настройки NAT необходимо выполнить следующие действия:

  1. Зайдите в настройки роутера и найдите раздел, отвечающий за настройку NAT.
  2. Включите функцию NAT и укажите интерфейс, через который будет осуществляться доступ к внешней сети.
  3. Укажите внешний IP-адрес роутера, который будет использоваться для обмена данными с внешней сетью.
  4. Настройте правила NAT для перенаправления трафика между локальными и глобальными IP-адресами.
  5. Сохраните настройки и перезагрузите роутер.

После выполнения этих действий доступ к внешней сети должен быть настроен, и устройства в локальной сети смогут обмениваться данными с внешними ресурсами. Обратите внимание, что настройка NAT может отличаться в зависимости от модели роутера и используемого программного обеспечения.

Шаг 7: Защита соединения с помощью аутентификации и шифрования

Для обеспечения безопасности маршрутизации и защиты данных, передаваемых между двумя роутерами, необходимо настроить аутентификацию и шифрование.

1. Настройка аутентификации:

  1. На каждом роутере создайте учетную запись для аутентификации, включая имя пользователя и пароль.
  2. Настройте каждый интерфейс маршрутизатора для требования аутентификации при установлении соединения.
  3. Установите метод аутентификации в качестве пароля для доступа к привилегированному режиму.

2. Настройка шифрования:

  • Выберите соответствующий метод шифрования для защиты данных, передаваемых между роутерами.
  • Настройте и активируйте шифрование на каждом интерфейсе маршрутизатора.

Эти меры позволят защитить соединение и обеспечить конфиденциальность передаваемых данных между двумя роутерами. Регулярно изменяйте пароли для предотвращения несанкционированного доступа.

Вопрос-ответ

Другие наши интересноые статьи:

  • Мас адрес роутера что это такое
  • Маршрутизатор роутер это устройство которое
  • Мас адрес роутера где посмотреть
  • Маршрутизатор роутер это в информатике
  • Маленькая скорость интернета на роутере мтс

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии