Как стать автором
Обновить

LISP не для программирования

Просматривая описание SDN контроллера, натолкнулся на знакомую аббревиатуру. Само по себе упоминание LISP не вызвало бы у меня никакого интереса. Честно скажу, никогда в жизни не пользовался LISP для программирования, в моём случае знания о нём просто факт из истории вычислительной техники. Удивило сочетание: LISP в списке протоколов SDN контроллера. Решил поинтересоваться, чтобы это могло значить. И оказалось, что этот LISP к тому историческому LISP не имеет практически никакого отношения.

LISP как сетевой протокол, это рекомендация IETF и расшифровывается как Locator/ID Separation Protocol. Протокол, считается экспериментальным, но он уже достаточно детально описан для того, чтобы приступить к его реализации. Собственно упоминание о его поддержке на SDN контроллере это подтверждает.

Адресация пакетов LISP


Если изложить идею кратко: авторы предлагают использовать для адресации в сети два IP адреса. Первый адрес называется EID (Endpoint ID) второй RLOC (Routing Locator). EID – не маршрутизируемый в интернет адрес, используется для идентификации конечного устройства. RLOC, в отличии от EID, маршрутизируется в интернет и используется для создания тоннеля между двумя сайтами. Адрес RLOC всегда принадлежит маршрутизатору.

Пакет, имеющий адрес EID представляет собой стандартный пакет IP протокола. Для отправки через интернет пакет с адресом EID упаковывается в UDP пакет с адресами RLOC. После доставки на сайт назначения заголовки с адресами RLOC удаляются, и пакет обрабатывается оконечным устройством как обычный IP пакет.

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

Для чего это нужно


Протокол предназначен для того, чтобы сократить или хотя бы замедлить рост полной маршрутизационной таблицы протокола BGP в Интернет. Естественно возникает вопрос «За счёт чего?». За счёт удаления из BGP таблиц адресов, не поддающихся агрегации и замены их на крупные блоки соответствующие Classless Inter-Domain Routing (CIDR). Иными словами выбирайте для EID любой адрес, в пределах разумного, а вот для RLOC используйте только то, что можно собрать в большой блок CIDR.

Как это использует SDN контроллер


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

Использованная литература: RFC 6830
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.