фото с сайта amazon.comПродолжение перевода главы из книги Chris Bryant «CCNP Route Study Guide». Его сайт — thebryantadvantage.com. Книга доступна на amazon.

Из всех просмотренных видео, прочитанных книг для подготовки к CCNP ROUTE, материал из этой показался наиболее легким для усвоения. Позволяет разложить все по полочкам. Кроме теории мне также понравились практические примеры. В конце каждой главы есть ссылки на уроки на youtube.
Часть 1,
Часть 2.

Почему бы не использовать одну большую зону 0?


После того, как слышишь о важности зоны 0 в 10000-й раз, начинаешь думать: «А почему бы не поместить все маршрутизаторы в одну большую зону 0? В этом случае не придется беспокоиться о плане сети, виртуальных каналах и прочем! В конце концов RIP не использует зоны вообще.»

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

Звучит здорово, в экзаменах Cisco любят слово «иерархический»...но что оно означает?. Вот определение:

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

Преимущества многозонового OSPF


Зоны OSPF дают вам возможность построить многоуровневую сеть. Снизить нагрузку на такие ресурсы маршрутизатора как память и ЦПУ. Благодаря такому подходу маршрутизаторам иногда может не понадобиться большая таблица маршрутизации.

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

У однозонового OSPF есть другие недостатки. Логическое деление сети OSPF на зоны помогает ограничить траффик LSU и LSA, т.к. рассылка уведомлений об измененеиях в сети ограничена зоной. Это позволяет ограничить повторное вычисление таблицы маршрутизации по алгоритму Дейкстры.

Суммируя сказанное, зоны OSPF имеют следующие преимущества:

--более эффективная маршрутизация через «полные но краткие» (complete yet concise) таблицы маршрутизации,
--меньше в целом перерасчет по алгоритму SPF,
--меньше траффика LSU\LSA и связанных с ним издержек

Говоря о перерасчете таблиц маршрутизации по алгоритму SPF, можно увидеть сколько раз он запускался с помощью команды show ip ospf. Если вы видите, что это число постоянно возрастает, то значит в зоне OSPF есть нестабильный сегмент. (Тут много текста в выводе команды, но его стоит знать).

R3#show ip ospf
     Routing Process "ospf 1" with ID 3.3.3.3
     Supports only single TOS(TOS0) routes
     Supports opaque LSA
     It is an area border router
     SPF schedule delay 5 secs, Hold time between two SPFs 10 secs
     Minimum LSA interval 5 secs. Minimum LSA arrival 1 secs
     Number of external LSA 0. Checksum Sum 0x000000
     Number of opaque AS LSA 0. Checksum Sum 0x000000
     Number of DCbitless external and opaque AS LSA 0
     Number of DoNotAge external and opaque AS LSA 0
     Number of areas in this router is 3. 3 normal 0 stub 0 nssa
     External flood list length 0
          Area BACKBONE(0)
          Number of interfaces in this area is 2
          Area has no autentication
          SPF algorithm executed 10 times
          Area ranges are
          Number of LSA 12. Checksum Sum 0x06DBEB
          Number of opaque link LSA 0. Checksum Sum 0x000000
          Number of DCbitless LSA 0
          Number of indication LSA 0
          Number of DoNotAge LSA 3
          Flood list length 0
        Area 13
          Number of interfaces in this area is 1
          Area has no autentication
          SPF algorithm executed 4 times
          Area ranges are
          Number of LSA 14. Checksum Sum 0x0822C6
          Number of opaque link LSA 0. Checksum Sum 0x000000
          Number of DCbitless LSA 0
          Number of indication LSA 0
          Number of DoNotAge LSA 0
          Flood list length 0
        Area 34
          Number of interfaces in this area is 1
          Area has no autentication
          SPF algorithm executed 6 times
          Area ranges are
          Number of LSA 15. Checksum Sum 0x06BDFB
          Number of opaque link LSA 0. Checksum Sum 0x000000
          Number of DCbitless LSA 0
          Number of indication LSA 0
          Number of DoNotAge LSA 0
          Flood list length 0

Все это мы подробно рассмотрим в следующей части.

Определение стоимости пути OSPF


Когда вы смотрите в таблицу маршрутизации OSPF, вы видите два числа в квадратных скобках. Первое число это административная дистанция (AD) OSPF, которая равна 110. Второе число — метрика, используемая OSPF, стоимость пути.
R2#show ip route ospf
        1.0.0.0/32 is subnetted, 1 subnets
    O IA  1.1.1.1[110/65] via 172.12.123.1, 2d03h, Serial0
        33.0.0.0/32 is subnetted, 1 subnets
    O IA  33.33.33.33[110/65] via 172.12.123.3, 2d02h, Serial0
        3.0.0.0/32 is subnetted, 1 subnets
    O IA  3.3.3.3[110/65] via 172.12.123.3, 2d03h, Serial0
        15.0.0.0/24 is subnetted, 1 subnets

OSPF присваивает стоимость каждому интерфейсу, на котором он разрешен. Стоимость интерфейса зависит от скорости порта. По-умолчанию OSPF использует следующую формулу:

100,000,000/Bandwidth in bps (NOT kbps!)

В документации вы можете встретить 10^8, но мне кажется, легче запомнить ее как 100 миллионов. Если вам нужно посчитать стоимость вручную, помните о единицах измерения — бит, а не килобит в секунду.

Вот несколько значений по-умолчанию для известных скоростей интерфейсов:

56 kbps = 1785
T1 line = 64
Ethernet = 10
16 MBPS Token Ring = 6
FDDI and 100 MBPS Ethernet = 1

При подготовке к CCNA вы выучили, что команда уровня интерфейса bandwidth позволяет присвоить EIGRP более точное значение скорости на последовательном интерфейсе. Эта же команда может использоваться и для OSPF.

Например, если скорость на интерфейсе serial1 маршрутизатора составляет 512 kbps, а не 1544 kbps, то команда bandwidth дает возможность указать более точное значение скорости интерфейса. OSPF выполнит перерасчет стоимости интерфейса почти незамедлительно после ввода данной команды.

Стоимость интерфейса можно посмотреть с помощью команды show ip ospf interface. Заметьте, стоимость последовательного интерфейса составляет 64, а значит интерфейс подключен к линии T1. Если бы он был подключен к линии со скоростью 512 kbps, можно было бы использовать команду bandwidth, и OSPF сразу бы перерасчитал стоимость интерфейса.

R1#show ip ospf interface serial0
  Serial0 is up, line protocol is up
   Internet Address 172.12.123.1/24, Area 0
   Process ID 1, Router ID 1.1.1.1, Network Type NON_BROADCAST, Cost 64

  R1#conf t
  Enter configuration commands, one per line. End with CNTL/Z.
  R1(config)#interface serial0
  R1(config-if)#bandwidth 512

  R1#show ip ospf interface serial0
  Serial0 is up, line protocol is up
   Internet Address 172.12.123.1/24, Area 0
   Process ID 1, Router ID 1.1.1.1, Network Type NON_BROADCAST, Cost 195

Новая скорость интерфейса составляет треть от T1, так что новая стоимость интерфейса примерно равна трем стоимостям по-умолчанию для данного интерфейса.

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

Вы можете изменить значение, которое OSPF использует для вычисления стоимости пути. Если у вас действительно есть хорошая причина изменить значение 100,000,000, вы можете использовать команду ospf auto-cost reference-bandwidth. Самое забавное, что эта команда требует указания скорости в MBPS:

R2#conf t
  Enter configuration commands, one per line. End with CNTL/Z.
  R2(config)#router ospf 1
  R2(config-router)#auto-cost reference-bandwidth ?
    <1-4294967> The reference bandwidth in terms of Mbits per second

Хорошей причиной для такого изменения может стать добавление интерфейсов FastEthernet и GigEthernet в вашу сеть.

Сравнение OSPF и RIP


OSPF считается лучше RIP, и вот почему:
--метрика OSPF более точна для измерения действительного расстояния до удаленной сети.
--в OSPF используется композитная метрика, стоимость, тогда в RIP вся метрика основана на числе прыжков.
--OSPF не накладывает ограничений, когда сеть «доступна» или «недоступна», тогда как в RIP максимальное число прыжков — 15 для борьбы со «счетом до бесконечности».
--OSPF поддерживает VLSM, тогда как RIPv1 нет. Хотя в RIPv2 есть поддержка VLSM. Протокол с поддержкой VLSM позволяет более эффективно использовать адресное пространство.
--OSPF использует пропускную способность сети более эффективно, чем RIP.
--многоадресатная рассылка обновлений OSPF происходит только при установлении соседства, изменениях в сети или истечения 30-минутного периода времени, за который произошли изменения в сети.
--OSPF конвергирует быстрее любой версии RIP.

Главный недостаток OSPF, особенно в сравнении с RIP, то что OSPF тратит намного больше ресурсов маршрутизатора (ЦПУ и память), чем RIP.

Устранение неполадок соседних маршрутизаторов


Как вы знаете из курса CCNA, установление соседства в OSPF проходит через следущие этапы: Down, Attempt, Init, 2-Way, Exstart, Exchange, Loading, Full. Вот небольшой обзор того, что происходит на каждом этапе:

--Down — от соседа не получено ни одного Hello-пакета.
--Attempt — одноадресатный Hello-пакет отправлен соседу. Такое можно встретить только в сетях NBMA, так как там используется команда neighbor.
--Init — первый Hello-пакет получен от соседа.
--2-Way — каждый маршрутизатор получил Hello-пакет, содержащий его собственный RID, следовательно двусторонний обмен сообщениями имел место. Когда маршрутизатор получает Hello-пакет, содержащий его собственный RID, это такой способ для удаленного маршрутизатора сказать «Я получил Hello-пакет, отправленный вами ранее».
--Exstart — происходит выбор DR/BDR, начинается обмен информацией из базы данных состояния канала. Маршрутизатор с большим значением OSPF RID начнет обмен и увеличит значение первоначального порядкового номера, заданного на данном этапе.
--Exchange — произошел обмен пакетами дескриптора БД (DBD). Эти пакеты содержат описание базы данных состояния канала.
--Loading — маршрутизаторы отправляют LSR своим потенциальным соседям.
--Full — базы данных синхронизированы и соседство установлено.

Всегда пользуйтесь командами show ip ospf neighbor и show ip ospf interface, чтобы убедиться, что соседство действительно установлено (этап Full). Соседство можно посмотреть с помощью любой из этих команд. Show ip ospf neighbor дает вам основную информацию относительно соседства, тогда как команда interface — более детальную.

R1#show ip ospf neighbor

  Neighbor ID    Pri     State       Dead Time   Address      Interface
  19.1.1.1        1   2WAY/DROTHER    00:00:38   100.1.1.5    Ethernet0
  172.12.123.3    1     FULL/-        00:00:35   13.13.13.3   Serial1

  R1#show ip ospf interface ethernet 0
  Ethernet0 is up, line protocol is up
    Internet Address 100.1.1.1/24, Area 0
    Process ID 1, Router ID 10.1.1.1, Network Type BROADCAST, Cost: 10
    Transmit Delay is 1 sec, State BDR, Priority 1
    Designater Router (ID) 19.1.1.1, Interface address 100.1.1.5
    Backup Designated router (ID) 10.1.1.1, Interface address 100.1.1.1
    Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
      Hello due in 00:00:06
    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 1 , Adjacent neighbor count is 1
      Adjacent with neighbor 19.1.1.1 (Designated Router)
    Supress Hello for 0 neighbor(s)

Show ip ospf interface замечательная команда для просмотра деталей, связанных с Hello- и Dead-таймерами. Если вы не видите проблему с помощью команды show, можете запустить debug ip ospf adj, чтобы видеть как формируется (или нет) соседство. Вот часть вывода этой команды, можно видеть этапы процесса установления соседства в OSPF, вплоть до этапа Full:

4d22h: OSPF: Rcv DBD from 10.1.1.1 on Serial1 seq 0x5DD opt 0x42 flag 0x7 len32 mtu 1500 state INIT
4d22h: OSPF: 2 Way Communication to 10.1.1.1 on Serial1, state 2WAY
4d22h: OSPF: Send DBD to 10.1.1.1 on Serial1 seq 0x14EC opt 42 flag 0x7 len 32 
4d22h: OSPF: First DBD and we are not SLAVE
4d22h: OSFP: Rcv DBD from 10.1.1.1 on Serial1 seq 0x14EC opt 0x42 flag 0x2 len 92 mtu 1500 state EXSTART
4d22h: OSPF: NBR Negotiation Done. We are the MASTER
4d22h: OSPF: Send DBD to 10.1.1.1 on Serial1 seq 0x14ED opt 0x42 flag 0x3 len 92
4d22h: OSPF: Database request to 10.1.1.1
4d22h: OSPF: sent LS REQ packet to 13.13.13.1, length 12
4d22h: OSPF: Rcv DBD from 10.1.1.1 on Serial1 seq 0x14ED opt 0x42 flag 0x0 len 32 mtu 1500 state EXCHANGE
4d22h: OSPF: Send DBD to 10.1.1.1 on Serial1 seq 0x14EE opt 42 flag 0x1 len 32
4d22h: OSPF: Rcv DBD from 10.1.1.1 on Serial1 seq 0x14EЕ opt 0x42 flag 0x0 len 32 mtu 1500 state EXCHANGE
4d22h: OSPF: Exchange Done with 10.1.1.1 on Serial1
R22h: OSPF: Synchronized with 10.1.1.1 on Serail1, state FULL
4d22h: %OSPF-5-ADJCHG: Process 1, Nbr 10.1.1.1 on Serial1 from LOADING to FULL,
Loading Done

4d22h: OSPF: Build Router LSA for area 0, router ID 172.12.123.3, seq 0x80000005

Кратко, для образования соседства должны быть согласованы следующие параметры:
--Hello- и Dead-таймеры.
--Area ID.
--флаг stub-зоны (on\off).
--пароль (если используется, то должен быть у обоих соседей).

Номер процесса совпадать не должен — это локальный параметр. (Да, знаю, я об этом уже говорил. И повторяю снова!:))

Поведение соседей c несколькими маршрутизаторами OSPF в широковещательном сегменте


Когда у вас более 2 маршрутизаторов в широковещательном сегменте, результаты соседства могут быть интересными. Меня часто спрашивали об этом на Facebook и Twitter (@ccie12933, кстати), так что решил включить ответ сюда.

image

Выборы уже прошли, R1 — DR, R2 — BDR, R3, R4 — DROTHERS. Таблица соседей OSPF на маршрутизаторах R1 и 2 выглядит ожидаемо, но на R3 и 4 — несколько странно.

Router1#show ip ospf nei

  Neighbor ID    Pri     State              Dead Time   Address      Interface
  4.4.4.4        1   FULL/DROTHER           00:00:33   30.1.1.4    Ethernet0
  3.3.3.3        1   FULL/DROTHER           00:00:31   30.1.1.3    Ethernet0
  2.2.2.2        1     FULL/BDR             00:00:30   30.1.1.2    Ethernet0

  Router2#show ip ospf nei

  Neighbor ID    Pri     State              Dead Time   Address      Interface
  4.4.4.4        1   FULL/DROTHER           00:00:35   30.1.1.4    Ethernet0
  3.3.3.3        1   FULL/DROTHER           00:00:33   30.1.1.3    Ethernet0
  1.1.1.1        1     FULL/DR              00:00:39   30.1.1.1    Ethernet0

  Router3#show ip ospf nei

  Neighbor ID    Pri     State              Dead Time   Address      Interface
  4.4.4.4        1   2WAY/DROTHER           00:00:35   30.1.1.4    Ethernet0
  2.2.2.2        1   FULL/DROTHER           00:00:32   30.1.1.2    Ethernet0
  1.1.1.1        1     FULL/DR              00:00:39   30.1.1.1    Ethernet0

  Router4#show ip ospf nei

  Neighbor ID    Pri     State              Dead Time   Address      Interface
  2.2.2.2        1     FULL/BDR             00:00:29   30.1.1.2    Ethernet0
  1.1.1.1        1     FULL/DR              00:00:37   30.1.1.1    Ethernet0
  3.3.3.3        1   2WAY/DROTHER           00:00:30   30.1.1.3    Ethernet0

Есть выражение для соседей OSPF «stuck in 2-way», и многие считают, что это происходит и здесь, но это не так. DROTHER-ы никогда не закончат формировать соседство. Мы можем вернуться завтра и снова увидеть «2-way».

Такое поведение по-умолчанию в OSPF ограничивает количество переданных пакетов LSA в широковещательном сегменте с числом маршрутизаторов больше 2.

Единственные маршрутизаторы, у которых есть соседство в сегменте со всеми остальными маршрутизаторами, это — DR и BDR. Каждый DRother будет формировать полное соседство с DR и BDR, но не с другим DRother-ом.

По этой причине любой маршрутизатор, заметивший изменения в сети, будет передавать информацию об этом только DR и BDR маршрутизаторам, оставшиеся DRother-ы узнают об изменениях от DR.

Теперь мы знаем основы OSPF идеально...
… давайте возьмемся за мультизоновый OSPF
Конец главы
github.

Комментарии (3)


  1. urticazoku
    09.12.2015 20:03

    Внутри тега [source lang=«Язык»] форматирование невозможно? В оригинале часть текста выделена жирным.


  1. evg_krsk
    09.12.2015 20:23
    +1

    А как же совпадение MTU на интерфейсах с соседом?


    1. urticazoku
      09.12.2015 20:41

      И то, что интерфейс не должен быть пассивным. Нету этого в тексте почему-то.