Просматривая описание SDN контроллера, натолкнулся на знакомую аббревиатуру. Само по себе упоминание LISP не вызвало бы у меня никакого интереса. Честно скажу, никогда в жизни не пользовался LISP для программирования, в моём случае знания о нём просто факт из истории вычислительной техники. Удивило сочетание: LISP в списке протоколов SDN контроллера. Решил поинтересоваться, чтобы это могло значить. И оказалось, что этот LISP к тому историческому LISP не имеет практически никакого отношения.
LISP как сетевой протокол, это рекомендация IETF и расшифровывается как Locator/ID Separation Protocol. Протокол, считается экспериментальным, но он уже достаточно детально описан для того, чтобы приступить к его реализации. Собственно упоминание о его поддержке на SDN контроллере это подтверждает.
Если изложить идею кратко: авторы предлагают использовать для адресации в сети два 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. Разработчики встроили всю логику LISP в SDN контроллер, возложив исполнение функций по обработке трафика на виртуальный маршрутизатор. Как частный случай варианта развёртывания, предлагается использовать EID для адресации виртуальных машин, а RLOC использовать для адресации реальных физических интерфейсов.
Использованная литература: RFC 6830
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