---
title: "VXLAN"
summary: "Ramka Ethernet w pakiecie UDP: jak połączyć sieć VM przez sieć routerów."
tags: [networking, overlay, vxlan]
---

# VXLAN

Masz dwie VMki na różnych serwerach i chcesz, żeby były w jednej sieci.
Po drodze jest kilka routerów. Jak przenieść między nimi ramkę Ethernet?

**VXLAN** (*Virtual eXtensible LAN*) pakuje ją do pakietu UDP/IP.
To jak włożenie listu do większej koperty: na zewnątrz adres serwera,
w środku oryginalna wiadomość VMki.

```text
VM A -> host A -> [IP hosta B | UDP | VXLAN | ramka VM] -> host B -> VM B
                 zapakuj                                rozpakuj
```

Końce takiego tunelu to **VTEP-y** (*VXLAN Tunnel Endpoints*).
U nas działają na [[host|hostach]], czyli fizycznych serwerach uruchamiających VMki.
Routery po drodze dostarczają zewnętrzny pakiet, bez poznawania adresów każdej VMki.

## Która sieć?

Nagłówek VXLAN zawiera **VNI**: 24-bitowy numer sieci, np. `5000`.
Dzięki niemu host wie, do której wirtualnej sieci należy rozpakowana ramka.
Można mieć około 16 milionów takich numerów.

VXLAN sam nie szyfruje ruchu. Opakowanie służy do transportu i rozdzielania sieci.
A skąd host wie, do którego VTEP-a wysłać ramkę? Może się tego dowiedzieć przez [[evpn|EVPN]].

Źródło: [RFC 7348, sekcje 4 i 5](https://www.rfc-editor.org/rfc/rfc7348.html#section-4).

Powiązane: [[overlay]], [[fib-i-whiteboxy]]
