User Tools

Site Tools


qnote:ospf

Быстрые заметки по OSPF

Сетевая составляющая протокола OSPF

86 - номер протокола OSPF.

kostya@blackpc:~$ cat /etc/protocols
...
ospf	89	OSPFIGP		# Open Shortest Path First IGP
...

Пакеты OSPF передаются на мультикаст адреса 224.0.0.5 и 224.0.0.6, второй адрес используют только DR.

Часть ACL которым прикрывается Routing Engine (на вход) маршрутизаторов Juniper.

       filter RE-OSPF-IN {
            interface-specific;
            term ACCEPT-OSPF {
                from {
                    source-prefix-list {
                        TRUSTED-OSPF-IPV4;
                    }
                    destination-prefix-list {
                        OSPF-MCAST-IP;
                        TRUSTED-OSPF-IPV4;
                    }
                    protocol ospf;
                }
                then {
                    count C-A-RE-OSPF;
                    accept;
                }
            }
        }

где,

  • OSPF-MCAST-IP - префик лист с двумя ospf мультикаст адресами
        prefix-list OSPF-MCAST-IP {
            224.0.0.5/32;
            224.0.0.6/32;
        }
  • TRUSTED-OSPF-IPV4 - префикс лист в котором перечислены все маршрутизаторы от которых будут приняты ospf пакеты.
    В 166 сети стояли маршрутизаторы принадлежащие area 0, а через “apply-path” учитывались адреса маршрутизаторов (стояли в других area) подключенных по ospf через ipsec туннели.
          prefix-list TRUSTED-OSPF-IPV4 {
            192.168.166.2/32;
            192.168.166.3/32;
            192.168.166.4/32;
            192.168.166.6/32;
            192.168.166.7/32;
            apply-path "interfaces st0 unit <*> family inet address <*.*>";
        } 

С подобным ACL надо быть крайне аккуратным.
В практике был случай, когда в area 0, рядом с маршрутизатором, на котором висел такой строгий ACL, стояли не так основательно защищенные маршрутизаторы.
В area 0, в 166 сеть, был добавлен новый маршрутизатор, адрес которого забыли прописать в ACL.
OSPF маршрутизация “поплыла” - новый маршрутизатор установил сосдество с роутерами без ACL, они начали процедуру перевыбора DR/BDR и сделали это неколько раз. При этом маршрутизатор с ACL не мог никак провзаимодействовать с новый роутером, таблица маршрутизации жила своей жизнью.
Проблему решили только отключением нового роутера, анализом инцидента и правкой ACL.


Условия установления OSPF соседства

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

  • Hello и Dead интервалы должны быть одинаковыми.
  • Интерфейсы, которыми маршрутизаторы подключены друг к другу должны быть в одной сети.
  • Должны совпадать номера area.
  • У каждого маршрутизатора должен быть уникальный Router ID.
  • На интерфейсах должен совпадать MTU.

Состояния соседства OSPF

  1. Down - начальное состояние, соседей нет.
  2. Init - маршрутизатор отправил Hello сообщение и ждет ответного Hello.
  3. Two-way/2WAY - переход в это состояние говорит о том, что маршрутизатор получил ответное Hello сообщение от соседнего маршрутизатора, в нем нашел свой Router ID и установил с ним соседские (смежные) отношения. Обмена и синхронизации LSDB еще не было.
    В широковещаельной сети, маршрутизаторы которые не выполняют роли DR и BDR, между собой находятся в состоянии 2WAY/DROTHER.
  4. Exstart - идет выбор DR и BDR.
  5. Exchange - идет обмен DD (database description) пакетами в которых содержится информация (LSDB) о сетях известных маршрутизатору.
  6. Loading - если в полученном DD есть информация о сетях о которых маршрутизатор не знает, то он у своего соседа запрашивает (LSR) подробную информацию. Маршрутизатор, пока ждет и получает ответ (LSU), находся в состоянии loading.
  7. Full - маршрутизаторы полностью синхронизировали свои базы данных (LSDB) и успокоились.

Терминалогия

  • DR - Designated Designated Router
  • BDR - Backup Designated Router
  • LSR - Link-State Request
  • LSU - Link-State Update
  • LSDB - Link-State DataBase
  • DBD/DD - DataBase Description

Полезные ссылки

qnote/ospf.txt · Last modified: 2021/08/12 08:35 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki