Назад | Перейти на главную страницу

Детали формата VXLAN

Узнав о VXLAN, я нашел в документе:

... Затем VTEP1 добавляет заголовок VXLAN, который содержит VNI, к кадру Ethernet, инкапсулирует кадр в пакет UDP уровня 3 и направляет пакет в VTEP2 по сети уровня 3.

А затем про инкапсулированные заголовки:

Заголовок внешнего MAC - Содержит MAC-адрес исходного VTEP и MAC-адрес маршрутизатора следующего перехода. Каждый маршрутизатор на пути пакета перезаписывает этот заголовок так, чтобы адрес источника был MAC-адресом маршрутизатора, а адрес назначения - MAC-адресом маршрутизатора следующего перехода.

Если пакет маршрутизируется через уровень 3, почему требуется внешний MAC-адрес для следующего перехода вместо типичного IP уровня 3?
А что касается туннельных узлов VXLAN (не VTEP), это коммутатор / виртуальный коммутатор (L2), маршрутизатор (L3) или могут быть оба варианта?

[редактировать]

Заголовки пакетов VXLAN

VXLAN - это структура уровня 2, поэтому, когда один VTEP хочет отправить данные другому VTEP, он создает кадр VXLAN уровня 2 (в основном кадр Ethernet). Затем этот кадр необходимо доставить на IP-адрес целевого VTEP.

Когда они говорят о «заголовке внешнего MAC», кажется, они говорят о кадре, который отправляется по физической сети. Представьте себе следующую конфигурацию -

VTEP Host A: 1.1.1.1 MAC AA (not going to bother with full MAC addresses)
Local Router Interface 1: 1.1.1.254 MAC BB
Local Router Interface 2: 2.2.2.254 MAC CC
VTEP Host B: 2.2.2.2 MAC DD

(Приведенные выше IP-адреса являются фактическими адресами хоста (конечными точками VTEP), а не адресами самих интерфейсов виртуальных VXLAN).

  1. Узел VTEP A помещает кадр VXLAN в пакет UDP и адресует его 2.2.2.2. [UDP PACKET 1.1.1.1->2.2.2.2[VXLAN FRAME]]
  2. Этот пакет передается в ОС, которая хочет доставить его в 2.2.2.2. Это не в локальной сети, поэтому пакет помещается в кадр Ethernet с источником AA и местом назначения локального маршрутизатора BB. [ETH FRAME AA->BB[UDP PACKET[VXLAN FRAME]]]
  3. Локальный маршрутизатор получает кадр и извлекает пакет UDP. Он видит, что пакет предназначен для 2.2.2.2, к которому он может получить доступ напрямую. Он помещает пакет в новый кадр Ethernet, предназначенный для DD. [ETH FRAME CC->DD[UDP PACKET[VXLAN FRAME]]]. **
  4. Хост B получает адресованный ему кадр Ethernet, извлекает пакет UDP, а затем передает его в любую часть системы, обрабатывающую данные VXLAN.

** Если бы между VTEP были дополнительные маршрутизаторы, то этот процесс продолжился бы. Каждый маршрутизатор извлекает пакет и помещает его в новый кадр с собственным MAC-адресом src и MAC-адресом dst следующего перехода, пока он не попадет в пункт назначения.