Источник Scott Lowe: http://blog.scottlowe.org/2011/12/02/examining-vxlan/
Чтобы написать этот пост, мне потребовалось достаточно много времени. С момента объявления о VXLAN на VMworld в начале 2011-го года, я пытался найти информацию по следующим вопросам: "Что такое VXLAN? Как эта технология встраивается в сеть в целом? Почему нам нужен новый стандарт? "Я разговаривал с Cisco, я присутствовал на сессии VMworld о будущем сетей, я разговаривал с некоторыми авторами draft-проекта VXLAN из IETF, я прочел большую часть draft-документов VXLAN, и я изучил некоторые существующие протоколы, которые можно ввести в эксплуатацию. И теперь, я думаю, что готов ответить на все вопросы.
Что такое VXLAN?
Ответ беру непосредственно из draft-документа IETF (выделение жирным от Scott Lowe):
Этот документ описывает Virtual eXtensible Local Area Network (VXLAN) - расширяемую виртуальную локальную сеть, используемую для удовлетворения потребности в наложенных сетях внутри виртуализированных центров обработки данных обслуживающих несколько компаний-арендаторов.
Очень важно помнить, хотя это и является упрощением, VXLAN является попыткой замены проприетарного протокола инкапсуляции MAC-поверх-MAC, в настоящее время используемого в VMware vCloud Director. Вместо использования инкапсуляции MAC-поверх-MAC, VXLAN использует инкапсуляцию MAC-поверх-IP с применением многоадресных групп (multicast groups), что позволяет реализовать процесс обучения MAC-адресам, портов виртуальных коммутаторов. Используются уникальные UDP-порты источники (трафика), что помогает с балансировкой нагрузки по нескольким линкам (multiple links). Да, это упрощение, но именно это отражает суть в целом.
Очень важно помнить, хотя это и является упрощением, VXLAN является попыткой замены проприетарного протокола инкапсуляции MAC-поверх-MAC, в настоящее время используемого в VMware vCloud Director. Вместо использования инкапсуляции MAC-поверх-MAC, VXLAN использует инкапсуляцию MAC-поверх-IP с применением многоадресных групп (multicast groups), что позволяет реализовать процесс обучения MAC-адресам, портов виртуальных коммутаторов. Используются уникальные UDP-порты источники (трафика), что помогает с балансировкой нагрузки по нескольким линкам (multiple links). Да, это упрощение, но именно это отражает суть в целом.
Как VXLAN встраивается в сеть в целом?
Попытка ответить на этот вопрос заняла большую часть времени, необходимую написания этой статьи. Вы не сможете объяснить, как VXLAN встраивается в сеть в целом, без минимального понимания, как устроена оставшаяся часть сети. Я должен был копаться все глубже, чем просто технологии MPLS, OTV, FabricPath / TRILL и другие существующие и планируемые стандарты. Я уверен, что я упустил некоторые технологии, которые должны были быть включены, а для тех которые я включил, нужно узнать еще много нового.
На основе той информации, которую я смог собрать, ответ на второй вопрос, на самом деле, зависит от ответа на первый вопрос. VXLAN решает несколько фундаментальных проблем связанных с VLAN:- нехватка адресного пространства VLAN (теоретический предел составляет 4094 виртуальных локальных сетей, при этом многие коммутаторы реально поддерживают даже меньше, чем это значение);
- неспособность поддерживать «мультиклиентскую» LAN (как с точки зрения будущих требований к масштабированию, так и с точки зрения будущих требований к изоляции);
- проблемы с организацией соединений 2-го уровня между виртуальными ЦОД, находящимися на разных площадках.
VXLAN решает эти проблемы следующим образом:
- он добавляет 24-битный идентификатор сети VXLAN (VNI), что расширяет область уникальных идентификаторов до, практически, 17 миллионов (16700000). Это решает любые проблемы связанные с масштабированием в «мультиклиентской» LAN.
- он упаковывает Layer 2 фреймы в пакеты Layer 3. Это решает оставшуюся часть проблемы любой «мультиклиентской» LAN (VXLAN скрывает дублированые MAC адреса, IP адреса, и идентификаторы VLAN, т.к. все они находятся в отдельных VNI). Так же это решает проблемы с организацией соединений 2-го уровня между виртуальными ЦОД, находящимися на разных площадках.
И собственно все. В VXLAN не рассматривает Layer 2 multipathing / STP, он не решает вопросы физических Layer 2 соединений (соединение Layer 2 сохранились только на уровне виртуализации), и в нем не учтены проблемы маршрутизации пакетов Layer 3, возникающие в распределенных сетях или при реализации дизайна с мобильными VM. И это приводит нас к третьему вопросу ...
Комментарии, исправления и уточнения всегда приветствуются!
Почему нам нужен новый стандарт?
Ответ на этот вопрос основан на двух предыдущих. Как только у вас есть четкое понимание, для чего был разработан VXLAN, и как VXLAN взаимодействует с остальными сетевыми протоколами, то ответить довольно просто:
- Если вы читали мои статьи, вы уже знаете, что VXLAN не обрабатывает все способы Layer 3 подключений. И поскольку он не делает это, вам все еще нужны протоколы (такие как OTV) для организации на физическом уровне подключений Layer 2/3.
- Так как для достижения мобильности VM вам все равно придется использовать протоколы, такие как OTV (по крайней мере, на данный момент), вы все еще будете нуждаться протоколах, таких как LISP, чтобы исправить проблемы маршрутизации, связанные с одновременным существованием одинаковых IP подсетей в нескольких местах (funny routing issues).
- Поскольку VXLAN не обрабатывает многоканальные Layer 2 соединения, вам все еще нужно протоколы, такие как TRILL и технологии, такие как FabricPath.
- Поскольку использование технологии MPLS, как решения не имеющего трех проблем VXLAN, потребует наличие MPLS-enabled/MPLS-aware оборудования в ЦОД, что сделает применение такого решения тяжеловатым для многих предприятий. Использование IP-инкапсуляции (в VXLAN) подразумевает, что существующее физическое сетевое оборудование менять не обязательно. (Хотя, в какой-то момент в будущем, может потребоваться добавление поддержки VXLAN).
Я не был поклонником VMware, продвигающей создание совершенно новых сетевых стандартов. Однако когда я полез во все это, я начал понимать, что в то время как другие (существующие) технологии решают почти все эти проблемы, ни одна из них не было действительно хорошим выбором. Да, с помощью MPLS, все это, вероятно, работало бы. Использование GRE, возможно, так же работает (взять например NVGRE, но это также предлагаемый новый протокол). Для того чтобы решить проблему в лоб, потребуется решение, которое было написано / созданно специально для этой цели, и это VXLAN. Очень важно реально понимать, что VXLAN делает хорошо, а что не очень. В противном случае окажется, что вы пытаетесь использовать VXLAN для того, для чего она не предназначена, кстати, это одна из причин создания VXLAN.
Комментарии, исправления и уточнения всегда приветствуются!
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.