Узнав о VXLAN, я нашел в документе:
... Затем VTEP1 добавляет заголовок VXLAN, который содержит VNI, к кадру Ethernet, инкапсулирует кадр в пакет UDP уровня 3 и направляет пакет в VTEP2 по сети уровня 3.
А затем про инкапсулированные заголовки:
Заголовок внешнего MAC - Содержит MAC-адрес исходного VTEP и MAC-адрес маршрутизатора следующего перехода. Каждый маршрутизатор на пути пакета перезаписывает этот заголовок так, чтобы адрес источника был MAC-адресом маршрутизатора, а адрес назначения - MAC-адресом маршрутизатора следующего перехода.
Если пакет маршрутизируется через уровень 3, почему требуется внешний MAC-адрес для следующего перехода вместо типичного IP уровня 3?
А что касается туннельных узлов VXLAN (не VTEP), это коммутатор / виртуальный коммутатор (L2), маршрутизатор (L3) или могут быть оба варианта?
[редактировать]
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).
[UDP PACKET 1.1.1.1->2.2.2.2[VXLAN FRAME]]
[ETH FRAME AA->BB[UDP PACKET[VXLAN FRAME]]]
[ETH FRAME CC->DD[UDP PACKET[VXLAN FRAME]]]
. **** Если бы между VTEP были дополнительные маршрутизаторы, то этот процесс продолжился бы. Каждый маршрутизатор извлекает пакет и помещает его в новый кадр с собственным MAC-адресом src и MAC-адресом dst следующего перехода, пока он не попадет в пункт назначения.