Телекоммуникационные технологии.Сети TCP-IP

       

Формат сообщения UPDATE


Сообщение UPDATE состоит из трех частей переменной длины: список недействительных маршрутов, список атрибутов и список сетей, к которым эти атрибуты относятся. Две последние части представляют собой собственно информацию о маршруте в указанные сети. (То есть, если маршруты в несколько разных сетей имеют одинаковые атрибуты, то они объединяются в одном сообщении UPDATE. Разумеется, предварительно адреса сетей везде, где это возможно, агрегируются в общий префикс.) Как первая часть сообщения, так и две последние могут отсутствовать.

Формат сообщения:

  • 19 октетов - заголовок,
  • 2 октета - длина списка недействительных маршрутов L1;
  • L1 октетов - список недействительных маршрутов;
  • 2 октета - длина списка атрибутов L2;
  • L2 октетов - список атрибутов для указанных ниже сетей;
  • X октетов - список адресов сетей (Network Layer Reachability Information, NLRI).
  • X= Длина_всего_сообщения - 19(длина заголовка) - 4 - L1 - L2.

    Список адресов сетей и список недействительных маршрутов представляют собой списки элементов, каждый элемент состоит из 2 частей:

    • 1 октет - длина префикса L
    • N октетов - префикс, где N - верхняя целая часть от L/8.

    Например, префикс 10.0.0.0/8 представляется в виде двух октетов:

    8 10

    Префикс 172.16.192.0/19 представляется в виде 4 октетов:



    19 172 16 192

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

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

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


    Список атрибутов представляет собой список элементов, каждый элемент состоит из 4 частей:


    • 1 октет - флаги атрибута,
    • 1 октет - тип атрибута,
    • 1 или два октета, в зависимости от бита 3 флагов - длина данных атрибута L,
    • L октетов, может быть 0, - данные атрибута.


    Флаги атрибута:


    • бит 0=1 - атрибут всеобщий (обязан обрабатываться любым BGP-процессом: например, ORIGIN, AS_PATH, NEXT_HOP, LOCAL_PREF, ATOMIC_AGGREGATE),
    • бит 0=0 - атрибут дополнительный (BGP-процесс может проигнорировать этот атрибут: например, MULTI_EXIT_DISC, AGGREGATOR).
    • бит 1=1 - для дополнительных атрибутов: атрибут транзитивный (должен передаваться при переобъявлении маршрута другому соседу, например, AGGREGATOR). Для прочих атрибутов бит 1 всегда установлен.
    • бит 1=0 - Для дополнительных атрибутов: атрибут не транзитивный (не передается при переобъявлении маршрута другому соседу, например, MULTI_EXIT_DISC).
    • бит 2=1 - (только дополнительных транзитивных атрибутов) какой-то из маршрутизаторов, через которые проходил атрибут, проигнорировал его,
    • бит 2=0 - (только дополнительных транзитивных атрибутов) все маршрутизаторы по пути следования обработали атрибут. Для прочих атрибутов бит 2 всегда обнулен.
    • бит 3=1 - поле "Длина данных атрибута" занимает 2 октета,
    • бит 3=0 - поле "Длина данных атрибута" занимает 1 октет.


    Длина и интерпертация данных атрибута зависит от типа атрибута.


    • ORIGIN (тип 1) - 1 октет данных, содержащий значение атрибута (целое число 0, 1 или 2).
    • ASPATH (тип 2) - данные атрибута состоят из списка элементов, каждый элемент состоит из 3 частей:


    • 1 октет - тип сегмента пути: AS_SEQUENCE (=2) или AS_SET (=1),
    • 1 октет - число N номеров АС в сегменте,
    • 2N октетов - список номеров АС этого сегмента пути (по два октета на номер).


  • NEXT_HOP (тип 3) - 4 октета, содержащих значение атрибута (IP-адрес).
  • MULTI_EXIT_DISC (тип 4) - 4 октета, содержащих значение атрибута (беззнаковое целое число).
  • LOCAL_PREF (тип 5)- 4 октета, содержащих значение атрибута (беззнаковое целое число).
  • ATOMIC_AGGRGATE (тип 6) - нет данных (значением атрибута является его присутствие).
  • AGGREGATOR (тип 7) - 6 октетов, содержащих значение атрибута (2 октета - номер АС, 4 октета - IP-адрес).



  • Содержание раздела