# О технологиях L2VPN

Прежде чем погрузиться в тёплый MPLS, взглянем на то, какие вообще виды L2VPN существуют.

* **VLAN/QinQ** — их можно сюда отнести, поскольку основные требования VPN выполняются — организуется виртуальная L2 сеть между несколькими точками, данные в которой изолированы от других. По сути VLAN per-user организует Hub-n-Spoke VPN.
* **L2TPv2/PPTP** — устаревшие и скучные вещи.
* **L2TPv3** вместе с **GRE** имеют проблемы с масштабированием.
* **VXLAN, EVPN** — варианты для ЦОД'ов. Очень интересно, но DCI не входит в планы этого выпуска. Зато о них был отдельный подкаст (слушайте запись 25-го ноября)
* **MPLS L2VPN** — это набор различных технологий, транспортом для которых выступает MPLS LSP. Именно он сейчас получил наиболее широкое распространение в сетях провайдеров.

Почему он победитель? Главная причина, безусловно, в способности маршрутизаторов, передающих MPLS-пакеты абстрагироваться от их содержимого, но при этом различать трафик разных сервисов.\
Например, Е1-кадр приходит на PE, сразу же инкапсулируется в MPLS и уже никто по пути даже не заподозрит, что там внутри — важно только вовремя поменять метку.\
А на другой порт приходит Ethernet-кадр и по тому же самому LSP он может пройти по сети, только с другой меткой VPN.\
А кроме того MPLS TE позволяет строить каналы с учётом требований трафика к параметрам сети.\
В связке же с LDP и BGP становится более просто настраивать VPN и автоматически находить соседей.

Возможность инкапсулировать трафик любого канального уровня в MPLS называется **AToM** — Any Transport over MPLS.\
Вот список поддерживаемых AToM протоколов:

* ATM Adaptation Layer Type-5 (AAL5) over MPLS
* ATM Cell Relay over MPLS
* Ethernet over MPLS
* Frame Relay over MPLS
* PPP over MPLS
* High-Level Data Link Control (HDLC) over MPLS

**Два мира L2VPN**

Для построения любого L2VPN существуют два концептуально разных подхода.

* **Point-to-Point**. Применим к любым типам протоколов канального уровня и в принципе, в полной мере исчерпывает все сценарии применения L2VPN. Поддерживает все мыслимые и немыслимые протоколы. Причём некоторые из них ещё и по-разному [может реализовывать](https://www.ietf.org/rfc/rfc4717.txt). В основе лежит концепция PW — PseudoWire — псевдопровод. Вы хотите соединить два узла друг с другом. Тогда сеть провайдера для вас будет как один виртуальный кабель — то, что вошло в него на одном конце обязательно выйдет на другом без изменений. Общее название услуги: **VPWS** — Virtual Private Wire Service. ![](https://habrastorage.org/files/489/144/e71/489144e715634e0c9f55e1045751a439.png)
* **Point-to-Multipoint**. Этот режим только для Ethernet, поскольку только в нём фактически такая необходимость есть. В этом случае у клиента может быть три-пять-десять-сто точек подключения/филиалов, и все они должны передавать данные друг другу, причём, как одному конкретному филиалу, так и всем сразу. Это до боли [напоминает обычный Ethernet-коммутатор](https://habrastorage.org/files/5e8/9d7/3e3/5e89d73e389245589d155cdef2304f22.png), но было бы страшной банальностью об этом говорить. Название технологии: **VPLS** — Virtual Private LAN Service. ![](https://habrastorage.org/files/e11/5f4/d76/e115f4d76dba4d9d834c9f05461f2a75.png)

**Терминология**

Традиционно термины будут вводиться по мере необходимости. Но о некоторых сразу.\
**PE** — Provider Edge — граничные маршрутизаторы MPLS-сети провайдера, к которым подключаются клиентские устройства (CE).\
**CE** — Customer Edge — оборудование клиента, непосредственно подключающееся к маршрутизаторам провайдера (PE).\
**AC** — Attached Circuit — интерфейс на PE для подключения клиента.\
**VC** — Virtual Circuit — виртуальное однонаправленное соединение через общую сеть, имитирующее оригинальную среду для клиента. Соединяет между собой AC-интерфейсы разных PE. Вместе они составляют цельный канал: AC→VC→AC.\
**PW** — PseudoWire — виртуальный двунаправленный канал передачи данных между двумя PE — состоит из пары однонаправленных VC. В этом и есть отличие PW от VC.

![](https://habrastorage.org/files/579/f80/02c/579f8002c6544a3ba45244baa3e5f4ec.png)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://linkmeup.gitbook.io/sdsm/12.-mpls-l2vpn/0.-vpn-types.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
